[VOL-5567] update protos

Change-Id: I2237e104062831286129ece7cae6621fd971ecb9
Signed-off-by: Abhay Kumar <abhay.kumar@radisys.com>
diff --git a/go/adapter_service/adapter_service.pb.go b/go/adapter_service/adapter_service.pb.go
index a910872..a1486d3 100644
--- a/go/adapter_service/adapter_service.pb.go
+++ b/go/adapter_service/adapter_service.pb.go
@@ -1,1644 +1,222 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// 	protoc-gen-go v1.36.11
+// 	protoc        v4.25.8
 // source: voltha_protos/adapter_service.proto
 
 package adapter_service
 
 import (
-	context "context"
-	fmt "fmt"
-	proto "github.com/golang/protobuf/proto"
-	empty "github.com/golang/protobuf/ptypes/empty"
 	common "github.com/opencord/voltha-protos/v5/go/common"
 	core_adapter "github.com/opencord/voltha-protos/v5/go/core_adapter"
 	extension "github.com/opencord/voltha-protos/v5/go/extension"
 	health "github.com/opencord/voltha-protos/v5/go/health"
 	omci "github.com/opencord/voltha-protos/v5/go/omci"
 	voltha "github.com/opencord/voltha-protos/v5/go/voltha"
-	grpc "google.golang.org/grpc"
-	codes "google.golang.org/grpc/codes"
-	status "google.golang.org/grpc/status"
-	math "math"
+	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+	emptypb "google.golang.org/protobuf/types/known/emptypb"
+	reflect "reflect"
+	unsafe "unsafe"
 )
 
-// Reference imports to suppress errors if they are not otherwise used.
-var _ = proto.Marshal
-var _ = fmt.Errorf
-var _ = math.Inf
+const (
+	// Verify that this generated code is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+	// Verify that runtime/protoimpl is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
 
-// 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
+var File_voltha_protos_adapter_service_proto protoreflect.FileDescriptor
 
-func init() {
-	proto.RegisterFile("voltha_protos/adapter_service.proto", fileDescriptor_038e6ec340f67698)
-}
+const file_voltha_protos_adapter_service_proto_rawDesc = "" +
+	"\n" +
+	"#voltha_protos/adapter_service.proto\x12\x0fadapter_service\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1avoltha_protos/common.proto\x1a voltha_protos/core_adapter.proto\x1a\x1avoltha_protos/device.proto\x1a\x1evoltha_protos/extensions.proto\x1a\x1avoltha_protos/health.proto\x1a\x1avoltha_protos/voltha.proto\x1a\x1dvoltha_protos/omci_test.proto\x1a\x1avoltha_protos/events.proto2\xf2\x15\n" +
+	"\x0eAdapterService\x12?\n" +
+	"\x0fGetHealthStatus\x12\x12.common.Connection\x1a\x14.health.HealthStatus(\x010\x01\x125\n" +
+	"\vAdoptDevice\x12\x0e.device.Device\x1a\x16.google.protobuf.Empty\x129\n" +
+	"\x0fReconcileDevice\x12\x0e.device.Device\x1a\x16.google.protobuf.Empty\x126\n" +
+	"\fDeleteDevice\x12\x0e.device.Device\x1a\x16.google.protobuf.Empty\x127\n" +
+	"\rDisableDevice\x12\x0e.device.Device\x1a\x16.google.protobuf.Empty\x128\n" +
+	"\x0eReEnableDevice\x12\x0e.device.Device\x1a\x16.google.protobuf.Empty\x126\n" +
+	"\fRebootDevice\x12\x0e.device.Device\x1a\x16.google.protobuf.Empty\x128\n" +
+	"\x0eSelfTestDevice\x12\x0e.device.Device\x1a\x16.google.protobuf.Empty\x12B\n" +
+	"\x10GetOfpDeviceInfo\x12\x0e.device.Device\x1a\x1e.core_adapter.SwitchCapability\x129\n" +
+	"\x0fChildDeviceLost\x12\x0e.device.Device\x1a\x16.google.protobuf.Empty\x122\n" +
+	"\n" +
+	"EnablePort\x12\f.device.Port\x1a\x16.google.protobuf.Empty\x123\n" +
+	"\vDisablePort\x12\f.device.Port\x1a\x16.google.protobuf.Empty\x12B\n" +
+	"\x0fUpdateFlowsBulk\x12\x17.core_adapter.BulkFlows\x1a\x16.google.protobuf.Empty\x12R\n" +
+	"\x18UpdateFlowsIncrementally\x12\x1e.core_adapter.IncrementalFlows\x1a\x16.google.protobuf.Empty\x12@\n" +
+	"\rSendPacketOut\x12\x17.core_adapter.PacketOut\x1a\x16.google.protobuf.Empty\x12E\n" +
+	"\x0eUpdatePmConfig\x12\x1b.core_adapter.PmConfigsInfo\x1a\x16.google.protobuf.Empty\x12S\n" +
+	"\x10DownloadOnuImage\x12\".device.DeviceImageDownloadRequest\x1a\x1b.device.DeviceImageResponse\x12L\n" +
+	"\x11GetOnuImageStatus\x12\x1a.device.DeviceImageRequest\x1a\x1b.device.DeviceImageResponse\x12O\n" +
+	"\x14AbortOnuImageUpgrade\x12\x1a.device.DeviceImageRequest\x1a\x1b.device.DeviceImageResponse\x12-\n" +
+	"\fGetOnuImages\x12\n" +
+	".common.ID\x1a\x11.device.OnuImages\x12K\n" +
+	"\x10ActivateOnuImage\x12\x1a.device.DeviceImageRequest\x1a\x1b.device.DeviceImageResponse\x12I\n" +
+	"\x0eCommitOnuImage\x12\x1a.device.DeviceImageRequest\x1a\x1b.device.DeviceImageResponse\x12O\n" +
+	"\rDownloadImage\x12\".core_adapter.ImageDownloadMessage\x1a\x15.device.ImageDownload\"\x03\x88\x02\x01\x12X\n" +
+	"\x16GetImageDownloadStatus\x12\".core_adapter.ImageDownloadMessage\x1a\x15.device.ImageDownload\"\x03\x88\x02\x01\x12U\n" +
+	"\x13CancelImageDownload\x12\".core_adapter.ImageDownloadMessage\x1a\x15.device.ImageDownload\"\x03\x88\x02\x01\x12U\n" +
+	"\x13ActivateImageUpdate\x12\".core_adapter.ImageDownloadMessage\x1a\x15.device.ImageDownload\"\x03\x88\x02\x01\x12S\n" +
+	"\x11RevertImageUpdate\x12\".core_adapter.ImageDownloadMessage\x1a\x15.device.ImageDownload\"\x03\x88\x02\x01\x12;\n" +
+	"\rStartOmciTest\x12\x16.core_adapter.OMCITest\x1a\x12.omci.TestResponse\x12J\n" +
+	"\rSimulateAlarm\x12\".core_adapter.SimulateAlarmMessage\x1a\x15.common.OperationResp\x12;\n" +
+	"\rSuppressEvent\x12\x12.event.EventFilter\x1a\x16.google.protobuf.Empty\x12=\n" +
+	"\x0fUnSuppressEvent\x12\x12.event.EventFilter\x1a\x16.google.protobuf.Empty\x12H\n" +
+	"\vGetExtValue\x12 .core_adapter.GetExtValueMessage\x1a\x17.extension.ReturnValues\x12G\n" +
+	"\vSetExtValue\x12 .core_adapter.SetExtValueMessage\x1a\x16.google.protobuf.Empty\x12U\n" +
+	"\x0eGetSingleValue\x12 .extension.SingleGetValueRequest\x1a!.extension.SingleGetValueResponse\x12U\n" +
+	"\x0eSetSingleValue\x12 .extension.SingleSetValueRequest\x1a!.extension.SingleSetValueResponse\x12:\n" +
+	"\x10DisableOnuDevice\x12\x0e.device.Device\x1a\x16.google.protobuf.Empty\x129\n" +
+	"\x0fEnableOnuDevice\x12\x0e.device.Device\x1a\x16.google.protobuf.Empty\x12Q\n" +
+	"\x16DisableOnuSerialNumber\x12\x1f.device.OnuSerialNumberOnOLTPon\x1a\x16.google.protobuf.Empty\x12P\n" +
+	"\x15EnableOnuSerialNumber\x12\x1f.device.OnuSerialNumberOnOLTPon\x1a\x16.google.protobuf.Empty\x12<\n" +
+	"\fUpdateDevice\x12\x14.device.UpdateDevice\x1a\x16.google.protobuf.EmptyBt\n" +
+	"#org.opencord.voltha.adapter_serviceB\x14VolthaAdapterServiceZ7github.com/opencord/voltha-protos/v5/go/adapter_serviceb\x06proto3"
 
-var fileDescriptor_038e6ec340f67698 = []byte{
-	// 918 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x97, 0xcd, 0x6e, 0xdb, 0x46,
-	0x10, 0xc7, 0x91, 0x16, 0xe8, 0x61, 0x6c, 0x4b, 0xf6, 0xd6, 0x76, 0x0a, 0x1a, 0x4d, 0xd3, 0xe4,
-	0xd2, 0x4b, 0xa8, 0x22, 0x41, 0x92, 0x7e, 0xa2, 0xd5, 0x57, 0x14, 0xb5, 0x4e, 0xa9, 0x8a, 0x51,
-	0x50, 0xf4, 0x62, 0xac, 0xa8, 0x11, 0x45, 0x64, 0xb9, 0xcb, 0xee, 0x0e, 0xe5, 0xe4, 0x0d, 0xfa,
-	0xbc, 0x7d, 0x82, 0x82, 0xe4, 0x52, 0x12, 0x15, 0x29, 0x89, 0x6c, 0xdf, 0xc4, 0xf9, 0xef, 0xfc,
-	0x66, 0x76, 0x66, 0xbf, 0x04, 0xf7, 0xe7, 0x4a, 0xd0, 0x8c, 0x5f, 0x24, 0x5a, 0x91, 0x32, 0x0d,
-	0x3e, 0xe1, 0x09, 0xa1, 0xbe, 0x30, 0xa8, 0xe7, 0x51, 0x80, 0x6e, 0x6e, 0x66, 0xf5, 0x35, 0xb3,
-	0x73, 0x16, 0x2a, 0x15, 0x0a, 0x6c, 0xe4, 0xf2, 0x38, 0x9d, 0x36, 0x30, 0x4e, 0xe8, 0x6d, 0x31,
-	0xda, 0x71, 0xaa, 0xc8, 0x40, 0xc5, 0xb1, 0x92, 0x56, 0xbb, 0xbb, 0xae, 0x69, 0xbc, 0xb0, 0xf0,
-	0xcd, 0xde, 0x13, 0x5c, 0xe6, 0xe1, 0xdc, 0xa9, 0x6a, 0xf8, 0x86, 0x50, 0x9a, 0x48, 0x49, 0xb3,
-	0xd9, 0x77, 0x86, 0x5c, 0xd0, 0x6c, 0xb3, 0x56, 0x7c, 0x59, 0xed, 0xcb, 0xaa, 0xa6, 0xe2, 0x20,
-	0xba, 0x20, 0x34, 0xb4, 0xd9, 0x15, 0xe7, 0x28, 0xc9, 0x86, 0x7c, 0xf8, 0xdf, 0x09, 0xd4, 0x9a,
-	0xc5, 0x04, 0xfc, 0xa2, 0x38, 0xec, 0x17, 0xa8, 0xf7, 0x90, 0x9e, 0xe7, 0xc1, 0x7d, 0xe2, 0x94,
-	0x1a, 0xc6, 0x5c, 0x5b, 0x85, 0xb6, 0x92, 0x12, 0x03, 0x8a, 0x94, 0x74, 0x8e, 0x5d, 0x9b, 0xdf,
-	0xea, 0xc8, 0x6f, 0x6e, 0x7d, 0x7b, 0x8b, 0x3d, 0x86, 0xbd, 0xe6, 0x44, 0x25, 0xd4, 0xc9, 0xe7,
-	0xce, 0x6a, 0xae, 0x2d, 0x42, 0xf1, 0xed, 0x9c, 0xba, 0x45, 0xf5, 0xdd, 0xb2, 0xfa, 0x6e, 0x37,
-	0xab, 0x3e, 0xfb, 0x1e, 0xea, 0x43, 0x0c, 0x94, 0x0c, 0x22, 0x81, 0x3b, 0xba, 0x3e, 0x81, 0xfd,
-	0x0e, 0x0a, 0xa4, 0x5d, 0xfd, 0x9e, 0xc2, 0x41, 0x27, 0x32, 0x7c, 0xbc, 0x73, 0xc0, 0xef, 0xa0,
-	0x36, 0xc4, 0xae, 0xbc, 0x82, 0xe7, 0x13, 0xd8, 0x1f, 0xe2, 0x58, 0x29, 0xda, 0x3d, 0xa2, 0x8f,
-	0x62, 0xfa, 0x12, 0xcd, 0xae, 0x9e, 0x2d, 0x38, 0xec, 0x21, 0x79, 0xd3, 0xa4, 0x18, 0xd7, 0x97,
-	0x53, 0xf5, 0x8e, 0xef, 0x1d, 0xb7, 0xb2, 0x94, 0xfd, 0xcb, 0x88, 0x82, 0x59, 0x9b, 0x27, 0x7c,
-	0x1c, 0x89, 0xa8, 0xe8, 0x4d, 0x7b, 0x16, 0x89, 0x49, 0x31, 0xfc, 0x5c, 0x19, 0xfa, 0xe8, 0xf0,
-	0x0f, 0x01, 0x8a, 0x42, 0x0d, 0x94, 0x26, 0xb6, 0x5f, 0x7a, 0x65, 0x5f, 0x5b, 0x7d, 0x1e, 0xc1,
-	0x9e, 0xed, 0xcb, 0x0e, 0x4e, 0x2d, 0xa8, 0x8f, 0x92, 0x09, 0x27, 0x7c, 0x26, 0xd4, 0xa5, 0x69,
-	0xa5, 0xe2, 0x35, 0xbb, 0x5d, 0x9d, 0x56, 0x66, 0xcb, 0xc5, 0xad, 0x8c, 0x21, 0x7c, 0xb1, 0xc2,
-	0xe8, 0xcb, 0x40, 0x63, 0x8c, 0x92, 0xb8, 0x10, 0x6f, 0xd9, 0x5a, 0x8d, 0x56, 0xc4, 0xf7, 0x33,
-	0x7f, 0x85, 0x03, 0x1f, 0xe5, 0x64, 0xc0, 0x83, 0xd7, 0x48, 0x5e, 0x4a, 0xeb, 0x59, 0x2d, 0x84,
-	0xad, 0x84, 0x2e, 0xd4, 0x8a, 0xac, 0x06, 0x71, 0x5b, 0xc9, 0x69, 0x14, 0xb2, 0xb3, 0x35, 0x84,
-	0xb5, 0x9b, 0xac, 0xb9, 0x5b, 0x31, 0x3e, 0x1c, 0x76, 0xd4, 0xa5, 0x14, 0x8a, 0x4f, 0x3c, 0x99,
-	0xf6, 0x63, 0x1e, 0x22, 0xbb, 0x57, 0xed, 0x62, 0x6e, 0x2c, 0x07, 0x0d, 0xf1, 0x9f, 0x14, 0x0d,
-	0x39, 0x67, 0x1b, 0xc6, 0x0c, 0xd1, 0x24, 0x4a, 0x1a, 0x64, 0xe7, 0x70, 0x94, 0xad, 0x2e, 0xcb,
-	0xb3, 0xe7, 0x85, 0xb3, 0xd1, 0xe3, 0x23, 0x68, 0x1e, 0x1c, 0x37, 0xc7, 0x4a, 0x2f, 0x78, 0xa3,
-	0x24, 0xd4, 0x7c, 0x82, 0x57, 0x07, 0x3e, 0x80, 0xfd, 0x95, 0xf4, 0x0c, 0x83, 0xf2, 0x24, 0xeb,
-	0x77, 0x9c, 0xa3, 0xd2, 0x71, 0x29, 0xff, 0x0e, 0x87, 0xcd, 0x80, 0xa2, 0x39, 0x27, 0x5c, 0x94,
-	0xe8, 0xca, 0xb1, 0xfb, 0x50, 0x6b, 0xab, 0x38, 0x8e, 0xe8, 0xfa, 0x28, 0x0f, 0x0e, 0xca, 0xae,
-	0x94, 0x7d, 0xab, 0x2e, 0xc6, 0xd5, 0xbe, 0xbd, 0x40, 0x63, 0x78, 0x88, 0xce, 0x49, 0x49, 0xac,
-	0xa8, 0xf7, 0x3e, 0xfd, 0xf7, 0x93, 0x5b, 0xec, 0x2f, 0x38, 0xed, 0x21, 0x55, 0x04, 0xdb, 0xbb,
-	0xeb, 0x92, 0x47, 0xf0, 0x79, 0x9b, 0xcb, 0x00, 0x45, 0x45, 0xbb, 0x09, 0x6c, 0xd9, 0x19, 0xbb,
-	0x32, 0xb2, 0x0d, 0x71, 0x6d, 0xac, 0x0f, 0x47, 0x43, 0x9c, 0xa3, 0xa6, 0x9b, 0x84, 0xfe, 0x08,
-	0x07, 0x3e, 0x71, 0x4d, 0x5e, 0x1c, 0x44, 0xd9, 0x81, 0xcd, 0x4e, 0xab, 0x40, 0xef, 0x45, 0xbb,
-	0x9f, 0xd9, 0x1d, 0xe6, 0x66, 0x77, 0xb5, 0x9b, 0xfd, 0x5e, 0xb4, 0xfa, 0x37, 0x38, 0xf0, 0xa3,
-	0x38, 0x15, 0x9c, 0xb0, 0x29, 0xb8, 0x8e, 0xd7, 0xb3, 0xa9, 0x88, 0xcb, 0x6c, 0xec, 0xb2, 0xf6,
-	0x12, 0xd4, 0x3c, 0xbb, 0x9f, 0x33, 0x5e, 0x9e, 0x48, 0x9a, 0x24, 0x1a, 0x8d, 0xe9, 0x66, 0xb7,
-	0x3e, 0x63, 0x6e, 0x7e, 0xfb, 0xbb, 0xf9, 0xd7, 0xb3, 0x48, 0x10, 0xea, 0xad, 0xc7, 0xc5, 0xcf,
-	0x50, 0x1f, 0xc9, 0xab, 0xbb, 0x3f, 0x87, 0xbd, 0x1e, 0x52, 0xf7, 0x0d, 0xbd, 0xe2, 0x22, 0x45,
-	0x76, 0xb7, 0x3a, 0x8b, 0x15, 0xa9, 0x9c, 0xc3, 0x6d, 0x77, 0xf1, 0x20, 0x72, 0x87, 0x48, 0xa9,
-	0x96, 0xb9, 0x6c, 0x58, 0x0f, 0xf6, 0xfc, 0xed, 0x24, 0xff, 0x5d, 0xd2, 0xb6, 0x94, 0x46, 0x50,
-	0xeb, 0x21, 0xf9, 0x91, 0x0c, 0x05, 0x96, 0xac, 0x65, 0xcc, 0xc2, 0xde, 0xc3, 0x82, 0x55, 0x6e,
-	0xcb, 0xaf, 0xdf, 0x33, 0xc2, 0x76, 0x6c, 0x94, 0x5d, 0xcd, 0x1f, 0xc0, 0xfa, 0x1f, 0xc4, 0xfa,
-	0xeb, 0xd8, 0x1f, 0xe0, 0xd0, 0x5e, 0x82, 0x9e, 0x4c, 0x77, 0x7f, 0x4b, 0x15, 0x97, 0xee, 0xee,
-	0xae, 0x7f, 0xc2, 0xe9, 0x32, 0xac, 0x8f, 0x3a, 0xe2, 0xe2, 0x8f, 0x34, 0x1e, 0xa3, 0x66, 0x5f,
-	0xad, 0x9c, 0x97, 0xab, 0x82, 0x27, 0xbd, 0xf3, 0x97, 0x03, 0x25, 0xb7, 0x22, 0x07, 0x70, 0xb2,
-	0xc8, 0xe6, 0x66, 0x88, 0x3f, 0xc1, 0x7e, 0xb1, 0x57, 0xed, 0xe4, 0x8e, 0x4b, 0xd0, 0xaa, 0x75,
-	0x9b, 0x77, 0x8b, 0xe0, 0xbe, 0xd2, 0xa1, 0xab, 0x12, 0x94, 0x81, 0xd2, 0x13, 0xd7, 0x3e, 0xa6,
-	0xd7, 0xfe, 0x25, 0xb4, 0x8e, 0x5f, 0xe5, 0xf6, 0xea, 0xf3, 0xf8, 0xef, 0xa7, 0x61, 0x44, 0xb3,
-	0x74, 0x9c, 0x6d, 0xb8, 0x46, 0x49, 0xb0, 0xcf, 0xf1, 0x07, 0xe5, 0xe3, 0xfc, 0x71, 0x23, 0x54,
-	0xeb, 0xff, 0x45, 0xc6, 0x9f, 0xe5, 0xea, 0xa3, 0xff, 0x03, 0x00, 0x00, 0xff, 0xff, 0x06, 0x1b,
-	0x18, 0x90, 0xb3, 0x0c, 0x00, 0x00,
+var file_voltha_protos_adapter_service_proto_goTypes = []any{
+	(*common.Connection)(nil),                 // 0: common.Connection
+	(*voltha.Device)(nil),                     // 1: device.Device
+	(*voltha.Port)(nil),                       // 2: device.Port
+	(*core_adapter.BulkFlows)(nil),            // 3: core_adapter.BulkFlows
+	(*core_adapter.IncrementalFlows)(nil),     // 4: core_adapter.IncrementalFlows
+	(*core_adapter.PacketOut)(nil),            // 5: core_adapter.PacketOut
+	(*core_adapter.PmConfigsInfo)(nil),        // 6: core_adapter.PmConfigsInfo
+	(*voltha.DeviceImageDownloadRequest)(nil), // 7: device.DeviceImageDownloadRequest
+	(*voltha.DeviceImageRequest)(nil),         // 8: device.DeviceImageRequest
+	(*common.ID)(nil),                         // 9: common.ID
+	(*core_adapter.ImageDownloadMessage)(nil), // 10: core_adapter.ImageDownloadMessage
+	(*core_adapter.OMCITest)(nil),             // 11: core_adapter.OMCITest
+	(*core_adapter.SimulateAlarmMessage)(nil), // 12: core_adapter.SimulateAlarmMessage
+	(*voltha.EventFilter)(nil),                // 13: event.EventFilter
+	(*core_adapter.GetExtValueMessage)(nil),   // 14: core_adapter.GetExtValueMessage
+	(*core_adapter.SetExtValueMessage)(nil),   // 15: core_adapter.SetExtValueMessage
+	(*extension.SingleGetValueRequest)(nil),   // 16: extension.SingleGetValueRequest
+	(*extension.SingleSetValueRequest)(nil),   // 17: extension.SingleSetValueRequest
+	(*voltha.OnuSerialNumberOnOLTPon)(nil),    // 18: device.OnuSerialNumberOnOLTPon
+	(*voltha.UpdateDevice)(nil),               // 19: device.UpdateDevice
+	(*health.HealthStatus)(nil),               // 20: health.HealthStatus
+	(*emptypb.Empty)(nil),                     // 21: google.protobuf.Empty
+	(*core_adapter.SwitchCapability)(nil),     // 22: core_adapter.SwitchCapability
+	(*voltha.DeviceImageResponse)(nil),        // 23: device.DeviceImageResponse
+	(*voltha.OnuImages)(nil),                  // 24: device.OnuImages
+	(*voltha.ImageDownload)(nil),              // 25: device.ImageDownload
+	(*omci.TestResponse)(nil),                 // 26: omci.TestResponse
+	(*common.OperationResp)(nil),              // 27: common.OperationResp
+	(*extension.ReturnValues)(nil),            // 28: extension.ReturnValues
+	(*extension.SingleGetValueResponse)(nil),  // 29: extension.SingleGetValueResponse
+	(*extension.SingleSetValueResponse)(nil),  // 30: extension.SingleSetValueResponse
 }
-
-// Reference imports to suppress errors if they are not otherwise used.
-var _ context.Context
-var _ grpc.ClientConn
-
-// This is a compile-time assertion to ensure that this generated file
-// is compatible with the grpc package it is being compiled against.
-const _ = grpc.SupportPackageIsVersion4
-
-// AdapterServiceClient is the client API for AdapterService service.
-//
-// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
-type AdapterServiceClient interface {
-	// GetHealthStatus is used by an AdapterService client to verify connectivity
-	// to the gRPC server hosting the AdapterService service
-	GetHealthStatus(ctx context.Context, opts ...grpc.CallOption) (AdapterService_GetHealthStatusClient, error)
-	// Device
-	AdoptDevice(ctx context.Context, in *voltha.Device, opts ...grpc.CallOption) (*empty.Empty, error)
-	ReconcileDevice(ctx context.Context, in *voltha.Device, opts ...grpc.CallOption) (*empty.Empty, error)
-	DeleteDevice(ctx context.Context, in *voltha.Device, opts ...grpc.CallOption) (*empty.Empty, error)
-	DisableDevice(ctx context.Context, in *voltha.Device, opts ...grpc.CallOption) (*empty.Empty, error)
-	ReEnableDevice(ctx context.Context, in *voltha.Device, opts ...grpc.CallOption) (*empty.Empty, error)
-	RebootDevice(ctx context.Context, in *voltha.Device, opts ...grpc.CallOption) (*empty.Empty, error)
-	SelfTestDevice(ctx context.Context, in *voltha.Device, opts ...grpc.CallOption) (*empty.Empty, error)
-	GetOfpDeviceInfo(ctx context.Context, in *voltha.Device, opts ...grpc.CallOption) (*core_adapter.SwitchCapability, error)
-	ChildDeviceLost(ctx context.Context, in *voltha.Device, opts ...grpc.CallOption) (*empty.Empty, error)
-	// Ports
-	EnablePort(ctx context.Context, in *voltha.Port, opts ...grpc.CallOption) (*empty.Empty, error)
-	DisablePort(ctx context.Context, in *voltha.Port, opts ...grpc.CallOption) (*empty.Empty, error)
-	// Flows
-	UpdateFlowsBulk(ctx context.Context, in *core_adapter.BulkFlows, opts ...grpc.CallOption) (*empty.Empty, error)
-	UpdateFlowsIncrementally(ctx context.Context, in *core_adapter.IncrementalFlows, opts ...grpc.CallOption) (*empty.Empty, error)
-	//Packets
-	SendPacketOut(ctx context.Context, in *core_adapter.PacketOut, opts ...grpc.CallOption) (*empty.Empty, error)
-	// PM
-	UpdatePmConfig(ctx context.Context, in *core_adapter.PmConfigsInfo, opts ...grpc.CallOption) (*empty.Empty, error)
-	// Image
-	DownloadOnuImage(ctx context.Context, in *voltha.DeviceImageDownloadRequest, opts ...grpc.CallOption) (*voltha.DeviceImageResponse, error)
-	GetOnuImageStatus(ctx context.Context, in *voltha.DeviceImageRequest, opts ...grpc.CallOption) (*voltha.DeviceImageResponse, error)
-	AbortOnuImageUpgrade(ctx context.Context, in *voltha.DeviceImageRequest, opts ...grpc.CallOption) (*voltha.DeviceImageResponse, error)
-	GetOnuImages(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*voltha.OnuImages, error)
-	ActivateOnuImage(ctx context.Context, in *voltha.DeviceImageRequest, opts ...grpc.CallOption) (*voltha.DeviceImageResponse, error)
-	CommitOnuImage(ctx context.Context, in *voltha.DeviceImageRequest, opts ...grpc.CallOption) (*voltha.DeviceImageResponse, error)
-	// Deprecated Image APIs
-	DownloadImage(ctx context.Context, in *core_adapter.ImageDownloadMessage, opts ...grpc.CallOption) (*voltha.ImageDownload, error)
-	GetImageDownloadStatus(ctx context.Context, in *core_adapter.ImageDownloadMessage, opts ...grpc.CallOption) (*voltha.ImageDownload, error)
-	CancelImageDownload(ctx context.Context, in *core_adapter.ImageDownloadMessage, opts ...grpc.CallOption) (*voltha.ImageDownload, error)
-	ActivateImageUpdate(ctx context.Context, in *core_adapter.ImageDownloadMessage, opts ...grpc.CallOption) (*voltha.ImageDownload, error)
-	RevertImageUpdate(ctx context.Context, in *core_adapter.ImageDownloadMessage, opts ...grpc.CallOption) (*voltha.ImageDownload, error)
-	// Tests
-	StartOmciTest(ctx context.Context, in *core_adapter.OMCITest, opts ...grpc.CallOption) (*omci.TestResponse, error)
-	SimulateAlarm(ctx context.Context, in *core_adapter.SimulateAlarmMessage, opts ...grpc.CallOption) (*common.OperationResp, error)
-	// Events
-	SuppressEvent(ctx context.Context, in *voltha.EventFilter, opts ...grpc.CallOption) (*empty.Empty, error)
-	UnSuppressEvent(ctx context.Context, in *voltha.EventFilter, opts ...grpc.CallOption) (*empty.Empty, error)
-	// Get/Set
-	GetExtValue(ctx context.Context, in *core_adapter.GetExtValueMessage, opts ...grpc.CallOption) (*extension.ReturnValues, error)
-	SetExtValue(ctx context.Context, in *core_adapter.SetExtValueMessage, opts ...grpc.CallOption) (*empty.Empty, error)
-	GetSingleValue(ctx context.Context, in *extension.SingleGetValueRequest, opts ...grpc.CallOption) (*extension.SingleGetValueResponse, error)
-	SetSingleValue(ctx context.Context, in *extension.SingleSetValueRequest, opts ...grpc.CallOption) (*extension.SingleSetValueResponse, error)
-	DisableOnuDevice(ctx context.Context, in *voltha.Device, opts ...grpc.CallOption) (*empty.Empty, error)
-	EnableOnuDevice(ctx context.Context, in *voltha.Device, opts ...grpc.CallOption) (*empty.Empty, error)
-	DisableOnuSerialNumber(ctx context.Context, in *voltha.OnuSerialNumberOnOLTPon, opts ...grpc.CallOption) (*empty.Empty, error)
-	EnableOnuSerialNumber(ctx context.Context, in *voltha.OnuSerialNumberOnOLTPon, opts ...grpc.CallOption) (*empty.Empty, error)
-	UpdateDevice(ctx context.Context, in *voltha.UpdateDevice, opts ...grpc.CallOption) (*empty.Empty, error)
-}
-
-type adapterServiceClient struct {
-	cc *grpc.ClientConn
-}
-
-func NewAdapterServiceClient(cc *grpc.ClientConn) AdapterServiceClient {
-	return &adapterServiceClient{cc}
+var file_voltha_protos_adapter_service_proto_depIdxs = []int32{
+	0,  // 0: adapter_service.AdapterService.GetHealthStatus:input_type -> common.Connection
+	1,  // 1: adapter_service.AdapterService.AdoptDevice:input_type -> device.Device
+	1,  // 2: adapter_service.AdapterService.ReconcileDevice:input_type -> device.Device
+	1,  // 3: adapter_service.AdapterService.DeleteDevice:input_type -> device.Device
+	1,  // 4: adapter_service.AdapterService.DisableDevice:input_type -> device.Device
+	1,  // 5: adapter_service.AdapterService.ReEnableDevice:input_type -> device.Device
+	1,  // 6: adapter_service.AdapterService.RebootDevice:input_type -> device.Device
+	1,  // 7: adapter_service.AdapterService.SelfTestDevice:input_type -> device.Device
+	1,  // 8: adapter_service.AdapterService.GetOfpDeviceInfo:input_type -> device.Device
+	1,  // 9: adapter_service.AdapterService.ChildDeviceLost:input_type -> device.Device
+	2,  // 10: adapter_service.AdapterService.EnablePort:input_type -> device.Port
+	2,  // 11: adapter_service.AdapterService.DisablePort:input_type -> device.Port
+	3,  // 12: adapter_service.AdapterService.UpdateFlowsBulk:input_type -> core_adapter.BulkFlows
+	4,  // 13: adapter_service.AdapterService.UpdateFlowsIncrementally:input_type -> core_adapter.IncrementalFlows
+	5,  // 14: adapter_service.AdapterService.SendPacketOut:input_type -> core_adapter.PacketOut
+	6,  // 15: adapter_service.AdapterService.UpdatePmConfig:input_type -> core_adapter.PmConfigsInfo
+	7,  // 16: adapter_service.AdapterService.DownloadOnuImage:input_type -> device.DeviceImageDownloadRequest
+	8,  // 17: adapter_service.AdapterService.GetOnuImageStatus:input_type -> device.DeviceImageRequest
+	8,  // 18: adapter_service.AdapterService.AbortOnuImageUpgrade:input_type -> device.DeviceImageRequest
+	9,  // 19: adapter_service.AdapterService.GetOnuImages:input_type -> common.ID
+	8,  // 20: adapter_service.AdapterService.ActivateOnuImage:input_type -> device.DeviceImageRequest
+	8,  // 21: adapter_service.AdapterService.CommitOnuImage:input_type -> device.DeviceImageRequest
+	10, // 22: adapter_service.AdapterService.DownloadImage:input_type -> core_adapter.ImageDownloadMessage
+	10, // 23: adapter_service.AdapterService.GetImageDownloadStatus:input_type -> core_adapter.ImageDownloadMessage
+	10, // 24: adapter_service.AdapterService.CancelImageDownload:input_type -> core_adapter.ImageDownloadMessage
+	10, // 25: adapter_service.AdapterService.ActivateImageUpdate:input_type -> core_adapter.ImageDownloadMessage
+	10, // 26: adapter_service.AdapterService.RevertImageUpdate:input_type -> core_adapter.ImageDownloadMessage
+	11, // 27: adapter_service.AdapterService.StartOmciTest:input_type -> core_adapter.OMCITest
+	12, // 28: adapter_service.AdapterService.SimulateAlarm:input_type -> core_adapter.SimulateAlarmMessage
+	13, // 29: adapter_service.AdapterService.SuppressEvent:input_type -> event.EventFilter
+	13, // 30: adapter_service.AdapterService.UnSuppressEvent:input_type -> event.EventFilter
+	14, // 31: adapter_service.AdapterService.GetExtValue:input_type -> core_adapter.GetExtValueMessage
+	15, // 32: adapter_service.AdapterService.SetExtValue:input_type -> core_adapter.SetExtValueMessage
+	16, // 33: adapter_service.AdapterService.GetSingleValue:input_type -> extension.SingleGetValueRequest
+	17, // 34: adapter_service.AdapterService.SetSingleValue:input_type -> extension.SingleSetValueRequest
+	1,  // 35: adapter_service.AdapterService.DisableOnuDevice:input_type -> device.Device
+	1,  // 36: adapter_service.AdapterService.EnableOnuDevice:input_type -> device.Device
+	18, // 37: adapter_service.AdapterService.DisableOnuSerialNumber:input_type -> device.OnuSerialNumberOnOLTPon
+	18, // 38: adapter_service.AdapterService.EnableOnuSerialNumber:input_type -> device.OnuSerialNumberOnOLTPon
+	19, // 39: adapter_service.AdapterService.UpdateDevice:input_type -> device.UpdateDevice
+	20, // 40: adapter_service.AdapterService.GetHealthStatus:output_type -> health.HealthStatus
+	21, // 41: adapter_service.AdapterService.AdoptDevice:output_type -> google.protobuf.Empty
+	21, // 42: adapter_service.AdapterService.ReconcileDevice:output_type -> google.protobuf.Empty
+	21, // 43: adapter_service.AdapterService.DeleteDevice:output_type -> google.protobuf.Empty
+	21, // 44: adapter_service.AdapterService.DisableDevice:output_type -> google.protobuf.Empty
+	21, // 45: adapter_service.AdapterService.ReEnableDevice:output_type -> google.protobuf.Empty
+	21, // 46: adapter_service.AdapterService.RebootDevice:output_type -> google.protobuf.Empty
+	21, // 47: adapter_service.AdapterService.SelfTestDevice:output_type -> google.protobuf.Empty
+	22, // 48: adapter_service.AdapterService.GetOfpDeviceInfo:output_type -> core_adapter.SwitchCapability
+	21, // 49: adapter_service.AdapterService.ChildDeviceLost:output_type -> google.protobuf.Empty
+	21, // 50: adapter_service.AdapterService.EnablePort:output_type -> google.protobuf.Empty
+	21, // 51: adapter_service.AdapterService.DisablePort:output_type -> google.protobuf.Empty
+	21, // 52: adapter_service.AdapterService.UpdateFlowsBulk:output_type -> google.protobuf.Empty
+	21, // 53: adapter_service.AdapterService.UpdateFlowsIncrementally:output_type -> google.protobuf.Empty
+	21, // 54: adapter_service.AdapterService.SendPacketOut:output_type -> google.protobuf.Empty
+	21, // 55: adapter_service.AdapterService.UpdatePmConfig:output_type -> google.protobuf.Empty
+	23, // 56: adapter_service.AdapterService.DownloadOnuImage:output_type -> device.DeviceImageResponse
+	23, // 57: adapter_service.AdapterService.GetOnuImageStatus:output_type -> device.DeviceImageResponse
+	23, // 58: adapter_service.AdapterService.AbortOnuImageUpgrade:output_type -> device.DeviceImageResponse
+	24, // 59: adapter_service.AdapterService.GetOnuImages:output_type -> device.OnuImages
+	23, // 60: adapter_service.AdapterService.ActivateOnuImage:output_type -> device.DeviceImageResponse
+	23, // 61: adapter_service.AdapterService.CommitOnuImage:output_type -> device.DeviceImageResponse
+	25, // 62: adapter_service.AdapterService.DownloadImage:output_type -> device.ImageDownload
+	25, // 63: adapter_service.AdapterService.GetImageDownloadStatus:output_type -> device.ImageDownload
+	25, // 64: adapter_service.AdapterService.CancelImageDownload:output_type -> device.ImageDownload
+	25, // 65: adapter_service.AdapterService.ActivateImageUpdate:output_type -> device.ImageDownload
+	25, // 66: adapter_service.AdapterService.RevertImageUpdate:output_type -> device.ImageDownload
+	26, // 67: adapter_service.AdapterService.StartOmciTest:output_type -> omci.TestResponse
+	27, // 68: adapter_service.AdapterService.SimulateAlarm:output_type -> common.OperationResp
+	21, // 69: adapter_service.AdapterService.SuppressEvent:output_type -> google.protobuf.Empty
+	21, // 70: adapter_service.AdapterService.UnSuppressEvent:output_type -> google.protobuf.Empty
+	28, // 71: adapter_service.AdapterService.GetExtValue:output_type -> extension.ReturnValues
+	21, // 72: adapter_service.AdapterService.SetExtValue:output_type -> google.protobuf.Empty
+	29, // 73: adapter_service.AdapterService.GetSingleValue:output_type -> extension.SingleGetValueResponse
+	30, // 74: adapter_service.AdapterService.SetSingleValue:output_type -> extension.SingleSetValueResponse
+	21, // 75: adapter_service.AdapterService.DisableOnuDevice:output_type -> google.protobuf.Empty
+	21, // 76: adapter_service.AdapterService.EnableOnuDevice:output_type -> google.protobuf.Empty
+	21, // 77: adapter_service.AdapterService.DisableOnuSerialNumber:output_type -> google.protobuf.Empty
+	21, // 78: adapter_service.AdapterService.EnableOnuSerialNumber:output_type -> google.protobuf.Empty
+	21, // 79: adapter_service.AdapterService.UpdateDevice:output_type -> google.protobuf.Empty
+	40, // [40:80] is the sub-list for method output_type
+	0,  // [0:40] is the sub-list for method input_type
+	0,  // [0:0] is the sub-list for extension type_name
+	0,  // [0:0] is the sub-list for extension extendee
+	0,  // [0:0] is the sub-list for field type_name
 }
 
-func (c *adapterServiceClient) GetHealthStatus(ctx context.Context, opts ...grpc.CallOption) (AdapterService_GetHealthStatusClient, error) {
-	stream, err := c.cc.NewStream(ctx, &_AdapterService_serviceDesc.Streams[0], "/adapter_service.AdapterService/GetHealthStatus", opts...)
-	if err != nil {
-		return nil, err
+func init() { file_voltha_protos_adapter_service_proto_init() }
+func file_voltha_protos_adapter_service_proto_init() {
+	if File_voltha_protos_adapter_service_proto != nil {
+		return
 	}
-	x := &adapterServiceGetHealthStatusClient{stream}
-	return x, nil
-}
-
-type AdapterService_GetHealthStatusClient interface {
-	Send(*common.Connection) error
-	Recv() (*health.HealthStatus, error)
-	grpc.ClientStream
-}
-
-type adapterServiceGetHealthStatusClient struct {
-	grpc.ClientStream
-}
-
-func (x *adapterServiceGetHealthStatusClient) Send(m *common.Connection) error {
-	return x.ClientStream.SendMsg(m)
-}
-
-func (x *adapterServiceGetHealthStatusClient) Recv() (*health.HealthStatus, error) {
-	m := new(health.HealthStatus)
-	if err := x.ClientStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
-
-func (c *adapterServiceClient) AdoptDevice(ctx context.Context, in *voltha.Device, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/adapter_service.AdapterService/AdoptDevice", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *adapterServiceClient) ReconcileDevice(ctx context.Context, in *voltha.Device, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/adapter_service.AdapterService/ReconcileDevice", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *adapterServiceClient) DeleteDevice(ctx context.Context, in *voltha.Device, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/adapter_service.AdapterService/DeleteDevice", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *adapterServiceClient) DisableDevice(ctx context.Context, in *voltha.Device, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/adapter_service.AdapterService/DisableDevice", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *adapterServiceClient) ReEnableDevice(ctx context.Context, in *voltha.Device, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/adapter_service.AdapterService/ReEnableDevice", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *adapterServiceClient) RebootDevice(ctx context.Context, in *voltha.Device, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/adapter_service.AdapterService/RebootDevice", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *adapterServiceClient) SelfTestDevice(ctx context.Context, in *voltha.Device, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/adapter_service.AdapterService/SelfTestDevice", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *adapterServiceClient) GetOfpDeviceInfo(ctx context.Context, in *voltha.Device, opts ...grpc.CallOption) (*core_adapter.SwitchCapability, error) {
-	out := new(core_adapter.SwitchCapability)
-	err := c.cc.Invoke(ctx, "/adapter_service.AdapterService/GetOfpDeviceInfo", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *adapterServiceClient) ChildDeviceLost(ctx context.Context, in *voltha.Device, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/adapter_service.AdapterService/ChildDeviceLost", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *adapterServiceClient) EnablePort(ctx context.Context, in *voltha.Port, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/adapter_service.AdapterService/EnablePort", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *adapterServiceClient) DisablePort(ctx context.Context, in *voltha.Port, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/adapter_service.AdapterService/DisablePort", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *adapterServiceClient) UpdateFlowsBulk(ctx context.Context, in *core_adapter.BulkFlows, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/adapter_service.AdapterService/UpdateFlowsBulk", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *adapterServiceClient) UpdateFlowsIncrementally(ctx context.Context, in *core_adapter.IncrementalFlows, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/adapter_service.AdapterService/UpdateFlowsIncrementally", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *adapterServiceClient) SendPacketOut(ctx context.Context, in *core_adapter.PacketOut, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/adapter_service.AdapterService/SendPacketOut", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *adapterServiceClient) UpdatePmConfig(ctx context.Context, in *core_adapter.PmConfigsInfo, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/adapter_service.AdapterService/UpdatePmConfig", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *adapterServiceClient) DownloadOnuImage(ctx context.Context, in *voltha.DeviceImageDownloadRequest, opts ...grpc.CallOption) (*voltha.DeviceImageResponse, error) {
-	out := new(voltha.DeviceImageResponse)
-	err := c.cc.Invoke(ctx, "/adapter_service.AdapterService/DownloadOnuImage", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *adapterServiceClient) GetOnuImageStatus(ctx context.Context, in *voltha.DeviceImageRequest, opts ...grpc.CallOption) (*voltha.DeviceImageResponse, error) {
-	out := new(voltha.DeviceImageResponse)
-	err := c.cc.Invoke(ctx, "/adapter_service.AdapterService/GetOnuImageStatus", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *adapterServiceClient) AbortOnuImageUpgrade(ctx context.Context, in *voltha.DeviceImageRequest, opts ...grpc.CallOption) (*voltha.DeviceImageResponse, error) {
-	out := new(voltha.DeviceImageResponse)
-	err := c.cc.Invoke(ctx, "/adapter_service.AdapterService/AbortOnuImageUpgrade", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *adapterServiceClient) GetOnuImages(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*voltha.OnuImages, error) {
-	out := new(voltha.OnuImages)
-	err := c.cc.Invoke(ctx, "/adapter_service.AdapterService/GetOnuImages", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *adapterServiceClient) ActivateOnuImage(ctx context.Context, in *voltha.DeviceImageRequest, opts ...grpc.CallOption) (*voltha.DeviceImageResponse, error) {
-	out := new(voltha.DeviceImageResponse)
-	err := c.cc.Invoke(ctx, "/adapter_service.AdapterService/ActivateOnuImage", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *adapterServiceClient) CommitOnuImage(ctx context.Context, in *voltha.DeviceImageRequest, opts ...grpc.CallOption) (*voltha.DeviceImageResponse, error) {
-	out := new(voltha.DeviceImageResponse)
-	err := c.cc.Invoke(ctx, "/adapter_service.AdapterService/CommitOnuImage", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-// Deprecated: Do not use.
-func (c *adapterServiceClient) DownloadImage(ctx context.Context, in *core_adapter.ImageDownloadMessage, opts ...grpc.CallOption) (*voltha.ImageDownload, error) {
-	out := new(voltha.ImageDownload)
-	err := c.cc.Invoke(ctx, "/adapter_service.AdapterService/DownloadImage", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-// Deprecated: Do not use.
-func (c *adapterServiceClient) GetImageDownloadStatus(ctx context.Context, in *core_adapter.ImageDownloadMessage, opts ...grpc.CallOption) (*voltha.ImageDownload, error) {
-	out := new(voltha.ImageDownload)
-	err := c.cc.Invoke(ctx, "/adapter_service.AdapterService/GetImageDownloadStatus", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-// Deprecated: Do not use.
-func (c *adapterServiceClient) CancelImageDownload(ctx context.Context, in *core_adapter.ImageDownloadMessage, opts ...grpc.CallOption) (*voltha.ImageDownload, error) {
-	out := new(voltha.ImageDownload)
-	err := c.cc.Invoke(ctx, "/adapter_service.AdapterService/CancelImageDownload", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-// Deprecated: Do not use.
-func (c *adapterServiceClient) ActivateImageUpdate(ctx context.Context, in *core_adapter.ImageDownloadMessage, opts ...grpc.CallOption) (*voltha.ImageDownload, error) {
-	out := new(voltha.ImageDownload)
-	err := c.cc.Invoke(ctx, "/adapter_service.AdapterService/ActivateImageUpdate", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-// Deprecated: Do not use.
-func (c *adapterServiceClient) RevertImageUpdate(ctx context.Context, in *core_adapter.ImageDownloadMessage, opts ...grpc.CallOption) (*voltha.ImageDownload, error) {
-	out := new(voltha.ImageDownload)
-	err := c.cc.Invoke(ctx, "/adapter_service.AdapterService/RevertImageUpdate", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *adapterServiceClient) StartOmciTest(ctx context.Context, in *core_adapter.OMCITest, opts ...grpc.CallOption) (*omci.TestResponse, error) {
-	out := new(omci.TestResponse)
-	err := c.cc.Invoke(ctx, "/adapter_service.AdapterService/StartOmciTest", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *adapterServiceClient) SimulateAlarm(ctx context.Context, in *core_adapter.SimulateAlarmMessage, opts ...grpc.CallOption) (*common.OperationResp, error) {
-	out := new(common.OperationResp)
-	err := c.cc.Invoke(ctx, "/adapter_service.AdapterService/SimulateAlarm", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *adapterServiceClient) SuppressEvent(ctx context.Context, in *voltha.EventFilter, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/adapter_service.AdapterService/SuppressEvent", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *adapterServiceClient) UnSuppressEvent(ctx context.Context, in *voltha.EventFilter, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/adapter_service.AdapterService/UnSuppressEvent", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *adapterServiceClient) GetExtValue(ctx context.Context, in *core_adapter.GetExtValueMessage, opts ...grpc.CallOption) (*extension.ReturnValues, error) {
-	out := new(extension.ReturnValues)
-	err := c.cc.Invoke(ctx, "/adapter_service.AdapterService/GetExtValue", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *adapterServiceClient) SetExtValue(ctx context.Context, in *core_adapter.SetExtValueMessage, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/adapter_service.AdapterService/SetExtValue", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *adapterServiceClient) GetSingleValue(ctx context.Context, in *extension.SingleGetValueRequest, opts ...grpc.CallOption) (*extension.SingleGetValueResponse, error) {
-	out := new(extension.SingleGetValueResponse)
-	err := c.cc.Invoke(ctx, "/adapter_service.AdapterService/GetSingleValue", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *adapterServiceClient) SetSingleValue(ctx context.Context, in *extension.SingleSetValueRequest, opts ...grpc.CallOption) (*extension.SingleSetValueResponse, error) {
-	out := new(extension.SingleSetValueResponse)
-	err := c.cc.Invoke(ctx, "/adapter_service.AdapterService/SetSingleValue", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *adapterServiceClient) DisableOnuDevice(ctx context.Context, in *voltha.Device, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/adapter_service.AdapterService/DisableOnuDevice", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *adapterServiceClient) EnableOnuDevice(ctx context.Context, in *voltha.Device, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/adapter_service.AdapterService/EnableOnuDevice", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *adapterServiceClient) DisableOnuSerialNumber(ctx context.Context, in *voltha.OnuSerialNumberOnOLTPon, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/adapter_service.AdapterService/DisableOnuSerialNumber", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *adapterServiceClient) EnableOnuSerialNumber(ctx context.Context, in *voltha.OnuSerialNumberOnOLTPon, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/adapter_service.AdapterService/EnableOnuSerialNumber", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *adapterServiceClient) UpdateDevice(ctx context.Context, in *voltha.UpdateDevice, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/adapter_service.AdapterService/UpdateDevice", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-// AdapterServiceServer is the server API for AdapterService service.
-type AdapterServiceServer interface {
-	// GetHealthStatus is used by an AdapterService client to verify connectivity
-	// to the gRPC server hosting the AdapterService service
-	GetHealthStatus(AdapterService_GetHealthStatusServer) error
-	// Device
-	AdoptDevice(context.Context, *voltha.Device) (*empty.Empty, error)
-	ReconcileDevice(context.Context, *voltha.Device) (*empty.Empty, error)
-	DeleteDevice(context.Context, *voltha.Device) (*empty.Empty, error)
-	DisableDevice(context.Context, *voltha.Device) (*empty.Empty, error)
-	ReEnableDevice(context.Context, *voltha.Device) (*empty.Empty, error)
-	RebootDevice(context.Context, *voltha.Device) (*empty.Empty, error)
-	SelfTestDevice(context.Context, *voltha.Device) (*empty.Empty, error)
-	GetOfpDeviceInfo(context.Context, *voltha.Device) (*core_adapter.SwitchCapability, error)
-	ChildDeviceLost(context.Context, *voltha.Device) (*empty.Empty, error)
-	// Ports
-	EnablePort(context.Context, *voltha.Port) (*empty.Empty, error)
-	DisablePort(context.Context, *voltha.Port) (*empty.Empty, error)
-	// Flows
-	UpdateFlowsBulk(context.Context, *core_adapter.BulkFlows) (*empty.Empty, error)
-	UpdateFlowsIncrementally(context.Context, *core_adapter.IncrementalFlows) (*empty.Empty, error)
-	//Packets
-	SendPacketOut(context.Context, *core_adapter.PacketOut) (*empty.Empty, error)
-	// PM
-	UpdatePmConfig(context.Context, *core_adapter.PmConfigsInfo) (*empty.Empty, error)
-	// Image
-	DownloadOnuImage(context.Context, *voltha.DeviceImageDownloadRequest) (*voltha.DeviceImageResponse, error)
-	GetOnuImageStatus(context.Context, *voltha.DeviceImageRequest) (*voltha.DeviceImageResponse, error)
-	AbortOnuImageUpgrade(context.Context, *voltha.DeviceImageRequest) (*voltha.DeviceImageResponse, error)
-	GetOnuImages(context.Context, *common.ID) (*voltha.OnuImages, error)
-	ActivateOnuImage(context.Context, *voltha.DeviceImageRequest) (*voltha.DeviceImageResponse, error)
-	CommitOnuImage(context.Context, *voltha.DeviceImageRequest) (*voltha.DeviceImageResponse, error)
-	// Deprecated Image APIs
-	DownloadImage(context.Context, *core_adapter.ImageDownloadMessage) (*voltha.ImageDownload, error)
-	GetImageDownloadStatus(context.Context, *core_adapter.ImageDownloadMessage) (*voltha.ImageDownload, error)
-	CancelImageDownload(context.Context, *core_adapter.ImageDownloadMessage) (*voltha.ImageDownload, error)
-	ActivateImageUpdate(context.Context, *core_adapter.ImageDownloadMessage) (*voltha.ImageDownload, error)
-	RevertImageUpdate(context.Context, *core_adapter.ImageDownloadMessage) (*voltha.ImageDownload, error)
-	// Tests
-	StartOmciTest(context.Context, *core_adapter.OMCITest) (*omci.TestResponse, error)
-	SimulateAlarm(context.Context, *core_adapter.SimulateAlarmMessage) (*common.OperationResp, error)
-	// Events
-	SuppressEvent(context.Context, *voltha.EventFilter) (*empty.Empty, error)
-	UnSuppressEvent(context.Context, *voltha.EventFilter) (*empty.Empty, error)
-	// Get/Set
-	GetExtValue(context.Context, *core_adapter.GetExtValueMessage) (*extension.ReturnValues, error)
-	SetExtValue(context.Context, *core_adapter.SetExtValueMessage) (*empty.Empty, error)
-	GetSingleValue(context.Context, *extension.SingleGetValueRequest) (*extension.SingleGetValueResponse, error)
-	SetSingleValue(context.Context, *extension.SingleSetValueRequest) (*extension.SingleSetValueResponse, error)
-	DisableOnuDevice(context.Context, *voltha.Device) (*empty.Empty, error)
-	EnableOnuDevice(context.Context, *voltha.Device) (*empty.Empty, error)
-	DisableOnuSerialNumber(context.Context, *voltha.OnuSerialNumberOnOLTPon) (*empty.Empty, error)
-	EnableOnuSerialNumber(context.Context, *voltha.OnuSerialNumberOnOLTPon) (*empty.Empty, error)
-	UpdateDevice(context.Context, *voltha.UpdateDevice) (*empty.Empty, error)
-}
-
-// UnimplementedAdapterServiceServer can be embedded to have forward compatible implementations.
-type UnimplementedAdapterServiceServer struct {
-}
-
-func (*UnimplementedAdapterServiceServer) GetHealthStatus(srv AdapterService_GetHealthStatusServer) error {
-	return status.Errorf(codes.Unimplemented, "method GetHealthStatus not implemented")
-}
-func (*UnimplementedAdapterServiceServer) AdoptDevice(ctx context.Context, req *voltha.Device) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method AdoptDevice not implemented")
-}
-func (*UnimplementedAdapterServiceServer) ReconcileDevice(ctx context.Context, req *voltha.Device) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method ReconcileDevice not implemented")
-}
-func (*UnimplementedAdapterServiceServer) DeleteDevice(ctx context.Context, req *voltha.Device) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method DeleteDevice not implemented")
-}
-func (*UnimplementedAdapterServiceServer) DisableDevice(ctx context.Context, req *voltha.Device) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method DisableDevice not implemented")
-}
-func (*UnimplementedAdapterServiceServer) ReEnableDevice(ctx context.Context, req *voltha.Device) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method ReEnableDevice not implemented")
-}
-func (*UnimplementedAdapterServiceServer) RebootDevice(ctx context.Context, req *voltha.Device) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method RebootDevice not implemented")
-}
-func (*UnimplementedAdapterServiceServer) SelfTestDevice(ctx context.Context, req *voltha.Device) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method SelfTestDevice not implemented")
-}
-func (*UnimplementedAdapterServiceServer) GetOfpDeviceInfo(ctx context.Context, req *voltha.Device) (*core_adapter.SwitchCapability, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetOfpDeviceInfo not implemented")
-}
-func (*UnimplementedAdapterServiceServer) ChildDeviceLost(ctx context.Context, req *voltha.Device) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method ChildDeviceLost not implemented")
-}
-func (*UnimplementedAdapterServiceServer) EnablePort(ctx context.Context, req *voltha.Port) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method EnablePort not implemented")
-}
-func (*UnimplementedAdapterServiceServer) DisablePort(ctx context.Context, req *voltha.Port) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method DisablePort not implemented")
-}
-func (*UnimplementedAdapterServiceServer) UpdateFlowsBulk(ctx context.Context, req *core_adapter.BulkFlows) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method UpdateFlowsBulk not implemented")
-}
-func (*UnimplementedAdapterServiceServer) UpdateFlowsIncrementally(ctx context.Context, req *core_adapter.IncrementalFlows) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method UpdateFlowsIncrementally not implemented")
-}
-func (*UnimplementedAdapterServiceServer) SendPacketOut(ctx context.Context, req *core_adapter.PacketOut) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method SendPacketOut not implemented")
-}
-func (*UnimplementedAdapterServiceServer) UpdatePmConfig(ctx context.Context, req *core_adapter.PmConfigsInfo) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method UpdatePmConfig not implemented")
-}
-func (*UnimplementedAdapterServiceServer) DownloadOnuImage(ctx context.Context, req *voltha.DeviceImageDownloadRequest) (*voltha.DeviceImageResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method DownloadOnuImage not implemented")
-}
-func (*UnimplementedAdapterServiceServer) GetOnuImageStatus(ctx context.Context, req *voltha.DeviceImageRequest) (*voltha.DeviceImageResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetOnuImageStatus not implemented")
-}
-func (*UnimplementedAdapterServiceServer) AbortOnuImageUpgrade(ctx context.Context, req *voltha.DeviceImageRequest) (*voltha.DeviceImageResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method AbortOnuImageUpgrade not implemented")
-}
-func (*UnimplementedAdapterServiceServer) GetOnuImages(ctx context.Context, req *common.ID) (*voltha.OnuImages, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetOnuImages not implemented")
-}
-func (*UnimplementedAdapterServiceServer) ActivateOnuImage(ctx context.Context, req *voltha.DeviceImageRequest) (*voltha.DeviceImageResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method ActivateOnuImage not implemented")
-}
-func (*UnimplementedAdapterServiceServer) CommitOnuImage(ctx context.Context, req *voltha.DeviceImageRequest) (*voltha.DeviceImageResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method CommitOnuImage not implemented")
-}
-func (*UnimplementedAdapterServiceServer) DownloadImage(ctx context.Context, req *core_adapter.ImageDownloadMessage) (*voltha.ImageDownload, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method DownloadImage not implemented")
-}
-func (*UnimplementedAdapterServiceServer) GetImageDownloadStatus(ctx context.Context, req *core_adapter.ImageDownloadMessage) (*voltha.ImageDownload, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetImageDownloadStatus not implemented")
-}
-func (*UnimplementedAdapterServiceServer) CancelImageDownload(ctx context.Context, req *core_adapter.ImageDownloadMessage) (*voltha.ImageDownload, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method CancelImageDownload not implemented")
-}
-func (*UnimplementedAdapterServiceServer) ActivateImageUpdate(ctx context.Context, req *core_adapter.ImageDownloadMessage) (*voltha.ImageDownload, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method ActivateImageUpdate not implemented")
-}
-func (*UnimplementedAdapterServiceServer) RevertImageUpdate(ctx context.Context, req *core_adapter.ImageDownloadMessage) (*voltha.ImageDownload, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method RevertImageUpdate not implemented")
-}
-func (*UnimplementedAdapterServiceServer) StartOmciTest(ctx context.Context, req *core_adapter.OMCITest) (*omci.TestResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method StartOmciTest not implemented")
-}
-func (*UnimplementedAdapterServiceServer) SimulateAlarm(ctx context.Context, req *core_adapter.SimulateAlarmMessage) (*common.OperationResp, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method SimulateAlarm not implemented")
-}
-func (*UnimplementedAdapterServiceServer) SuppressEvent(ctx context.Context, req *voltha.EventFilter) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method SuppressEvent not implemented")
-}
-func (*UnimplementedAdapterServiceServer) UnSuppressEvent(ctx context.Context, req *voltha.EventFilter) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method UnSuppressEvent not implemented")
-}
-func (*UnimplementedAdapterServiceServer) GetExtValue(ctx context.Context, req *core_adapter.GetExtValueMessage) (*extension.ReturnValues, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetExtValue not implemented")
-}
-func (*UnimplementedAdapterServiceServer) SetExtValue(ctx context.Context, req *core_adapter.SetExtValueMessage) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method SetExtValue not implemented")
-}
-func (*UnimplementedAdapterServiceServer) GetSingleValue(ctx context.Context, req *extension.SingleGetValueRequest) (*extension.SingleGetValueResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetSingleValue not implemented")
-}
-func (*UnimplementedAdapterServiceServer) SetSingleValue(ctx context.Context, req *extension.SingleSetValueRequest) (*extension.SingleSetValueResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method SetSingleValue not implemented")
-}
-func (*UnimplementedAdapterServiceServer) DisableOnuDevice(ctx context.Context, req *voltha.Device) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method DisableOnuDevice not implemented")
-}
-func (*UnimplementedAdapterServiceServer) EnableOnuDevice(ctx context.Context, req *voltha.Device) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method EnableOnuDevice not implemented")
-}
-func (*UnimplementedAdapterServiceServer) DisableOnuSerialNumber(ctx context.Context, req *voltha.OnuSerialNumberOnOLTPon) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method DisableOnuSerialNumber not implemented")
-}
-func (*UnimplementedAdapterServiceServer) EnableOnuSerialNumber(ctx context.Context, req *voltha.OnuSerialNumberOnOLTPon) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method EnableOnuSerialNumber not implemented")
-}
-func (*UnimplementedAdapterServiceServer) UpdateDevice(ctx context.Context, req *voltha.UpdateDevice) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method UpdateDevice not implemented")
-}
-
-func RegisterAdapterServiceServer(s *grpc.Server, srv AdapterServiceServer) {
-	s.RegisterService(&_AdapterService_serviceDesc, srv)
-}
-
-func _AdapterService_GetHealthStatus_Handler(srv interface{}, stream grpc.ServerStream) error {
-	return srv.(AdapterServiceServer).GetHealthStatus(&adapterServiceGetHealthStatusServer{stream})
-}
-
-type AdapterService_GetHealthStatusServer interface {
-	Send(*health.HealthStatus) error
-	Recv() (*common.Connection, error)
-	grpc.ServerStream
-}
-
-type adapterServiceGetHealthStatusServer struct {
-	grpc.ServerStream
-}
-
-func (x *adapterServiceGetHealthStatusServer) Send(m *health.HealthStatus) error {
-	return x.ServerStream.SendMsg(m)
-}
-
-func (x *adapterServiceGetHealthStatusServer) Recv() (*common.Connection, error) {
-	m := new(common.Connection)
-	if err := x.ServerStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
-
-func _AdapterService_AdoptDevice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(voltha.Device)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(AdapterServiceServer).AdoptDevice(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/adapter_service.AdapterService/AdoptDevice",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AdapterServiceServer).AdoptDevice(ctx, req.(*voltha.Device))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _AdapterService_ReconcileDevice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(voltha.Device)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(AdapterServiceServer).ReconcileDevice(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/adapter_service.AdapterService/ReconcileDevice",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AdapterServiceServer).ReconcileDevice(ctx, req.(*voltha.Device))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _AdapterService_DeleteDevice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(voltha.Device)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(AdapterServiceServer).DeleteDevice(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/adapter_service.AdapterService/DeleteDevice",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AdapterServiceServer).DeleteDevice(ctx, req.(*voltha.Device))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _AdapterService_DisableDevice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(voltha.Device)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(AdapterServiceServer).DisableDevice(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/adapter_service.AdapterService/DisableDevice",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AdapterServiceServer).DisableDevice(ctx, req.(*voltha.Device))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _AdapterService_ReEnableDevice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(voltha.Device)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(AdapterServiceServer).ReEnableDevice(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/adapter_service.AdapterService/ReEnableDevice",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AdapterServiceServer).ReEnableDevice(ctx, req.(*voltha.Device))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _AdapterService_RebootDevice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(voltha.Device)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(AdapterServiceServer).RebootDevice(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/adapter_service.AdapterService/RebootDevice",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AdapterServiceServer).RebootDevice(ctx, req.(*voltha.Device))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _AdapterService_SelfTestDevice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(voltha.Device)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(AdapterServiceServer).SelfTestDevice(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/adapter_service.AdapterService/SelfTestDevice",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AdapterServiceServer).SelfTestDevice(ctx, req.(*voltha.Device))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _AdapterService_GetOfpDeviceInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(voltha.Device)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(AdapterServiceServer).GetOfpDeviceInfo(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/adapter_service.AdapterService/GetOfpDeviceInfo",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AdapterServiceServer).GetOfpDeviceInfo(ctx, req.(*voltha.Device))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _AdapterService_ChildDeviceLost_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(voltha.Device)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(AdapterServiceServer).ChildDeviceLost(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/adapter_service.AdapterService/ChildDeviceLost",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AdapterServiceServer).ChildDeviceLost(ctx, req.(*voltha.Device))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _AdapterService_EnablePort_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(voltha.Port)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(AdapterServiceServer).EnablePort(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/adapter_service.AdapterService/EnablePort",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AdapterServiceServer).EnablePort(ctx, req.(*voltha.Port))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _AdapterService_DisablePort_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(voltha.Port)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(AdapterServiceServer).DisablePort(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/adapter_service.AdapterService/DisablePort",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AdapterServiceServer).DisablePort(ctx, req.(*voltha.Port))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _AdapterService_UpdateFlowsBulk_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(core_adapter.BulkFlows)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(AdapterServiceServer).UpdateFlowsBulk(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/adapter_service.AdapterService/UpdateFlowsBulk",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AdapterServiceServer).UpdateFlowsBulk(ctx, req.(*core_adapter.BulkFlows))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _AdapterService_UpdateFlowsIncrementally_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(core_adapter.IncrementalFlows)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(AdapterServiceServer).UpdateFlowsIncrementally(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/adapter_service.AdapterService/UpdateFlowsIncrementally",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AdapterServiceServer).UpdateFlowsIncrementally(ctx, req.(*core_adapter.IncrementalFlows))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _AdapterService_SendPacketOut_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(core_adapter.PacketOut)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(AdapterServiceServer).SendPacketOut(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/adapter_service.AdapterService/SendPacketOut",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AdapterServiceServer).SendPacketOut(ctx, req.(*core_adapter.PacketOut))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _AdapterService_UpdatePmConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(core_adapter.PmConfigsInfo)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(AdapterServiceServer).UpdatePmConfig(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/adapter_service.AdapterService/UpdatePmConfig",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AdapterServiceServer).UpdatePmConfig(ctx, req.(*core_adapter.PmConfigsInfo))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _AdapterService_DownloadOnuImage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(voltha.DeviceImageDownloadRequest)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(AdapterServiceServer).DownloadOnuImage(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/adapter_service.AdapterService/DownloadOnuImage",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AdapterServiceServer).DownloadOnuImage(ctx, req.(*voltha.DeviceImageDownloadRequest))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _AdapterService_GetOnuImageStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(voltha.DeviceImageRequest)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(AdapterServiceServer).GetOnuImageStatus(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/adapter_service.AdapterService/GetOnuImageStatus",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AdapterServiceServer).GetOnuImageStatus(ctx, req.(*voltha.DeviceImageRequest))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _AdapterService_AbortOnuImageUpgrade_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(voltha.DeviceImageRequest)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(AdapterServiceServer).AbortOnuImageUpgrade(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/adapter_service.AdapterService/AbortOnuImageUpgrade",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AdapterServiceServer).AbortOnuImageUpgrade(ctx, req.(*voltha.DeviceImageRequest))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _AdapterService_GetOnuImages_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.(AdapterServiceServer).GetOnuImages(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/adapter_service.AdapterService/GetOnuImages",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AdapterServiceServer).GetOnuImages(ctx, req.(*common.ID))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _AdapterService_ActivateOnuImage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(voltha.DeviceImageRequest)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(AdapterServiceServer).ActivateOnuImage(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/adapter_service.AdapterService/ActivateOnuImage",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AdapterServiceServer).ActivateOnuImage(ctx, req.(*voltha.DeviceImageRequest))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _AdapterService_CommitOnuImage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(voltha.DeviceImageRequest)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(AdapterServiceServer).CommitOnuImage(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/adapter_service.AdapterService/CommitOnuImage",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AdapterServiceServer).CommitOnuImage(ctx, req.(*voltha.DeviceImageRequest))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _AdapterService_DownloadImage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(core_adapter.ImageDownloadMessage)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(AdapterServiceServer).DownloadImage(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/adapter_service.AdapterService/DownloadImage",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AdapterServiceServer).DownloadImage(ctx, req.(*core_adapter.ImageDownloadMessage))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _AdapterService_GetImageDownloadStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(core_adapter.ImageDownloadMessage)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(AdapterServiceServer).GetImageDownloadStatus(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/adapter_service.AdapterService/GetImageDownloadStatus",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AdapterServiceServer).GetImageDownloadStatus(ctx, req.(*core_adapter.ImageDownloadMessage))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _AdapterService_CancelImageDownload_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(core_adapter.ImageDownloadMessage)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(AdapterServiceServer).CancelImageDownload(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/adapter_service.AdapterService/CancelImageDownload",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AdapterServiceServer).CancelImageDownload(ctx, req.(*core_adapter.ImageDownloadMessage))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _AdapterService_ActivateImageUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(core_adapter.ImageDownloadMessage)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(AdapterServiceServer).ActivateImageUpdate(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/adapter_service.AdapterService/ActivateImageUpdate",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AdapterServiceServer).ActivateImageUpdate(ctx, req.(*core_adapter.ImageDownloadMessage))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _AdapterService_RevertImageUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(core_adapter.ImageDownloadMessage)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(AdapterServiceServer).RevertImageUpdate(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/adapter_service.AdapterService/RevertImageUpdate",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AdapterServiceServer).RevertImageUpdate(ctx, req.(*core_adapter.ImageDownloadMessage))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _AdapterService_StartOmciTest_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(core_adapter.OMCITest)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(AdapterServiceServer).StartOmciTest(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/adapter_service.AdapterService/StartOmciTest",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AdapterServiceServer).StartOmciTest(ctx, req.(*core_adapter.OMCITest))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _AdapterService_SimulateAlarm_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(core_adapter.SimulateAlarmMessage)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(AdapterServiceServer).SimulateAlarm(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/adapter_service.AdapterService/SimulateAlarm",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AdapterServiceServer).SimulateAlarm(ctx, req.(*core_adapter.SimulateAlarmMessage))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _AdapterService_SuppressEvent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(voltha.EventFilter)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(AdapterServiceServer).SuppressEvent(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/adapter_service.AdapterService/SuppressEvent",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AdapterServiceServer).SuppressEvent(ctx, req.(*voltha.EventFilter))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _AdapterService_UnSuppressEvent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(voltha.EventFilter)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(AdapterServiceServer).UnSuppressEvent(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/adapter_service.AdapterService/UnSuppressEvent",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AdapterServiceServer).UnSuppressEvent(ctx, req.(*voltha.EventFilter))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _AdapterService_GetExtValue_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(core_adapter.GetExtValueMessage)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(AdapterServiceServer).GetExtValue(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/adapter_service.AdapterService/GetExtValue",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AdapterServiceServer).GetExtValue(ctx, req.(*core_adapter.GetExtValueMessage))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _AdapterService_SetExtValue_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(core_adapter.SetExtValueMessage)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(AdapterServiceServer).SetExtValue(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/adapter_service.AdapterService/SetExtValue",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AdapterServiceServer).SetExtValue(ctx, req.(*core_adapter.SetExtValueMessage))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _AdapterService_GetSingleValue_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(extension.SingleGetValueRequest)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(AdapterServiceServer).GetSingleValue(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/adapter_service.AdapterService/GetSingleValue",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AdapterServiceServer).GetSingleValue(ctx, req.(*extension.SingleGetValueRequest))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _AdapterService_SetSingleValue_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(extension.SingleSetValueRequest)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(AdapterServiceServer).SetSingleValue(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/adapter_service.AdapterService/SetSingleValue",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AdapterServiceServer).SetSingleValue(ctx, req.(*extension.SingleSetValueRequest))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _AdapterService_DisableOnuDevice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(voltha.Device)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(AdapterServiceServer).DisableOnuDevice(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/adapter_service.AdapterService/DisableOnuDevice",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AdapterServiceServer).DisableOnuDevice(ctx, req.(*voltha.Device))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _AdapterService_EnableOnuDevice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(voltha.Device)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(AdapterServiceServer).EnableOnuDevice(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/adapter_service.AdapterService/EnableOnuDevice",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AdapterServiceServer).EnableOnuDevice(ctx, req.(*voltha.Device))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _AdapterService_DisableOnuSerialNumber_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(voltha.OnuSerialNumberOnOLTPon)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(AdapterServiceServer).DisableOnuSerialNumber(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/adapter_service.AdapterService/DisableOnuSerialNumber",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AdapterServiceServer).DisableOnuSerialNumber(ctx, req.(*voltha.OnuSerialNumberOnOLTPon))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _AdapterService_EnableOnuSerialNumber_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(voltha.OnuSerialNumberOnOLTPon)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(AdapterServiceServer).EnableOnuSerialNumber(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/adapter_service.AdapterService/EnableOnuSerialNumber",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AdapterServiceServer).EnableOnuSerialNumber(ctx, req.(*voltha.OnuSerialNumberOnOLTPon))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _AdapterService_UpdateDevice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(voltha.UpdateDevice)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(AdapterServiceServer).UpdateDevice(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/adapter_service.AdapterService/UpdateDevice",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AdapterServiceServer).UpdateDevice(ctx, req.(*voltha.UpdateDevice))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-var _AdapterService_serviceDesc = grpc.ServiceDesc{
-	ServiceName: "adapter_service.AdapterService",
-	HandlerType: (*AdapterServiceServer)(nil),
-	Methods: []grpc.MethodDesc{
-		{
-			MethodName: "AdoptDevice",
-			Handler:    _AdapterService_AdoptDevice_Handler,
+	type x struct{}
+	out := protoimpl.TypeBuilder{
+		File: protoimpl.DescBuilder{
+			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+			RawDescriptor: unsafe.Slice(unsafe.StringData(file_voltha_protos_adapter_service_proto_rawDesc), len(file_voltha_protos_adapter_service_proto_rawDesc)),
+			NumEnums:      0,
+			NumMessages:   0,
+			NumExtensions: 0,
+			NumServices:   1,
 		},
-		{
-			MethodName: "ReconcileDevice",
-			Handler:    _AdapterService_ReconcileDevice_Handler,
-		},
-		{
-			MethodName: "DeleteDevice",
-			Handler:    _AdapterService_DeleteDevice_Handler,
-		},
-		{
-			MethodName: "DisableDevice",
-			Handler:    _AdapterService_DisableDevice_Handler,
-		},
-		{
-			MethodName: "ReEnableDevice",
-			Handler:    _AdapterService_ReEnableDevice_Handler,
-		},
-		{
-			MethodName: "RebootDevice",
-			Handler:    _AdapterService_RebootDevice_Handler,
-		},
-		{
-			MethodName: "SelfTestDevice",
-			Handler:    _AdapterService_SelfTestDevice_Handler,
-		},
-		{
-			MethodName: "GetOfpDeviceInfo",
-			Handler:    _AdapterService_GetOfpDeviceInfo_Handler,
-		},
-		{
-			MethodName: "ChildDeviceLost",
-			Handler:    _AdapterService_ChildDeviceLost_Handler,
-		},
-		{
-			MethodName: "EnablePort",
-			Handler:    _AdapterService_EnablePort_Handler,
-		},
-		{
-			MethodName: "DisablePort",
-			Handler:    _AdapterService_DisablePort_Handler,
-		},
-		{
-			MethodName: "UpdateFlowsBulk",
-			Handler:    _AdapterService_UpdateFlowsBulk_Handler,
-		},
-		{
-			MethodName: "UpdateFlowsIncrementally",
-			Handler:    _AdapterService_UpdateFlowsIncrementally_Handler,
-		},
-		{
-			MethodName: "SendPacketOut",
-			Handler:    _AdapterService_SendPacketOut_Handler,
-		},
-		{
-			MethodName: "UpdatePmConfig",
-			Handler:    _AdapterService_UpdatePmConfig_Handler,
-		},
-		{
-			MethodName: "DownloadOnuImage",
-			Handler:    _AdapterService_DownloadOnuImage_Handler,
-		},
-		{
-			MethodName: "GetOnuImageStatus",
-			Handler:    _AdapterService_GetOnuImageStatus_Handler,
-		},
-		{
-			MethodName: "AbortOnuImageUpgrade",
-			Handler:    _AdapterService_AbortOnuImageUpgrade_Handler,
-		},
-		{
-			MethodName: "GetOnuImages",
-			Handler:    _AdapterService_GetOnuImages_Handler,
-		},
-		{
-			MethodName: "ActivateOnuImage",
-			Handler:    _AdapterService_ActivateOnuImage_Handler,
-		},
-		{
-			MethodName: "CommitOnuImage",
-			Handler:    _AdapterService_CommitOnuImage_Handler,
-		},
-		{
-			MethodName: "DownloadImage",
-			Handler:    _AdapterService_DownloadImage_Handler,
-		},
-		{
-			MethodName: "GetImageDownloadStatus",
-			Handler:    _AdapterService_GetImageDownloadStatus_Handler,
-		},
-		{
-			MethodName: "CancelImageDownload",
-			Handler:    _AdapterService_CancelImageDownload_Handler,
-		},
-		{
-			MethodName: "ActivateImageUpdate",
-			Handler:    _AdapterService_ActivateImageUpdate_Handler,
-		},
-		{
-			MethodName: "RevertImageUpdate",
-			Handler:    _AdapterService_RevertImageUpdate_Handler,
-		},
-		{
-			MethodName: "StartOmciTest",
-			Handler:    _AdapterService_StartOmciTest_Handler,
-		},
-		{
-			MethodName: "SimulateAlarm",
-			Handler:    _AdapterService_SimulateAlarm_Handler,
-		},
-		{
-			MethodName: "SuppressEvent",
-			Handler:    _AdapterService_SuppressEvent_Handler,
-		},
-		{
-			MethodName: "UnSuppressEvent",
-			Handler:    _AdapterService_UnSuppressEvent_Handler,
-		},
-		{
-			MethodName: "GetExtValue",
-			Handler:    _AdapterService_GetExtValue_Handler,
-		},
-		{
-			MethodName: "SetExtValue",
-			Handler:    _AdapterService_SetExtValue_Handler,
-		},
-		{
-			MethodName: "GetSingleValue",
-			Handler:    _AdapterService_GetSingleValue_Handler,
-		},
-		{
-			MethodName: "SetSingleValue",
-			Handler:    _AdapterService_SetSingleValue_Handler,
-		},
-		{
-			MethodName: "DisableOnuDevice",
-			Handler:    _AdapterService_DisableOnuDevice_Handler,
-		},
-		{
-			MethodName: "EnableOnuDevice",
-			Handler:    _AdapterService_EnableOnuDevice_Handler,
-		},
-		{
-			MethodName: "DisableOnuSerialNumber",
-			Handler:    _AdapterService_DisableOnuSerialNumber_Handler,
-		},
-		{
-			MethodName: "EnableOnuSerialNumber",
-			Handler:    _AdapterService_EnableOnuSerialNumber_Handler,
-		},
-		{
-			MethodName: "UpdateDevice",
-			Handler:    _AdapterService_UpdateDevice_Handler,
-		},
-	},
-	Streams: []grpc.StreamDesc{
-		{
-			StreamName:    "GetHealthStatus",
-			Handler:       _AdapterService_GetHealthStatus_Handler,
-			ServerStreams: true,
-			ClientStreams: true,
-		},
-	},
-	Metadata: "voltha_protos/adapter_service.proto",
+		GoTypes:           file_voltha_protos_adapter_service_proto_goTypes,
+		DependencyIndexes: file_voltha_protos_adapter_service_proto_depIdxs,
+	}.Build()
+	File_voltha_protos_adapter_service_proto = out.File
+	file_voltha_protos_adapter_service_proto_goTypes = nil
+	file_voltha_protos_adapter_service_proto_depIdxs = nil
 }
diff --git a/go/adapter_service/adapter_service_grpc.pb.go b/go/adapter_service/adapter_service_grpc.pb.go
new file mode 100644
index 0000000..7ee44d3
--- /dev/null
+++ b/go/adapter_service/adapter_service_grpc.pb.go
@@ -0,0 +1,1648 @@
+// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
+// versions:
+// - protoc-gen-go-grpc v1.6.0
+// - protoc             v4.25.8
+// source: voltha_protos/adapter_service.proto
+
+package adapter_service
+
+import (
+	context "context"
+	common "github.com/opencord/voltha-protos/v5/go/common"
+	core_adapter "github.com/opencord/voltha-protos/v5/go/core_adapter"
+	extension "github.com/opencord/voltha-protos/v5/go/extension"
+	health "github.com/opencord/voltha-protos/v5/go/health"
+	omci "github.com/opencord/voltha-protos/v5/go/omci"
+	voltha "github.com/opencord/voltha-protos/v5/go/voltha"
+	grpc "google.golang.org/grpc"
+	codes "google.golang.org/grpc/codes"
+	status "google.golang.org/grpc/status"
+	emptypb "google.golang.org/protobuf/types/known/emptypb"
+)
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+// Requires gRPC-Go v1.64.0 or later.
+const _ = grpc.SupportPackageIsVersion9
+
+const (
+	AdapterService_GetHealthStatus_FullMethodName          = "/adapter_service.AdapterService/GetHealthStatus"
+	AdapterService_AdoptDevice_FullMethodName              = "/adapter_service.AdapterService/AdoptDevice"
+	AdapterService_ReconcileDevice_FullMethodName          = "/adapter_service.AdapterService/ReconcileDevice"
+	AdapterService_DeleteDevice_FullMethodName             = "/adapter_service.AdapterService/DeleteDevice"
+	AdapterService_DisableDevice_FullMethodName            = "/adapter_service.AdapterService/DisableDevice"
+	AdapterService_ReEnableDevice_FullMethodName           = "/adapter_service.AdapterService/ReEnableDevice"
+	AdapterService_RebootDevice_FullMethodName             = "/adapter_service.AdapterService/RebootDevice"
+	AdapterService_SelfTestDevice_FullMethodName           = "/adapter_service.AdapterService/SelfTestDevice"
+	AdapterService_GetOfpDeviceInfo_FullMethodName         = "/adapter_service.AdapterService/GetOfpDeviceInfo"
+	AdapterService_ChildDeviceLost_FullMethodName          = "/adapter_service.AdapterService/ChildDeviceLost"
+	AdapterService_EnablePort_FullMethodName               = "/adapter_service.AdapterService/EnablePort"
+	AdapterService_DisablePort_FullMethodName              = "/adapter_service.AdapterService/DisablePort"
+	AdapterService_UpdateFlowsBulk_FullMethodName          = "/adapter_service.AdapterService/UpdateFlowsBulk"
+	AdapterService_UpdateFlowsIncrementally_FullMethodName = "/adapter_service.AdapterService/UpdateFlowsIncrementally"
+	AdapterService_SendPacketOut_FullMethodName            = "/adapter_service.AdapterService/SendPacketOut"
+	AdapterService_UpdatePmConfig_FullMethodName           = "/adapter_service.AdapterService/UpdatePmConfig"
+	AdapterService_DownloadOnuImage_FullMethodName         = "/adapter_service.AdapterService/DownloadOnuImage"
+	AdapterService_GetOnuImageStatus_FullMethodName        = "/adapter_service.AdapterService/GetOnuImageStatus"
+	AdapterService_AbortOnuImageUpgrade_FullMethodName     = "/adapter_service.AdapterService/AbortOnuImageUpgrade"
+	AdapterService_GetOnuImages_FullMethodName             = "/adapter_service.AdapterService/GetOnuImages"
+	AdapterService_ActivateOnuImage_FullMethodName         = "/adapter_service.AdapterService/ActivateOnuImage"
+	AdapterService_CommitOnuImage_FullMethodName           = "/adapter_service.AdapterService/CommitOnuImage"
+	AdapterService_DownloadImage_FullMethodName            = "/adapter_service.AdapterService/DownloadImage"
+	AdapterService_GetImageDownloadStatus_FullMethodName   = "/adapter_service.AdapterService/GetImageDownloadStatus"
+	AdapterService_CancelImageDownload_FullMethodName      = "/adapter_service.AdapterService/CancelImageDownload"
+	AdapterService_ActivateImageUpdate_FullMethodName      = "/adapter_service.AdapterService/ActivateImageUpdate"
+	AdapterService_RevertImageUpdate_FullMethodName        = "/adapter_service.AdapterService/RevertImageUpdate"
+	AdapterService_StartOmciTest_FullMethodName            = "/adapter_service.AdapterService/StartOmciTest"
+	AdapterService_SimulateAlarm_FullMethodName            = "/adapter_service.AdapterService/SimulateAlarm"
+	AdapterService_SuppressEvent_FullMethodName            = "/adapter_service.AdapterService/SuppressEvent"
+	AdapterService_UnSuppressEvent_FullMethodName          = "/adapter_service.AdapterService/UnSuppressEvent"
+	AdapterService_GetExtValue_FullMethodName              = "/adapter_service.AdapterService/GetExtValue"
+	AdapterService_SetExtValue_FullMethodName              = "/adapter_service.AdapterService/SetExtValue"
+	AdapterService_GetSingleValue_FullMethodName           = "/adapter_service.AdapterService/GetSingleValue"
+	AdapterService_SetSingleValue_FullMethodName           = "/adapter_service.AdapterService/SetSingleValue"
+	AdapterService_DisableOnuDevice_FullMethodName         = "/adapter_service.AdapterService/DisableOnuDevice"
+	AdapterService_EnableOnuDevice_FullMethodName          = "/adapter_service.AdapterService/EnableOnuDevice"
+	AdapterService_DisableOnuSerialNumber_FullMethodName   = "/adapter_service.AdapterService/DisableOnuSerialNumber"
+	AdapterService_EnableOnuSerialNumber_FullMethodName    = "/adapter_service.AdapterService/EnableOnuSerialNumber"
+	AdapterService_UpdateDevice_FullMethodName             = "/adapter_service.AdapterService/UpdateDevice"
+)
+
+// AdapterServiceClient is the client API for AdapterService service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
+//
+// AdapterService is a gRPC service to serve requests from Voltha RW_Core.
+type AdapterServiceClient interface {
+	// GetHealthStatus is used by an AdapterService client to verify connectivity
+	// to the gRPC server hosting the AdapterService service
+	GetHealthStatus(ctx context.Context, opts ...grpc.CallOption) (grpc.BidiStreamingClient[common.Connection, health.HealthStatus], error)
+	// Device
+	AdoptDevice(ctx context.Context, in *voltha.Device, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	ReconcileDevice(ctx context.Context, in *voltha.Device, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	DeleteDevice(ctx context.Context, in *voltha.Device, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	DisableDevice(ctx context.Context, in *voltha.Device, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	ReEnableDevice(ctx context.Context, in *voltha.Device, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	RebootDevice(ctx context.Context, in *voltha.Device, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	SelfTestDevice(ctx context.Context, in *voltha.Device, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	GetOfpDeviceInfo(ctx context.Context, in *voltha.Device, opts ...grpc.CallOption) (*core_adapter.SwitchCapability, error)
+	ChildDeviceLost(ctx context.Context, in *voltha.Device, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	// Ports
+	EnablePort(ctx context.Context, in *voltha.Port, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	DisablePort(ctx context.Context, in *voltha.Port, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	// Flows
+	UpdateFlowsBulk(ctx context.Context, in *core_adapter.BulkFlows, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	UpdateFlowsIncrementally(ctx context.Context, in *core_adapter.IncrementalFlows, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	// Packets
+	SendPacketOut(ctx context.Context, in *core_adapter.PacketOut, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	// PM
+	UpdatePmConfig(ctx context.Context, in *core_adapter.PmConfigsInfo, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	// Image
+	DownloadOnuImage(ctx context.Context, in *voltha.DeviceImageDownloadRequest, opts ...grpc.CallOption) (*voltha.DeviceImageResponse, error)
+	GetOnuImageStatus(ctx context.Context, in *voltha.DeviceImageRequest, opts ...grpc.CallOption) (*voltha.DeviceImageResponse, error)
+	AbortOnuImageUpgrade(ctx context.Context, in *voltha.DeviceImageRequest, opts ...grpc.CallOption) (*voltha.DeviceImageResponse, error)
+	GetOnuImages(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*voltha.OnuImages, error)
+	ActivateOnuImage(ctx context.Context, in *voltha.DeviceImageRequest, opts ...grpc.CallOption) (*voltha.DeviceImageResponse, error)
+	CommitOnuImage(ctx context.Context, in *voltha.DeviceImageRequest, opts ...grpc.CallOption) (*voltha.DeviceImageResponse, error)
+	// Deprecated: Do not use.
+	// Deprecated Image APIs
+	DownloadImage(ctx context.Context, in *core_adapter.ImageDownloadMessage, opts ...grpc.CallOption) (*voltha.ImageDownload, error)
+	// Deprecated: Do not use.
+	GetImageDownloadStatus(ctx context.Context, in *core_adapter.ImageDownloadMessage, opts ...grpc.CallOption) (*voltha.ImageDownload, error)
+	// Deprecated: Do not use.
+	CancelImageDownload(ctx context.Context, in *core_adapter.ImageDownloadMessage, opts ...grpc.CallOption) (*voltha.ImageDownload, error)
+	// Deprecated: Do not use.
+	ActivateImageUpdate(ctx context.Context, in *core_adapter.ImageDownloadMessage, opts ...grpc.CallOption) (*voltha.ImageDownload, error)
+	// Deprecated: Do not use.
+	RevertImageUpdate(ctx context.Context, in *core_adapter.ImageDownloadMessage, opts ...grpc.CallOption) (*voltha.ImageDownload, error)
+	// Tests
+	StartOmciTest(ctx context.Context, in *core_adapter.OMCITest, opts ...grpc.CallOption) (*omci.TestResponse, error)
+	SimulateAlarm(ctx context.Context, in *core_adapter.SimulateAlarmMessage, opts ...grpc.CallOption) (*common.OperationResp, error)
+	// Events
+	SuppressEvent(ctx context.Context, in *voltha.EventFilter, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	UnSuppressEvent(ctx context.Context, in *voltha.EventFilter, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	// Get/Set
+	GetExtValue(ctx context.Context, in *core_adapter.GetExtValueMessage, opts ...grpc.CallOption) (*extension.ReturnValues, error)
+	SetExtValue(ctx context.Context, in *core_adapter.SetExtValueMessage, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	GetSingleValue(ctx context.Context, in *extension.SingleGetValueRequest, opts ...grpc.CallOption) (*extension.SingleGetValueResponse, error)
+	SetSingleValue(ctx context.Context, in *extension.SingleSetValueRequest, opts ...grpc.CallOption) (*extension.SingleSetValueResponse, error)
+	DisableOnuDevice(ctx context.Context, in *voltha.Device, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	EnableOnuDevice(ctx context.Context, in *voltha.Device, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	DisableOnuSerialNumber(ctx context.Context, in *voltha.OnuSerialNumberOnOLTPon, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	EnableOnuSerialNumber(ctx context.Context, in *voltha.OnuSerialNumberOnOLTPon, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	UpdateDevice(ctx context.Context, in *voltha.UpdateDevice, opts ...grpc.CallOption) (*emptypb.Empty, error)
+}
+
+type adapterServiceClient struct {
+	cc grpc.ClientConnInterface
+}
+
+func NewAdapterServiceClient(cc grpc.ClientConnInterface) AdapterServiceClient {
+	return &adapterServiceClient{cc}
+}
+
+func (c *adapterServiceClient) GetHealthStatus(ctx context.Context, opts ...grpc.CallOption) (grpc.BidiStreamingClient[common.Connection, health.HealthStatus], error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	stream, err := c.cc.NewStream(ctx, &AdapterService_ServiceDesc.Streams[0], AdapterService_GetHealthStatus_FullMethodName, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	x := &grpc.GenericClientStream[common.Connection, health.HealthStatus]{ClientStream: stream}
+	return x, nil
+}
+
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type AdapterService_GetHealthStatusClient = grpc.BidiStreamingClient[common.Connection, health.HealthStatus]
+
+func (c *adapterServiceClient) AdoptDevice(ctx context.Context, in *voltha.Device, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, AdapterService_AdoptDevice_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *adapterServiceClient) ReconcileDevice(ctx context.Context, in *voltha.Device, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, AdapterService_ReconcileDevice_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *adapterServiceClient) DeleteDevice(ctx context.Context, in *voltha.Device, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, AdapterService_DeleteDevice_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *adapterServiceClient) DisableDevice(ctx context.Context, in *voltha.Device, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, AdapterService_DisableDevice_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *adapterServiceClient) ReEnableDevice(ctx context.Context, in *voltha.Device, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, AdapterService_ReEnableDevice_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *adapterServiceClient) RebootDevice(ctx context.Context, in *voltha.Device, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, AdapterService_RebootDevice_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *adapterServiceClient) SelfTestDevice(ctx context.Context, in *voltha.Device, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, AdapterService_SelfTestDevice_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *adapterServiceClient) GetOfpDeviceInfo(ctx context.Context, in *voltha.Device, opts ...grpc.CallOption) (*core_adapter.SwitchCapability, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(core_adapter.SwitchCapability)
+	err := c.cc.Invoke(ctx, AdapterService_GetOfpDeviceInfo_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *adapterServiceClient) ChildDeviceLost(ctx context.Context, in *voltha.Device, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, AdapterService_ChildDeviceLost_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *adapterServiceClient) EnablePort(ctx context.Context, in *voltha.Port, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, AdapterService_EnablePort_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *adapterServiceClient) DisablePort(ctx context.Context, in *voltha.Port, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, AdapterService_DisablePort_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *adapterServiceClient) UpdateFlowsBulk(ctx context.Context, in *core_adapter.BulkFlows, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, AdapterService_UpdateFlowsBulk_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *adapterServiceClient) UpdateFlowsIncrementally(ctx context.Context, in *core_adapter.IncrementalFlows, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, AdapterService_UpdateFlowsIncrementally_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *adapterServiceClient) SendPacketOut(ctx context.Context, in *core_adapter.PacketOut, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, AdapterService_SendPacketOut_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *adapterServiceClient) UpdatePmConfig(ctx context.Context, in *core_adapter.PmConfigsInfo, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, AdapterService_UpdatePmConfig_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *adapterServiceClient) DownloadOnuImage(ctx context.Context, in *voltha.DeviceImageDownloadRequest, opts ...grpc.CallOption) (*voltha.DeviceImageResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(voltha.DeviceImageResponse)
+	err := c.cc.Invoke(ctx, AdapterService_DownloadOnuImage_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *adapterServiceClient) GetOnuImageStatus(ctx context.Context, in *voltha.DeviceImageRequest, opts ...grpc.CallOption) (*voltha.DeviceImageResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(voltha.DeviceImageResponse)
+	err := c.cc.Invoke(ctx, AdapterService_GetOnuImageStatus_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *adapterServiceClient) AbortOnuImageUpgrade(ctx context.Context, in *voltha.DeviceImageRequest, opts ...grpc.CallOption) (*voltha.DeviceImageResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(voltha.DeviceImageResponse)
+	err := c.cc.Invoke(ctx, AdapterService_AbortOnuImageUpgrade_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *adapterServiceClient) GetOnuImages(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*voltha.OnuImages, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(voltha.OnuImages)
+	err := c.cc.Invoke(ctx, AdapterService_GetOnuImages_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *adapterServiceClient) ActivateOnuImage(ctx context.Context, in *voltha.DeviceImageRequest, opts ...grpc.CallOption) (*voltha.DeviceImageResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(voltha.DeviceImageResponse)
+	err := c.cc.Invoke(ctx, AdapterService_ActivateOnuImage_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *adapterServiceClient) CommitOnuImage(ctx context.Context, in *voltha.DeviceImageRequest, opts ...grpc.CallOption) (*voltha.DeviceImageResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(voltha.DeviceImageResponse)
+	err := c.cc.Invoke(ctx, AdapterService_CommitOnuImage_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+// Deprecated: Do not use.
+func (c *adapterServiceClient) DownloadImage(ctx context.Context, in *core_adapter.ImageDownloadMessage, opts ...grpc.CallOption) (*voltha.ImageDownload, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(voltha.ImageDownload)
+	err := c.cc.Invoke(ctx, AdapterService_DownloadImage_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+// Deprecated: Do not use.
+func (c *adapterServiceClient) GetImageDownloadStatus(ctx context.Context, in *core_adapter.ImageDownloadMessage, opts ...grpc.CallOption) (*voltha.ImageDownload, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(voltha.ImageDownload)
+	err := c.cc.Invoke(ctx, AdapterService_GetImageDownloadStatus_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+// Deprecated: Do not use.
+func (c *adapterServiceClient) CancelImageDownload(ctx context.Context, in *core_adapter.ImageDownloadMessage, opts ...grpc.CallOption) (*voltha.ImageDownload, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(voltha.ImageDownload)
+	err := c.cc.Invoke(ctx, AdapterService_CancelImageDownload_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+// Deprecated: Do not use.
+func (c *adapterServiceClient) ActivateImageUpdate(ctx context.Context, in *core_adapter.ImageDownloadMessage, opts ...grpc.CallOption) (*voltha.ImageDownload, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(voltha.ImageDownload)
+	err := c.cc.Invoke(ctx, AdapterService_ActivateImageUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+// Deprecated: Do not use.
+func (c *adapterServiceClient) RevertImageUpdate(ctx context.Context, in *core_adapter.ImageDownloadMessage, opts ...grpc.CallOption) (*voltha.ImageDownload, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(voltha.ImageDownload)
+	err := c.cc.Invoke(ctx, AdapterService_RevertImageUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *adapterServiceClient) StartOmciTest(ctx context.Context, in *core_adapter.OMCITest, opts ...grpc.CallOption) (*omci.TestResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(omci.TestResponse)
+	err := c.cc.Invoke(ctx, AdapterService_StartOmciTest_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *adapterServiceClient) SimulateAlarm(ctx context.Context, in *core_adapter.SimulateAlarmMessage, opts ...grpc.CallOption) (*common.OperationResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(common.OperationResp)
+	err := c.cc.Invoke(ctx, AdapterService_SimulateAlarm_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *adapterServiceClient) SuppressEvent(ctx context.Context, in *voltha.EventFilter, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, AdapterService_SuppressEvent_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *adapterServiceClient) UnSuppressEvent(ctx context.Context, in *voltha.EventFilter, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, AdapterService_UnSuppressEvent_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *adapterServiceClient) GetExtValue(ctx context.Context, in *core_adapter.GetExtValueMessage, opts ...grpc.CallOption) (*extension.ReturnValues, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(extension.ReturnValues)
+	err := c.cc.Invoke(ctx, AdapterService_GetExtValue_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *adapterServiceClient) SetExtValue(ctx context.Context, in *core_adapter.SetExtValueMessage, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, AdapterService_SetExtValue_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *adapterServiceClient) GetSingleValue(ctx context.Context, in *extension.SingleGetValueRequest, opts ...grpc.CallOption) (*extension.SingleGetValueResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(extension.SingleGetValueResponse)
+	err := c.cc.Invoke(ctx, AdapterService_GetSingleValue_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *adapterServiceClient) SetSingleValue(ctx context.Context, in *extension.SingleSetValueRequest, opts ...grpc.CallOption) (*extension.SingleSetValueResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(extension.SingleSetValueResponse)
+	err := c.cc.Invoke(ctx, AdapterService_SetSingleValue_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *adapterServiceClient) DisableOnuDevice(ctx context.Context, in *voltha.Device, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, AdapterService_DisableOnuDevice_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *adapterServiceClient) EnableOnuDevice(ctx context.Context, in *voltha.Device, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, AdapterService_EnableOnuDevice_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *adapterServiceClient) DisableOnuSerialNumber(ctx context.Context, in *voltha.OnuSerialNumberOnOLTPon, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, AdapterService_DisableOnuSerialNumber_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *adapterServiceClient) EnableOnuSerialNumber(ctx context.Context, in *voltha.OnuSerialNumberOnOLTPon, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, AdapterService_EnableOnuSerialNumber_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *adapterServiceClient) UpdateDevice(ctx context.Context, in *voltha.UpdateDevice, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, AdapterService_UpdateDevice_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+// AdapterServiceServer is the server API for AdapterService service.
+// All implementations must embed UnimplementedAdapterServiceServer
+// for forward compatibility.
+//
+// AdapterService is a gRPC service to serve requests from Voltha RW_Core.
+type AdapterServiceServer interface {
+	// GetHealthStatus is used by an AdapterService client to verify connectivity
+	// to the gRPC server hosting the AdapterService service
+	GetHealthStatus(grpc.BidiStreamingServer[common.Connection, health.HealthStatus]) error
+	// Device
+	AdoptDevice(context.Context, *voltha.Device) (*emptypb.Empty, error)
+	ReconcileDevice(context.Context, *voltha.Device) (*emptypb.Empty, error)
+	DeleteDevice(context.Context, *voltha.Device) (*emptypb.Empty, error)
+	DisableDevice(context.Context, *voltha.Device) (*emptypb.Empty, error)
+	ReEnableDevice(context.Context, *voltha.Device) (*emptypb.Empty, error)
+	RebootDevice(context.Context, *voltha.Device) (*emptypb.Empty, error)
+	SelfTestDevice(context.Context, *voltha.Device) (*emptypb.Empty, error)
+	GetOfpDeviceInfo(context.Context, *voltha.Device) (*core_adapter.SwitchCapability, error)
+	ChildDeviceLost(context.Context, *voltha.Device) (*emptypb.Empty, error)
+	// Ports
+	EnablePort(context.Context, *voltha.Port) (*emptypb.Empty, error)
+	DisablePort(context.Context, *voltha.Port) (*emptypb.Empty, error)
+	// Flows
+	UpdateFlowsBulk(context.Context, *core_adapter.BulkFlows) (*emptypb.Empty, error)
+	UpdateFlowsIncrementally(context.Context, *core_adapter.IncrementalFlows) (*emptypb.Empty, error)
+	// Packets
+	SendPacketOut(context.Context, *core_adapter.PacketOut) (*emptypb.Empty, error)
+	// PM
+	UpdatePmConfig(context.Context, *core_adapter.PmConfigsInfo) (*emptypb.Empty, error)
+	// Image
+	DownloadOnuImage(context.Context, *voltha.DeviceImageDownloadRequest) (*voltha.DeviceImageResponse, error)
+	GetOnuImageStatus(context.Context, *voltha.DeviceImageRequest) (*voltha.DeviceImageResponse, error)
+	AbortOnuImageUpgrade(context.Context, *voltha.DeviceImageRequest) (*voltha.DeviceImageResponse, error)
+	GetOnuImages(context.Context, *common.ID) (*voltha.OnuImages, error)
+	ActivateOnuImage(context.Context, *voltha.DeviceImageRequest) (*voltha.DeviceImageResponse, error)
+	CommitOnuImage(context.Context, *voltha.DeviceImageRequest) (*voltha.DeviceImageResponse, error)
+	// Deprecated: Do not use.
+	// Deprecated Image APIs
+	DownloadImage(context.Context, *core_adapter.ImageDownloadMessage) (*voltha.ImageDownload, error)
+	// Deprecated: Do not use.
+	GetImageDownloadStatus(context.Context, *core_adapter.ImageDownloadMessage) (*voltha.ImageDownload, error)
+	// Deprecated: Do not use.
+	CancelImageDownload(context.Context, *core_adapter.ImageDownloadMessage) (*voltha.ImageDownload, error)
+	// Deprecated: Do not use.
+	ActivateImageUpdate(context.Context, *core_adapter.ImageDownloadMessage) (*voltha.ImageDownload, error)
+	// Deprecated: Do not use.
+	RevertImageUpdate(context.Context, *core_adapter.ImageDownloadMessage) (*voltha.ImageDownload, error)
+	// Tests
+	StartOmciTest(context.Context, *core_adapter.OMCITest) (*omci.TestResponse, error)
+	SimulateAlarm(context.Context, *core_adapter.SimulateAlarmMessage) (*common.OperationResp, error)
+	// Events
+	SuppressEvent(context.Context, *voltha.EventFilter) (*emptypb.Empty, error)
+	UnSuppressEvent(context.Context, *voltha.EventFilter) (*emptypb.Empty, error)
+	// Get/Set
+	GetExtValue(context.Context, *core_adapter.GetExtValueMessage) (*extension.ReturnValues, error)
+	SetExtValue(context.Context, *core_adapter.SetExtValueMessage) (*emptypb.Empty, error)
+	GetSingleValue(context.Context, *extension.SingleGetValueRequest) (*extension.SingleGetValueResponse, error)
+	SetSingleValue(context.Context, *extension.SingleSetValueRequest) (*extension.SingleSetValueResponse, error)
+	DisableOnuDevice(context.Context, *voltha.Device) (*emptypb.Empty, error)
+	EnableOnuDevice(context.Context, *voltha.Device) (*emptypb.Empty, error)
+	DisableOnuSerialNumber(context.Context, *voltha.OnuSerialNumberOnOLTPon) (*emptypb.Empty, error)
+	EnableOnuSerialNumber(context.Context, *voltha.OnuSerialNumberOnOLTPon) (*emptypb.Empty, error)
+	UpdateDevice(context.Context, *voltha.UpdateDevice) (*emptypb.Empty, error)
+	mustEmbedUnimplementedAdapterServiceServer()
+}
+
+// UnimplementedAdapterServiceServer must be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedAdapterServiceServer struct{}
+
+func (UnimplementedAdapterServiceServer) GetHealthStatus(grpc.BidiStreamingServer[common.Connection, health.HealthStatus]) error {
+	return status.Error(codes.Unimplemented, "method GetHealthStatus not implemented")
+}
+func (UnimplementedAdapterServiceServer) AdoptDevice(context.Context, *voltha.Device) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method AdoptDevice not implemented")
+}
+func (UnimplementedAdapterServiceServer) ReconcileDevice(context.Context, *voltha.Device) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method ReconcileDevice not implemented")
+}
+func (UnimplementedAdapterServiceServer) DeleteDevice(context.Context, *voltha.Device) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method DeleteDevice not implemented")
+}
+func (UnimplementedAdapterServiceServer) DisableDevice(context.Context, *voltha.Device) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method DisableDevice not implemented")
+}
+func (UnimplementedAdapterServiceServer) ReEnableDevice(context.Context, *voltha.Device) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method ReEnableDevice not implemented")
+}
+func (UnimplementedAdapterServiceServer) RebootDevice(context.Context, *voltha.Device) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method RebootDevice not implemented")
+}
+func (UnimplementedAdapterServiceServer) SelfTestDevice(context.Context, *voltha.Device) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method SelfTestDevice not implemented")
+}
+func (UnimplementedAdapterServiceServer) GetOfpDeviceInfo(context.Context, *voltha.Device) (*core_adapter.SwitchCapability, error) {
+	return nil, status.Error(codes.Unimplemented, "method GetOfpDeviceInfo not implemented")
+}
+func (UnimplementedAdapterServiceServer) ChildDeviceLost(context.Context, *voltha.Device) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method ChildDeviceLost not implemented")
+}
+func (UnimplementedAdapterServiceServer) EnablePort(context.Context, *voltha.Port) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method EnablePort not implemented")
+}
+func (UnimplementedAdapterServiceServer) DisablePort(context.Context, *voltha.Port) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method DisablePort not implemented")
+}
+func (UnimplementedAdapterServiceServer) UpdateFlowsBulk(context.Context, *core_adapter.BulkFlows) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method UpdateFlowsBulk not implemented")
+}
+func (UnimplementedAdapterServiceServer) UpdateFlowsIncrementally(context.Context, *core_adapter.IncrementalFlows) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method UpdateFlowsIncrementally not implemented")
+}
+func (UnimplementedAdapterServiceServer) SendPacketOut(context.Context, *core_adapter.PacketOut) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method SendPacketOut not implemented")
+}
+func (UnimplementedAdapterServiceServer) UpdatePmConfig(context.Context, *core_adapter.PmConfigsInfo) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method UpdatePmConfig not implemented")
+}
+func (UnimplementedAdapterServiceServer) DownloadOnuImage(context.Context, *voltha.DeviceImageDownloadRequest) (*voltha.DeviceImageResponse, error) {
+	return nil, status.Error(codes.Unimplemented, "method DownloadOnuImage not implemented")
+}
+func (UnimplementedAdapterServiceServer) GetOnuImageStatus(context.Context, *voltha.DeviceImageRequest) (*voltha.DeviceImageResponse, error) {
+	return nil, status.Error(codes.Unimplemented, "method GetOnuImageStatus not implemented")
+}
+func (UnimplementedAdapterServiceServer) AbortOnuImageUpgrade(context.Context, *voltha.DeviceImageRequest) (*voltha.DeviceImageResponse, error) {
+	return nil, status.Error(codes.Unimplemented, "method AbortOnuImageUpgrade not implemented")
+}
+func (UnimplementedAdapterServiceServer) GetOnuImages(context.Context, *common.ID) (*voltha.OnuImages, error) {
+	return nil, status.Error(codes.Unimplemented, "method GetOnuImages not implemented")
+}
+func (UnimplementedAdapterServiceServer) ActivateOnuImage(context.Context, *voltha.DeviceImageRequest) (*voltha.DeviceImageResponse, error) {
+	return nil, status.Error(codes.Unimplemented, "method ActivateOnuImage not implemented")
+}
+func (UnimplementedAdapterServiceServer) CommitOnuImage(context.Context, *voltha.DeviceImageRequest) (*voltha.DeviceImageResponse, error) {
+	return nil, status.Error(codes.Unimplemented, "method CommitOnuImage not implemented")
+}
+func (UnimplementedAdapterServiceServer) DownloadImage(context.Context, *core_adapter.ImageDownloadMessage) (*voltha.ImageDownload, error) {
+	return nil, status.Error(codes.Unimplemented, "method DownloadImage not implemented")
+}
+func (UnimplementedAdapterServiceServer) GetImageDownloadStatus(context.Context, *core_adapter.ImageDownloadMessage) (*voltha.ImageDownload, error) {
+	return nil, status.Error(codes.Unimplemented, "method GetImageDownloadStatus not implemented")
+}
+func (UnimplementedAdapterServiceServer) CancelImageDownload(context.Context, *core_adapter.ImageDownloadMessage) (*voltha.ImageDownload, error) {
+	return nil, status.Error(codes.Unimplemented, "method CancelImageDownload not implemented")
+}
+func (UnimplementedAdapterServiceServer) ActivateImageUpdate(context.Context, *core_adapter.ImageDownloadMessage) (*voltha.ImageDownload, error) {
+	return nil, status.Error(codes.Unimplemented, "method ActivateImageUpdate not implemented")
+}
+func (UnimplementedAdapterServiceServer) RevertImageUpdate(context.Context, *core_adapter.ImageDownloadMessage) (*voltha.ImageDownload, error) {
+	return nil, status.Error(codes.Unimplemented, "method RevertImageUpdate not implemented")
+}
+func (UnimplementedAdapterServiceServer) StartOmciTest(context.Context, *core_adapter.OMCITest) (*omci.TestResponse, error) {
+	return nil, status.Error(codes.Unimplemented, "method StartOmciTest not implemented")
+}
+func (UnimplementedAdapterServiceServer) SimulateAlarm(context.Context, *core_adapter.SimulateAlarmMessage) (*common.OperationResp, error) {
+	return nil, status.Error(codes.Unimplemented, "method SimulateAlarm not implemented")
+}
+func (UnimplementedAdapterServiceServer) SuppressEvent(context.Context, *voltha.EventFilter) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method SuppressEvent not implemented")
+}
+func (UnimplementedAdapterServiceServer) UnSuppressEvent(context.Context, *voltha.EventFilter) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method UnSuppressEvent not implemented")
+}
+func (UnimplementedAdapterServiceServer) GetExtValue(context.Context, *core_adapter.GetExtValueMessage) (*extension.ReturnValues, error) {
+	return nil, status.Error(codes.Unimplemented, "method GetExtValue not implemented")
+}
+func (UnimplementedAdapterServiceServer) SetExtValue(context.Context, *core_adapter.SetExtValueMessage) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method SetExtValue not implemented")
+}
+func (UnimplementedAdapterServiceServer) GetSingleValue(context.Context, *extension.SingleGetValueRequest) (*extension.SingleGetValueResponse, error) {
+	return nil, status.Error(codes.Unimplemented, "method GetSingleValue not implemented")
+}
+func (UnimplementedAdapterServiceServer) SetSingleValue(context.Context, *extension.SingleSetValueRequest) (*extension.SingleSetValueResponse, error) {
+	return nil, status.Error(codes.Unimplemented, "method SetSingleValue not implemented")
+}
+func (UnimplementedAdapterServiceServer) DisableOnuDevice(context.Context, *voltha.Device) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method DisableOnuDevice not implemented")
+}
+func (UnimplementedAdapterServiceServer) EnableOnuDevice(context.Context, *voltha.Device) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method EnableOnuDevice not implemented")
+}
+func (UnimplementedAdapterServiceServer) DisableOnuSerialNumber(context.Context, *voltha.OnuSerialNumberOnOLTPon) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method DisableOnuSerialNumber not implemented")
+}
+func (UnimplementedAdapterServiceServer) EnableOnuSerialNumber(context.Context, *voltha.OnuSerialNumberOnOLTPon) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method EnableOnuSerialNumber not implemented")
+}
+func (UnimplementedAdapterServiceServer) UpdateDevice(context.Context, *voltha.UpdateDevice) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method UpdateDevice not implemented")
+}
+func (UnimplementedAdapterServiceServer) mustEmbedUnimplementedAdapterServiceServer() {}
+func (UnimplementedAdapterServiceServer) testEmbeddedByValue()                        {}
+
+// UnsafeAdapterServiceServer may be embedded to opt out of forward compatibility for this service.
+// Use of this interface is not recommended, as added methods to AdapterServiceServer will
+// result in compilation errors.
+type UnsafeAdapterServiceServer interface {
+	mustEmbedUnimplementedAdapterServiceServer()
+}
+
+func RegisterAdapterServiceServer(s grpc.ServiceRegistrar, srv AdapterServiceServer) {
+	// If the following call panics, it indicates UnimplementedAdapterServiceServer was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
+	s.RegisterService(&AdapterService_ServiceDesc, srv)
+}
+
+func _AdapterService_GetHealthStatus_Handler(srv interface{}, stream grpc.ServerStream) error {
+	return srv.(AdapterServiceServer).GetHealthStatus(&grpc.GenericServerStream[common.Connection, health.HealthStatus]{ServerStream: stream})
+}
+
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type AdapterService_GetHealthStatusServer = grpc.BidiStreamingServer[common.Connection, health.HealthStatus]
+
+func _AdapterService_AdoptDevice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(voltha.Device)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(AdapterServiceServer).AdoptDevice(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: AdapterService_AdoptDevice_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AdapterServiceServer).AdoptDevice(ctx, req.(*voltha.Device))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _AdapterService_ReconcileDevice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(voltha.Device)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(AdapterServiceServer).ReconcileDevice(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: AdapterService_ReconcileDevice_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AdapterServiceServer).ReconcileDevice(ctx, req.(*voltha.Device))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _AdapterService_DeleteDevice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(voltha.Device)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(AdapterServiceServer).DeleteDevice(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: AdapterService_DeleteDevice_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AdapterServiceServer).DeleteDevice(ctx, req.(*voltha.Device))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _AdapterService_DisableDevice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(voltha.Device)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(AdapterServiceServer).DisableDevice(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: AdapterService_DisableDevice_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AdapterServiceServer).DisableDevice(ctx, req.(*voltha.Device))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _AdapterService_ReEnableDevice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(voltha.Device)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(AdapterServiceServer).ReEnableDevice(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: AdapterService_ReEnableDevice_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AdapterServiceServer).ReEnableDevice(ctx, req.(*voltha.Device))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _AdapterService_RebootDevice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(voltha.Device)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(AdapterServiceServer).RebootDevice(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: AdapterService_RebootDevice_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AdapterServiceServer).RebootDevice(ctx, req.(*voltha.Device))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _AdapterService_SelfTestDevice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(voltha.Device)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(AdapterServiceServer).SelfTestDevice(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: AdapterService_SelfTestDevice_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AdapterServiceServer).SelfTestDevice(ctx, req.(*voltha.Device))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _AdapterService_GetOfpDeviceInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(voltha.Device)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(AdapterServiceServer).GetOfpDeviceInfo(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: AdapterService_GetOfpDeviceInfo_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AdapterServiceServer).GetOfpDeviceInfo(ctx, req.(*voltha.Device))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _AdapterService_ChildDeviceLost_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(voltha.Device)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(AdapterServiceServer).ChildDeviceLost(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: AdapterService_ChildDeviceLost_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AdapterServiceServer).ChildDeviceLost(ctx, req.(*voltha.Device))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _AdapterService_EnablePort_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(voltha.Port)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(AdapterServiceServer).EnablePort(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: AdapterService_EnablePort_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AdapterServiceServer).EnablePort(ctx, req.(*voltha.Port))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _AdapterService_DisablePort_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(voltha.Port)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(AdapterServiceServer).DisablePort(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: AdapterService_DisablePort_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AdapterServiceServer).DisablePort(ctx, req.(*voltha.Port))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _AdapterService_UpdateFlowsBulk_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(core_adapter.BulkFlows)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(AdapterServiceServer).UpdateFlowsBulk(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: AdapterService_UpdateFlowsBulk_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AdapterServiceServer).UpdateFlowsBulk(ctx, req.(*core_adapter.BulkFlows))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _AdapterService_UpdateFlowsIncrementally_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(core_adapter.IncrementalFlows)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(AdapterServiceServer).UpdateFlowsIncrementally(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: AdapterService_UpdateFlowsIncrementally_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AdapterServiceServer).UpdateFlowsIncrementally(ctx, req.(*core_adapter.IncrementalFlows))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _AdapterService_SendPacketOut_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(core_adapter.PacketOut)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(AdapterServiceServer).SendPacketOut(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: AdapterService_SendPacketOut_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AdapterServiceServer).SendPacketOut(ctx, req.(*core_adapter.PacketOut))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _AdapterService_UpdatePmConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(core_adapter.PmConfigsInfo)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(AdapterServiceServer).UpdatePmConfig(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: AdapterService_UpdatePmConfig_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AdapterServiceServer).UpdatePmConfig(ctx, req.(*core_adapter.PmConfigsInfo))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _AdapterService_DownloadOnuImage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(voltha.DeviceImageDownloadRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(AdapterServiceServer).DownloadOnuImage(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: AdapterService_DownloadOnuImage_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AdapterServiceServer).DownloadOnuImage(ctx, req.(*voltha.DeviceImageDownloadRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _AdapterService_GetOnuImageStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(voltha.DeviceImageRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(AdapterServiceServer).GetOnuImageStatus(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: AdapterService_GetOnuImageStatus_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AdapterServiceServer).GetOnuImageStatus(ctx, req.(*voltha.DeviceImageRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _AdapterService_AbortOnuImageUpgrade_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(voltha.DeviceImageRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(AdapterServiceServer).AbortOnuImageUpgrade(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: AdapterService_AbortOnuImageUpgrade_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AdapterServiceServer).AbortOnuImageUpgrade(ctx, req.(*voltha.DeviceImageRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _AdapterService_GetOnuImages_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.(AdapterServiceServer).GetOnuImages(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: AdapterService_GetOnuImages_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AdapterServiceServer).GetOnuImages(ctx, req.(*common.ID))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _AdapterService_ActivateOnuImage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(voltha.DeviceImageRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(AdapterServiceServer).ActivateOnuImage(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: AdapterService_ActivateOnuImage_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AdapterServiceServer).ActivateOnuImage(ctx, req.(*voltha.DeviceImageRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _AdapterService_CommitOnuImage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(voltha.DeviceImageRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(AdapterServiceServer).CommitOnuImage(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: AdapterService_CommitOnuImage_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AdapterServiceServer).CommitOnuImage(ctx, req.(*voltha.DeviceImageRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _AdapterService_DownloadImage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(core_adapter.ImageDownloadMessage)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(AdapterServiceServer).DownloadImage(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: AdapterService_DownloadImage_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AdapterServiceServer).DownloadImage(ctx, req.(*core_adapter.ImageDownloadMessage))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _AdapterService_GetImageDownloadStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(core_adapter.ImageDownloadMessage)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(AdapterServiceServer).GetImageDownloadStatus(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: AdapterService_GetImageDownloadStatus_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AdapterServiceServer).GetImageDownloadStatus(ctx, req.(*core_adapter.ImageDownloadMessage))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _AdapterService_CancelImageDownload_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(core_adapter.ImageDownloadMessage)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(AdapterServiceServer).CancelImageDownload(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: AdapterService_CancelImageDownload_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AdapterServiceServer).CancelImageDownload(ctx, req.(*core_adapter.ImageDownloadMessage))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _AdapterService_ActivateImageUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(core_adapter.ImageDownloadMessage)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(AdapterServiceServer).ActivateImageUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: AdapterService_ActivateImageUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AdapterServiceServer).ActivateImageUpdate(ctx, req.(*core_adapter.ImageDownloadMessage))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _AdapterService_RevertImageUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(core_adapter.ImageDownloadMessage)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(AdapterServiceServer).RevertImageUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: AdapterService_RevertImageUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AdapterServiceServer).RevertImageUpdate(ctx, req.(*core_adapter.ImageDownloadMessage))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _AdapterService_StartOmciTest_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(core_adapter.OMCITest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(AdapterServiceServer).StartOmciTest(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: AdapterService_StartOmciTest_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AdapterServiceServer).StartOmciTest(ctx, req.(*core_adapter.OMCITest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _AdapterService_SimulateAlarm_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(core_adapter.SimulateAlarmMessage)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(AdapterServiceServer).SimulateAlarm(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: AdapterService_SimulateAlarm_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AdapterServiceServer).SimulateAlarm(ctx, req.(*core_adapter.SimulateAlarmMessage))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _AdapterService_SuppressEvent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(voltha.EventFilter)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(AdapterServiceServer).SuppressEvent(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: AdapterService_SuppressEvent_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AdapterServiceServer).SuppressEvent(ctx, req.(*voltha.EventFilter))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _AdapterService_UnSuppressEvent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(voltha.EventFilter)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(AdapterServiceServer).UnSuppressEvent(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: AdapterService_UnSuppressEvent_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AdapterServiceServer).UnSuppressEvent(ctx, req.(*voltha.EventFilter))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _AdapterService_GetExtValue_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(core_adapter.GetExtValueMessage)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(AdapterServiceServer).GetExtValue(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: AdapterService_GetExtValue_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AdapterServiceServer).GetExtValue(ctx, req.(*core_adapter.GetExtValueMessage))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _AdapterService_SetExtValue_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(core_adapter.SetExtValueMessage)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(AdapterServiceServer).SetExtValue(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: AdapterService_SetExtValue_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AdapterServiceServer).SetExtValue(ctx, req.(*core_adapter.SetExtValueMessage))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _AdapterService_GetSingleValue_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(extension.SingleGetValueRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(AdapterServiceServer).GetSingleValue(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: AdapterService_GetSingleValue_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AdapterServiceServer).GetSingleValue(ctx, req.(*extension.SingleGetValueRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _AdapterService_SetSingleValue_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(extension.SingleSetValueRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(AdapterServiceServer).SetSingleValue(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: AdapterService_SetSingleValue_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AdapterServiceServer).SetSingleValue(ctx, req.(*extension.SingleSetValueRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _AdapterService_DisableOnuDevice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(voltha.Device)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(AdapterServiceServer).DisableOnuDevice(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: AdapterService_DisableOnuDevice_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AdapterServiceServer).DisableOnuDevice(ctx, req.(*voltha.Device))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _AdapterService_EnableOnuDevice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(voltha.Device)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(AdapterServiceServer).EnableOnuDevice(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: AdapterService_EnableOnuDevice_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AdapterServiceServer).EnableOnuDevice(ctx, req.(*voltha.Device))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _AdapterService_DisableOnuSerialNumber_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(voltha.OnuSerialNumberOnOLTPon)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(AdapterServiceServer).DisableOnuSerialNumber(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: AdapterService_DisableOnuSerialNumber_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AdapterServiceServer).DisableOnuSerialNumber(ctx, req.(*voltha.OnuSerialNumberOnOLTPon))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _AdapterService_EnableOnuSerialNumber_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(voltha.OnuSerialNumberOnOLTPon)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(AdapterServiceServer).EnableOnuSerialNumber(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: AdapterService_EnableOnuSerialNumber_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AdapterServiceServer).EnableOnuSerialNumber(ctx, req.(*voltha.OnuSerialNumberOnOLTPon))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _AdapterService_UpdateDevice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(voltha.UpdateDevice)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(AdapterServiceServer).UpdateDevice(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: AdapterService_UpdateDevice_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(AdapterServiceServer).UpdateDevice(ctx, req.(*voltha.UpdateDevice))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+// AdapterService_ServiceDesc is the grpc.ServiceDesc for AdapterService service.
+// It's only intended for direct use with grpc.RegisterService,
+// and not to be introspected or modified (even as a copy)
+var AdapterService_ServiceDesc = grpc.ServiceDesc{
+	ServiceName: "adapter_service.AdapterService",
+	HandlerType: (*AdapterServiceServer)(nil),
+	Methods: []grpc.MethodDesc{
+		{
+			MethodName: "AdoptDevice",
+			Handler:    _AdapterService_AdoptDevice_Handler,
+		},
+		{
+			MethodName: "ReconcileDevice",
+			Handler:    _AdapterService_ReconcileDevice_Handler,
+		},
+		{
+			MethodName: "DeleteDevice",
+			Handler:    _AdapterService_DeleteDevice_Handler,
+		},
+		{
+			MethodName: "DisableDevice",
+			Handler:    _AdapterService_DisableDevice_Handler,
+		},
+		{
+			MethodName: "ReEnableDevice",
+			Handler:    _AdapterService_ReEnableDevice_Handler,
+		},
+		{
+			MethodName: "RebootDevice",
+			Handler:    _AdapterService_RebootDevice_Handler,
+		},
+		{
+			MethodName: "SelfTestDevice",
+			Handler:    _AdapterService_SelfTestDevice_Handler,
+		},
+		{
+			MethodName: "GetOfpDeviceInfo",
+			Handler:    _AdapterService_GetOfpDeviceInfo_Handler,
+		},
+		{
+			MethodName: "ChildDeviceLost",
+			Handler:    _AdapterService_ChildDeviceLost_Handler,
+		},
+		{
+			MethodName: "EnablePort",
+			Handler:    _AdapterService_EnablePort_Handler,
+		},
+		{
+			MethodName: "DisablePort",
+			Handler:    _AdapterService_DisablePort_Handler,
+		},
+		{
+			MethodName: "UpdateFlowsBulk",
+			Handler:    _AdapterService_UpdateFlowsBulk_Handler,
+		},
+		{
+			MethodName: "UpdateFlowsIncrementally",
+			Handler:    _AdapterService_UpdateFlowsIncrementally_Handler,
+		},
+		{
+			MethodName: "SendPacketOut",
+			Handler:    _AdapterService_SendPacketOut_Handler,
+		},
+		{
+			MethodName: "UpdatePmConfig",
+			Handler:    _AdapterService_UpdatePmConfig_Handler,
+		},
+		{
+			MethodName: "DownloadOnuImage",
+			Handler:    _AdapterService_DownloadOnuImage_Handler,
+		},
+		{
+			MethodName: "GetOnuImageStatus",
+			Handler:    _AdapterService_GetOnuImageStatus_Handler,
+		},
+		{
+			MethodName: "AbortOnuImageUpgrade",
+			Handler:    _AdapterService_AbortOnuImageUpgrade_Handler,
+		},
+		{
+			MethodName: "GetOnuImages",
+			Handler:    _AdapterService_GetOnuImages_Handler,
+		},
+		{
+			MethodName: "ActivateOnuImage",
+			Handler:    _AdapterService_ActivateOnuImage_Handler,
+		},
+		{
+			MethodName: "CommitOnuImage",
+			Handler:    _AdapterService_CommitOnuImage_Handler,
+		},
+		{
+			MethodName: "DownloadImage",
+			Handler:    _AdapterService_DownloadImage_Handler,
+		},
+		{
+			MethodName: "GetImageDownloadStatus",
+			Handler:    _AdapterService_GetImageDownloadStatus_Handler,
+		},
+		{
+			MethodName: "CancelImageDownload",
+			Handler:    _AdapterService_CancelImageDownload_Handler,
+		},
+		{
+			MethodName: "ActivateImageUpdate",
+			Handler:    _AdapterService_ActivateImageUpdate_Handler,
+		},
+		{
+			MethodName: "RevertImageUpdate",
+			Handler:    _AdapterService_RevertImageUpdate_Handler,
+		},
+		{
+			MethodName: "StartOmciTest",
+			Handler:    _AdapterService_StartOmciTest_Handler,
+		},
+		{
+			MethodName: "SimulateAlarm",
+			Handler:    _AdapterService_SimulateAlarm_Handler,
+		},
+		{
+			MethodName: "SuppressEvent",
+			Handler:    _AdapterService_SuppressEvent_Handler,
+		},
+		{
+			MethodName: "UnSuppressEvent",
+			Handler:    _AdapterService_UnSuppressEvent_Handler,
+		},
+		{
+			MethodName: "GetExtValue",
+			Handler:    _AdapterService_GetExtValue_Handler,
+		},
+		{
+			MethodName: "SetExtValue",
+			Handler:    _AdapterService_SetExtValue_Handler,
+		},
+		{
+			MethodName: "GetSingleValue",
+			Handler:    _AdapterService_GetSingleValue_Handler,
+		},
+		{
+			MethodName: "SetSingleValue",
+			Handler:    _AdapterService_SetSingleValue_Handler,
+		},
+		{
+			MethodName: "DisableOnuDevice",
+			Handler:    _AdapterService_DisableOnuDevice_Handler,
+		},
+		{
+			MethodName: "EnableOnuDevice",
+			Handler:    _AdapterService_EnableOnuDevice_Handler,
+		},
+		{
+			MethodName: "DisableOnuSerialNumber",
+			Handler:    _AdapterService_DisableOnuSerialNumber_Handler,
+		},
+		{
+			MethodName: "EnableOnuSerialNumber",
+			Handler:    _AdapterService_EnableOnuSerialNumber_Handler,
+		},
+		{
+			MethodName: "UpdateDevice",
+			Handler:    _AdapterService_UpdateDevice_Handler,
+		},
+	},
+	Streams: []grpc.StreamDesc{
+		{
+			StreamName:    "GetHealthStatus",
+			Handler:       _AdapterService_GetHealthStatus_Handler,
+			ServerStreams: true,
+			ClientStreams: true,
+		},
+	},
+	Metadata: "voltha_protos/adapter_service.proto",
+}
diff --git a/go/common/common.pb.go b/go/common/common.pb.go
index 593ef2d..0312ed7 100644
--- a/go/common/common.pb.go
+++ b/go/common/common.pb.go
@@ -1,24 +1,25 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// 	protoc-gen-go v1.36.11
+// 	protoc        v4.25.8
 // source: voltha_protos/common.proto
 
 package common
 
 import (
-	fmt "fmt"
-	proto "github.com/golang/protobuf/proto"
-	math "math"
+	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+	reflect "reflect"
+	sync "sync"
+	unsafe "unsafe"
 )
 
-// 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
+const (
+	// Verify that this generated code is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+	// Verify that runtime/protoimpl is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
 
 type TestModeKeys int32
 
@@ -26,20 +27,41 @@
 	TestModeKeys_api_test TestModeKeys = 0
 )
 
-var TestModeKeys_name = map[int32]string{
-	0: "api_test",
-}
+// Enum value maps for TestModeKeys.
+var (
+	TestModeKeys_name = map[int32]string{
+		0: "api_test",
+	}
+	TestModeKeys_value = map[string]int32{
+		"api_test": 0,
+	}
+)
 
-var TestModeKeys_value = map[string]int32{
-	"api_test": 0,
+func (x TestModeKeys) Enum() *TestModeKeys {
+	p := new(TestModeKeys)
+	*p = x
+	return p
 }
 
 func (x TestModeKeys) String() string {
-	return proto.EnumName(TestModeKeys_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (TestModeKeys) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_common_proto_enumTypes[0].Descriptor()
+}
+
+func (TestModeKeys) Type() protoreflect.EnumType {
+	return &file_voltha_protos_common_proto_enumTypes[0]
+}
+
+func (x TestModeKeys) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use TestModeKeys.Descriptor instead.
 func (TestModeKeys) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_c2e3fd231961e826, []int{0}
+	return file_voltha_protos_common_proto_rawDescGZIP(), []int{0}
 }
 
 // Administrative State
@@ -59,28 +81,49 @@
 	AdminState_DOWNLOADING_IMAGE AdminState_Types = 4
 )
 
-var AdminState_Types_name = map[int32]string{
-	0: "UNKNOWN",
-	1: "PREPROVISIONED",
-	2: "ENABLED",
-	3: "DISABLED",
-	4: "DOWNLOADING_IMAGE",
-}
+// Enum value maps for AdminState_Types.
+var (
+	AdminState_Types_name = map[int32]string{
+		0: "UNKNOWN",
+		1: "PREPROVISIONED",
+		2: "ENABLED",
+		3: "DISABLED",
+		4: "DOWNLOADING_IMAGE",
+	}
+	AdminState_Types_value = map[string]int32{
+		"UNKNOWN":           0,
+		"PREPROVISIONED":    1,
+		"ENABLED":           2,
+		"DISABLED":          3,
+		"DOWNLOADING_IMAGE": 4,
+	}
+)
 
-var AdminState_Types_value = map[string]int32{
-	"UNKNOWN":           0,
-	"PREPROVISIONED":    1,
-	"ENABLED":           2,
-	"DISABLED":          3,
-	"DOWNLOADING_IMAGE": 4,
+func (x AdminState_Types) Enum() *AdminState_Types {
+	p := new(AdminState_Types)
+	*p = x
+	return p
 }
 
 func (x AdminState_Types) String() string {
-	return proto.EnumName(AdminState_Types_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (AdminState_Types) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_common_proto_enumTypes[1].Descriptor()
+}
+
+func (AdminState_Types) Type() protoreflect.EnumType {
+	return &file_voltha_protos_common_proto_enumTypes[1]
+}
+
+func (x AdminState_Types) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use AdminState_Types.Descriptor instead.
 func (AdminState_Types) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_c2e3fd231961e826, []int{4, 0}
+	return file_voltha_protos_common_proto_rawDescGZIP(), []int{4, 0}
 }
 
 // Operational Status
@@ -107,36 +150,57 @@
 	OperStatus_REBOOTED OperStatus_Types = 8
 )
 
-var OperStatus_Types_name = map[int32]string{
-	0: "UNKNOWN",
-	1: "DISCOVERED",
-	2: "ACTIVATING",
-	3: "TESTING",
-	4: "ACTIVE",
-	5: "FAILED",
-	6: "RECONCILING",
-	7: "RECONCILING_FAILED",
-	8: "REBOOTED",
-}
+// Enum value maps for OperStatus_Types.
+var (
+	OperStatus_Types_name = map[int32]string{
+		0: "UNKNOWN",
+		1: "DISCOVERED",
+		2: "ACTIVATING",
+		3: "TESTING",
+		4: "ACTIVE",
+		5: "FAILED",
+		6: "RECONCILING",
+		7: "RECONCILING_FAILED",
+		8: "REBOOTED",
+	}
+	OperStatus_Types_value = map[string]int32{
+		"UNKNOWN":            0,
+		"DISCOVERED":         1,
+		"ACTIVATING":         2,
+		"TESTING":            3,
+		"ACTIVE":             4,
+		"FAILED":             5,
+		"RECONCILING":        6,
+		"RECONCILING_FAILED": 7,
+		"REBOOTED":           8,
+	}
+)
 
-var OperStatus_Types_value = map[string]int32{
-	"UNKNOWN":            0,
-	"DISCOVERED":         1,
-	"ACTIVATING":         2,
-	"TESTING":            3,
-	"ACTIVE":             4,
-	"FAILED":             5,
-	"RECONCILING":        6,
-	"RECONCILING_FAILED": 7,
-	"REBOOTED":           8,
+func (x OperStatus_Types) Enum() *OperStatus_Types {
+	p := new(OperStatus_Types)
+	*p = x
+	return p
 }
 
 func (x OperStatus_Types) String() string {
-	return proto.EnumName(OperStatus_Types_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OperStatus_Types) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_common_proto_enumTypes[2].Descriptor()
+}
+
+func (OperStatus_Types) Type() protoreflect.EnumType {
+	return &file_voltha_protos_common_proto_enumTypes[2]
+}
+
+func (x OperStatus_Types) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OperStatus_Types.Descriptor instead.
 func (OperStatus_Types) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_c2e3fd231961e826, []int{5, 0}
+	return file_voltha_protos_common_proto_rawDescGZIP(), []int{5, 0}
 }
 
 // Connectivity Status
@@ -151,24 +215,45 @@
 	ConnectStatus_REACHABLE ConnectStatus_Types = 2
 )
 
-var ConnectStatus_Types_name = map[int32]string{
-	0: "UNKNOWN",
-	1: "UNREACHABLE",
-	2: "REACHABLE",
-}
+// Enum value maps for ConnectStatus_Types.
+var (
+	ConnectStatus_Types_name = map[int32]string{
+		0: "UNKNOWN",
+		1: "UNREACHABLE",
+		2: "REACHABLE",
+	}
+	ConnectStatus_Types_value = map[string]int32{
+		"UNKNOWN":     0,
+		"UNREACHABLE": 1,
+		"REACHABLE":   2,
+	}
+)
 
-var ConnectStatus_Types_value = map[string]int32{
-	"UNKNOWN":     0,
-	"UNREACHABLE": 1,
-	"REACHABLE":   2,
+func (x ConnectStatus_Types) Enum() *ConnectStatus_Types {
+	p := new(ConnectStatus_Types)
+	*p = x
+	return p
 }
 
 func (x ConnectStatus_Types) String() string {
-	return proto.EnumName(ConnectStatus_Types_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (ConnectStatus_Types) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_common_proto_enumTypes[3].Descriptor()
+}
+
+func (ConnectStatus_Types) Type() protoreflect.EnumType {
+	return &file_voltha_protos_common_proto_enumTypes[3]
+}
+
+func (x ConnectStatus_Types) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use ConnectStatus_Types.Descriptor instead.
 func (ConnectStatus_Types) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_c2e3fd231961e826, []int{6, 0}
+	return file_voltha_protos_common_proto_rawDescGZIP(), []int{6, 0}
 }
 
 type OperationResp_OperationReturnCode int32
@@ -180,362 +265,434 @@
 	OperationResp_OPERATION_IN_PROGRESS OperationResp_OperationReturnCode = 3
 )
 
-var OperationResp_OperationReturnCode_name = map[int32]string{
-	0: "OPERATION_SUCCESS",
-	1: "OPERATION_FAILURE",
-	2: "OPERATION_UNSUPPORTED",
-	3: "OPERATION_IN_PROGRESS",
-}
+// Enum value maps for OperationResp_OperationReturnCode.
+var (
+	OperationResp_OperationReturnCode_name = map[int32]string{
+		0: "OPERATION_SUCCESS",
+		1: "OPERATION_FAILURE",
+		2: "OPERATION_UNSUPPORTED",
+		3: "OPERATION_IN_PROGRESS",
+	}
+	OperationResp_OperationReturnCode_value = map[string]int32{
+		"OPERATION_SUCCESS":     0,
+		"OPERATION_FAILURE":     1,
+		"OPERATION_UNSUPPORTED": 2,
+		"OPERATION_IN_PROGRESS": 3,
+	}
+)
 
-var OperationResp_OperationReturnCode_value = map[string]int32{
-	"OPERATION_SUCCESS":     0,
-	"OPERATION_FAILURE":     1,
-	"OPERATION_UNSUPPORTED": 2,
-	"OPERATION_IN_PROGRESS": 3,
+func (x OperationResp_OperationReturnCode) Enum() *OperationResp_OperationReturnCode {
+	p := new(OperationResp_OperationReturnCode)
+	*p = x
+	return p
 }
 
 func (x OperationResp_OperationReturnCode) String() string {
-	return proto.EnumName(OperationResp_OperationReturnCode_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OperationResp_OperationReturnCode) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_common_proto_enumTypes[4].Descriptor()
+}
+
+func (OperationResp_OperationReturnCode) Type() protoreflect.EnumType {
+	return &file_voltha_protos_common_proto_enumTypes[4]
+}
+
+func (x OperationResp_OperationReturnCode) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OperationResp_OperationReturnCode.Descriptor instead.
 func (OperationResp_OperationReturnCode) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_c2e3fd231961e826, []int{7, 0}
+	return file_voltha_protos_common_proto_rawDescGZIP(), []int{7, 0}
 }
 
 // Full path for KV store
 type Key struct {
-	Key                  string   `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Key           string                 `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *Key) Reset()         { *m = Key{} }
-func (m *Key) String() string { return proto.CompactTextString(m) }
-func (*Key) ProtoMessage()    {}
+func (x *Key) Reset() {
+	*x = Key{}
+	mi := &file_voltha_protos_common_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *Key) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Key) ProtoMessage() {}
+
+func (x *Key) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_common_proto_msgTypes[0]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use Key.ProtoReflect.Descriptor instead.
 func (*Key) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c2e3fd231961e826, []int{0}
+	return file_voltha_protos_common_proto_rawDescGZIP(), []int{0}
 }
 
-func (m *Key) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_Key.Unmarshal(m, b)
-}
-func (m *Key) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_Key.Marshal(b, m, deterministic)
-}
-func (m *Key) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Key.Merge(m, src)
-}
-func (m *Key) XXX_Size() int {
-	return xxx_messageInfo_Key.Size(m)
-}
-func (m *Key) XXX_DiscardUnknown() {
-	xxx_messageInfo_Key.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_Key proto.InternalMessageInfo
-
-func (m *Key) GetKey() string {
-	if m != nil {
-		return m.Key
+func (x *Key) GetKey() string {
+	if x != nil {
+		return x.Key
 	}
 	return ""
 }
 
 // Convey a resource identifier
 type ID struct {
-	Id                   string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *ID) Reset()         { *m = ID{} }
-func (m *ID) String() string { return proto.CompactTextString(m) }
-func (*ID) ProtoMessage()    {}
+func (x *ID) Reset() {
+	*x = ID{}
+	mi := &file_voltha_protos_common_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ID) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ID) ProtoMessage() {}
+
+func (x *ID) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_common_proto_msgTypes[1]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ID.ProtoReflect.Descriptor instead.
 func (*ID) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c2e3fd231961e826, []int{1}
+	return file_voltha_protos_common_proto_rawDescGZIP(), []int{1}
 }
 
-func (m *ID) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_ID.Unmarshal(m, b)
-}
-func (m *ID) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_ID.Marshal(b, m, deterministic)
-}
-func (m *ID) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_ID.Merge(m, src)
-}
-func (m *ID) XXX_Size() int {
-	return xxx_messageInfo_ID.Size(m)
-}
-func (m *ID) XXX_DiscardUnknown() {
-	xxx_messageInfo_ID.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_ID proto.InternalMessageInfo
-
-func (m *ID) GetId() string {
-	if m != nil {
-		return m.Id
+func (x *ID) GetId() string {
+	if x != nil {
+		return x.Id
 	}
 	return ""
 }
 
 // Represents a list of IDs
 type IDs struct {
-	Items                []*ID    `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Items         []*ID                  `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *IDs) Reset()         { *m = IDs{} }
-func (m *IDs) String() string { return proto.CompactTextString(m) }
-func (*IDs) ProtoMessage()    {}
+func (x *IDs) Reset() {
+	*x = IDs{}
+	mi := &file_voltha_protos_common_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *IDs) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*IDs) ProtoMessage() {}
+
+func (x *IDs) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_common_proto_msgTypes[2]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use IDs.ProtoReflect.Descriptor instead.
 func (*IDs) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c2e3fd231961e826, []int{2}
+	return file_voltha_protos_common_proto_rawDescGZIP(), []int{2}
 }
 
-func (m *IDs) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_IDs.Unmarshal(m, b)
-}
-func (m *IDs) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_IDs.Marshal(b, m, deterministic)
-}
-func (m *IDs) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_IDs.Merge(m, src)
-}
-func (m *IDs) XXX_Size() int {
-	return xxx_messageInfo_IDs.Size(m)
-}
-func (m *IDs) XXX_DiscardUnknown() {
-	xxx_messageInfo_IDs.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_IDs proto.InternalMessageInfo
-
-func (m *IDs) GetItems() []*ID {
-	if m != nil {
-		return m.Items
+func (x *IDs) GetItems() []*ID {
+	if x != nil {
+		return x.Items
 	}
 	return nil
 }
 
 type Connection struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
 	// endpoint is the endpoint sending the request
 	Endpoint string `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty"`
 	// contextInfo represents additional contextual information
 	ContextInfo string `protobuf:"bytes,2,opt,name=contextInfo,proto3" json:"contextInfo,omitempty"`
 	// keep_alive_interval is used to indicate to the remote endpoint how often it
 	// will get a keep alive notification
-	KeepAliveInterval    int64    `protobuf:"varint,3,opt,name=keep_alive_interval,json=keepAliveInterval,proto3" json:"keep_alive_interval,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	KeepAliveInterval int64 `protobuf:"varint,3,opt,name=keep_alive_interval,json=keepAliveInterval,proto3" json:"keep_alive_interval,omitempty"`
+	unknownFields     protoimpl.UnknownFields
+	sizeCache         protoimpl.SizeCache
 }
 
-func (m *Connection) Reset()         { *m = Connection{} }
-func (m *Connection) String() string { return proto.CompactTextString(m) }
-func (*Connection) ProtoMessage()    {}
+func (x *Connection) Reset() {
+	*x = Connection{}
+	mi := &file_voltha_protos_common_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *Connection) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Connection) ProtoMessage() {}
+
+func (x *Connection) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_common_proto_msgTypes[3]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use Connection.ProtoReflect.Descriptor instead.
 func (*Connection) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c2e3fd231961e826, []int{3}
+	return file_voltha_protos_common_proto_rawDescGZIP(), []int{3}
 }
 
-func (m *Connection) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_Connection.Unmarshal(m, b)
-}
-func (m *Connection) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_Connection.Marshal(b, m, deterministic)
-}
-func (m *Connection) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Connection.Merge(m, src)
-}
-func (m *Connection) XXX_Size() int {
-	return xxx_messageInfo_Connection.Size(m)
-}
-func (m *Connection) XXX_DiscardUnknown() {
-	xxx_messageInfo_Connection.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_Connection proto.InternalMessageInfo
-
-func (m *Connection) GetEndpoint() string {
-	if m != nil {
-		return m.Endpoint
+func (x *Connection) GetEndpoint() string {
+	if x != nil {
+		return x.Endpoint
 	}
 	return ""
 }
 
-func (m *Connection) GetContextInfo() string {
-	if m != nil {
-		return m.ContextInfo
+func (x *Connection) GetContextInfo() string {
+	if x != nil {
+		return x.ContextInfo
 	}
 	return ""
 }
 
-func (m *Connection) GetKeepAliveInterval() int64 {
-	if m != nil {
-		return m.KeepAliveInterval
+func (x *Connection) GetKeepAliveInterval() int64 {
+	if x != nil {
+		return x.KeepAliveInterval
 	}
 	return 0
 }
 
 type AdminState struct {
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *AdminState) Reset()         { *m = AdminState{} }
-func (m *AdminState) String() string { return proto.CompactTextString(m) }
-func (*AdminState) ProtoMessage()    {}
+func (x *AdminState) Reset() {
+	*x = AdminState{}
+	mi := &file_voltha_protos_common_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *AdminState) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AdminState) ProtoMessage() {}
+
+func (x *AdminState) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_common_proto_msgTypes[4]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use AdminState.ProtoReflect.Descriptor instead.
 func (*AdminState) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c2e3fd231961e826, []int{4}
+	return file_voltha_protos_common_proto_rawDescGZIP(), []int{4}
 }
 
-func (m *AdminState) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_AdminState.Unmarshal(m, b)
-}
-func (m *AdminState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_AdminState.Marshal(b, m, deterministic)
-}
-func (m *AdminState) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_AdminState.Merge(m, src)
-}
-func (m *AdminState) XXX_Size() int {
-	return xxx_messageInfo_AdminState.Size(m)
-}
-func (m *AdminState) XXX_DiscardUnknown() {
-	xxx_messageInfo_AdminState.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_AdminState proto.InternalMessageInfo
-
 type OperStatus struct {
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *OperStatus) Reset()         { *m = OperStatus{} }
-func (m *OperStatus) String() string { return proto.CompactTextString(m) }
-func (*OperStatus) ProtoMessage()    {}
+func (x *OperStatus) Reset() {
+	*x = OperStatus{}
+	mi := &file_voltha_protos_common_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OperStatus) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OperStatus) ProtoMessage() {}
+
+func (x *OperStatus) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_common_proto_msgTypes[5]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OperStatus.ProtoReflect.Descriptor instead.
 func (*OperStatus) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c2e3fd231961e826, []int{5}
+	return file_voltha_protos_common_proto_rawDescGZIP(), []int{5}
 }
 
-func (m *OperStatus) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OperStatus.Unmarshal(m, b)
-}
-func (m *OperStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OperStatus.Marshal(b, m, deterministic)
-}
-func (m *OperStatus) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OperStatus.Merge(m, src)
-}
-func (m *OperStatus) XXX_Size() int {
-	return xxx_messageInfo_OperStatus.Size(m)
-}
-func (m *OperStatus) XXX_DiscardUnknown() {
-	xxx_messageInfo_OperStatus.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OperStatus proto.InternalMessageInfo
-
 type ConnectStatus struct {
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *ConnectStatus) Reset()         { *m = ConnectStatus{} }
-func (m *ConnectStatus) String() string { return proto.CompactTextString(m) }
-func (*ConnectStatus) ProtoMessage()    {}
+func (x *ConnectStatus) Reset() {
+	*x = ConnectStatus{}
+	mi := &file_voltha_protos_common_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ConnectStatus) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ConnectStatus) ProtoMessage() {}
+
+func (x *ConnectStatus) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_common_proto_msgTypes[6]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ConnectStatus.ProtoReflect.Descriptor instead.
 func (*ConnectStatus) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c2e3fd231961e826, []int{6}
+	return file_voltha_protos_common_proto_rawDescGZIP(), []int{6}
 }
 
-func (m *ConnectStatus) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_ConnectStatus.Unmarshal(m, b)
-}
-func (m *ConnectStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_ConnectStatus.Marshal(b, m, deterministic)
-}
-func (m *ConnectStatus) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_ConnectStatus.Merge(m, src)
-}
-func (m *ConnectStatus) XXX_Size() int {
-	return xxx_messageInfo_ConnectStatus.Size(m)
-}
-func (m *ConnectStatus) XXX_DiscardUnknown() {
-	xxx_messageInfo_ConnectStatus.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_ConnectStatus proto.InternalMessageInfo
-
 type OperationResp struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
 	// Return code
 	Code OperationResp_OperationReturnCode `protobuf:"varint,1,opt,name=code,proto3,enum=common.OperationResp_OperationReturnCode" json:"code,omitempty"`
 	// Additional Info
-	AdditionalInfo       string   `protobuf:"bytes,2,opt,name=additional_info,json=additionalInfo,proto3" json:"additional_info,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	AdditionalInfo string `protobuf:"bytes,2,opt,name=additional_info,json=additionalInfo,proto3" json:"additional_info,omitempty"`
+	unknownFields  protoimpl.UnknownFields
+	sizeCache      protoimpl.SizeCache
 }
 
-func (m *OperationResp) Reset()         { *m = OperationResp{} }
-func (m *OperationResp) String() string { return proto.CompactTextString(m) }
-func (*OperationResp) ProtoMessage()    {}
+func (x *OperationResp) Reset() {
+	*x = OperationResp{}
+	mi := &file_voltha_protos_common_proto_msgTypes[7]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OperationResp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OperationResp) ProtoMessage() {}
+
+func (x *OperationResp) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_common_proto_msgTypes[7]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OperationResp.ProtoReflect.Descriptor instead.
 func (*OperationResp) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c2e3fd231961e826, []int{7}
+	return file_voltha_protos_common_proto_rawDescGZIP(), []int{7}
 }
 
-func (m *OperationResp) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OperationResp.Unmarshal(m, b)
-}
-func (m *OperationResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OperationResp.Marshal(b, m, deterministic)
-}
-func (m *OperationResp) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OperationResp.Merge(m, src)
-}
-func (m *OperationResp) XXX_Size() int {
-	return xxx_messageInfo_OperationResp.Size(m)
-}
-func (m *OperationResp) XXX_DiscardUnknown() {
-	xxx_messageInfo_OperationResp.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OperationResp proto.InternalMessageInfo
-
-func (m *OperationResp) GetCode() OperationResp_OperationReturnCode {
-	if m != nil {
-		return m.Code
+func (x *OperationResp) GetCode() OperationResp_OperationReturnCode {
+	if x != nil {
+		return x.Code
 	}
 	return OperationResp_OPERATION_SUCCESS
 }
 
-func (m *OperationResp) GetAdditionalInfo() string {
-	if m != nil {
-		return m.AdditionalInfo
+func (x *OperationResp) GetAdditionalInfo() string {
+	if x != nil {
+		return x.AdditionalInfo
 	}
 	return ""
 }
 
 type PortStatistics struct {
-	IntfId  uint32 `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
-	RxBytes uint64 `protobuf:"fixed64,2,opt,name=rx_bytes,json=rxBytes,proto3" json:"rx_bytes,omitempty"`
+	state   protoimpl.MessageState `protogen:"open.v1"`
+	IntfId  uint32                 `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
+	RxBytes uint64                 `protobuf:"fixed64,2,opt,name=rx_bytes,json=rxBytes,proto3" json:"rx_bytes,omitempty"`
 	// Deprecated: OLT being a Layer 2 device, use rx_frames (field 17) instead
-	RxPackets uint64 `protobuf:"fixed64,3,opt,name=rx_packets,json=rxPackets,proto3" json:"rx_packets,omitempty"` // Deprecated: Do not use.
+	//
+	// Deprecated: Marked as deprecated in voltha_protos/common.proto.
+	RxPackets uint64 `protobuf:"fixed64,3,opt,name=rx_packets,json=rxPackets,proto3" json:"rx_packets,omitempty"`
 	// Deprecated: OLT being a Layer 2 device, use rx_ucast_frames (field 63) instead
-	RxUcastPackets uint64 `protobuf:"fixed64,4,opt,name=rx_ucast_packets,json=rxUcastPackets,proto3" json:"rx_ucast_packets,omitempty"` // Deprecated: Do not use.
+	//
+	// Deprecated: Marked as deprecated in voltha_protos/common.proto.
+	RxUcastPackets uint64 `protobuf:"fixed64,4,opt,name=rx_ucast_packets,json=rxUcastPackets,proto3" json:"rx_ucast_packets,omitempty"`
 	// Deprecated: OLT being a Layer 2 device, use rx_mcast_frames (field 64) instead
-	RxMcastPackets uint64 `protobuf:"fixed64,5,opt,name=rx_mcast_packets,json=rxMcastPackets,proto3" json:"rx_mcast_packets,omitempty"` // Deprecated: Do not use.
+	//
+	// Deprecated: Marked as deprecated in voltha_protos/common.proto.
+	RxMcastPackets uint64 `protobuf:"fixed64,5,opt,name=rx_mcast_packets,json=rxMcastPackets,proto3" json:"rx_mcast_packets,omitempty"`
 	// Deprecated: OLT being a Layer 2 device, use rx_bcast_frames (field 65) instead
-	RxBcastPackets uint64 `protobuf:"fixed64,6,opt,name=rx_bcast_packets,json=rxBcastPackets,proto3" json:"rx_bcast_packets,omitempty"` // Deprecated: Do not use.
+	//
+	// Deprecated: Marked as deprecated in voltha_protos/common.proto.
+	RxBcastPackets uint64 `protobuf:"fixed64,6,opt,name=rx_bcast_packets,json=rxBcastPackets,proto3" json:"rx_bcast_packets,omitempty"`
 	// Deprecated: OLT being a Layer 2 device, use rx_error_frames (field 66) instead
-	RxErrorPackets          uint64 `protobuf:"fixed64,7,opt,name=rx_error_packets,json=rxErrorPackets,proto3" json:"rx_error_packets,omitempty"` // Deprecated: Do not use.
+	//
+	// Deprecated: Marked as deprecated in voltha_protos/common.proto.
+	RxErrorPackets          uint64 `protobuf:"fixed64,7,opt,name=rx_error_packets,json=rxErrorPackets,proto3" json:"rx_error_packets,omitempty"`
 	RxFrames                uint64 `protobuf:"fixed64,17,opt,name=rx_frames,json=rxFrames,proto3" json:"rx_frames,omitempty"`
 	RxFrames_64             uint64 `protobuf:"fixed64,18,opt,name=rx_frames_64,json=rxFrames64,proto3" json:"rx_frames_64,omitempty"`
 	RxFrames_65_127         uint64 `protobuf:"fixed64,19,opt,name=rx_frames_65_127,json=rxFrames65127,proto3" json:"rx_frames_65_127,omitempty"`
@@ -564,710 +721,804 @@
 	RxFcsErrorPackets       uint64 `protobuf:"fixed64,62,opt,name=rxFcsErrorPackets,proto3" json:"rxFcsErrorPackets,omitempty"`
 	TxBytes                 uint64 `protobuf:"fixed64,8,opt,name=tx_bytes,json=txBytes,proto3" json:"tx_bytes,omitempty"`
 	// Deprecated: OLT being a Layer 2 device, use tx_frames (field 28) instead
-	TxPackets uint64 `protobuf:"fixed64,9,opt,name=tx_packets,json=txPackets,proto3" json:"tx_packets,omitempty"` // Deprecated: Do not use.
+	//
+	// Deprecated: Marked as deprecated in voltha_protos/common.proto.
+	TxPackets uint64 `protobuf:"fixed64,9,opt,name=tx_packets,json=txPackets,proto3" json:"tx_packets,omitempty"`
 	// Deprecated: OLT being a Layer 2 device, use tx_ucast_frames (field 68) instead
-	TxUcastPackets uint64 `protobuf:"fixed64,10,opt,name=tx_ucast_packets,json=txUcastPackets,proto3" json:"tx_ucast_packets,omitempty"` // Deprecated: Do not use.
+	//
+	// Deprecated: Marked as deprecated in voltha_protos/common.proto.
+	TxUcastPackets uint64 `protobuf:"fixed64,10,opt,name=tx_ucast_packets,json=txUcastPackets,proto3" json:"tx_ucast_packets,omitempty"`
 	// Deprecated: OLT being a Layer 2 device, use tx_mcast_frames (field 69) instead
-	TxMcastPackets uint64 `protobuf:"fixed64,11,opt,name=tx_mcast_packets,json=txMcastPackets,proto3" json:"tx_mcast_packets,omitempty"` // Deprecated: Do not use.
+	//
+	// Deprecated: Marked as deprecated in voltha_protos/common.proto.
+	TxMcastPackets uint64 `protobuf:"fixed64,11,opt,name=tx_mcast_packets,json=txMcastPackets,proto3" json:"tx_mcast_packets,omitempty"`
 	// Deprecated: OLT being a Layer 2 device, use tx_bcast_frames (field 70) instead
-	TxBcastPackets uint64 `protobuf:"fixed64,12,opt,name=tx_bcast_packets,json=txBcastPackets,proto3" json:"tx_bcast_packets,omitempty"` // Deprecated: Do not use.
+	//
+	// Deprecated: Marked as deprecated in voltha_protos/common.proto.
+	TxBcastPackets uint64 `protobuf:"fixed64,12,opt,name=tx_bcast_packets,json=txBcastPackets,proto3" json:"tx_bcast_packets,omitempty"`
 	// Deprecated: OLT being a Layer 2 device, use tx_error_frames (field 71) instead
-	TxErrorPackets         uint64   `protobuf:"fixed64,13,opt,name=tx_error_packets,json=txErrorPackets,proto3" json:"tx_error_packets,omitempty"` // Deprecated: Do not use.
-	TxFrames               uint64   `protobuf:"fixed64,28,opt,name=tx_frames,json=txFrames,proto3" json:"tx_frames,omitempty"`
-	TxFrames_64            uint64   `protobuf:"fixed64,29,opt,name=tx_frames_64,json=txFrames64,proto3" json:"tx_frames_64,omitempty"`
-	TxFrames_65_127        uint64   `protobuf:"fixed64,30,opt,name=tx_frames_65_127,json=txFrames65127,proto3" json:"tx_frames_65_127,omitempty"`
-	TxFrames_128_255       uint64   `protobuf:"fixed64,31,opt,name=tx_frames_128_255,json=txFrames128255,proto3" json:"tx_frames_128_255,omitempty"`
-	TxFrames_256_511       uint64   `protobuf:"fixed64,32,opt,name=tx_frames_256_511,json=txFrames256511,proto3" json:"tx_frames_256_511,omitempty"`
-	TxFrames_512_1023      uint64   `protobuf:"fixed64,33,opt,name=tx_frames_512_1023,json=txFrames5121023,proto3" json:"tx_frames_512_1023,omitempty"`
-	TxFrames_1024_1518     uint64   `protobuf:"fixed64,34,opt,name=tx_frames_1024_1518,json=txFrames10241518,proto3" json:"tx_frames_1024_1518,omitempty"`
-	TxFrames_1519_2047     uint64   `protobuf:"fixed64,35,opt,name=tx_frames_1519_2047,json=txFrames15192047,proto3" json:"tx_frames_1519_2047,omitempty"`
-	TxFrames_2048_4095     uint64   `protobuf:"fixed64,36,opt,name=tx_frames_2048_4095,json=txFrames20484095,proto3" json:"tx_frames_2048_4095,omitempty"`
-	TxFrames_4096_9216     uint64   `protobuf:"fixed64,37,opt,name=tx_frames_4096_9216,json=txFrames40969216,proto3" json:"tx_frames_4096_9216,omitempty"`
-	TxFrames_9217_16383    uint64   `protobuf:"fixed64,38,opt,name=tx_frames_9217_16383,json=txFrames921716383,proto3" json:"tx_frames_9217_16383,omitempty"`
-	TxUndersizePackets     uint64   `protobuf:"fixed64,41,opt,name=txUndersizePackets,proto3" json:"txUndersizePackets,omitempty"`
-	TxOversizePackets      uint64   `protobuf:"fixed64,42,opt,name=txOversizePackets,proto3" json:"txOversizePackets,omitempty"`
-	TxGem                  uint64   `protobuf:"fixed64,54,opt,name=txGem,proto3" json:"txGem,omitempty"`
-	TxCpu                  uint64   `protobuf:"fixed64,55,opt,name=txCpu,proto3" json:"txCpu,omitempty"`
-	TxOmci                 uint64   `protobuf:"fixed64,56,opt,name=txOmci,proto3" json:"txOmci,omitempty"`
-	TxDroppedIllegalLength uint64   `protobuf:"fixed64,57,opt,name=txDroppedIllegalLength,proto3" json:"txDroppedIllegalLength,omitempty"`
-	TxDroppedTpidMiss      uint64   `protobuf:"fixed64,58,opt,name=txDroppedTpidMiss,proto3" json:"txDroppedTpidMiss,omitempty"`
-	TxDroppedVidMiss       uint64   `protobuf:"fixed64,59,opt,name=txDroppedVidMiss,proto3" json:"txDroppedVidMiss,omitempty"`
-	TxDroppedTotal         uint64   `protobuf:"fixed64,60,opt,name=txDroppedTotal,proto3" json:"txDroppedTotal,omitempty"`
-	BipErrors              uint64   `protobuf:"fixed64,15,opt,name=bip_errors,json=bipErrors,proto3" json:"bip_errors,omitempty"`
-	BipUnits               uint64   `protobuf:"fixed64,61,opt,name=bip_units,json=bipUnits,proto3" json:"bip_units,omitempty"`
-	Timestamp              uint32   `protobuf:"fixed32,16,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
-	RxUcastFrames          uint64   `protobuf:"fixed64,63,opt,name=rx_ucast_frames,json=rxUcastFrames,proto3" json:"rx_ucast_frames,omitempty"`
-	RxMcastFrames          uint64   `protobuf:"fixed64,64,opt,name=rx_mcast_frames,json=rxMcastFrames,proto3" json:"rx_mcast_frames,omitempty"`
-	RxBcastFrames          uint64   `protobuf:"fixed64,65,opt,name=rx_bcast_frames,json=rxBcastFrames,proto3" json:"rx_bcast_frames,omitempty"`
-	RxErrorFrames          uint64   `protobuf:"fixed64,66,opt,name=rx_error_frames,json=rxErrorFrames,proto3" json:"rx_error_frames,omitempty"`
-	RxRightFrames          uint64   `protobuf:"fixed64,67,opt,name=rx_right_frames,json=rxRightFrames,proto3" json:"rx_right_frames,omitempty"`
-	TxUcastFrames          uint64   `protobuf:"fixed64,68,opt,name=tx_ucast_frames,json=txUcastFrames,proto3" json:"tx_ucast_frames,omitempty"`
-	TxMcastFrames          uint64   `protobuf:"fixed64,69,opt,name=tx_mcast_frames,json=txMcastFrames,proto3" json:"tx_mcast_frames,omitempty"`
-	TxBcastFrames          uint64   `protobuf:"fixed64,70,opt,name=tx_bcast_frames,json=txBcastFrames,proto3" json:"tx_bcast_frames,omitempty"`
-	TxErrorFrames          uint64   `protobuf:"fixed64,71,opt,name=tx_error_frames,json=txErrorFrames,proto3" json:"tx_error_frames,omitempty"`
-	RxDiscardedFrames      uint64   `protobuf:"fixed64,72,opt,name=rx_discarded_frames,json=rxDiscardedFrames,proto3" json:"rx_discarded_frames,omitempty"`
-	XXX_NoUnkeyedLiteral   struct{} `json:"-"`
-	XXX_unrecognized       []byte   `json:"-"`
-	XXX_sizecache          int32    `json:"-"`
+	//
+	// Deprecated: Marked as deprecated in voltha_protos/common.proto.
+	TxErrorPackets         uint64 `protobuf:"fixed64,13,opt,name=tx_error_packets,json=txErrorPackets,proto3" json:"tx_error_packets,omitempty"`
+	TxFrames               uint64 `protobuf:"fixed64,28,opt,name=tx_frames,json=txFrames,proto3" json:"tx_frames,omitempty"`
+	TxFrames_64            uint64 `protobuf:"fixed64,29,opt,name=tx_frames_64,json=txFrames64,proto3" json:"tx_frames_64,omitempty"`
+	TxFrames_65_127        uint64 `protobuf:"fixed64,30,opt,name=tx_frames_65_127,json=txFrames65127,proto3" json:"tx_frames_65_127,omitempty"`
+	TxFrames_128_255       uint64 `protobuf:"fixed64,31,opt,name=tx_frames_128_255,json=txFrames128255,proto3" json:"tx_frames_128_255,omitempty"`
+	TxFrames_256_511       uint64 `protobuf:"fixed64,32,opt,name=tx_frames_256_511,json=txFrames256511,proto3" json:"tx_frames_256_511,omitempty"`
+	TxFrames_512_1023      uint64 `protobuf:"fixed64,33,opt,name=tx_frames_512_1023,json=txFrames5121023,proto3" json:"tx_frames_512_1023,omitempty"`
+	TxFrames_1024_1518     uint64 `protobuf:"fixed64,34,opt,name=tx_frames_1024_1518,json=txFrames10241518,proto3" json:"tx_frames_1024_1518,omitempty"`
+	TxFrames_1519_2047     uint64 `protobuf:"fixed64,35,opt,name=tx_frames_1519_2047,json=txFrames15192047,proto3" json:"tx_frames_1519_2047,omitempty"`
+	TxFrames_2048_4095     uint64 `protobuf:"fixed64,36,opt,name=tx_frames_2048_4095,json=txFrames20484095,proto3" json:"tx_frames_2048_4095,omitempty"`
+	TxFrames_4096_9216     uint64 `protobuf:"fixed64,37,opt,name=tx_frames_4096_9216,json=txFrames40969216,proto3" json:"tx_frames_4096_9216,omitempty"`
+	TxFrames_9217_16383    uint64 `protobuf:"fixed64,38,opt,name=tx_frames_9217_16383,json=txFrames921716383,proto3" json:"tx_frames_9217_16383,omitempty"`
+	TxUndersizePackets     uint64 `protobuf:"fixed64,41,opt,name=txUndersizePackets,proto3" json:"txUndersizePackets,omitempty"`
+	TxOversizePackets      uint64 `protobuf:"fixed64,42,opt,name=txOversizePackets,proto3" json:"txOversizePackets,omitempty"`
+	TxGem                  uint64 `protobuf:"fixed64,54,opt,name=txGem,proto3" json:"txGem,omitempty"`
+	TxCpu                  uint64 `protobuf:"fixed64,55,opt,name=txCpu,proto3" json:"txCpu,omitempty"`
+	TxOmci                 uint64 `protobuf:"fixed64,56,opt,name=txOmci,proto3" json:"txOmci,omitempty"`
+	TxDroppedIllegalLength uint64 `protobuf:"fixed64,57,opt,name=txDroppedIllegalLength,proto3" json:"txDroppedIllegalLength,omitempty"`
+	TxDroppedTpidMiss      uint64 `protobuf:"fixed64,58,opt,name=txDroppedTpidMiss,proto3" json:"txDroppedTpidMiss,omitempty"`
+	TxDroppedVidMiss       uint64 `protobuf:"fixed64,59,opt,name=txDroppedVidMiss,proto3" json:"txDroppedVidMiss,omitempty"`
+	TxDroppedTotal         uint64 `protobuf:"fixed64,60,opt,name=txDroppedTotal,proto3" json:"txDroppedTotal,omitempty"`
+	BipErrors              uint64 `protobuf:"fixed64,15,opt,name=bip_errors,json=bipErrors,proto3" json:"bip_errors,omitempty"`
+	BipUnits               uint64 `protobuf:"fixed64,61,opt,name=bip_units,json=bipUnits,proto3" json:"bip_units,omitempty"`
+	Timestamp              uint32 `protobuf:"fixed32,16,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
+	RxUcastFrames          uint64 `protobuf:"fixed64,63,opt,name=rx_ucast_frames,json=rxUcastFrames,proto3" json:"rx_ucast_frames,omitempty"`
+	RxMcastFrames          uint64 `protobuf:"fixed64,64,opt,name=rx_mcast_frames,json=rxMcastFrames,proto3" json:"rx_mcast_frames,omitempty"`
+	RxBcastFrames          uint64 `protobuf:"fixed64,65,opt,name=rx_bcast_frames,json=rxBcastFrames,proto3" json:"rx_bcast_frames,omitempty"`
+	RxErrorFrames          uint64 `protobuf:"fixed64,66,opt,name=rx_error_frames,json=rxErrorFrames,proto3" json:"rx_error_frames,omitempty"`
+	RxRightFrames          uint64 `protobuf:"fixed64,67,opt,name=rx_right_frames,json=rxRightFrames,proto3" json:"rx_right_frames,omitempty"`
+	TxUcastFrames          uint64 `protobuf:"fixed64,68,opt,name=tx_ucast_frames,json=txUcastFrames,proto3" json:"tx_ucast_frames,omitempty"`
+	TxMcastFrames          uint64 `protobuf:"fixed64,69,opt,name=tx_mcast_frames,json=txMcastFrames,proto3" json:"tx_mcast_frames,omitempty"`
+	TxBcastFrames          uint64 `protobuf:"fixed64,70,opt,name=tx_bcast_frames,json=txBcastFrames,proto3" json:"tx_bcast_frames,omitempty"`
+	TxErrorFrames          uint64 `protobuf:"fixed64,71,opt,name=tx_error_frames,json=txErrorFrames,proto3" json:"tx_error_frames,omitempty"`
+	RxDiscardedFrames      uint64 `protobuf:"fixed64,72,opt,name=rx_discarded_frames,json=rxDiscardedFrames,proto3" json:"rx_discarded_frames,omitempty"`
+	unknownFields          protoimpl.UnknownFields
+	sizeCache              protoimpl.SizeCache
 }
 
-func (m *PortStatistics) Reset()         { *m = PortStatistics{} }
-func (m *PortStatistics) String() string { return proto.CompactTextString(m) }
-func (*PortStatistics) ProtoMessage()    {}
+func (x *PortStatistics) Reset() {
+	*x = PortStatistics{}
+	mi := &file_voltha_protos_common_proto_msgTypes[8]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *PortStatistics) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PortStatistics) ProtoMessage() {}
+
+func (x *PortStatistics) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_common_proto_msgTypes[8]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use PortStatistics.ProtoReflect.Descriptor instead.
 func (*PortStatistics) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c2e3fd231961e826, []int{8}
+	return file_voltha_protos_common_proto_rawDescGZIP(), []int{8}
 }
 
-func (m *PortStatistics) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_PortStatistics.Unmarshal(m, b)
-}
-func (m *PortStatistics) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_PortStatistics.Marshal(b, m, deterministic)
-}
-func (m *PortStatistics) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_PortStatistics.Merge(m, src)
-}
-func (m *PortStatistics) XXX_Size() int {
-	return xxx_messageInfo_PortStatistics.Size(m)
-}
-func (m *PortStatistics) XXX_DiscardUnknown() {
-	xxx_messageInfo_PortStatistics.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_PortStatistics proto.InternalMessageInfo
-
-func (m *PortStatistics) GetIntfId() uint32 {
-	if m != nil {
-		return m.IntfId
+func (x *PortStatistics) GetIntfId() uint32 {
+	if x != nil {
+		return x.IntfId
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetRxBytes() uint64 {
-	if m != nil {
-		return m.RxBytes
+func (x *PortStatistics) GetRxBytes() uint64 {
+	if x != nil {
+		return x.RxBytes
 	}
 	return 0
 }
 
-// Deprecated: Do not use.
-func (m *PortStatistics) GetRxPackets() uint64 {
-	if m != nil {
-		return m.RxPackets
+// Deprecated: Marked as deprecated in voltha_protos/common.proto.
+func (x *PortStatistics) GetRxPackets() uint64 {
+	if x != nil {
+		return x.RxPackets
 	}
 	return 0
 }
 
-// Deprecated: Do not use.
-func (m *PortStatistics) GetRxUcastPackets() uint64 {
-	if m != nil {
-		return m.RxUcastPackets
+// Deprecated: Marked as deprecated in voltha_protos/common.proto.
+func (x *PortStatistics) GetRxUcastPackets() uint64 {
+	if x != nil {
+		return x.RxUcastPackets
 	}
 	return 0
 }
 
-// Deprecated: Do not use.
-func (m *PortStatistics) GetRxMcastPackets() uint64 {
-	if m != nil {
-		return m.RxMcastPackets
+// Deprecated: Marked as deprecated in voltha_protos/common.proto.
+func (x *PortStatistics) GetRxMcastPackets() uint64 {
+	if x != nil {
+		return x.RxMcastPackets
 	}
 	return 0
 }
 
-// Deprecated: Do not use.
-func (m *PortStatistics) GetRxBcastPackets() uint64 {
-	if m != nil {
-		return m.RxBcastPackets
+// Deprecated: Marked as deprecated in voltha_protos/common.proto.
+func (x *PortStatistics) GetRxBcastPackets() uint64 {
+	if x != nil {
+		return x.RxBcastPackets
 	}
 	return 0
 }
 
-// Deprecated: Do not use.
-func (m *PortStatistics) GetRxErrorPackets() uint64 {
-	if m != nil {
-		return m.RxErrorPackets
+// Deprecated: Marked as deprecated in voltha_protos/common.proto.
+func (x *PortStatistics) GetRxErrorPackets() uint64 {
+	if x != nil {
+		return x.RxErrorPackets
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetRxFrames() uint64 {
-	if m != nil {
-		return m.RxFrames
+func (x *PortStatistics) GetRxFrames() uint64 {
+	if x != nil {
+		return x.RxFrames
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetRxFrames_64() uint64 {
-	if m != nil {
-		return m.RxFrames_64
+func (x *PortStatistics) GetRxFrames_64() uint64 {
+	if x != nil {
+		return x.RxFrames_64
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetRxFrames_65_127() uint64 {
-	if m != nil {
-		return m.RxFrames_65_127
+func (x *PortStatistics) GetRxFrames_65_127() uint64 {
+	if x != nil {
+		return x.RxFrames_65_127
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetRxFrames_128_255() uint64 {
-	if m != nil {
-		return m.RxFrames_128_255
+func (x *PortStatistics) GetRxFrames_128_255() uint64 {
+	if x != nil {
+		return x.RxFrames_128_255
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetRxFrames_256_511() uint64 {
-	if m != nil {
-		return m.RxFrames_256_511
+func (x *PortStatistics) GetRxFrames_256_511() uint64 {
+	if x != nil {
+		return x.RxFrames_256_511
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetRxFrames_512_1023() uint64 {
-	if m != nil {
-		return m.RxFrames_512_1023
+func (x *PortStatistics) GetRxFrames_512_1023() uint64 {
+	if x != nil {
+		return x.RxFrames_512_1023
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetRxFrames_1024_1518() uint64 {
-	if m != nil {
-		return m.RxFrames_1024_1518
+func (x *PortStatistics) GetRxFrames_1024_1518() uint64 {
+	if x != nil {
+		return x.RxFrames_1024_1518
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetRxFrames_1519_2047() uint64 {
-	if m != nil {
-		return m.RxFrames_1519_2047
+func (x *PortStatistics) GetRxFrames_1519_2047() uint64 {
+	if x != nil {
+		return x.RxFrames_1519_2047
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetRxFrames_2048_4095() uint64 {
-	if m != nil {
-		return m.RxFrames_2048_4095
+func (x *PortStatistics) GetRxFrames_2048_4095() uint64 {
+	if x != nil {
+		return x.RxFrames_2048_4095
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetRxFrames_4096_9216() uint64 {
-	if m != nil {
-		return m.RxFrames_4096_9216
+func (x *PortStatistics) GetRxFrames_4096_9216() uint64 {
+	if x != nil {
+		return x.RxFrames_4096_9216
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetRxFrames_9217_16383() uint64 {
-	if m != nil {
-		return m.RxFrames_9217_16383
+func (x *PortStatistics) GetRxFrames_9217_16383() uint64 {
+	if x != nil {
+		return x.RxFrames_9217_16383
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetRxCrcErrors() uint64 {
-	if m != nil {
-		return m.RxCrcErrors
+func (x *PortStatistics) GetRxCrcErrors() uint64 {
+	if x != nil {
+		return x.RxCrcErrors
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetRxUndersizePackets() uint64 {
-	if m != nil {
-		return m.RxUndersizePackets
+func (x *PortStatistics) GetRxUndersizePackets() uint64 {
+	if x != nil {
+		return x.RxUndersizePackets
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetRxOversizePackets() uint64 {
-	if m != nil {
-		return m.RxOversizePackets
+func (x *PortStatistics) GetRxOversizePackets() uint64 {
+	if x != nil {
+		return x.RxOversizePackets
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetRxGem() uint64 {
-	if m != nil {
-		return m.RxGem
+func (x *PortStatistics) GetRxGem() uint64 {
+	if x != nil {
+		return x.RxGem
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetRxGemDropped() uint64 {
-	if m != nil {
-		return m.RxGemDropped
+func (x *PortStatistics) GetRxGemDropped() uint64 {
+	if x != nil {
+		return x.RxGemDropped
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetRxGemIdle() uint64 {
-	if m != nil {
-		return m.RxGemIdle
+func (x *PortStatistics) GetRxGemIdle() uint64 {
+	if x != nil {
+		return x.RxGemIdle
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetRxGemCorrected() uint64 {
-	if m != nil {
-		return m.RxGemCorrected
+func (x *PortStatistics) GetRxGemCorrected() uint64 {
+	if x != nil {
+		return x.RxGemCorrected
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetRxGemIllegal() uint64 {
-	if m != nil {
-		return m.RxGemIllegal
+func (x *PortStatistics) GetRxGemIllegal() uint64 {
+	if x != nil {
+		return x.RxGemIllegal
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetRxFragmentError() uint64 {
-	if m != nil {
-		return m.RxFragmentError
+func (x *PortStatistics) GetRxFragmentError() uint64 {
+	if x != nil {
+		return x.RxFragmentError
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetRxPacketsDropped() uint64 {
-	if m != nil {
-		return m.RxPacketsDropped
+func (x *PortStatistics) GetRxPacketsDropped() uint64 {
+	if x != nil {
+		return x.RxPacketsDropped
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetRxCpuOmciPacketsDropped() uint64 {
-	if m != nil {
-		return m.RxCpuOmciPacketsDropped
+func (x *PortStatistics) GetRxCpuOmciPacketsDropped() uint64 {
+	if x != nil {
+		return x.RxCpuOmciPacketsDropped
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetRxCpu() uint64 {
-	if m != nil {
-		return m.RxCpu
+func (x *PortStatistics) GetRxCpu() uint64 {
+	if x != nil {
+		return x.RxCpu
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetRxOmci() uint64 {
-	if m != nil {
-		return m.RxOmci
+func (x *PortStatistics) GetRxOmci() uint64 {
+	if x != nil {
+		return x.RxOmci
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetRxOmciPacketsCrcError() uint64 {
-	if m != nil {
-		return m.RxOmciPacketsCrcError
+func (x *PortStatistics) GetRxOmciPacketsCrcError() uint64 {
+	if x != nil {
+		return x.RxOmciPacketsCrcError
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetRxFcsErrorPackets() uint64 {
-	if m != nil {
-		return m.RxFcsErrorPackets
+func (x *PortStatistics) GetRxFcsErrorPackets() uint64 {
+	if x != nil {
+		return x.RxFcsErrorPackets
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetTxBytes() uint64 {
-	if m != nil {
-		return m.TxBytes
+func (x *PortStatistics) GetTxBytes() uint64 {
+	if x != nil {
+		return x.TxBytes
 	}
 	return 0
 }
 
-// Deprecated: Do not use.
-func (m *PortStatistics) GetTxPackets() uint64 {
-	if m != nil {
-		return m.TxPackets
+// Deprecated: Marked as deprecated in voltha_protos/common.proto.
+func (x *PortStatistics) GetTxPackets() uint64 {
+	if x != nil {
+		return x.TxPackets
 	}
 	return 0
 }
 
-// Deprecated: Do not use.
-func (m *PortStatistics) GetTxUcastPackets() uint64 {
-	if m != nil {
-		return m.TxUcastPackets
+// Deprecated: Marked as deprecated in voltha_protos/common.proto.
+func (x *PortStatistics) GetTxUcastPackets() uint64 {
+	if x != nil {
+		return x.TxUcastPackets
 	}
 	return 0
 }
 
-// Deprecated: Do not use.
-func (m *PortStatistics) GetTxMcastPackets() uint64 {
-	if m != nil {
-		return m.TxMcastPackets
+// Deprecated: Marked as deprecated in voltha_protos/common.proto.
+func (x *PortStatistics) GetTxMcastPackets() uint64 {
+	if x != nil {
+		return x.TxMcastPackets
 	}
 	return 0
 }
 
-// Deprecated: Do not use.
-func (m *PortStatistics) GetTxBcastPackets() uint64 {
-	if m != nil {
-		return m.TxBcastPackets
+// Deprecated: Marked as deprecated in voltha_protos/common.proto.
+func (x *PortStatistics) GetTxBcastPackets() uint64 {
+	if x != nil {
+		return x.TxBcastPackets
 	}
 	return 0
 }
 
-// Deprecated: Do not use.
-func (m *PortStatistics) GetTxErrorPackets() uint64 {
-	if m != nil {
-		return m.TxErrorPackets
+// Deprecated: Marked as deprecated in voltha_protos/common.proto.
+func (x *PortStatistics) GetTxErrorPackets() uint64 {
+	if x != nil {
+		return x.TxErrorPackets
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetTxFrames() uint64 {
-	if m != nil {
-		return m.TxFrames
+func (x *PortStatistics) GetTxFrames() uint64 {
+	if x != nil {
+		return x.TxFrames
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetTxFrames_64() uint64 {
-	if m != nil {
-		return m.TxFrames_64
+func (x *PortStatistics) GetTxFrames_64() uint64 {
+	if x != nil {
+		return x.TxFrames_64
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetTxFrames_65_127() uint64 {
-	if m != nil {
-		return m.TxFrames_65_127
+func (x *PortStatistics) GetTxFrames_65_127() uint64 {
+	if x != nil {
+		return x.TxFrames_65_127
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetTxFrames_128_255() uint64 {
-	if m != nil {
-		return m.TxFrames_128_255
+func (x *PortStatistics) GetTxFrames_128_255() uint64 {
+	if x != nil {
+		return x.TxFrames_128_255
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetTxFrames_256_511() uint64 {
-	if m != nil {
-		return m.TxFrames_256_511
+func (x *PortStatistics) GetTxFrames_256_511() uint64 {
+	if x != nil {
+		return x.TxFrames_256_511
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetTxFrames_512_1023() uint64 {
-	if m != nil {
-		return m.TxFrames_512_1023
+func (x *PortStatistics) GetTxFrames_512_1023() uint64 {
+	if x != nil {
+		return x.TxFrames_512_1023
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetTxFrames_1024_1518() uint64 {
-	if m != nil {
-		return m.TxFrames_1024_1518
+func (x *PortStatistics) GetTxFrames_1024_1518() uint64 {
+	if x != nil {
+		return x.TxFrames_1024_1518
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetTxFrames_1519_2047() uint64 {
-	if m != nil {
-		return m.TxFrames_1519_2047
+func (x *PortStatistics) GetTxFrames_1519_2047() uint64 {
+	if x != nil {
+		return x.TxFrames_1519_2047
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetTxFrames_2048_4095() uint64 {
-	if m != nil {
-		return m.TxFrames_2048_4095
+func (x *PortStatistics) GetTxFrames_2048_4095() uint64 {
+	if x != nil {
+		return x.TxFrames_2048_4095
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetTxFrames_4096_9216() uint64 {
-	if m != nil {
-		return m.TxFrames_4096_9216
+func (x *PortStatistics) GetTxFrames_4096_9216() uint64 {
+	if x != nil {
+		return x.TxFrames_4096_9216
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetTxFrames_9217_16383() uint64 {
-	if m != nil {
-		return m.TxFrames_9217_16383
+func (x *PortStatistics) GetTxFrames_9217_16383() uint64 {
+	if x != nil {
+		return x.TxFrames_9217_16383
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetTxUndersizePackets() uint64 {
-	if m != nil {
-		return m.TxUndersizePackets
+func (x *PortStatistics) GetTxUndersizePackets() uint64 {
+	if x != nil {
+		return x.TxUndersizePackets
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetTxOversizePackets() uint64 {
-	if m != nil {
-		return m.TxOversizePackets
+func (x *PortStatistics) GetTxOversizePackets() uint64 {
+	if x != nil {
+		return x.TxOversizePackets
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetTxGem() uint64 {
-	if m != nil {
-		return m.TxGem
+func (x *PortStatistics) GetTxGem() uint64 {
+	if x != nil {
+		return x.TxGem
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetTxCpu() uint64 {
-	if m != nil {
-		return m.TxCpu
+func (x *PortStatistics) GetTxCpu() uint64 {
+	if x != nil {
+		return x.TxCpu
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetTxOmci() uint64 {
-	if m != nil {
-		return m.TxOmci
+func (x *PortStatistics) GetTxOmci() uint64 {
+	if x != nil {
+		return x.TxOmci
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetTxDroppedIllegalLength() uint64 {
-	if m != nil {
-		return m.TxDroppedIllegalLength
+func (x *PortStatistics) GetTxDroppedIllegalLength() uint64 {
+	if x != nil {
+		return x.TxDroppedIllegalLength
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetTxDroppedTpidMiss() uint64 {
-	if m != nil {
-		return m.TxDroppedTpidMiss
+func (x *PortStatistics) GetTxDroppedTpidMiss() uint64 {
+	if x != nil {
+		return x.TxDroppedTpidMiss
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetTxDroppedVidMiss() uint64 {
-	if m != nil {
-		return m.TxDroppedVidMiss
+func (x *PortStatistics) GetTxDroppedVidMiss() uint64 {
+	if x != nil {
+		return x.TxDroppedVidMiss
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetTxDroppedTotal() uint64 {
-	if m != nil {
-		return m.TxDroppedTotal
+func (x *PortStatistics) GetTxDroppedTotal() uint64 {
+	if x != nil {
+		return x.TxDroppedTotal
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetBipErrors() uint64 {
-	if m != nil {
-		return m.BipErrors
+func (x *PortStatistics) GetBipErrors() uint64 {
+	if x != nil {
+		return x.BipErrors
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetBipUnits() uint64 {
-	if m != nil {
-		return m.BipUnits
+func (x *PortStatistics) GetBipUnits() uint64 {
+	if x != nil {
+		return x.BipUnits
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetTimestamp() uint32 {
-	if m != nil {
-		return m.Timestamp
+func (x *PortStatistics) GetTimestamp() uint32 {
+	if x != nil {
+		return x.Timestamp
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetRxUcastFrames() uint64 {
-	if m != nil {
-		return m.RxUcastFrames
+func (x *PortStatistics) GetRxUcastFrames() uint64 {
+	if x != nil {
+		return x.RxUcastFrames
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetRxMcastFrames() uint64 {
-	if m != nil {
-		return m.RxMcastFrames
+func (x *PortStatistics) GetRxMcastFrames() uint64 {
+	if x != nil {
+		return x.RxMcastFrames
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetRxBcastFrames() uint64 {
-	if m != nil {
-		return m.RxBcastFrames
+func (x *PortStatistics) GetRxBcastFrames() uint64 {
+	if x != nil {
+		return x.RxBcastFrames
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetRxErrorFrames() uint64 {
-	if m != nil {
-		return m.RxErrorFrames
+func (x *PortStatistics) GetRxErrorFrames() uint64 {
+	if x != nil {
+		return x.RxErrorFrames
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetRxRightFrames() uint64 {
-	if m != nil {
-		return m.RxRightFrames
+func (x *PortStatistics) GetRxRightFrames() uint64 {
+	if x != nil {
+		return x.RxRightFrames
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetTxUcastFrames() uint64 {
-	if m != nil {
-		return m.TxUcastFrames
+func (x *PortStatistics) GetTxUcastFrames() uint64 {
+	if x != nil {
+		return x.TxUcastFrames
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetTxMcastFrames() uint64 {
-	if m != nil {
-		return m.TxMcastFrames
+func (x *PortStatistics) GetTxMcastFrames() uint64 {
+	if x != nil {
+		return x.TxMcastFrames
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetTxBcastFrames() uint64 {
-	if m != nil {
-		return m.TxBcastFrames
+func (x *PortStatistics) GetTxBcastFrames() uint64 {
+	if x != nil {
+		return x.TxBcastFrames
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetTxErrorFrames() uint64 {
-	if m != nil {
-		return m.TxErrorFrames
+func (x *PortStatistics) GetTxErrorFrames() uint64 {
+	if x != nil {
+		return x.TxErrorFrames
 	}
 	return 0
 }
 
-func (m *PortStatistics) GetRxDiscardedFrames() uint64 {
-	if m != nil {
-		return m.RxDiscardedFrames
+func (x *PortStatistics) GetRxDiscardedFrames() uint64 {
+	if x != nil {
+		return x.RxDiscardedFrames
 	}
 	return 0
 }
 
+var File_voltha_protos_common_proto protoreflect.FileDescriptor
+
+const file_voltha_protos_common_proto_rawDesc = "" +
+	"\n" +
+	"\x1avoltha_protos/common.proto\x12\x06common\"\x17\n" +
+	"\x03Key\x12\x10\n" +
+	"\x03key\x18\x01 \x01(\tR\x03key\"\x14\n" +
+	"\x02ID\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\tR\x02id\"'\n" +
+	"\x03IDs\x12 \n" +
+	"\x05items\x18\x01 \x03(\v2\n" +
+	".common.IDR\x05items\"z\n" +
+	"\n" +
+	"Connection\x12\x1a\n" +
+	"\bendpoint\x18\x01 \x01(\tR\bendpoint\x12 \n" +
+	"\vcontextInfo\x18\x02 \x01(\tR\vcontextInfo\x12.\n" +
+	"\x13keep_alive_interval\x18\x03 \x01(\x03R\x11keepAliveInterval\"h\n" +
+	"\n" +
+	"AdminState\"Z\n" +
+	"\x05Types\x12\v\n" +
+	"\aUNKNOWN\x10\x00\x12\x12\n" +
+	"\x0ePREPROVISIONED\x10\x01\x12\v\n" +
+	"\aENABLED\x10\x02\x12\f\n" +
+	"\bDISABLED\x10\x03\x12\x15\n" +
+	"\x11DOWNLOADING_IMAGE\x10\x04\"\x9f\x01\n" +
+	"\n" +
+	"OperStatus\"\x90\x01\n" +
+	"\x05Types\x12\v\n" +
+	"\aUNKNOWN\x10\x00\x12\x0e\n" +
+	"\n" +
+	"DISCOVERED\x10\x01\x12\x0e\n" +
+	"\n" +
+	"ACTIVATING\x10\x02\x12\v\n" +
+	"\aTESTING\x10\x03\x12\n" +
+	"\n" +
+	"\x06ACTIVE\x10\x04\x12\n" +
+	"\n" +
+	"\x06FAILED\x10\x05\x12\x0f\n" +
+	"\vRECONCILING\x10\x06\x12\x16\n" +
+	"\x12RECONCILING_FAILED\x10\a\x12\f\n" +
+	"\bREBOOTED\x10\b\"E\n" +
+	"\rConnectStatus\"4\n" +
+	"\x05Types\x12\v\n" +
+	"\aUNKNOWN\x10\x00\x12\x0f\n" +
+	"\vUNREACHABLE\x10\x01\x12\r\n" +
+	"\tREACHABLE\x10\x02\"\xf2\x01\n" +
+	"\rOperationResp\x12=\n" +
+	"\x04code\x18\x01 \x01(\x0e2).common.OperationResp.OperationReturnCodeR\x04code\x12'\n" +
+	"\x0fadditional_info\x18\x02 \x01(\tR\x0eadditionalInfo\"y\n" +
+	"\x13OperationReturnCode\x12\x15\n" +
+	"\x11OPERATION_SUCCESS\x10\x00\x12\x15\n" +
+	"\x11OPERATION_FAILURE\x10\x01\x12\x19\n" +
+	"\x15OPERATION_UNSUPPORTED\x10\x02\x12\x19\n" +
+	"\x15OPERATION_IN_PROGRESS\x10\x03\"\xdb\x16\n" +
+	"\x0ePortStatistics\x12\x17\n" +
+	"\aintf_id\x18\x01 \x01(\aR\x06intfId\x12\x19\n" +
+	"\brx_bytes\x18\x02 \x01(\x06R\arxBytes\x12!\n" +
+	"\n" +
+	"rx_packets\x18\x03 \x01(\x06B\x02\x18\x01R\trxPackets\x12,\n" +
+	"\x10rx_ucast_packets\x18\x04 \x01(\x06B\x02\x18\x01R\x0erxUcastPackets\x12,\n" +
+	"\x10rx_mcast_packets\x18\x05 \x01(\x06B\x02\x18\x01R\x0erxMcastPackets\x12,\n" +
+	"\x10rx_bcast_packets\x18\x06 \x01(\x06B\x02\x18\x01R\x0erxBcastPackets\x12,\n" +
+	"\x10rx_error_packets\x18\a \x01(\x06B\x02\x18\x01R\x0erxErrorPackets\x12\x1b\n" +
+	"\trx_frames\x18\x11 \x01(\x06R\brxFrames\x12 \n" +
+	"\frx_frames_64\x18\x12 \x01(\x06R\n" +
+	"rxFrames64\x12'\n" +
+	"\x10rx_frames_65_127\x18\x13 \x01(\x06R\rrxFrames65127\x12)\n" +
+	"\x11rx_frames_128_255\x18\x14 \x01(\x06R\x0erxFrames128255\x12)\n" +
+	"\x11rx_frames_256_511\x18\x15 \x01(\x06R\x0erxFrames256511\x12+\n" +
+	"\x12rx_frames_512_1023\x18\x16 \x01(\x06R\x0frxFrames5121023\x12-\n" +
+	"\x13rx_frames_1024_1518\x18\x17 \x01(\x06R\x10rxFrames10241518\x12-\n" +
+	"\x13rx_frames_1519_2047\x18\x18 \x01(\x06R\x10rxFrames15192047\x12-\n" +
+	"\x13rx_frames_2048_4095\x18\x19 \x01(\x06R\x10rxFrames20484095\x12-\n" +
+	"\x13rx_frames_4096_9216\x18\x1a \x01(\x06R\x10rxFrames40969216\x12/\n" +
+	"\x14rx_frames_9217_16383\x18\x1b \x01(\x06R\x11rxFrames921716383\x12\"\n" +
+	"\rrx_crc_errors\x18\x0e \x01(\x06R\vrxCrcErrors\x12.\n" +
+	"\x12rxUndersizePackets\x18' \x01(\x06R\x12rxUndersizePackets\x12,\n" +
+	"\x11rxOversizePackets\x18( \x01(\x06R\x11rxOversizePackets\x12\x14\n" +
+	"\x05rxGem\x18+ \x01(\x06R\x05rxGem\x12\"\n" +
+	"\frxGemDropped\x18, \x01(\x06R\frxGemDropped\x12\x1c\n" +
+	"\trxGemIdle\x18- \x01(\x06R\trxGemIdle\x12&\n" +
+	"\x0erxGemCorrected\x18. \x01(\x06R\x0erxGemCorrected\x12\"\n" +
+	"\frxGemIllegal\x18/ \x01(\x06R\frxGemIllegal\x12(\n" +
+	"\x0frxFragmentError\x180 \x01(\x06R\x0frxFragmentError\x12*\n" +
+	"\x10rxPacketsDropped\x181 \x01(\x06R\x10rxPacketsDropped\x128\n" +
+	"\x17rxCpuOmciPacketsDropped\x182 \x01(\x06R\x17rxCpuOmciPacketsDropped\x12\x14\n" +
+	"\x05rxCpu\x183 \x01(\x06R\x05rxCpu\x12\x16\n" +
+	"\x06rxOmci\x184 \x01(\x06R\x06rxOmci\x124\n" +
+	"\x15rxOmciPacketsCrcError\x185 \x01(\x06R\x15rxOmciPacketsCrcError\x12,\n" +
+	"\x11rxFcsErrorPackets\x18> \x01(\x06R\x11rxFcsErrorPackets\x12\x19\n" +
+	"\btx_bytes\x18\b \x01(\x06R\atxBytes\x12!\n" +
+	"\n" +
+	"tx_packets\x18\t \x01(\x06B\x02\x18\x01R\ttxPackets\x12,\n" +
+	"\x10tx_ucast_packets\x18\n" +
+	" \x01(\x06B\x02\x18\x01R\x0etxUcastPackets\x12,\n" +
+	"\x10tx_mcast_packets\x18\v \x01(\x06B\x02\x18\x01R\x0etxMcastPackets\x12,\n" +
+	"\x10tx_bcast_packets\x18\f \x01(\x06B\x02\x18\x01R\x0etxBcastPackets\x12,\n" +
+	"\x10tx_error_packets\x18\r \x01(\x06B\x02\x18\x01R\x0etxErrorPackets\x12\x1b\n" +
+	"\ttx_frames\x18\x1c \x01(\x06R\btxFrames\x12 \n" +
+	"\ftx_frames_64\x18\x1d \x01(\x06R\n" +
+	"txFrames64\x12'\n" +
+	"\x10tx_frames_65_127\x18\x1e \x01(\x06R\rtxFrames65127\x12)\n" +
+	"\x11tx_frames_128_255\x18\x1f \x01(\x06R\x0etxFrames128255\x12)\n" +
+	"\x11tx_frames_256_511\x18  \x01(\x06R\x0etxFrames256511\x12+\n" +
+	"\x12tx_frames_512_1023\x18! \x01(\x06R\x0ftxFrames5121023\x12-\n" +
+	"\x13tx_frames_1024_1518\x18\" \x01(\x06R\x10txFrames10241518\x12-\n" +
+	"\x13tx_frames_1519_2047\x18# \x01(\x06R\x10txFrames15192047\x12-\n" +
+	"\x13tx_frames_2048_4095\x18$ \x01(\x06R\x10txFrames20484095\x12-\n" +
+	"\x13tx_frames_4096_9216\x18% \x01(\x06R\x10txFrames40969216\x12/\n" +
+	"\x14tx_frames_9217_16383\x18& \x01(\x06R\x11txFrames921716383\x12.\n" +
+	"\x12txUndersizePackets\x18) \x01(\x06R\x12txUndersizePackets\x12,\n" +
+	"\x11txOversizePackets\x18* \x01(\x06R\x11txOversizePackets\x12\x14\n" +
+	"\x05txGem\x186 \x01(\x06R\x05txGem\x12\x14\n" +
+	"\x05txCpu\x187 \x01(\x06R\x05txCpu\x12\x16\n" +
+	"\x06txOmci\x188 \x01(\x06R\x06txOmci\x126\n" +
+	"\x16txDroppedIllegalLength\x189 \x01(\x06R\x16txDroppedIllegalLength\x12,\n" +
+	"\x11txDroppedTpidMiss\x18: \x01(\x06R\x11txDroppedTpidMiss\x12*\n" +
+	"\x10txDroppedVidMiss\x18; \x01(\x06R\x10txDroppedVidMiss\x12&\n" +
+	"\x0etxDroppedTotal\x18< \x01(\x06R\x0etxDroppedTotal\x12\x1d\n" +
+	"\n" +
+	"bip_errors\x18\x0f \x01(\x06R\tbipErrors\x12\x1b\n" +
+	"\tbip_units\x18= \x01(\x06R\bbipUnits\x12\x1c\n" +
+	"\ttimestamp\x18\x10 \x01(\aR\ttimestamp\x12&\n" +
+	"\x0frx_ucast_frames\x18? \x01(\x06R\rrxUcastFrames\x12&\n" +
+	"\x0frx_mcast_frames\x18@ \x01(\x06R\rrxMcastFrames\x12&\n" +
+	"\x0frx_bcast_frames\x18A \x01(\x06R\rrxBcastFrames\x12&\n" +
+	"\x0frx_error_frames\x18B \x01(\x06R\rrxErrorFrames\x12&\n" +
+	"\x0frx_right_frames\x18C \x01(\x06R\rrxRightFrames\x12&\n" +
+	"\x0ftx_ucast_frames\x18D \x01(\x06R\rtxUcastFrames\x12&\n" +
+	"\x0ftx_mcast_frames\x18E \x01(\x06R\rtxMcastFrames\x12&\n" +
+	"\x0ftx_bcast_frames\x18F \x01(\x06R\rtxBcastFrames\x12&\n" +
+	"\x0ftx_error_frames\x18G \x01(\x06R\rtxErrorFrames\x12.\n" +
+	"\x13rx_discarded_frames\x18H \x01(\x06R\x11rxDiscardedFrames*\x1c\n" +
+	"\fTestModeKeys\x12\f\n" +
+	"\bapi_test\x10\x00BE\n" +
+	"\x13org.opencord.volthaZ.github.com/opencord/voltha-protos/v5/go/commonb\x06proto3"
+
+var (
+	file_voltha_protos_common_proto_rawDescOnce sync.Once
+	file_voltha_protos_common_proto_rawDescData []byte
+)
+
-func init() {
-	proto.RegisterEnum("common.TestModeKeys", TestModeKeys_name, TestModeKeys_value)
-	proto.RegisterEnum("common.AdminState_Types", AdminState_Types_name, AdminState_Types_value)
-	proto.RegisterEnum("common.OperStatus_Types", OperStatus_Types_name, OperStatus_Types_value)
-	proto.RegisterEnum("common.ConnectStatus_Types", ConnectStatus_Types_name, ConnectStatus_Types_value)
-	proto.RegisterEnum("common.OperationResp_OperationReturnCode", OperationResp_OperationReturnCode_name, OperationResp_OperationReturnCode_value)
-	proto.RegisterType((*Key)(nil), "common.Key")
-	proto.RegisterType((*ID)(nil), "common.ID")
-	proto.RegisterType((*IDs)(nil), "common.IDs")
-	proto.RegisterType((*Connection)(nil), "common.Connection")
-	proto.RegisterType((*AdminState)(nil), "common.AdminState")
-	proto.RegisterType((*OperStatus)(nil), "common.OperStatus")
-	proto.RegisterType((*ConnectStatus)(nil), "common.ConnectStatus")
-	proto.RegisterType((*OperationResp)(nil), "common.OperationResp")
-	proto.RegisterType((*PortStatistics)(nil), "common.PortStatistics")
+func file_voltha_protos_common_proto_rawDescGZIP() []byte {
+	file_voltha_protos_common_proto_rawDescOnce.Do(func() {
+		file_voltha_protos_common_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_voltha_protos_common_proto_rawDesc), len(file_voltha_protos_common_proto_rawDesc)))
+	})
+	return file_voltha_protos_common_proto_rawDescData
 }
 
-func init() { proto.RegisterFile("voltha_protos/common.proto", fileDescriptor_c2e3fd231961e826) }
+var file_voltha_protos_common_proto_enumTypes = make([]protoimpl.EnumInfo, 5)
+var file_voltha_protos_common_proto_msgTypes = make([]protoimpl.MessageInfo, 9)
+var file_voltha_protos_common_proto_goTypes = []any{
+	(TestModeKeys)(0),                      // 0: common.TestModeKeys
+	(AdminState_Types)(0),                  // 1: common.AdminState.Types
+	(OperStatus_Types)(0),                  // 2: common.OperStatus.Types
+	(ConnectStatus_Types)(0),               // 3: common.ConnectStatus.Types
+	(OperationResp_OperationReturnCode)(0), // 4: common.OperationResp.OperationReturnCode
+	(*Key)(nil),                            // 5: common.Key
+	(*ID)(nil),                             // 6: common.ID
+	(*IDs)(nil),                            // 7: common.IDs
+	(*Connection)(nil),                     // 8: common.Connection
+	(*AdminState)(nil),                     // 9: common.AdminState
+	(*OperStatus)(nil),                     // 10: common.OperStatus
+	(*ConnectStatus)(nil),                  // 11: common.ConnectStatus
+	(*OperationResp)(nil),                  // 12: common.OperationResp
+	(*PortStatistics)(nil),                 // 13: common.PortStatistics
+}
+var file_voltha_protos_common_proto_depIdxs = []int32{
+	6, // 0: common.IDs.items:type_name -> common.ID
+	4, // 1: common.OperationResp.code:type_name -> common.OperationResp.OperationReturnCode
+	2, // [2:2] is the sub-list for method output_type
+	2, // [2:2] is the sub-list for method input_type
+	2, // [2:2] is the sub-list for extension type_name
+	2, // [2:2] is the sub-list for extension extendee
+	0, // [0:2] is the sub-list for field type_name
+}
 
-var fileDescriptor_c2e3fd231961e826 = []byte{
-	// 1578 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x97, 0xfd, 0x52, 0xdb, 0xca,
-	0x15, 0xc0, 0x63, 0x1c, 0x0c, 0x1c, 0x82, 0x31, 0x4b, 0x42, 0x36, 0x1f, 0xb7, 0xe5, 0xba, 0x6d,
-	0x42, 0x72, 0x13, 0x83, 0x84, 0x65, 0xa0, 0xed, 0x6d, 0xeb, 0x0f, 0x85, 0xab, 0x49, 0xb0, 0x19,
-	0xd9, 0xe6, 0xce, 0xdc, 0x7f, 0x34, 0xc6, 0xda, 0x80, 0x26, 0xb6, 0xa4, 0x59, 0x2d, 0x8c, 0xb9,
-	0x4f, 0xd1, 0x37, 0xe8, 0x83, 0xf5, 0x2d, 0xfa, 0x04, 0x9d, 0xdd, 0xd5, 0x5a, 0x92, 0xe5, 0xfc,
-	0xe7, 0x73, 0xce, 0xcf, 0xab, 0xfd, 0x38, 0xfb, 0xb3, 0x05, 0x2f, 0xef, 0x83, 0x09, 0xbb, 0x1d,
-	0x39, 0x21, 0x0d, 0x58, 0x10, 0x1d, 0x8e, 0x83, 0xe9, 0x34, 0xf0, 0x6b, 0x22, 0x42, 0x25, 0x19,
-	0x55, 0x9f, 0x43, 0xf1, 0x33, 0x79, 0x40, 0x15, 0x28, 0x7e, 0x23, 0x0f, 0xb8, 0xb0, 0x5f, 0x38,
-	0xd8, 0xb0, 0xf9, 0xc7, 0xea, 0x53, 0x58, 0xb1, 0x3a, 0xa8, 0x0c, 0x2b, 0x9e, 0x1b, 0xa7, 0x57,
-	0x3c, 0xb7, 0xfa, 0x16, 0x8a, 0x56, 0x27, 0x42, 0xfb, 0xb0, 0xea, 0x31, 0x32, 0x8d, 0x70, 0x61,
-	0xbf, 0x78, 0xb0, 0xa9, 0x43, 0x2d, 0x1e, 0xdb, 0xea, 0xd8, 0xb2, 0x50, 0xfd, 0x1d, 0xa0, 0x1d,
-	0xf8, 0x3e, 0x19, 0x33, 0x2f, 0xf0, 0xd1, 0x4b, 0x58, 0x27, 0xbe, 0x1b, 0x06, 0x9e, 0xcf, 0xe2,
-	0xc1, 0xe6, 0x31, 0xda, 0x87, 0xcd, 0x71, 0xe0, 0x33, 0x32, 0x63, 0x96, 0xff, 0x35, 0xc0, 0x2b,
-	0xa2, 0x9c, 0x4e, 0xa1, 0x1a, 0xec, 0x7e, 0x23, 0x24, 0x74, 0x46, 0x13, 0xef, 0x9e, 0x38, 0x9e,
-	0xcf, 0x08, 0xbd, 0x1f, 0x4d, 0x70, 0x71, 0xbf, 0x70, 0x50, 0xb4, 0x77, 0x78, 0xa9, 0xc9, 0x2b,
-	0x56, 0x5c, 0xa8, 0xde, 0x02, 0x34, 0xdd, 0xa9, 0xe7, 0xf7, 0xd9, 0x88, 0x91, 0xea, 0x6f, 0xb0,
-	0x3a, 0x78, 0x08, 0x49, 0x84, 0x36, 0x61, 0x6d, 0xd8, 0xfd, 0xdc, 0xed, 0xfd, 0xda, 0xad, 0x3c,
-	0x42, 0x08, 0xca, 0x97, 0xb6, 0x79, 0x69, 0xf7, 0xae, 0xac, 0xbe, 0xd5, 0xeb, 0x9a, 0x9d, 0x4a,
-	0x81, 0x03, 0x66, 0xb7, 0xd9, 0xfa, 0x62, 0x76, 0x2a, 0x2b, 0xe8, 0x09, 0xac, 0x77, 0xac, 0xbe,
-	0x8c, 0x8a, 0xe8, 0x19, 0xec, 0x74, 0x7a, 0xbf, 0x76, 0xbf, 0xf4, 0x9a, 0x1d, 0xab, 0x7b, 0xee,
-	0x58, 0x17, 0xcd, 0x73, 0xb3, 0xf2, 0xb8, 0xfa, 0x9f, 0x02, 0x40, 0x2f, 0x24, 0x94, 0x3f, 0xe9,
-	0x2e, 0xaa, 0xfe, 0xbb, 0xb0, 0xf4, 0x59, 0x65, 0x80, 0x8e, 0xd5, 0x6f, 0xf7, 0xae, 0x4c, 0x5b,
-	0x3c, 0xa7, 0x0c, 0xd0, 0x6c, 0x0f, 0xac, 0xab, 0xe6, 0xc0, 0xea, 0x9e, 0x57, 0x56, 0x38, 0x3c,
-	0x30, 0xfb, 0x22, 0x28, 0x22, 0x80, 0x92, 0x28, 0x9a, 0x95, 0xc7, 0xfc, 0xf3, 0xa7, 0xa6, 0xc5,
-	0x67, 0xb0, 0x8a, 0xb6, 0x61, 0xd3, 0x36, 0xdb, 0xbd, 0x6e, 0xdb, 0xfa, 0xc2, 0xc1, 0x12, 0xda,
-	0x03, 0x94, 0x4a, 0x38, 0x31, 0xb8, 0xc6, 0x27, 0x6e, 0x9b, 0xad, 0x5e, 0x6f, 0x60, 0x76, 0x2a,
-	0xeb, 0x55, 0x13, 0xb6, 0xe2, 0x73, 0x88, 0xe7, 0x58, 0x5f, 0x3a, 0xc5, 0x6d, 0xd8, 0x1c, 0x76,
-	0x6d, 0xb3, 0xd9, 0xfe, 0x85, 0xaf, 0xb8, 0x52, 0x40, 0x5b, 0xb0, 0x91, 0x84, 0x2b, 0xd5, 0xff,
-	0x15, 0x60, 0x8b, 0x2f, 0x74, 0xc4, 0x8f, 0xd3, 0x26, 0x51, 0x88, 0x7e, 0x86, 0xc7, 0xe3, 0xc0,
-	0x25, 0xe2, 0x38, 0xcb, 0xfa, 0x3b, 0xd5, 0x01, 0x19, 0x28, 0x1d, 0xb1, 0x3b, 0xea, 0xb7, 0x03,
-	0x97, 0xd8, 0xe2, 0x6b, 0xe8, 0x2d, 0x6c, 0x8f, 0x5c, 0xd7, 0xe3, 0xb5, 0xd1, 0xc4, 0xf1, 0x92,
-	0x93, 0x2f, 0x27, 0x69, 0x7e, 0xf8, 0xd5, 0x07, 0xd8, 0x5d, 0x32, 0x0a, 0x3f, 0x90, 0xde, 0xa5,
-	0x69, 0x37, 0x07, 0x56, 0xaf, 0xeb, 0xf4, 0x87, 0xed, 0xb6, 0xd9, 0xef, 0x57, 0x1e, 0x65, 0xd3,
-	0x7c, 0x4b, 0x86, 0x36, 0x5f, 0xcd, 0x0b, 0x78, 0x96, 0xa4, 0x87, 0xdd, 0xfe, 0xf0, 0xf2, 0xb2,
-	0x67, 0x0f, 0xc4, 0x39, 0x67, 0x4a, 0x56, 0xd7, 0xb9, 0xb4, 0x7b, 0xe7, 0x36, 0x1f, 0xac, 0x58,
-	0xfd, 0xef, 0x1e, 0x94, 0x2f, 0x03, 0x2a, 0x76, 0xce, 0x8b, 0x98, 0x37, 0x8e, 0xd0, 0x73, 0x58,
-	0xf3, 0x7c, 0xf6, 0xd5, 0x89, 0x2f, 0xc5, 0x9a, 0x5d, 0xe2, 0xa1, 0xe5, 0xa2, 0x17, 0xb0, 0x4e,
-	0x67, 0xce, 0xf5, 0x03, 0x23, 0x91, 0x58, 0x48, 0xc9, 0x5e, 0xa3, 0xb3, 0x16, 0x0f, 0xd1, 0x8f,
-	0x00, 0x74, 0xe6, 0x84, 0xa3, 0xf1, 0x37, 0xc2, 0x22, 0xd1, 0xb5, 0xa5, 0xd6, 0x0a, 0x2e, 0xd8,
-	0x1b, 0x74, 0x76, 0x29, 0x93, 0xe8, 0x03, 0x54, 0xe8, 0xcc, 0xb9, 0x1b, 0x8f, 0x22, 0x36, 0x07,
-	0x1f, 0xcf, 0xc1, 0x32, 0x9d, 0x0d, 0x79, 0x29, 0x4b, 0x4f, 0x33, 0xf4, 0x6a, 0x9a, 0xbe, 0xc8,
-	0xd3, 0xd7, 0x19, 0xba, 0x94, 0xa6, 0x5b, 0x79, 0x9a, 0x50, 0x1a, 0xd0, 0x39, 0xbd, 0x96, 0xa6,
-	0x4d, 0x5e, 0x52, 0xf4, 0x2b, 0xd8, 0xa0, 0x33, 0xe7, 0x2b, 0x1d, 0x4d, 0x49, 0x84, 0x77, 0xc4,
-	0xb2, 0xd7, 0xe9, 0xec, 0x93, 0x88, 0xd1, 0x3e, 0x3c, 0x99, 0x17, 0x9d, 0x46, 0x1d, 0x23, 0x51,
-	0x07, 0x55, 0x6f, 0xd4, 0xd1, 0x5b, 0xf1, 0x30, 0x45, 0x18, 0x8e, 0xa6, 0x9f, 0xe0, 0x5d, 0x41,
-	0x6d, 0xcd, 0x29, 0x43, 0xd3, 0x4f, 0xd0, 0x3b, 0xd8, 0x49, 0x40, 0x4d, 0x3f, 0x75, 0x74, 0xc3,
-	0xc0, 0x4f, 0x05, 0x59, 0x56, 0xa4, 0xa6, 0x9f, 0xea, 0x86, 0x91, 0x45, 0x75, 0xa3, 0xe1, 0x18,
-	0x9a, 0x86, 0x9f, 0x65, 0x51, 0xdd, 0x68, 0x18, 0x9a, 0x86, 0x7e, 0x02, 0x94, 0xa0, 0x86, 0xa6,
-	0x3b, 0xda, 0x91, 0x7e, 0x8c, 0xf7, 0x04, 0xbb, 0xad, 0x58, 0x43, 0xd3, 0x79, 0x1a, 0x7d, 0x84,
-	0xdd, 0xd4, 0x14, 0x8e, 0xf4, 0xba, 0xa3, 0x19, 0xda, 0x29, 0x7e, 0x2e, 0xe8, 0xca, 0x7c, 0x12,
-	0x47, 0x7a, 0x9d, 0xe7, 0x17, 0x70, 0x43, 0x3b, 0x73, 0xf4, 0xa3, 0xfa, 0x09, 0xc6, 0x0b, 0xb8,
-	0xa1, 0x9d, 0xf1, 0x7c, 0x16, 0xd7, 0x8f, 0xea, 0xa7, 0x4e, 0xfd, 0xe8, 0xcc, 0xc0, 0x2f, 0xb2,
-	0x38, 0x2f, 0xf0, 0x7c, 0x16, 0xaf, 0x1f, 0x9d, 0x35, 0x9c, 0x33, 0x5d, 0x6b, 0xe0, 0x97, 0x59,
-	0x9c, 0x17, 0x78, 0x1e, 0x1d, 0xc2, 0xd3, 0x04, 0x3f, 0xd3, 0xb5, 0x13, 0x47, 0x6b, 0x1c, 0x9f,
-	0x1e, 0xe3, 0x57, 0x82, 0xdf, 0x51, 0x3c, 0xaf, 0x88, 0x02, 0xaa, 0xc2, 0x16, 0x9d, 0x39, 0x63,
-	0x3a, 0x96, 0x9d, 0x10, 0xe1, 0xb2, 0x20, 0x37, 0xe9, 0xac, 0x4d, 0xc7, 0xa2, 0x03, 0x22, 0x54,
-	0xe3, 0xbb, 0x37, 0xf4, 0x5d, 0x42, 0x23, 0xef, 0x77, 0x12, 0x77, 0x04, 0x7e, 0x2b, 0xc0, 0x25,
-	0x15, 0xf4, 0x81, 0x1f, 0x4c, 0xef, 0x3e, 0x8b, 0x1f, 0xa8, 0x19, 0x2c, 0x14, 0xd0, 0x53, 0x58,
-	0xa5, 0xb3, 0x73, 0x32, 0xc5, 0x3f, 0x09, 0x42, 0x06, 0xa8, 0xca, 0x5b, 0xea, 0x9c, 0x4c, 0x3b,
-	0x34, 0x08, 0x43, 0xe2, 0xe2, 0x0f, 0xa2, 0x98, 0xc9, 0xa1, 0xd7, 0xbc, 0x27, 0xcf, 0xc9, 0xd4,
-	0x72, 0x27, 0x04, 0x7f, 0x14, 0x40, 0x92, 0x40, 0x6f, 0xa0, 0x2c, 0x82, 0x76, 0x40, 0x29, 0x19,
-	0x33, 0xe2, 0xe2, 0x9a, 0xea, 0x8d, 0x74, 0x76, 0xfe, 0x24, 0x6b, 0x32, 0x21, 0x37, 0xa3, 0x09,
-	0x3e, 0x4c, 0x3d, 0x29, 0xce, 0xa1, 0x03, 0x90, 0x5d, 0x72, 0x33, 0x25, 0x3e, 0x13, 0xbb, 0x82,
-	0x8f, 0x52, 0xcd, 0x93, 0xa4, 0xd1, 0x7b, 0xde, 0xe8, 0xf1, 0xd2, 0xd4, 0xdc, 0x35, 0x75, 0x58,
-	0xd9, 0x3c, 0x3a, 0x85, 0xe7, 0x74, 0xd6, 0x0e, 0xef, 0x7a, 0xd3, 0xb1, 0xb7, 0xf0, 0x15, 0x5d,
-	0x7c, 0xe5, 0x7b, 0x65, 0xb9, 0x67, 0xed, 0xf0, 0x0e, 0x1f, 0xab, 0x3d, 0x6b, 0x87, 0x77, 0x68,
-	0x0f, 0x4a, 0x74, 0xc6, 0x69, 0x5c, 0x17, 0xe9, 0x38, 0x42, 0x75, 0x78, 0x26, 0x3f, 0xc5, 0xa3,
-	0xa8, 0x93, 0xc5, 0x86, 0xc0, 0x96, 0x17, 0xe5, 0x29, 0x7e, 0x1a, 0x47, 0x69, 0x0d, 0xe0, 0x7f,
-	0xcc, 0xfb, 0x28, 0x5b, 0xe0, 0x56, 0x64, 0xca, 0x8a, 0xeb, 0xd2, 0x8a, 0x2c, 0xb1, 0x22, 0x4b,
-	0xac, 0xb8, 0x91, 0x58, 0x91, 0xa5, 0xad, 0xc8, 0x16, 0xad, 0x08, 0x89, 0x8b, 0x58, 0xce, 0x8a,
-	0x6c, 0xd1, 0x8a, 0x9b, 0x69, 0xfa, 0x22, 0x4f, 0x67, 0xad, 0xf8, 0x24, 0x4d, 0xb7, 0xf2, 0x74,
-	0xd6, 0x8a, 0x5b, 0x69, 0x7a, 0xd1, 0x8a, 0x6c, 0x6e, 0xc5, 0xd7, 0xd2, 0x8a, 0x2c, 0x65, 0x45,
-	0x96, 0xb6, 0xe2, 0x0f, 0xd2, 0x8a, 0x2c, 0x63, 0x45, 0xb6, 0x68, 0xc5, 0x3f, 0x48, 0x2b, 0xb2,
-	0x45, 0x2b, 0xb2, 0x9c, 0x15, 0xff, 0x28, 0xdb, 0x99, 0xe5, 0xac, 0xc8, 0x72, 0x56, 0xdc, 0xcf,
-	0xa2, 0x89, 0x15, 0x59, 0xde, 0x8a, 0x3f, 0xca, 0xc6, 0x66, 0x79, 0x2b, 0xb2, 0x25, 0x56, 0xac,
-	0xca, 0xde, 0x66, 0x4b, 0xac, 0xc8, 0x96, 0x58, 0xf1, 0x4f, 0x0b, 0x78, 0xca, 0x8a, 0x6c, 0x89,
-	0x15, 0xff, 0x9c, 0xc5, 0xd3, 0x56, 0x64, 0x4b, 0xac, 0xf8, 0x97, 0x2c, 0x9e, 0xb6, 0x22, 0x5b,
-	0x66, 0xc5, 0x37, 0xb2, 0x9b, 0x59, 0xce, 0x8a, 0x35, 0xbe, 0x33, 0x39, 0xe3, 0xbd, 0x93, 0xc6,
-	0x63, 0x4b, 0x8d, 0xc7, 0x72, 0xc6, 0x7b, 0xaf, 0x46, 0x5f, 0x62, 0x3c, 0x26, 0x8c, 0xd7, 0x90,
-	0xb7, 0x57, 0x04, 0x32, 0xcb, 0xef, 0xf4, 0x89, 0xca, 0xc6, 0x77, 0x9a, 0xc9, 0x3b, 0x7d, 0x2a,
-	0xef, 0xb4, 0x8c, 0x50, 0x03, 0xf6, 0xd8, 0x2c, 0xd6, 0x41, 0x6c, 0xa9, 0x2f, 0xc4, 0xbf, 0x61,
-	0xb7, 0xf8, 0x4c, 0x70, 0xdf, 0xa9, 0xca, 0x99, 0xc6, 0x95, 0x41, 0xe8, 0xb9, 0x17, 0x5e, 0x14,
-	0xe1, 0xbf, 0xaa, 0x99, 0x2e, 0x14, 0xb8, 0xcd, 0xe6, 0xc9, 0xab, 0x18, 0xfe, 0x9b, 0xda, 0xe4,
-	0x6c, 0x9e, 0xfb, 0x36, 0x19, 0x20, 0x60, 0xa3, 0x09, 0xfe, 0xbb, 0xea, 0xba, 0x74, 0x16, 0xfd,
-	0x00, 0x70, 0xed, 0x85, 0xea, 0xe7, 0x66, 0x5b, 0x6a, 0xfb, 0xda, 0x0b, 0xe3, 0x1f, 0x9b, 0x57,
-	0xc0, 0x03, 0xe7, 0xce, 0xf7, 0x58, 0x84, 0x7f, 0x96, 0x57, 0xea, 0xda, 0x0b, 0x87, 0x3c, 0xe6,
-	0xc6, 0x67, 0xde, 0x94, 0x44, 0x6c, 0x34, 0x0d, 0x71, 0x45, 0xfc, 0x2d, 0x4b, 0x12, 0xe8, 0x0d,
-	0xb7, 0x74, 0x6c, 0x91, 0xf8, 0x4e, 0xfe, 0x53, 0xfd, 0xc7, 0x10, 0x02, 0x89, 0x2f, 0xa6, 0xe4,
-	0xa6, 0x69, 0xee, 0x5f, 0x8a, 0xbb, 0xc8, 0x71, 0xd7, 0x69, 0xae, 0xa9, 0xb8, 0x56, 0x8e, 0x93,
-	0xce, 0x88, 0xb9, 0x96, 0xe2, 0xc4, 0xaa, 0x32, 0x1c, 0xf5, 0x6e, 0x6e, 0xe7, 0xe3, 0xb5, 0x15,
-	0x67, 0xf3, 0x6c, 0xc2, 0xb1, 0x85, 0x75, 0x74, 0x94, 0x15, 0x16, 0xd6, 0xc1, 0x16, 0xd6, 0x61,
-	0x2a, 0xee, 0x22, 0xc7, 0x65, 0xd6, 0xf1, 0x49, 0x71, 0xad, 0x1c, 0x97, 0x59, 0xc7, 0xb9, 0xe2,
-	0xd2, 0xeb, 0xa8, 0x89, 0xff, 0x24, 0xae, 0x17, 0x8d, 0x47, 0xd4, 0x25, 0xae, 0x62, 0x7f, 0x51,
-	0xbf, 0x0d, 0x1d, 0x55, 0x91, 0xfc, 0xfb, 0xd7, 0xf0, 0x64, 0x40, 0x22, 0x76, 0x11, 0xb8, 0xe4,
-	0x33, 0x79, 0x88, 0xf8, 0x7b, 0xcb, 0x28, 0xf4, 0x1c, 0x46, 0x22, 0x56, 0x79, 0xd4, 0x32, 0x61,
-	0x37, 0xa0, 0x37, 0xb5, 0x20, 0x24, 0xfe, 0x38, 0xa0, 0x6e, 0x4d, 0xbe, 0xca, 0xfe, 0x56, 0xbb,
-	0xf1, 0xd8, 0xed, 0xdd, 0x35, 0x7f, 0xdb, 0x38, 0x54, 0xb5, 0x43, 0x59, 0xfb, 0x18, 0xbf, 0xe6,
-	0xde, 0x1b, 0x87, 0x37, 0x41, 0xfc, 0xb2, 0x7b, 0x5d, 0x12, 0xc9, 0xe3, 0xff, 0x07, 0x00, 0x00,
-	0xff, 0xff, 0x70, 0x09, 0x2f, 0xa5, 0x0b, 0x0f, 0x00, 0x00,
+func init() { file_voltha_protos_common_proto_init() }
+func file_voltha_protos_common_proto_init() {
+	if File_voltha_protos_common_proto != nil {
+		return
+	}
+	type x struct{}
+	out := protoimpl.TypeBuilder{
+		File: protoimpl.DescBuilder{
+			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+			RawDescriptor: unsafe.Slice(unsafe.StringData(file_voltha_protos_common_proto_rawDesc), len(file_voltha_protos_common_proto_rawDesc)),
+			NumEnums:      5,
+			NumMessages:   9,
+			NumExtensions: 0,
+			NumServices:   0,
+		},
+		GoTypes:           file_voltha_protos_common_proto_goTypes,
+		DependencyIndexes: file_voltha_protos_common_proto_depIdxs,
+		EnumInfos:         file_voltha_protos_common_proto_enumTypes,
+		MessageInfos:      file_voltha_protos_common_proto_msgTypes,
+	}.Build()
+	File_voltha_protos_common_proto = out.File
+	file_voltha_protos_common_proto_goTypes = nil
+	file_voltha_protos_common_proto_depIdxs = nil
 }
diff --git a/go/core/core.pb.go b/go/core/core.pb.go
index dab601d..a2d1c9e 100644
--- a/go/core/core.pb.go
+++ b/go/core/core.pb.go
@@ -1,24 +1,25 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// 	protoc-gen-go v1.36.11
+// 	protoc        v4.25.8
 // source: voltha_protos/core.proto
 
 package core
 
 import (
-	fmt "fmt"
-	proto "github.com/golang/protobuf/proto"
-	math "math"
+	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+	reflect "reflect"
+	sync "sync"
+	unsafe "unsafe"
 )
 
-// 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
+const (
+	// Verify that this generated code is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+	// Verify that runtime/protoimpl is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
 
 // Transient State for devices
 type DeviceTransientState_Types int32
@@ -43,101 +44,167 @@
 	DeviceTransientState_REBOOT_IN_PROGRESS DeviceTransientState_Types = 7
 )
 
-var DeviceTransientState_Types_name = map[int32]string{
-	0: "NONE",
-	1: "ANY",
-	2: "FORCE_DELETING",
-	3: "DELETING_FROM_ADAPTER",
-	4: "DELETING_POST_ADAPTER_RESPONSE",
-	5: "DELETE_FAILED",
-	6: "RECONCILE_IN_PROGRESS",
-	7: "REBOOT_IN_PROGRESS",
-}
+// Enum value maps for DeviceTransientState_Types.
+var (
+	DeviceTransientState_Types_name = map[int32]string{
+		0: "NONE",
+		1: "ANY",
+		2: "FORCE_DELETING",
+		3: "DELETING_FROM_ADAPTER",
+		4: "DELETING_POST_ADAPTER_RESPONSE",
+		5: "DELETE_FAILED",
+		6: "RECONCILE_IN_PROGRESS",
+		7: "REBOOT_IN_PROGRESS",
+	}
+	DeviceTransientState_Types_value = map[string]int32{
+		"NONE":                           0,
+		"ANY":                            1,
+		"FORCE_DELETING":                 2,
+		"DELETING_FROM_ADAPTER":          3,
+		"DELETING_POST_ADAPTER_RESPONSE": 4,
+		"DELETE_FAILED":                  5,
+		"RECONCILE_IN_PROGRESS":          6,
+		"REBOOT_IN_PROGRESS":             7,
+	}
+)
 
-var DeviceTransientState_Types_value = map[string]int32{
-	"NONE":                           0,
-	"ANY":                            1,
-	"FORCE_DELETING":                 2,
-	"DELETING_FROM_ADAPTER":          3,
-	"DELETING_POST_ADAPTER_RESPONSE": 4,
-	"DELETE_FAILED":                  5,
-	"RECONCILE_IN_PROGRESS":          6,
-	"REBOOT_IN_PROGRESS":             7,
+func (x DeviceTransientState_Types) Enum() *DeviceTransientState_Types {
+	p := new(DeviceTransientState_Types)
+	*p = x
+	return p
 }
 
 func (x DeviceTransientState_Types) String() string {
-	return proto.EnumName(DeviceTransientState_Types_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (DeviceTransientState_Types) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_core_proto_enumTypes[0].Descriptor()
+}
+
+func (DeviceTransientState_Types) Type() protoreflect.EnumType {
+	return &file_voltha_protos_core_proto_enumTypes[0]
+}
+
+func (x DeviceTransientState_Types) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use DeviceTransientState_Types.Descriptor instead.
 func (DeviceTransientState_Types) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_39634f15fb8a505e, []int{0, 0}
+	return file_voltha_protos_core_proto_rawDescGZIP(), []int{0, 0}
 }
 
 type DeviceTransientState struct {
-	TransientState       DeviceTransientState_Types `protobuf:"varint,1,opt,name=transient_state,json=transientState,proto3,enum=core.DeviceTransientState_Types" json:"transient_state,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                   `json:"-"`
-	XXX_unrecognized     []byte                     `json:"-"`
-	XXX_sizecache        int32                      `json:"-"`
+	state          protoimpl.MessageState     `protogen:"open.v1"`
+	TransientState DeviceTransientState_Types `protobuf:"varint,1,opt,name=transient_state,json=transientState,proto3,enum=core.DeviceTransientState_Types" json:"transient_state,omitempty"`
+	unknownFields  protoimpl.UnknownFields
+	sizeCache      protoimpl.SizeCache
 }
 
-func (m *DeviceTransientState) Reset()         { *m = DeviceTransientState{} }
-func (m *DeviceTransientState) String() string { return proto.CompactTextString(m) }
-func (*DeviceTransientState) ProtoMessage()    {}
+func (x *DeviceTransientState) Reset() {
+	*x = DeviceTransientState{}
+	mi := &file_voltha_protos_core_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *DeviceTransientState) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeviceTransientState) ProtoMessage() {}
+
+func (x *DeviceTransientState) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_core_proto_msgTypes[0]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeviceTransientState.ProtoReflect.Descriptor instead.
 func (*DeviceTransientState) Descriptor() ([]byte, []int) {
-	return fileDescriptor_39634f15fb8a505e, []int{0}
+	return file_voltha_protos_core_proto_rawDescGZIP(), []int{0}
 }
 
-func (m *DeviceTransientState) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_DeviceTransientState.Unmarshal(m, b)
-}
-func (m *DeviceTransientState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_DeviceTransientState.Marshal(b, m, deterministic)
-}
-func (m *DeviceTransientState) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_DeviceTransientState.Merge(m, src)
-}
-func (m *DeviceTransientState) XXX_Size() int {
-	return xxx_messageInfo_DeviceTransientState.Size(m)
-}
-func (m *DeviceTransientState) XXX_DiscardUnknown() {
-	xxx_messageInfo_DeviceTransientState.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_DeviceTransientState proto.InternalMessageInfo
-
-func (m *DeviceTransientState) GetTransientState() DeviceTransientState_Types {
-	if m != nil {
-		return m.TransientState
+func (x *DeviceTransientState) GetTransientState() DeviceTransientState_Types {
+	if x != nil {
+		return x.TransientState
 	}
 	return DeviceTransientState_NONE
 }
 
-func init() {
-	proto.RegisterEnum("core.DeviceTransientState_Types", DeviceTransientState_Types_name, DeviceTransientState_Types_value)
-	proto.RegisterType((*DeviceTransientState)(nil), "core.DeviceTransientState")
+var File_voltha_protos_core_proto protoreflect.FileDescriptor
+
+const file_voltha_protos_core_proto_rawDesc = "" +
+	"\n" +
+	"\x18voltha_protos/core.proto\x12\x04core\"\x97\x02\n" +
+	"\x14DeviceTransientState\x12I\n" +
+	"\x0ftransient_state\x18\x01 \x01(\x0e2 .core.DeviceTransientState.TypesR\x0etransientState\"\xb3\x01\n" +
+	"\x05Types\x12\b\n" +
+	"\x04NONE\x10\x00\x12\a\n" +
+	"\x03ANY\x10\x01\x12\x12\n" +
+	"\x0eFORCE_DELETING\x10\x02\x12\x19\n" +
+	"\x15DELETING_FROM_ADAPTER\x10\x03\x12\"\n" +
+	"\x1eDELETING_POST_ADAPTER_RESPONSE\x10\x04\x12\x11\n" +
+	"\rDELETE_FAILED\x10\x05\x12\x19\n" +
+	"\x15RECONCILE_IN_PROGRESS\x10\x06\x12\x16\n" +
+	"\x12REBOOT_IN_PROGRESS\x10\aBH\n" +
+	"\x18org.opencord.voltha.coreZ,github.com/opencord/voltha-protos/v5/go/coreb\x06proto3"
+
+var (
+	file_voltha_protos_core_proto_rawDescOnce sync.Once
+	file_voltha_protos_core_proto_rawDescData []byte
+)
+
+func file_voltha_protos_core_proto_rawDescGZIP() []byte {
+	file_voltha_protos_core_proto_rawDescOnce.Do(func() {
+		file_voltha_protos_core_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_voltha_protos_core_proto_rawDesc), len(file_voltha_protos_core_proto_rawDesc)))
+	})
+	return file_voltha_protos_core_proto_rawDescData
 }
 
-func init() { proto.RegisterFile("voltha_protos/core.proto", fileDescriptor_39634f15fb8a505e) }
+var file_voltha_protos_core_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
+var file_voltha_protos_core_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
+var file_voltha_protos_core_proto_goTypes = []any{
+	(DeviceTransientState_Types)(0), // 0: core.DeviceTransientState.Types
+	(*DeviceTransientState)(nil),    // 1: core.DeviceTransientState
+}
+var file_voltha_protos_core_proto_depIdxs = []int32{
+	0, // 0: core.DeviceTransientState.transient_state:type_name -> core.DeviceTransientState.Types
+	1, // [1:1] is the sub-list for method output_type
+	1, // [1:1] is the sub-list for method input_type
+	1, // [1:1] is the sub-list for extension type_name
+	1, // [1:1] is the sub-list for extension extendee
+	0, // [0:1] is the sub-list for field type_name
+}
 
-var fileDescriptor_39634f15fb8a505e = []byte{
-	// 299 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x90, 0xcf, 0x4a, 0x33, 0x31,
-	0x14, 0xc5, 0xbf, 0xe9, 0xdf, 0x8f, 0x0b, 0xd6, 0x18, 0x54, 0xea, 0x46, 0x4a, 0x57, 0x2e, 0x74,
-	0x06, 0x14, 0x1f, 0x60, 0xda, 0xb9, 0xad, 0x03, 0x35, 0x19, 0x92, 0x6c, 0x74, 0x13, 0xda, 0x31,
-	0xb4, 0x05, 0x6d, 0xca, 0x4c, 0x2c, 0xf8, 0x24, 0x3e, 0x88, 0x2f, 0x28, 0x93, 0x3a, 0x42, 0xc1,
-	0xdd, 0xc9, 0xef, 0x9c, 0x1c, 0xb8, 0x07, 0xfa, 0x3b, 0xfb, 0xea, 0x56, 0x73, 0xbd, 0x2d, 0xac,
-	0xb3, 0x65, 0x94, 0xdb, 0xc2, 0x84, 0x5e, 0xd3, 0x56, 0xa5, 0x87, 0x9f, 0x0d, 0x38, 0x4d, 0xcc,
-	0x6e, 0x9d, 0x1b, 0x55, 0xcc, 0x37, 0xe5, 0xda, 0x6c, 0x9c, 0x74, 0x73, 0x67, 0x68, 0x0a, 0xc7,
-	0xae, 0x26, 0xba, 0xac, 0x50, 0x3f, 0x18, 0x04, 0x57, 0xbd, 0xdb, 0x41, 0xe8, 0x4b, 0xfe, 0xfa,
-	0x14, 0xaa, 0x8f, 0xad, 0x29, 0x45, 0xcf, 0x1d, 0xd0, 0xe1, 0x57, 0x00, 0x6d, 0xef, 0xd0, 0xff,
-	0xd0, 0x62, 0x9c, 0x21, 0xf9, 0x47, 0xbb, 0xd0, 0x8c, 0xd9, 0x13, 0x09, 0x28, 0x85, 0xde, 0x84,
-	0x8b, 0x31, 0xea, 0x04, 0x67, 0xa8, 0x52, 0x36, 0x25, 0x0d, 0x7a, 0x01, 0x67, 0xf5, 0x4b, 0x4f,
-	0x04, 0x7f, 0xd4, 0x71, 0x12, 0x67, 0x0a, 0x05, 0x69, 0xd2, 0x21, 0x5c, 0xfe, 0x5a, 0x19, 0x97,
-	0xaa, 0xb6, 0xb4, 0x40, 0x99, 0x71, 0x26, 0x91, 0xb4, 0xe8, 0x09, 0x1c, 0xf9, 0x0c, 0xea, 0x49,
-	0x9c, 0xce, 0x30, 0x21, 0xed, 0xaa, 0x51, 0xe0, 0x98, 0xb3, 0x71, 0x3a, 0x43, 0x9d, 0x32, 0x9d,
-	0x09, 0x3e, 0x15, 0x28, 0x25, 0xe9, 0xd0, 0x73, 0xa0, 0x02, 0x47, 0x9c, 0xab, 0x03, 0xde, 0x1d,
-	0x3d, 0x40, 0xdf, 0x16, 0xcb, 0xd0, 0x6e, 0xcd, 0x26, 0xb7, 0xc5, 0x4b, 0xb8, 0x1f, 0xd2, 0x1f,
-	0xff, 0x7c, 0xbd, 0x5c, 0xbb, 0xd5, 0xfb, 0x22, 0xcc, 0xed, 0x5b, 0x54, 0x07, 0xa2, 0x7d, 0xe0,
-	0xe6, 0x67, 0xe9, 0xdd, 0x7d, 0xb4, 0xb4, 0x7e, 0xef, 0x45, 0xc7, 0xa3, 0xbb, 0xef, 0x00, 0x00,
-	0x00, 0xff, 0xff, 0xfc, 0xd7, 0xdf, 0xa2, 0x8c, 0x01, 0x00, 0x00,
+func init() { file_voltha_protos_core_proto_init() }
+func file_voltha_protos_core_proto_init() {
+	if File_voltha_protos_core_proto != nil {
+		return
+	}
+	type x struct{}
+	out := protoimpl.TypeBuilder{
+		File: protoimpl.DescBuilder{
+			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+			RawDescriptor: unsafe.Slice(unsafe.StringData(file_voltha_protos_core_proto_rawDesc), len(file_voltha_protos_core_proto_rawDesc)),
+			NumEnums:      1,
+			NumMessages:   1,
+			NumExtensions: 0,
+			NumServices:   0,
+		},
+		GoTypes:           file_voltha_protos_core_proto_goTypes,
+		DependencyIndexes: file_voltha_protos_core_proto_depIdxs,
+		EnumInfos:         file_voltha_protos_core_proto_enumTypes,
+		MessageInfos:      file_voltha_protos_core_proto_msgTypes,
+	}.Build()
+	File_voltha_protos_core_proto = out.File
+	file_voltha_protos_core_proto_goTypes = nil
+	file_voltha_protos_core_proto_depIdxs = nil
 }
diff --git a/go/core_adapter/core_adapter.pb.go b/go/core_adapter/core_adapter.pb.go
index 3259b05..c79baf3 100644
--- a/go/core_adapter/core_adapter.pb.go
+++ b/go/core_adapter/core_adapter.pb.go
@@ -1,1177 +1,1384 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// 	protoc-gen-go v1.36.11
+// 	protoc        v4.25.8
 // source: voltha_protos/core_adapter.proto
 
 package core_adapter
 
 import (
-	fmt "fmt"
-	proto "github.com/golang/protobuf/proto"
 	common "github.com/opencord/voltha-protos/v5/go/common"
 	extension "github.com/opencord/voltha-protos/v5/go/extension"
 	omci "github.com/opencord/voltha-protos/v5/go/omci"
 	openflow_13 "github.com/opencord/voltha-protos/v5/go/openflow_13"
 	voltha "github.com/opencord/voltha-protos/v5/go/voltha"
-	math "math"
+	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+	reflect "reflect"
+	sync "sync"
+	unsafe "unsafe"
 )
 
-// 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
+const (
+	// Verify that this generated code is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+	// Verify that runtime/protoimpl is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
 
 type AdapterRegistration struct {
-	Adapter              *voltha.Adapter     `protobuf:"bytes,1,opt,name=adapter,proto3" json:"adapter,omitempty"`
-	DTypes               *voltha.DeviceTypes `protobuf:"bytes,2,opt,name=dTypes,proto3" json:"dTypes,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
-	XXX_unrecognized     []byte              `json:"-"`
-	XXX_sizecache        int32               `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Adapter       *voltha.Adapter        `protobuf:"bytes,1,opt,name=adapter,proto3" json:"adapter,omitempty"`
+	DTypes        *voltha.DeviceTypes    `protobuf:"bytes,2,opt,name=dTypes,proto3" json:"dTypes,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *AdapterRegistration) Reset()         { *m = AdapterRegistration{} }
-func (m *AdapterRegistration) String() string { return proto.CompactTextString(m) }
-func (*AdapterRegistration) ProtoMessage()    {}
+func (x *AdapterRegistration) Reset() {
+	*x = AdapterRegistration{}
+	mi := &file_voltha_protos_core_adapter_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *AdapterRegistration) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AdapterRegistration) ProtoMessage() {}
+
+func (x *AdapterRegistration) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_core_adapter_proto_msgTypes[0]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use AdapterRegistration.ProtoReflect.Descriptor instead.
 func (*AdapterRegistration) Descriptor() ([]byte, []int) {
-	return fileDescriptor_b77436fd29d035f0, []int{0}
+	return file_voltha_protos_core_adapter_proto_rawDescGZIP(), []int{0}
 }
 
-func (m *AdapterRegistration) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_AdapterRegistration.Unmarshal(m, b)
-}
-func (m *AdapterRegistration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_AdapterRegistration.Marshal(b, m, deterministic)
-}
-func (m *AdapterRegistration) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_AdapterRegistration.Merge(m, src)
-}
-func (m *AdapterRegistration) XXX_Size() int {
-	return xxx_messageInfo_AdapterRegistration.Size(m)
-}
-func (m *AdapterRegistration) XXX_DiscardUnknown() {
-	xxx_messageInfo_AdapterRegistration.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_AdapterRegistration proto.InternalMessageInfo
-
-func (m *AdapterRegistration) GetAdapter() *voltha.Adapter {
-	if m != nil {
-		return m.Adapter
+func (x *AdapterRegistration) GetAdapter() *voltha.Adapter {
+	if x != nil {
+		return x.Adapter
 	}
 	return nil
 }
 
-func (m *AdapterRegistration) GetDTypes() *voltha.DeviceTypes {
-	if m != nil {
-		return m.DTypes
+func (x *AdapterRegistration) GetDTypes() *voltha.DeviceTypes {
+	if x != nil {
+		return x.DTypes
 	}
 	return nil
 }
 
 type ChildDeviceFilter struct {
-	ParentId             string   `protobuf:"bytes,1,opt,name=parent_id,json=parentId,proto3" json:"parent_id,omitempty"`
-	SerialNumber         string   `protobuf:"bytes,2,opt,name=serial_number,json=serialNumber,proto3" json:"serial_number,omitempty"`
-	OnuId                uint32   `protobuf:"varint,3,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
-	ParentPortNo         uint32   `protobuf:"varint,4,opt,name=parent_port_no,json=parentPortNo,proto3" json:"parent_port_no,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	ParentId      string                 `protobuf:"bytes,1,opt,name=parent_id,json=parentId,proto3" json:"parent_id,omitempty"`
+	SerialNumber  string                 `protobuf:"bytes,2,opt,name=serial_number,json=serialNumber,proto3" json:"serial_number,omitempty"`
+	OnuId         uint32                 `protobuf:"varint,3,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
+	ParentPortNo  uint32                 `protobuf:"varint,4,opt,name=parent_port_no,json=parentPortNo,proto3" json:"parent_port_no,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *ChildDeviceFilter) Reset()         { *m = ChildDeviceFilter{} }
-func (m *ChildDeviceFilter) String() string { return proto.CompactTextString(m) }
-func (*ChildDeviceFilter) ProtoMessage()    {}
+func (x *ChildDeviceFilter) Reset() {
+	*x = ChildDeviceFilter{}
+	mi := &file_voltha_protos_core_adapter_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ChildDeviceFilter) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ChildDeviceFilter) ProtoMessage() {}
+
+func (x *ChildDeviceFilter) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_core_adapter_proto_msgTypes[1]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ChildDeviceFilter.ProtoReflect.Descriptor instead.
 func (*ChildDeviceFilter) Descriptor() ([]byte, []int) {
-	return fileDescriptor_b77436fd29d035f0, []int{1}
+	return file_voltha_protos_core_adapter_proto_rawDescGZIP(), []int{1}
 }
 
-func (m *ChildDeviceFilter) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_ChildDeviceFilter.Unmarshal(m, b)
-}
-func (m *ChildDeviceFilter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_ChildDeviceFilter.Marshal(b, m, deterministic)
-}
-func (m *ChildDeviceFilter) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_ChildDeviceFilter.Merge(m, src)
-}
-func (m *ChildDeviceFilter) XXX_Size() int {
-	return xxx_messageInfo_ChildDeviceFilter.Size(m)
-}
-func (m *ChildDeviceFilter) XXX_DiscardUnknown() {
-	xxx_messageInfo_ChildDeviceFilter.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_ChildDeviceFilter proto.InternalMessageInfo
-
-func (m *ChildDeviceFilter) GetParentId() string {
-	if m != nil {
-		return m.ParentId
+func (x *ChildDeviceFilter) GetParentId() string {
+	if x != nil {
+		return x.ParentId
 	}
 	return ""
 }
 
-func (m *ChildDeviceFilter) GetSerialNumber() string {
-	if m != nil {
-		return m.SerialNumber
+func (x *ChildDeviceFilter) GetSerialNumber() string {
+	if x != nil {
+		return x.SerialNumber
 	}
 	return ""
 }
 
-func (m *ChildDeviceFilter) GetOnuId() uint32 {
-	if m != nil {
-		return m.OnuId
+func (x *ChildDeviceFilter) GetOnuId() uint32 {
+	if x != nil {
+		return x.OnuId
 	}
 	return 0
 }
 
-func (m *ChildDeviceFilter) GetParentPortNo() uint32 {
-	if m != nil {
-		return m.ParentPortNo
+func (x *ChildDeviceFilter) GetParentPortNo() uint32 {
+	if x != nil {
+		return x.ParentPortNo
 	}
 	return 0
 }
 
 type PortFilter struct {
-	DeviceId             string               `protobuf:"bytes,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
-	Port                 uint32               `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
-	PortType             voltha.Port_PortType `protobuf:"varint,3,opt,name=port_type,json=portType,proto3,enum=device.Port_PortType" json:"port_type,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
-	XXX_unrecognized     []byte               `json:"-"`
-	XXX_sizecache        int32                `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	DeviceId      string                 `protobuf:"bytes,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
+	Port          uint32                 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
+	PortType      voltha.Port_PortType   `protobuf:"varint,3,opt,name=port_type,json=portType,proto3,enum=device.Port_PortType" json:"port_type,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *PortFilter) Reset()         { *m = PortFilter{} }
-func (m *PortFilter) String() string { return proto.CompactTextString(m) }
-func (*PortFilter) ProtoMessage()    {}
+func (x *PortFilter) Reset() {
+	*x = PortFilter{}
+	mi := &file_voltha_protos_core_adapter_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *PortFilter) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PortFilter) ProtoMessage() {}
+
+func (x *PortFilter) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_core_adapter_proto_msgTypes[2]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use PortFilter.ProtoReflect.Descriptor instead.
 func (*PortFilter) Descriptor() ([]byte, []int) {
-	return fileDescriptor_b77436fd29d035f0, []int{2}
+	return file_voltha_protos_core_adapter_proto_rawDescGZIP(), []int{2}
 }
 
-func (m *PortFilter) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_PortFilter.Unmarshal(m, b)
-}
-func (m *PortFilter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_PortFilter.Marshal(b, m, deterministic)
-}
-func (m *PortFilter) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_PortFilter.Merge(m, src)
-}
-func (m *PortFilter) XXX_Size() int {
-	return xxx_messageInfo_PortFilter.Size(m)
-}
-func (m *PortFilter) XXX_DiscardUnknown() {
-	xxx_messageInfo_PortFilter.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_PortFilter proto.InternalMessageInfo
-
-func (m *PortFilter) GetDeviceId() string {
-	if m != nil {
-		return m.DeviceId
+func (x *PortFilter) GetDeviceId() string {
+	if x != nil {
+		return x.DeviceId
 	}
 	return ""
 }
 
-func (m *PortFilter) GetPort() uint32 {
-	if m != nil {
-		return m.Port
+func (x *PortFilter) GetPort() uint32 {
+	if x != nil {
+		return x.Port
 	}
 	return 0
 }
 
-func (m *PortFilter) GetPortType() voltha.Port_PortType {
-	if m != nil {
-		return m.PortType
+func (x *PortFilter) GetPortType() voltha.Port_PortType {
+	if x != nil {
+		return x.PortType
 	}
-	return voltha.Port_UNKNOWN
+	return voltha.Port_PortType(0)
 }
 
 type DeviceDiscovery struct {
-	ParentId             string   `protobuf:"bytes,1,opt,name=parent_id,json=parentId,proto3" json:"parent_id,omitempty"`
-	ParentPortNo         uint32   `protobuf:"varint,2,opt,name=parent_port_no,json=parentPortNo,proto3" json:"parent_port_no,omitempty"`
-	ChildDeviceType      string   `protobuf:"bytes,3,opt,name=child_device_type,json=childDeviceType,proto3" json:"child_device_type,omitempty"`
-	ChannelId            uint32   `protobuf:"varint,4,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"`
-	VendorId             string   `protobuf:"bytes,5,opt,name=vendor_id,json=vendorId,proto3" json:"vendor_id,omitempty"`
-	SerialNumber         string   `protobuf:"bytes,6,opt,name=serial_number,json=serialNumber,proto3" json:"serial_number,omitempty"`
-	OnuId                uint32   `protobuf:"varint,7,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state           protoimpl.MessageState `protogen:"open.v1"`
+	ParentId        string                 `protobuf:"bytes,1,opt,name=parent_id,json=parentId,proto3" json:"parent_id,omitempty"`
+	ParentPortNo    uint32                 `protobuf:"varint,2,opt,name=parent_port_no,json=parentPortNo,proto3" json:"parent_port_no,omitempty"`
+	ChildDeviceType string                 `protobuf:"bytes,3,opt,name=child_device_type,json=childDeviceType,proto3" json:"child_device_type,omitempty"`
+	ChannelId       uint32                 `protobuf:"varint,4,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"`
+	VendorId        string                 `protobuf:"bytes,5,opt,name=vendor_id,json=vendorId,proto3" json:"vendor_id,omitempty"`
+	SerialNumber    string                 `protobuf:"bytes,6,opt,name=serial_number,json=serialNumber,proto3" json:"serial_number,omitempty"`
+	OnuId           uint32                 `protobuf:"varint,7,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
+	unknownFields   protoimpl.UnknownFields
+	sizeCache       protoimpl.SizeCache
 }
 
-func (m *DeviceDiscovery) Reset()         { *m = DeviceDiscovery{} }
-func (m *DeviceDiscovery) String() string { return proto.CompactTextString(m) }
-func (*DeviceDiscovery) ProtoMessage()    {}
+func (x *DeviceDiscovery) Reset() {
+	*x = DeviceDiscovery{}
+	mi := &file_voltha_protos_core_adapter_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *DeviceDiscovery) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeviceDiscovery) ProtoMessage() {}
+
+func (x *DeviceDiscovery) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_core_adapter_proto_msgTypes[3]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeviceDiscovery.ProtoReflect.Descriptor instead.
 func (*DeviceDiscovery) Descriptor() ([]byte, []int) {
-	return fileDescriptor_b77436fd29d035f0, []int{3}
+	return file_voltha_protos_core_adapter_proto_rawDescGZIP(), []int{3}
 }
 
-func (m *DeviceDiscovery) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_DeviceDiscovery.Unmarshal(m, b)
-}
-func (m *DeviceDiscovery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_DeviceDiscovery.Marshal(b, m, deterministic)
-}
-func (m *DeviceDiscovery) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_DeviceDiscovery.Merge(m, src)
-}
-func (m *DeviceDiscovery) XXX_Size() int {
-	return xxx_messageInfo_DeviceDiscovery.Size(m)
-}
-func (m *DeviceDiscovery) XXX_DiscardUnknown() {
-	xxx_messageInfo_DeviceDiscovery.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_DeviceDiscovery proto.InternalMessageInfo
-
-func (m *DeviceDiscovery) GetParentId() string {
-	if m != nil {
-		return m.ParentId
+func (x *DeviceDiscovery) GetParentId() string {
+	if x != nil {
+		return x.ParentId
 	}
 	return ""
 }
 
-func (m *DeviceDiscovery) GetParentPortNo() uint32 {
-	if m != nil {
-		return m.ParentPortNo
+func (x *DeviceDiscovery) GetParentPortNo() uint32 {
+	if x != nil {
+		return x.ParentPortNo
 	}
 	return 0
 }
 
-func (m *DeviceDiscovery) GetChildDeviceType() string {
-	if m != nil {
-		return m.ChildDeviceType
+func (x *DeviceDiscovery) GetChildDeviceType() string {
+	if x != nil {
+		return x.ChildDeviceType
 	}
 	return ""
 }
 
-func (m *DeviceDiscovery) GetChannelId() uint32 {
-	if m != nil {
-		return m.ChannelId
+func (x *DeviceDiscovery) GetChannelId() uint32 {
+	if x != nil {
+		return x.ChannelId
 	}
 	return 0
 }
 
-func (m *DeviceDiscovery) GetVendorId() string {
-	if m != nil {
-		return m.VendorId
+func (x *DeviceDiscovery) GetVendorId() string {
+	if x != nil {
+		return x.VendorId
 	}
 	return ""
 }
 
-func (m *DeviceDiscovery) GetSerialNumber() string {
-	if m != nil {
-		return m.SerialNumber
+func (x *DeviceDiscovery) GetSerialNumber() string {
+	if x != nil {
+		return x.SerialNumber
 	}
 	return ""
 }
 
-func (m *DeviceDiscovery) GetOnuId() uint32 {
-	if m != nil {
-		return m.OnuId
+func (x *DeviceDiscovery) GetOnuId() uint32 {
+	if x != nil {
+		return x.OnuId
 	}
 	return 0
 }
 
 type DeviceStateFilter struct {
-	DeviceId             string                     `protobuf:"bytes,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
-	ParentDeviceId       string                     `protobuf:"bytes,2,opt,name=parent_device_id,json=parentDeviceId,proto3" json:"parent_device_id,omitempty"`
-	OperStatus           common.OperStatus_Types    `protobuf:"varint,3,opt,name=oper_status,json=operStatus,proto3,enum=common.OperStatus_Types" json:"oper_status,omitempty"`
-	ConnStatus           common.ConnectStatus_Types `protobuf:"varint,4,opt,name=conn_status,json=connStatus,proto3,enum=common.ConnectStatus_Types" json:"conn_status,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                   `json:"-"`
-	XXX_unrecognized     []byte                     `json:"-"`
-	XXX_sizecache        int32                      `json:"-"`
+	state          protoimpl.MessageState     `protogen:"open.v1"`
+	DeviceId       string                     `protobuf:"bytes,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
+	ParentDeviceId string                     `protobuf:"bytes,2,opt,name=parent_device_id,json=parentDeviceId,proto3" json:"parent_device_id,omitempty"`
+	OperStatus     common.OperStatus_Types    `protobuf:"varint,3,opt,name=oper_status,json=operStatus,proto3,enum=common.OperStatus_Types" json:"oper_status,omitempty"`
+	ConnStatus     common.ConnectStatus_Types `protobuf:"varint,4,opt,name=conn_status,json=connStatus,proto3,enum=common.ConnectStatus_Types" json:"conn_status,omitempty"`
+	unknownFields  protoimpl.UnknownFields
+	sizeCache      protoimpl.SizeCache
 }
 
-func (m *DeviceStateFilter) Reset()         { *m = DeviceStateFilter{} }
-func (m *DeviceStateFilter) String() string { return proto.CompactTextString(m) }
-func (*DeviceStateFilter) ProtoMessage()    {}
+func (x *DeviceStateFilter) Reset() {
+	*x = DeviceStateFilter{}
+	mi := &file_voltha_protos_core_adapter_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *DeviceStateFilter) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeviceStateFilter) ProtoMessage() {}
+
+func (x *DeviceStateFilter) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_core_adapter_proto_msgTypes[4]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeviceStateFilter.ProtoReflect.Descriptor instead.
 func (*DeviceStateFilter) Descriptor() ([]byte, []int) {
-	return fileDescriptor_b77436fd29d035f0, []int{4}
+	return file_voltha_protos_core_adapter_proto_rawDescGZIP(), []int{4}
 }
 
-func (m *DeviceStateFilter) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_DeviceStateFilter.Unmarshal(m, b)
-}
-func (m *DeviceStateFilter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_DeviceStateFilter.Marshal(b, m, deterministic)
-}
-func (m *DeviceStateFilter) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_DeviceStateFilter.Merge(m, src)
-}
-func (m *DeviceStateFilter) XXX_Size() int {
-	return xxx_messageInfo_DeviceStateFilter.Size(m)
-}
-func (m *DeviceStateFilter) XXX_DiscardUnknown() {
-	xxx_messageInfo_DeviceStateFilter.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_DeviceStateFilter proto.InternalMessageInfo
-
-func (m *DeviceStateFilter) GetDeviceId() string {
-	if m != nil {
-		return m.DeviceId
+func (x *DeviceStateFilter) GetDeviceId() string {
+	if x != nil {
+		return x.DeviceId
 	}
 	return ""
 }
 
-func (m *DeviceStateFilter) GetParentDeviceId() string {
-	if m != nil {
-		return m.ParentDeviceId
+func (x *DeviceStateFilter) GetParentDeviceId() string {
+	if x != nil {
+		return x.ParentDeviceId
 	}
 	return ""
 }
 
-func (m *DeviceStateFilter) GetOperStatus() common.OperStatus_Types {
-	if m != nil {
-		return m.OperStatus
+func (x *DeviceStateFilter) GetOperStatus() common.OperStatus_Types {
+	if x != nil {
+		return x.OperStatus
 	}
-	return common.OperStatus_UNKNOWN
+	return common.OperStatus_Types(0)
 }
 
-func (m *DeviceStateFilter) GetConnStatus() common.ConnectStatus_Types {
-	if m != nil {
-		return m.ConnStatus
+func (x *DeviceStateFilter) GetConnStatus() common.ConnectStatus_Types {
+	if x != nil {
+		return x.ConnStatus
 	}
-	return common.ConnectStatus_UNKNOWN
+	return common.ConnectStatus_Types(0)
 }
 
 type PortState struct {
-	DeviceId             string                  `protobuf:"bytes,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
-	PortType             voltha.Port_PortType    `protobuf:"varint,2,opt,name=port_type,json=portType,proto3,enum=device.Port_PortType" json:"port_type,omitempty"`
-	PortNo               uint32                  `protobuf:"varint,3,opt,name=port_no,json=portNo,proto3" json:"port_no,omitempty"`
-	OperStatus           common.OperStatus_Types `protobuf:"varint,4,opt,name=oper_status,json=operStatus,proto3,enum=common.OperStatus_Types" json:"oper_status,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
-	XXX_unrecognized     []byte                  `json:"-"`
-	XXX_sizecache        int32                   `json:"-"`
+	state         protoimpl.MessageState  `protogen:"open.v1"`
+	DeviceId      string                  `protobuf:"bytes,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
+	PortType      voltha.Port_PortType    `protobuf:"varint,2,opt,name=port_type,json=portType,proto3,enum=device.Port_PortType" json:"port_type,omitempty"`
+	PortNo        uint32                  `protobuf:"varint,3,opt,name=port_no,json=portNo,proto3" json:"port_no,omitempty"`
+	OperStatus    common.OperStatus_Types `protobuf:"varint,4,opt,name=oper_status,json=operStatus,proto3,enum=common.OperStatus_Types" json:"oper_status,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *PortState) Reset()         { *m = PortState{} }
-func (m *PortState) String() string { return proto.CompactTextString(m) }
-func (*PortState) ProtoMessage()    {}
+func (x *PortState) Reset() {
+	*x = PortState{}
+	mi := &file_voltha_protos_core_adapter_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *PortState) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PortState) ProtoMessage() {}
+
+func (x *PortState) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_core_adapter_proto_msgTypes[5]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use PortState.ProtoReflect.Descriptor instead.
 func (*PortState) Descriptor() ([]byte, []int) {
-	return fileDescriptor_b77436fd29d035f0, []int{5}
+	return file_voltha_protos_core_adapter_proto_rawDescGZIP(), []int{5}
 }
 
-func (m *PortState) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_PortState.Unmarshal(m, b)
-}
-func (m *PortState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_PortState.Marshal(b, m, deterministic)
-}
-func (m *PortState) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_PortState.Merge(m, src)
-}
-func (m *PortState) XXX_Size() int {
-	return xxx_messageInfo_PortState.Size(m)
-}
-func (m *PortState) XXX_DiscardUnknown() {
-	xxx_messageInfo_PortState.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_PortState proto.InternalMessageInfo
-
-func (m *PortState) GetDeviceId() string {
-	if m != nil {
-		return m.DeviceId
+func (x *PortState) GetDeviceId() string {
+	if x != nil {
+		return x.DeviceId
 	}
 	return ""
 }
 
-func (m *PortState) GetPortType() voltha.Port_PortType {
-	if m != nil {
-		return m.PortType
+func (x *PortState) GetPortType() voltha.Port_PortType {
+	if x != nil {
+		return x.PortType
 	}
-	return voltha.Port_UNKNOWN
+	return voltha.Port_PortType(0)
 }
 
-func (m *PortState) GetPortNo() uint32 {
-	if m != nil {
-		return m.PortNo
+func (x *PortState) GetPortNo() uint32 {
+	if x != nil {
+		return x.PortNo
 	}
 	return 0
 }
 
-func (m *PortState) GetOperStatus() common.OperStatus_Types {
-	if m != nil {
-		return m.OperStatus
+func (x *PortState) GetOperStatus() common.OperStatus_Types {
+	if x != nil {
+		return x.OperStatus
 	}
-	return common.OperStatus_UNKNOWN
+	return common.OperStatus_Types(0)
 }
 
 type PortStateFilter struct {
-	DeviceId             string                  `protobuf:"bytes,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
-	PortTypeFilter       uint32                  `protobuf:"varint,2,opt,name=port_type_filter,json=portTypeFilter,proto3" json:"port_type_filter,omitempty"`
-	OperStatus           common.OperStatus_Types `protobuf:"varint,4,opt,name=oper_status,json=operStatus,proto3,enum=common.OperStatus_Types" json:"oper_status,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
-	XXX_unrecognized     []byte                  `json:"-"`
-	XXX_sizecache        int32                   `json:"-"`
+	state          protoimpl.MessageState  `protogen:"open.v1"`
+	DeviceId       string                  `protobuf:"bytes,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
+	PortTypeFilter uint32                  `protobuf:"varint,2,opt,name=port_type_filter,json=portTypeFilter,proto3" json:"port_type_filter,omitempty"`
+	OperStatus     common.OperStatus_Types `protobuf:"varint,4,opt,name=oper_status,json=operStatus,proto3,enum=common.OperStatus_Types" json:"oper_status,omitempty"`
+	unknownFields  protoimpl.UnknownFields
+	sizeCache      protoimpl.SizeCache
 }
 
-func (m *PortStateFilter) Reset()         { *m = PortStateFilter{} }
-func (m *PortStateFilter) String() string { return proto.CompactTextString(m) }
-func (*PortStateFilter) ProtoMessage()    {}
+func (x *PortStateFilter) Reset() {
+	*x = PortStateFilter{}
+	mi := &file_voltha_protos_core_adapter_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *PortStateFilter) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PortStateFilter) ProtoMessage() {}
+
+func (x *PortStateFilter) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_core_adapter_proto_msgTypes[6]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use PortStateFilter.ProtoReflect.Descriptor instead.
 func (*PortStateFilter) Descriptor() ([]byte, []int) {
-	return fileDescriptor_b77436fd29d035f0, []int{6}
+	return file_voltha_protos_core_adapter_proto_rawDescGZIP(), []int{6}
 }
 
-func (m *PortStateFilter) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_PortStateFilter.Unmarshal(m, b)
-}
-func (m *PortStateFilter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_PortStateFilter.Marshal(b, m, deterministic)
-}
-func (m *PortStateFilter) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_PortStateFilter.Merge(m, src)
-}
-func (m *PortStateFilter) XXX_Size() int {
-	return xxx_messageInfo_PortStateFilter.Size(m)
-}
-func (m *PortStateFilter) XXX_DiscardUnknown() {
-	xxx_messageInfo_PortStateFilter.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_PortStateFilter proto.InternalMessageInfo
-
-func (m *PortStateFilter) GetDeviceId() string {
-	if m != nil {
-		return m.DeviceId
+func (x *PortStateFilter) GetDeviceId() string {
+	if x != nil {
+		return x.DeviceId
 	}
 	return ""
 }
 
-func (m *PortStateFilter) GetPortTypeFilter() uint32 {
-	if m != nil {
-		return m.PortTypeFilter
+func (x *PortStateFilter) GetPortTypeFilter() uint32 {
+	if x != nil {
+		return x.PortTypeFilter
 	}
 	return 0
 }
 
-func (m *PortStateFilter) GetOperStatus() common.OperStatus_Types {
-	if m != nil {
-		return m.OperStatus
+func (x *PortStateFilter) GetOperStatus() common.OperStatus_Types {
+	if x != nil {
+		return x.OperStatus
 	}
-	return common.OperStatus_UNKNOWN
+	return common.OperStatus_Types(0)
 }
 
 type PacketIn struct {
-	DeviceId             string   `protobuf:"bytes,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
-	Port                 uint32   `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
-	Packet               []byte   `protobuf:"bytes,3,opt,name=packet,proto3" json:"packet,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	DeviceId      string                 `protobuf:"bytes,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
+	Port          uint32                 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
+	Packet        []byte                 `protobuf:"bytes,3,opt,name=packet,proto3" json:"packet,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *PacketIn) Reset()         { *m = PacketIn{} }
-func (m *PacketIn) String() string { return proto.CompactTextString(m) }
-func (*PacketIn) ProtoMessage()    {}
+func (x *PacketIn) Reset() {
+	*x = PacketIn{}
+	mi := &file_voltha_protos_core_adapter_proto_msgTypes[7]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *PacketIn) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PacketIn) ProtoMessage() {}
+
+func (x *PacketIn) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_core_adapter_proto_msgTypes[7]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use PacketIn.ProtoReflect.Descriptor instead.
 func (*PacketIn) Descriptor() ([]byte, []int) {
-	return fileDescriptor_b77436fd29d035f0, []int{7}
+	return file_voltha_protos_core_adapter_proto_rawDescGZIP(), []int{7}
 }
 
-func (m *PacketIn) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_PacketIn.Unmarshal(m, b)
-}
-func (m *PacketIn) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_PacketIn.Marshal(b, m, deterministic)
-}
-func (m *PacketIn) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_PacketIn.Merge(m, src)
-}
-func (m *PacketIn) XXX_Size() int {
-	return xxx_messageInfo_PacketIn.Size(m)
-}
-func (m *PacketIn) XXX_DiscardUnknown() {
-	xxx_messageInfo_PacketIn.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_PacketIn proto.InternalMessageInfo
-
-func (m *PacketIn) GetDeviceId() string {
-	if m != nil {
-		return m.DeviceId
+func (x *PacketIn) GetDeviceId() string {
+	if x != nil {
+		return x.DeviceId
 	}
 	return ""
 }
 
-func (m *PacketIn) GetPort() uint32 {
-	if m != nil {
-		return m.Port
+func (x *PacketIn) GetPort() uint32 {
+	if x != nil {
+		return x.Port
 	}
 	return 0
 }
 
-func (m *PacketIn) GetPacket() []byte {
-	if m != nil {
-		return m.Packet
+func (x *PacketIn) GetPacket() []byte {
+	if x != nil {
+		return x.Packet
 	}
 	return nil
 }
 
 type PacketOut struct {
-	DeviceId             string                    `protobuf:"bytes,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
-	EgressPortNo         uint32                    `protobuf:"varint,2,opt,name=egress_port_no,json=egressPortNo,proto3" json:"egress_port_no,omitempty"`
-	Packet               *openflow_13.OfpPacketOut `protobuf:"bytes,3,opt,name=packet,proto3" json:"packet,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                  `json:"-"`
-	XXX_unrecognized     []byte                    `json:"-"`
-	XXX_sizecache        int32                     `json:"-"`
+	state         protoimpl.MessageState    `protogen:"open.v1"`
+	DeviceId      string                    `protobuf:"bytes,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
+	EgressPortNo  uint32                    `protobuf:"varint,2,opt,name=egress_port_no,json=egressPortNo,proto3" json:"egress_port_no,omitempty"`
+	Packet        *openflow_13.OfpPacketOut `protobuf:"bytes,3,opt,name=packet,proto3" json:"packet,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *PacketOut) Reset()         { *m = PacketOut{} }
-func (m *PacketOut) String() string { return proto.CompactTextString(m) }
-func (*PacketOut) ProtoMessage()    {}
+func (x *PacketOut) Reset() {
+	*x = PacketOut{}
+	mi := &file_voltha_protos_core_adapter_proto_msgTypes[8]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *PacketOut) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PacketOut) ProtoMessage() {}
+
+func (x *PacketOut) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_core_adapter_proto_msgTypes[8]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use PacketOut.ProtoReflect.Descriptor instead.
 func (*PacketOut) Descriptor() ([]byte, []int) {
-	return fileDescriptor_b77436fd29d035f0, []int{8}
+	return file_voltha_protos_core_adapter_proto_rawDescGZIP(), []int{8}
 }
 
-func (m *PacketOut) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_PacketOut.Unmarshal(m, b)
-}
-func (m *PacketOut) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_PacketOut.Marshal(b, m, deterministic)
-}
-func (m *PacketOut) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_PacketOut.Merge(m, src)
-}
-func (m *PacketOut) XXX_Size() int {
-	return xxx_messageInfo_PacketOut.Size(m)
-}
-func (m *PacketOut) XXX_DiscardUnknown() {
-	xxx_messageInfo_PacketOut.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_PacketOut proto.InternalMessageInfo
-
-func (m *PacketOut) GetDeviceId() string {
-	if m != nil {
-		return m.DeviceId
+func (x *PacketOut) GetDeviceId() string {
+	if x != nil {
+		return x.DeviceId
 	}
 	return ""
 }
 
-func (m *PacketOut) GetEgressPortNo() uint32 {
-	if m != nil {
-		return m.EgressPortNo
+func (x *PacketOut) GetEgressPortNo() uint32 {
+	if x != nil {
+		return x.EgressPortNo
 	}
 	return 0
 }
 
-func (m *PacketOut) GetPacket() *openflow_13.OfpPacketOut {
-	if m != nil {
-		return m.Packet
+func (x *PacketOut) GetPacket() *openflow_13.OfpPacketOut {
+	if x != nil {
+		return x.Packet
 	}
 	return nil
 }
 
 type DeviceReason struct {
-	DeviceId             string   `protobuf:"bytes,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
-	Reason               string   `protobuf:"bytes,2,opt,name=reason,proto3" json:"reason,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	DeviceId      string                 `protobuf:"bytes,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
+	Reason        string                 `protobuf:"bytes,2,opt,name=reason,proto3" json:"reason,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *DeviceReason) Reset()         { *m = DeviceReason{} }
-func (m *DeviceReason) String() string { return proto.CompactTextString(m) }
-func (*DeviceReason) ProtoMessage()    {}
+func (x *DeviceReason) Reset() {
+	*x = DeviceReason{}
+	mi := &file_voltha_protos_core_adapter_proto_msgTypes[9]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *DeviceReason) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeviceReason) ProtoMessage() {}
+
+func (x *DeviceReason) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_core_adapter_proto_msgTypes[9]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeviceReason.ProtoReflect.Descriptor instead.
 func (*DeviceReason) Descriptor() ([]byte, []int) {
-	return fileDescriptor_b77436fd29d035f0, []int{9}
+	return file_voltha_protos_core_adapter_proto_rawDescGZIP(), []int{9}
 }
 
-func (m *DeviceReason) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_DeviceReason.Unmarshal(m, b)
-}
-func (m *DeviceReason) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_DeviceReason.Marshal(b, m, deterministic)
-}
-func (m *DeviceReason) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_DeviceReason.Merge(m, src)
-}
-func (m *DeviceReason) XXX_Size() int {
-	return xxx_messageInfo_DeviceReason.Size(m)
-}
-func (m *DeviceReason) XXX_DiscardUnknown() {
-	xxx_messageInfo_DeviceReason.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_DeviceReason proto.InternalMessageInfo
-
-func (m *DeviceReason) GetDeviceId() string {
-	if m != nil {
-		return m.DeviceId
+func (x *DeviceReason) GetDeviceId() string {
+	if x != nil {
+		return x.DeviceId
 	}
 	return ""
 }
 
-func (m *DeviceReason) GetReason() string {
-	if m != nil {
-		return m.Reason
+func (x *DeviceReason) GetReason() string {
+	if x != nil {
+		return x.Reason
 	}
 	return ""
 }
 
 type BulkFlows struct {
-	Device               *voltha.Device            `protobuf:"bytes,1,opt,name=device,proto3" json:"device,omitempty"`
-	Flows                *openflow_13.Flows        `protobuf:"bytes,2,opt,name=flows,proto3" json:"flows,omitempty"`
-	Groups               *openflow_13.FlowGroups   `protobuf:"bytes,3,opt,name=groups,proto3" json:"groups,omitempty"`
-	FlowMetadata         *openflow_13.FlowMetadata `protobuf:"bytes,4,opt,name=flow_metadata,json=flowMetadata,proto3" json:"flow_metadata,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                  `json:"-"`
-	XXX_unrecognized     []byte                    `json:"-"`
-	XXX_sizecache        int32                     `json:"-"`
+	state         protoimpl.MessageState    `protogen:"open.v1"`
+	Device        *voltha.Device            `protobuf:"bytes,1,opt,name=device,proto3" json:"device,omitempty"`
+	Flows         *openflow_13.Flows        `protobuf:"bytes,2,opt,name=flows,proto3" json:"flows,omitempty"`
+	Groups        *openflow_13.FlowGroups   `protobuf:"bytes,3,opt,name=groups,proto3" json:"groups,omitempty"`
+	FlowMetadata  *openflow_13.FlowMetadata `protobuf:"bytes,4,opt,name=flow_metadata,json=flowMetadata,proto3" json:"flow_metadata,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *BulkFlows) Reset()         { *m = BulkFlows{} }
-func (m *BulkFlows) String() string { return proto.CompactTextString(m) }
-func (*BulkFlows) ProtoMessage()    {}
+func (x *BulkFlows) Reset() {
+	*x = BulkFlows{}
+	mi := &file_voltha_protos_core_adapter_proto_msgTypes[10]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *BulkFlows) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*BulkFlows) ProtoMessage() {}
+
+func (x *BulkFlows) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_core_adapter_proto_msgTypes[10]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use BulkFlows.ProtoReflect.Descriptor instead.
 func (*BulkFlows) Descriptor() ([]byte, []int) {
-	return fileDescriptor_b77436fd29d035f0, []int{10}
+	return file_voltha_protos_core_adapter_proto_rawDescGZIP(), []int{10}
 }
 
-func (m *BulkFlows) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_BulkFlows.Unmarshal(m, b)
-}
-func (m *BulkFlows) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_BulkFlows.Marshal(b, m, deterministic)
-}
-func (m *BulkFlows) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_BulkFlows.Merge(m, src)
-}
-func (m *BulkFlows) XXX_Size() int {
-	return xxx_messageInfo_BulkFlows.Size(m)
-}
-func (m *BulkFlows) XXX_DiscardUnknown() {
-	xxx_messageInfo_BulkFlows.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_BulkFlows proto.InternalMessageInfo
-
-func (m *BulkFlows) GetDevice() *voltha.Device {
-	if m != nil {
-		return m.Device
+func (x *BulkFlows) GetDevice() *voltha.Device {
+	if x != nil {
+		return x.Device
 	}
 	return nil
 }
 
-func (m *BulkFlows) GetFlows() *openflow_13.Flows {
-	if m != nil {
-		return m.Flows
+func (x *BulkFlows) GetFlows() *openflow_13.Flows {
+	if x != nil {
+		return x.Flows
 	}
 	return nil
 }
 
-func (m *BulkFlows) GetGroups() *openflow_13.FlowGroups {
-	if m != nil {
-		return m.Groups
+func (x *BulkFlows) GetGroups() *openflow_13.FlowGroups {
+	if x != nil {
+		return x.Groups
 	}
 	return nil
 }
 
-func (m *BulkFlows) GetFlowMetadata() *openflow_13.FlowMetadata {
-	if m != nil {
-		return m.FlowMetadata
+func (x *BulkFlows) GetFlowMetadata() *openflow_13.FlowMetadata {
+	if x != nil {
+		return x.FlowMetadata
 	}
 	return nil
 }
 
 type IncrementalFlows struct {
-	Device               *voltha.Device                `protobuf:"bytes,1,opt,name=device,proto3" json:"device,omitempty"`
-	Flows                *openflow_13.FlowChanges      `protobuf:"bytes,2,opt,name=flows,proto3" json:"flows,omitempty"`
-	Groups               *openflow_13.FlowGroupChanges `protobuf:"bytes,3,opt,name=groups,proto3" json:"groups,omitempty"`
-	FlowMetadata         *openflow_13.FlowMetadata     `protobuf:"bytes,4,opt,name=flow_metadata,json=flowMetadata,proto3" json:"flow_metadata,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                      `json:"-"`
-	XXX_unrecognized     []byte                        `json:"-"`
-	XXX_sizecache        int32                         `json:"-"`
+	state         protoimpl.MessageState        `protogen:"open.v1"`
+	Device        *voltha.Device                `protobuf:"bytes,1,opt,name=device,proto3" json:"device,omitempty"`
+	Flows         *openflow_13.FlowChanges      `protobuf:"bytes,2,opt,name=flows,proto3" json:"flows,omitempty"`
+	Groups        *openflow_13.FlowGroupChanges `protobuf:"bytes,3,opt,name=groups,proto3" json:"groups,omitempty"`
+	FlowMetadata  *openflow_13.FlowMetadata     `protobuf:"bytes,4,opt,name=flow_metadata,json=flowMetadata,proto3" json:"flow_metadata,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *IncrementalFlows) Reset()         { *m = IncrementalFlows{} }
-func (m *IncrementalFlows) String() string { return proto.CompactTextString(m) }
-func (*IncrementalFlows) ProtoMessage()    {}
+func (x *IncrementalFlows) Reset() {
+	*x = IncrementalFlows{}
+	mi := &file_voltha_protos_core_adapter_proto_msgTypes[11]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *IncrementalFlows) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*IncrementalFlows) ProtoMessage() {}
+
+func (x *IncrementalFlows) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_core_adapter_proto_msgTypes[11]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use IncrementalFlows.ProtoReflect.Descriptor instead.
 func (*IncrementalFlows) Descriptor() ([]byte, []int) {
-	return fileDescriptor_b77436fd29d035f0, []int{11}
+	return file_voltha_protos_core_adapter_proto_rawDescGZIP(), []int{11}
 }
 
-func (m *IncrementalFlows) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_IncrementalFlows.Unmarshal(m, b)
-}
-func (m *IncrementalFlows) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_IncrementalFlows.Marshal(b, m, deterministic)
-}
-func (m *IncrementalFlows) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_IncrementalFlows.Merge(m, src)
-}
-func (m *IncrementalFlows) XXX_Size() int {
-	return xxx_messageInfo_IncrementalFlows.Size(m)
-}
-func (m *IncrementalFlows) XXX_DiscardUnknown() {
-	xxx_messageInfo_IncrementalFlows.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_IncrementalFlows proto.InternalMessageInfo
-
-func (m *IncrementalFlows) GetDevice() *voltha.Device {
-	if m != nil {
-		return m.Device
+func (x *IncrementalFlows) GetDevice() *voltha.Device {
+	if x != nil {
+		return x.Device
 	}
 	return nil
 }
 
-func (m *IncrementalFlows) GetFlows() *openflow_13.FlowChanges {
-	if m != nil {
-		return m.Flows
+func (x *IncrementalFlows) GetFlows() *openflow_13.FlowChanges {
+	if x != nil {
+		return x.Flows
 	}
 	return nil
 }
 
-func (m *IncrementalFlows) GetGroups() *openflow_13.FlowGroupChanges {
-	if m != nil {
-		return m.Groups
+func (x *IncrementalFlows) GetGroups() *openflow_13.FlowGroupChanges {
+	if x != nil {
+		return x.Groups
 	}
 	return nil
 }
 
-func (m *IncrementalFlows) GetFlowMetadata() *openflow_13.FlowMetadata {
-	if m != nil {
-		return m.FlowMetadata
+func (x *IncrementalFlows) GetFlowMetadata() *openflow_13.FlowMetadata {
+	if x != nil {
+		return x.FlowMetadata
 	}
 	return nil
 }
 
 type PmConfigsInfo struct {
-	DeviceId             string            `protobuf:"bytes,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
-	PmConfigs            *voltha.PmConfigs `protobuf:"bytes,2,opt,name=pm_configs,json=pmConfigs,proto3" json:"pm_configs,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
-	XXX_unrecognized     []byte            `json:"-"`
-	XXX_sizecache        int32             `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	DeviceId      string                 `protobuf:"bytes,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
+	PmConfigs     *voltha.PmConfigs      `protobuf:"bytes,2,opt,name=pm_configs,json=pmConfigs,proto3" json:"pm_configs,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *PmConfigsInfo) Reset()         { *m = PmConfigsInfo{} }
-func (m *PmConfigsInfo) String() string { return proto.CompactTextString(m) }
-func (*PmConfigsInfo) ProtoMessage()    {}
+func (x *PmConfigsInfo) Reset() {
+	*x = PmConfigsInfo{}
+	mi := &file_voltha_protos_core_adapter_proto_msgTypes[12]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *PmConfigsInfo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PmConfigsInfo) ProtoMessage() {}
+
+func (x *PmConfigsInfo) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_core_adapter_proto_msgTypes[12]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use PmConfigsInfo.ProtoReflect.Descriptor instead.
 func (*PmConfigsInfo) Descriptor() ([]byte, []int) {
-	return fileDescriptor_b77436fd29d035f0, []int{12}
+	return file_voltha_protos_core_adapter_proto_rawDescGZIP(), []int{12}
 }
 
-func (m *PmConfigsInfo) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_PmConfigsInfo.Unmarshal(m, b)
-}
-func (m *PmConfigsInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_PmConfigsInfo.Marshal(b, m, deterministic)
-}
-func (m *PmConfigsInfo) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_PmConfigsInfo.Merge(m, src)
-}
-func (m *PmConfigsInfo) XXX_Size() int {
-	return xxx_messageInfo_PmConfigsInfo.Size(m)
-}
-func (m *PmConfigsInfo) XXX_DiscardUnknown() {
-	xxx_messageInfo_PmConfigsInfo.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_PmConfigsInfo proto.InternalMessageInfo
-
-func (m *PmConfigsInfo) GetDeviceId() string {
-	if m != nil {
-		return m.DeviceId
+func (x *PmConfigsInfo) GetDeviceId() string {
+	if x != nil {
+		return x.DeviceId
 	}
 	return ""
 }
 
-func (m *PmConfigsInfo) GetPmConfigs() *voltha.PmConfigs {
-	if m != nil {
-		return m.PmConfigs
+func (x *PmConfigsInfo) GetPmConfigs() *voltha.PmConfigs {
+	if x != nil {
+		return x.PmConfigs
 	}
 	return nil
 }
 
 type SwitchCapability struct {
-	Desc                 *openflow_13.OfpDesc           `protobuf:"bytes,1,opt,name=desc,proto3" json:"desc,omitempty"`
-	SwitchFeatures       *openflow_13.OfpSwitchFeatures `protobuf:"bytes,2,opt,name=switch_features,json=switchFeatures,proto3" json:"switch_features,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                       `json:"-"`
-	XXX_unrecognized     []byte                         `json:"-"`
-	XXX_sizecache        int32                          `json:"-"`
+	state          protoimpl.MessageState         `protogen:"open.v1"`
+	Desc           *openflow_13.OfpDesc           `protobuf:"bytes,1,opt,name=desc,proto3" json:"desc,omitempty"`
+	SwitchFeatures *openflow_13.OfpSwitchFeatures `protobuf:"bytes,2,opt,name=switch_features,json=switchFeatures,proto3" json:"switch_features,omitempty"`
+	unknownFields  protoimpl.UnknownFields
+	sizeCache      protoimpl.SizeCache
 }
 
-func (m *SwitchCapability) Reset()         { *m = SwitchCapability{} }
-func (m *SwitchCapability) String() string { return proto.CompactTextString(m) }
-func (*SwitchCapability) ProtoMessage()    {}
+func (x *SwitchCapability) Reset() {
+	*x = SwitchCapability{}
+	mi := &file_voltha_protos_core_adapter_proto_msgTypes[13]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *SwitchCapability) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SwitchCapability) ProtoMessage() {}
+
+func (x *SwitchCapability) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_core_adapter_proto_msgTypes[13]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SwitchCapability.ProtoReflect.Descriptor instead.
 func (*SwitchCapability) Descriptor() ([]byte, []int) {
-	return fileDescriptor_b77436fd29d035f0, []int{13}
+	return file_voltha_protos_core_adapter_proto_rawDescGZIP(), []int{13}
 }
 
-func (m *SwitchCapability) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_SwitchCapability.Unmarshal(m, b)
-}
-func (m *SwitchCapability) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_SwitchCapability.Marshal(b, m, deterministic)
-}
-func (m *SwitchCapability) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_SwitchCapability.Merge(m, src)
-}
-func (m *SwitchCapability) XXX_Size() int {
-	return xxx_messageInfo_SwitchCapability.Size(m)
-}
-func (m *SwitchCapability) XXX_DiscardUnknown() {
-	xxx_messageInfo_SwitchCapability.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_SwitchCapability proto.InternalMessageInfo
-
-func (m *SwitchCapability) GetDesc() *openflow_13.OfpDesc {
-	if m != nil {
-		return m.Desc
+func (x *SwitchCapability) GetDesc() *openflow_13.OfpDesc {
+	if x != nil {
+		return x.Desc
 	}
 	return nil
 }
 
-func (m *SwitchCapability) GetSwitchFeatures() *openflow_13.OfpSwitchFeatures {
-	if m != nil {
-		return m.SwitchFeatures
+func (x *SwitchCapability) GetSwitchFeatures() *openflow_13.OfpSwitchFeatures {
+	if x != nil {
+		return x.SwitchFeatures
 	}
 	return nil
 }
 
 type ImageDownloadMessage struct {
-	Device               *voltha.Device        `protobuf:"bytes,1,opt,name=device,proto3" json:"device,omitempty"`
-	Image                *voltha.ImageDownload `protobuf:"bytes,2,opt,name=image,proto3" json:"image,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
-	XXX_unrecognized     []byte                `json:"-"`
-	XXX_sizecache        int32                 `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Device        *voltha.Device         `protobuf:"bytes,1,opt,name=device,proto3" json:"device,omitempty"`
+	Image         *voltha.ImageDownload  `protobuf:"bytes,2,opt,name=image,proto3" json:"image,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *ImageDownloadMessage) Reset()         { *m = ImageDownloadMessage{} }
-func (m *ImageDownloadMessage) String() string { return proto.CompactTextString(m) }
-func (*ImageDownloadMessage) ProtoMessage()    {}
+func (x *ImageDownloadMessage) Reset() {
+	*x = ImageDownloadMessage{}
+	mi := &file_voltha_protos_core_adapter_proto_msgTypes[14]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ImageDownloadMessage) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ImageDownloadMessage) ProtoMessage() {}
+
+func (x *ImageDownloadMessage) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_core_adapter_proto_msgTypes[14]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ImageDownloadMessage.ProtoReflect.Descriptor instead.
 func (*ImageDownloadMessage) Descriptor() ([]byte, []int) {
-	return fileDescriptor_b77436fd29d035f0, []int{14}
+	return file_voltha_protos_core_adapter_proto_rawDescGZIP(), []int{14}
 }
 
-func (m *ImageDownloadMessage) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_ImageDownloadMessage.Unmarshal(m, b)
-}
-func (m *ImageDownloadMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_ImageDownloadMessage.Marshal(b, m, deterministic)
-}
-func (m *ImageDownloadMessage) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_ImageDownloadMessage.Merge(m, src)
-}
-func (m *ImageDownloadMessage) XXX_Size() int {
-	return xxx_messageInfo_ImageDownloadMessage.Size(m)
-}
-func (m *ImageDownloadMessage) XXX_DiscardUnknown() {
-	xxx_messageInfo_ImageDownloadMessage.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_ImageDownloadMessage proto.InternalMessageInfo
-
-func (m *ImageDownloadMessage) GetDevice() *voltha.Device {
-	if m != nil {
-		return m.Device
+func (x *ImageDownloadMessage) GetDevice() *voltha.Device {
+	if x != nil {
+		return x.Device
 	}
 	return nil
 }
 
-func (m *ImageDownloadMessage) GetImage() *voltha.ImageDownload {
-	if m != nil {
-		return m.Image
+func (x *ImageDownloadMessage) GetImage() *voltha.ImageDownload {
+	if x != nil {
+		return x.Image
 	}
 	return nil
 }
 
 type OMCITest struct {
-	Device               *voltha.Device        `protobuf:"bytes,1,opt,name=device,proto3" json:"device,omitempty"`
-	Request              *omci.OmciTestRequest `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
-	XXX_unrecognized     []byte                `json:"-"`
-	XXX_sizecache        int32                 `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Device        *voltha.Device         `protobuf:"bytes,1,opt,name=device,proto3" json:"device,omitempty"`
+	Request       *omci.OmciTestRequest  `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *OMCITest) Reset()         { *m = OMCITest{} }
-func (m *OMCITest) String() string { return proto.CompactTextString(m) }
-func (*OMCITest) ProtoMessage()    {}
+func (x *OMCITest) Reset() {
+	*x = OMCITest{}
+	mi := &file_voltha_protos_core_adapter_proto_msgTypes[15]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OMCITest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OMCITest) ProtoMessage() {}
+
+func (x *OMCITest) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_core_adapter_proto_msgTypes[15]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OMCITest.ProtoReflect.Descriptor instead.
 func (*OMCITest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_b77436fd29d035f0, []int{15}
+	return file_voltha_protos_core_adapter_proto_rawDescGZIP(), []int{15}
 }
 
-func (m *OMCITest) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OMCITest.Unmarshal(m, b)
-}
-func (m *OMCITest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OMCITest.Marshal(b, m, deterministic)
-}
-func (m *OMCITest) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OMCITest.Merge(m, src)
-}
-func (m *OMCITest) XXX_Size() int {
-	return xxx_messageInfo_OMCITest.Size(m)
-}
-func (m *OMCITest) XXX_DiscardUnknown() {
-	xxx_messageInfo_OMCITest.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OMCITest proto.InternalMessageInfo
-
-func (m *OMCITest) GetDevice() *voltha.Device {
-	if m != nil {
-		return m.Device
+func (x *OMCITest) GetDevice() *voltha.Device {
+	if x != nil {
+		return x.Device
 	}
 	return nil
 }
 
-func (m *OMCITest) GetRequest() *omci.OmciTestRequest {
-	if m != nil {
-		return m.Request
+func (x *OMCITest) GetRequest() *omci.OmciTestRequest {
+	if x != nil {
+		return x.Request
 	}
 	return nil
 }
 
 type SimulateAlarmMessage struct {
-	Device               *voltha.Device               `protobuf:"bytes,1,opt,name=device,proto3" json:"device,omitempty"`
-	Request              *voltha.SimulateAlarmRequest `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                     `json:"-"`
-	XXX_unrecognized     []byte                       `json:"-"`
-	XXX_sizecache        int32                        `json:"-"`
+	state         protoimpl.MessageState       `protogen:"open.v1"`
+	Device        *voltha.Device               `protobuf:"bytes,1,opt,name=device,proto3" json:"device,omitempty"`
+	Request       *voltha.SimulateAlarmRequest `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *SimulateAlarmMessage) Reset()         { *m = SimulateAlarmMessage{} }
-func (m *SimulateAlarmMessage) String() string { return proto.CompactTextString(m) }
-func (*SimulateAlarmMessage) ProtoMessage()    {}
+func (x *SimulateAlarmMessage) Reset() {
+	*x = SimulateAlarmMessage{}
+	mi := &file_voltha_protos_core_adapter_proto_msgTypes[16]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *SimulateAlarmMessage) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SimulateAlarmMessage) ProtoMessage() {}
+
+func (x *SimulateAlarmMessage) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_core_adapter_proto_msgTypes[16]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SimulateAlarmMessage.ProtoReflect.Descriptor instead.
 func (*SimulateAlarmMessage) Descriptor() ([]byte, []int) {
-	return fileDescriptor_b77436fd29d035f0, []int{16}
+	return file_voltha_protos_core_adapter_proto_rawDescGZIP(), []int{16}
 }
 
-func (m *SimulateAlarmMessage) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_SimulateAlarmMessage.Unmarshal(m, b)
-}
-func (m *SimulateAlarmMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_SimulateAlarmMessage.Marshal(b, m, deterministic)
-}
-func (m *SimulateAlarmMessage) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_SimulateAlarmMessage.Merge(m, src)
-}
-func (m *SimulateAlarmMessage) XXX_Size() int {
-	return xxx_messageInfo_SimulateAlarmMessage.Size(m)
-}
-func (m *SimulateAlarmMessage) XXX_DiscardUnknown() {
-	xxx_messageInfo_SimulateAlarmMessage.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_SimulateAlarmMessage proto.InternalMessageInfo
-
-func (m *SimulateAlarmMessage) GetDevice() *voltha.Device {
-	if m != nil {
-		return m.Device
+func (x *SimulateAlarmMessage) GetDevice() *voltha.Device {
+	if x != nil {
+		return x.Device
 	}
 	return nil
 }
 
-func (m *SimulateAlarmMessage) GetRequest() *voltha.SimulateAlarmRequest {
-	if m != nil {
-		return m.Request
+func (x *SimulateAlarmMessage) GetRequest() *voltha.SimulateAlarmRequest {
+	if x != nil {
+		return x.Request
 	}
 	return nil
 }
 
 type GetExtValueMessage struct {
-	ParentDevice         *voltha.Device           `protobuf:"bytes,1,opt,name=parent_device,json=parentDevice,proto3" json:"parent_device,omitempty"`
-	ChildDevice          *voltha.Device           `protobuf:"bytes,2,opt,name=child_device,json=childDevice,proto3" json:"child_device,omitempty"`
-	ValueType            extension.ValueType_Type `protobuf:"varint,3,opt,name=value_type,json=valueType,proto3,enum=extension.ValueType_Type" json:"value_type,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                 `json:"-"`
-	XXX_unrecognized     []byte                   `json:"-"`
-	XXX_sizecache        int32                    `json:"-"`
+	state         protoimpl.MessageState   `protogen:"open.v1"`
+	ParentDevice  *voltha.Device           `protobuf:"bytes,1,opt,name=parent_device,json=parentDevice,proto3" json:"parent_device,omitempty"`
+	ChildDevice   *voltha.Device           `protobuf:"bytes,2,opt,name=child_device,json=childDevice,proto3" json:"child_device,omitempty"`
+	ValueType     extension.ValueType_Type `protobuf:"varint,3,opt,name=value_type,json=valueType,proto3,enum=extension.ValueType_Type" json:"value_type,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *GetExtValueMessage) Reset()         { *m = GetExtValueMessage{} }
-func (m *GetExtValueMessage) String() string { return proto.CompactTextString(m) }
-func (*GetExtValueMessage) ProtoMessage()    {}
+func (x *GetExtValueMessage) Reset() {
+	*x = GetExtValueMessage{}
+	mi := &file_voltha_protos_core_adapter_proto_msgTypes[17]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GetExtValueMessage) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetExtValueMessage) ProtoMessage() {}
+
+func (x *GetExtValueMessage) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_core_adapter_proto_msgTypes[17]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetExtValueMessage.ProtoReflect.Descriptor instead.
 func (*GetExtValueMessage) Descriptor() ([]byte, []int) {
-	return fileDescriptor_b77436fd29d035f0, []int{17}
+	return file_voltha_protos_core_adapter_proto_rawDescGZIP(), []int{17}
 }
 
-func (m *GetExtValueMessage) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_GetExtValueMessage.Unmarshal(m, b)
-}
-func (m *GetExtValueMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_GetExtValueMessage.Marshal(b, m, deterministic)
-}
-func (m *GetExtValueMessage) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_GetExtValueMessage.Merge(m, src)
-}
-func (m *GetExtValueMessage) XXX_Size() int {
-	return xxx_messageInfo_GetExtValueMessage.Size(m)
-}
-func (m *GetExtValueMessage) XXX_DiscardUnknown() {
-	xxx_messageInfo_GetExtValueMessage.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_GetExtValueMessage proto.InternalMessageInfo
-
-func (m *GetExtValueMessage) GetParentDevice() *voltha.Device {
-	if m != nil {
-		return m.ParentDevice
+func (x *GetExtValueMessage) GetParentDevice() *voltha.Device {
+	if x != nil {
+		return x.ParentDevice
 	}
 	return nil
 }
 
-func (m *GetExtValueMessage) GetChildDevice() *voltha.Device {
-	if m != nil {
-		return m.ChildDevice
+func (x *GetExtValueMessage) GetChildDevice() *voltha.Device {
+	if x != nil {
+		return x.ChildDevice
 	}
 	return nil
 }
 
-func (m *GetExtValueMessage) GetValueType() extension.ValueType_Type {
-	if m != nil {
-		return m.ValueType
+func (x *GetExtValueMessage) GetValueType() extension.ValueType_Type {
+	if x != nil {
+		return x.ValueType
 	}
-	return extension.ValueType_EMPTY
+	return extension.ValueType_Type(0)
 }
 
 type SetExtValueMessage struct {
-	Device               *voltha.Device      `protobuf:"bytes,1,opt,name=device,proto3" json:"device,omitempty"`
-	Value                *extension.ValueSet `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
-	XXX_unrecognized     []byte              `json:"-"`
-	XXX_sizecache        int32               `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Device        *voltha.Device         `protobuf:"bytes,1,opt,name=device,proto3" json:"device,omitempty"`
+	Value         *extension.ValueSet    `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *SetExtValueMessage) Reset()         { *m = SetExtValueMessage{} }
-func (m *SetExtValueMessage) String() string { return proto.CompactTextString(m) }
-func (*SetExtValueMessage) ProtoMessage()    {}
+func (x *SetExtValueMessage) Reset() {
+	*x = SetExtValueMessage{}
+	mi := &file_voltha_protos_core_adapter_proto_msgTypes[18]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *SetExtValueMessage) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SetExtValueMessage) ProtoMessage() {}
+
+func (x *SetExtValueMessage) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_core_adapter_proto_msgTypes[18]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SetExtValueMessage.ProtoReflect.Descriptor instead.
 func (*SetExtValueMessage) Descriptor() ([]byte, []int) {
-	return fileDescriptor_b77436fd29d035f0, []int{18}
+	return file_voltha_protos_core_adapter_proto_rawDescGZIP(), []int{18}
 }
 
-func (m *SetExtValueMessage) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_SetExtValueMessage.Unmarshal(m, b)
-}
-func (m *SetExtValueMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_SetExtValueMessage.Marshal(b, m, deterministic)
-}
-func (m *SetExtValueMessage) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_SetExtValueMessage.Merge(m, src)
-}
-func (m *SetExtValueMessage) XXX_Size() int {
-	return xxx_messageInfo_SetExtValueMessage.Size(m)
-}
-func (m *SetExtValueMessage) XXX_DiscardUnknown() {
-	xxx_messageInfo_SetExtValueMessage.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_SetExtValueMessage proto.InternalMessageInfo
-
-func (m *SetExtValueMessage) GetDevice() *voltha.Device {
-	if m != nil {
-		return m.Device
+func (x *SetExtValueMessage) GetDevice() *voltha.Device {
+	if x != nil {
+		return x.Device
 	}
 	return nil
 }
 
-func (m *SetExtValueMessage) GetValue() *extension.ValueSet {
-	if m != nil {
-		return m.Value
+func (x *SetExtValueMessage) GetValue() *extension.ValueSet {
+	if x != nil {
+		return x.Value
 	}
 	return nil
 }
 
-func init() {
-	proto.RegisterType((*AdapterRegistration)(nil), "core_adapter.AdapterRegistration")
-	proto.RegisterType((*ChildDeviceFilter)(nil), "core_adapter.ChildDeviceFilter")
-	proto.RegisterType((*PortFilter)(nil), "core_adapter.PortFilter")
-	proto.RegisterType((*DeviceDiscovery)(nil), "core_adapter.DeviceDiscovery")
-	proto.RegisterType((*DeviceStateFilter)(nil), "core_adapter.DeviceStateFilter")
-	proto.RegisterType((*PortState)(nil), "core_adapter.PortState")
-	proto.RegisterType((*PortStateFilter)(nil), "core_adapter.PortStateFilter")
-	proto.RegisterType((*PacketIn)(nil), "core_adapter.PacketIn")
-	proto.RegisterType((*PacketOut)(nil), "core_adapter.PacketOut")
-	proto.RegisterType((*DeviceReason)(nil), "core_adapter.DeviceReason")
-	proto.RegisterType((*BulkFlows)(nil), "core_adapter.BulkFlows")
-	proto.RegisterType((*IncrementalFlows)(nil), "core_adapter.IncrementalFlows")
-	proto.RegisterType((*PmConfigsInfo)(nil), "core_adapter.PmConfigsInfo")
-	proto.RegisterType((*SwitchCapability)(nil), "core_adapter.SwitchCapability")
-	proto.RegisterType((*ImageDownloadMessage)(nil), "core_adapter.ImageDownloadMessage")
-	proto.RegisterType((*OMCITest)(nil), "core_adapter.OMCITest")
-	proto.RegisterType((*SimulateAlarmMessage)(nil), "core_adapter.SimulateAlarmMessage")
-	proto.RegisterType((*GetExtValueMessage)(nil), "core_adapter.GetExtValueMessage")
-	proto.RegisterType((*SetExtValueMessage)(nil), "core_adapter.SetExtValueMessage")
+var File_voltha_protos_core_adapter_proto protoreflect.FileDescriptor
+
+const file_voltha_protos_core_adapter_proto_rawDesc = "" +
+	"\n" +
+	" voltha_protos/core_adapter.proto\x12\fcore_adapter\x1a\x1avoltha_protos/common.proto\x1a\x1avoltha_protos/voltha.proto\x1a\x1fvoltha_protos/openflow_13.proto\x1a\x1bvoltha_protos/adapter.proto\x1a\x1avoltha_protos/device.proto\x1a\x1evoltha_protos/extensions.proto\x1a\x1dvoltha_protos/omci_test.proto\"n\n" +
+	"\x13AdapterRegistration\x12*\n" +
+	"\aadapter\x18\x01 \x01(\v2\x10.adapter.AdapterR\aadapter\x12+\n" +
+	"\x06dTypes\x18\x02 \x01(\v2\x13.device.DeviceTypesR\x06dTypes\"\x92\x01\n" +
+	"\x11ChildDeviceFilter\x12\x1b\n" +
+	"\tparent_id\x18\x01 \x01(\tR\bparentId\x12#\n" +
+	"\rserial_number\x18\x02 \x01(\tR\fserialNumber\x12\x15\n" +
+	"\x06onu_id\x18\x03 \x01(\rR\x05onuId\x12$\n" +
+	"\x0eparent_port_no\x18\x04 \x01(\rR\fparentPortNo\"q\n" +
+	"\n" +
+	"PortFilter\x12\x1b\n" +
+	"\tdevice_id\x18\x01 \x01(\tR\bdeviceId\x12\x12\n" +
+	"\x04port\x18\x02 \x01(\rR\x04port\x122\n" +
+	"\tport_type\x18\x03 \x01(\x0e2\x15.device.Port.PortTypeR\bportType\"\xf8\x01\n" +
+	"\x0fDeviceDiscovery\x12\x1b\n" +
+	"\tparent_id\x18\x01 \x01(\tR\bparentId\x12$\n" +
+	"\x0eparent_port_no\x18\x02 \x01(\rR\fparentPortNo\x12*\n" +
+	"\x11child_device_type\x18\x03 \x01(\tR\x0fchildDeviceType\x12\x1d\n" +
+	"\n" +
+	"channel_id\x18\x04 \x01(\rR\tchannelId\x12\x1b\n" +
+	"\tvendor_id\x18\x05 \x01(\tR\bvendorId\x12#\n" +
+	"\rserial_number\x18\x06 \x01(\tR\fserialNumber\x12\x15\n" +
+	"\x06onu_id\x18\a \x01(\rR\x05onuId\"\xd3\x01\n" +
+	"\x11DeviceStateFilter\x12\x1b\n" +
+	"\tdevice_id\x18\x01 \x01(\tR\bdeviceId\x12(\n" +
+	"\x10parent_device_id\x18\x02 \x01(\tR\x0eparentDeviceId\x129\n" +
+	"\voper_status\x18\x03 \x01(\x0e2\x18.common.OperStatus.TypesR\n" +
+	"operStatus\x12<\n" +
+	"\vconn_status\x18\x04 \x01(\x0e2\x1b.common.ConnectStatus.TypesR\n" +
+	"connStatus\"\xb0\x01\n" +
+	"\tPortState\x12\x1b\n" +
+	"\tdevice_id\x18\x01 \x01(\tR\bdeviceId\x122\n" +
+	"\tport_type\x18\x02 \x01(\x0e2\x15.device.Port.PortTypeR\bportType\x12\x17\n" +
+	"\aport_no\x18\x03 \x01(\rR\x06portNo\x129\n" +
+	"\voper_status\x18\x04 \x01(\x0e2\x18.common.OperStatus.TypesR\n" +
+	"operStatus\"\x93\x01\n" +
+	"\x0fPortStateFilter\x12\x1b\n" +
+	"\tdevice_id\x18\x01 \x01(\tR\bdeviceId\x12(\n" +
+	"\x10port_type_filter\x18\x02 \x01(\rR\x0eportTypeFilter\x129\n" +
+	"\voper_status\x18\x04 \x01(\x0e2\x18.common.OperStatus.TypesR\n" +
+	"operStatus\"S\n" +
+	"\bPacketIn\x12\x1b\n" +
+	"\tdevice_id\x18\x01 \x01(\tR\bdeviceId\x12\x12\n" +
+	"\x04port\x18\x02 \x01(\rR\x04port\x12\x16\n" +
+	"\x06packet\x18\x03 \x01(\fR\x06packet\"\x83\x01\n" +
+	"\tPacketOut\x12\x1b\n" +
+	"\tdevice_id\x18\x01 \x01(\tR\bdeviceId\x12$\n" +
+	"\x0eegress_port_no\x18\x02 \x01(\rR\fegressPortNo\x123\n" +
+	"\x06packet\x18\x03 \x01(\v2\x1b.openflow_13.ofp_packet_outR\x06packet\"C\n" +
+	"\fDeviceReason\x12\x1b\n" +
+	"\tdevice_id\x18\x01 \x01(\tR\bdeviceId\x12\x16\n" +
+	"\x06reason\x18\x02 \x01(\tR\x06reason\"\xce\x01\n" +
+	"\tBulkFlows\x12&\n" +
+	"\x06device\x18\x01 \x01(\v2\x0e.device.DeviceR\x06device\x12(\n" +
+	"\x05flows\x18\x02 \x01(\v2\x12.openflow_13.FlowsR\x05flows\x12/\n" +
+	"\x06groups\x18\x03 \x01(\v2\x17.openflow_13.FlowGroupsR\x06groups\x12>\n" +
+	"\rflow_metadata\x18\x04 \x01(\v2\x19.openflow_13.FlowMetadataR\fflowMetadata\"\xe1\x01\n" +
+	"\x10IncrementalFlows\x12&\n" +
+	"\x06device\x18\x01 \x01(\v2\x0e.device.DeviceR\x06device\x12.\n" +
+	"\x05flows\x18\x02 \x01(\v2\x18.openflow_13.FlowChangesR\x05flows\x125\n" +
+	"\x06groups\x18\x03 \x01(\v2\x1d.openflow_13.FlowGroupChangesR\x06groups\x12>\n" +
+	"\rflow_metadata\x18\x04 \x01(\v2\x19.openflow_13.FlowMetadataR\fflowMetadata\"^\n" +
+	"\rPmConfigsInfo\x12\x1b\n" +
+	"\tdevice_id\x18\x01 \x01(\tR\bdeviceId\x120\n" +
+	"\n" +
+	"pm_configs\x18\x02 \x01(\v2\x11.device.PmConfigsR\tpmConfigs\"\x88\x01\n" +
+	"\x10SwitchCapability\x12)\n" +
+	"\x04desc\x18\x01 \x01(\v2\x15.openflow_13.ofp_descR\x04desc\x12I\n" +
+	"\x0fswitch_features\x18\x02 \x01(\v2 .openflow_13.ofp_switch_featuresR\x0eswitchFeatures\"k\n" +
+	"\x14ImageDownloadMessage\x12&\n" +
+	"\x06device\x18\x01 \x01(\v2\x0e.device.DeviceR\x06device\x12+\n" +
+	"\x05image\x18\x02 \x01(\v2\x15.device.ImageDownloadR\x05image\"c\n" +
+	"\bOMCITest\x12&\n" +
+	"\x06device\x18\x01 \x01(\v2\x0e.device.DeviceR\x06device\x12/\n" +
+	"\arequest\x18\x02 \x01(\v2\x15.omci.OmciTestRequestR\arequest\"v\n" +
+	"\x14SimulateAlarmMessage\x12&\n" +
+	"\x06device\x18\x01 \x01(\v2\x0e.device.DeviceR\x06device\x126\n" +
+	"\arequest\x18\x02 \x01(\v2\x1c.device.SimulateAlarmRequestR\arequest\"\xb6\x01\n" +
+	"\x12GetExtValueMessage\x123\n" +
+	"\rparent_device\x18\x01 \x01(\v2\x0e.device.DeviceR\fparentDevice\x121\n" +
+	"\fchild_device\x18\x02 \x01(\v2\x0e.device.DeviceR\vchildDevice\x128\n" +
+	"\n" +
+	"value_type\x18\x03 \x01(\x0e2\x19.extension.ValueType.TypeR\tvalueType\"g\n" +
+	"\x12SetExtValueMessage\x12&\n" +
+	"\x06device\x18\x01 \x01(\v2\x0e.device.DeviceR\x06device\x12)\n" +
+	"\x05value\x18\x03 \x01(\v2\x13.extension.ValueSetR\x05valueBX\n" +
+	" org.opencord.voltha.core_adapterZ4github.com/opencord/voltha-protos/v5/go/core_adapterb\x06proto3"
+
+var (
+	file_voltha_protos_core_adapter_proto_rawDescOnce sync.Once
+	file_voltha_protos_core_adapter_proto_rawDescData []byte
+)
+
+func file_voltha_protos_core_adapter_proto_rawDescGZIP() []byte {
+	file_voltha_protos_core_adapter_proto_rawDescOnce.Do(func() {
+		file_voltha_protos_core_adapter_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_voltha_protos_core_adapter_proto_rawDesc), len(file_voltha_protos_core_adapter_proto_rawDesc)))
+	})
+	return file_voltha_protos_core_adapter_proto_rawDescData
 }
 
-func init() { proto.RegisterFile("voltha_protos/core_adapter.proto", fileDescriptor_b77436fd29d035f0) }
+var file_voltha_protos_core_adapter_proto_msgTypes = make([]protoimpl.MessageInfo, 19)
+var file_voltha_protos_core_adapter_proto_goTypes = []any{
+	(*AdapterRegistration)(nil),           // 0: core_adapter.AdapterRegistration
+	(*ChildDeviceFilter)(nil),             // 1: core_adapter.ChildDeviceFilter
+	(*PortFilter)(nil),                    // 2: core_adapter.PortFilter
+	(*DeviceDiscovery)(nil),               // 3: core_adapter.DeviceDiscovery
+	(*DeviceStateFilter)(nil),             // 4: core_adapter.DeviceStateFilter
+	(*PortState)(nil),                     // 5: core_adapter.PortState
+	(*PortStateFilter)(nil),               // 6: core_adapter.PortStateFilter
+	(*PacketIn)(nil),                      // 7: core_adapter.PacketIn
+	(*PacketOut)(nil),                     // 8: core_adapter.PacketOut
+	(*DeviceReason)(nil),                  // 9: core_adapter.DeviceReason
+	(*BulkFlows)(nil),                     // 10: core_adapter.BulkFlows
+	(*IncrementalFlows)(nil),              // 11: core_adapter.IncrementalFlows
+	(*PmConfigsInfo)(nil),                 // 12: core_adapter.PmConfigsInfo
+	(*SwitchCapability)(nil),              // 13: core_adapter.SwitchCapability
+	(*ImageDownloadMessage)(nil),          // 14: core_adapter.ImageDownloadMessage
+	(*OMCITest)(nil),                      // 15: core_adapter.OMCITest
+	(*SimulateAlarmMessage)(nil),          // 16: core_adapter.SimulateAlarmMessage
+	(*GetExtValueMessage)(nil),            // 17: core_adapter.GetExtValueMessage
+	(*SetExtValueMessage)(nil),            // 18: core_adapter.SetExtValueMessage
+	(*voltha.Adapter)(nil),                // 19: adapter.Adapter
+	(*voltha.DeviceTypes)(nil),            // 20: device.DeviceTypes
+	(voltha.Port_PortType)(0),             // 21: device.Port.PortType
+	(common.OperStatus_Types)(0),          // 22: common.OperStatus.Types
+	(common.ConnectStatus_Types)(0),       // 23: common.ConnectStatus.Types
+	(*openflow_13.OfpPacketOut)(nil),      // 24: openflow_13.ofp_packet_out
+	(*voltha.Device)(nil),                 // 25: device.Device
+	(*openflow_13.Flows)(nil),             // 26: openflow_13.Flows
+	(*openflow_13.FlowGroups)(nil),        // 27: openflow_13.FlowGroups
+	(*openflow_13.FlowMetadata)(nil),      // 28: openflow_13.FlowMetadata
+	(*openflow_13.FlowChanges)(nil),       // 29: openflow_13.FlowChanges
+	(*openflow_13.FlowGroupChanges)(nil),  // 30: openflow_13.FlowGroupChanges
+	(*voltha.PmConfigs)(nil),              // 31: device.PmConfigs
+	(*openflow_13.OfpDesc)(nil),           // 32: openflow_13.ofp_desc
+	(*openflow_13.OfpSwitchFeatures)(nil), // 33: openflow_13.ofp_switch_features
+	(*voltha.ImageDownload)(nil),          // 34: device.ImageDownload
+	(*omci.OmciTestRequest)(nil),          // 35: omci.OmciTestRequest
+	(*voltha.SimulateAlarmRequest)(nil),   // 36: device.SimulateAlarmRequest
+	(extension.ValueType_Type)(0),         // 37: extension.ValueType.Type
+	(*extension.ValueSet)(nil),            // 38: extension.ValueSet
+}
+var file_voltha_protos_core_adapter_proto_depIdxs = []int32{
+	19, // 0: core_adapter.AdapterRegistration.adapter:type_name -> adapter.Adapter
+	20, // 1: core_adapter.AdapterRegistration.dTypes:type_name -> device.DeviceTypes
+	21, // 2: core_adapter.PortFilter.port_type:type_name -> device.Port.PortType
+	22, // 3: core_adapter.DeviceStateFilter.oper_status:type_name -> common.OperStatus.Types
+	23, // 4: core_adapter.DeviceStateFilter.conn_status:type_name -> common.ConnectStatus.Types
+	21, // 5: core_adapter.PortState.port_type:type_name -> device.Port.PortType
+	22, // 6: core_adapter.PortState.oper_status:type_name -> common.OperStatus.Types
+	22, // 7: core_adapter.PortStateFilter.oper_status:type_name -> common.OperStatus.Types
+	24, // 8: core_adapter.PacketOut.packet:type_name -> openflow_13.ofp_packet_out
+	25, // 9: core_adapter.BulkFlows.device:type_name -> device.Device
+	26, // 10: core_adapter.BulkFlows.flows:type_name -> openflow_13.Flows
+	27, // 11: core_adapter.BulkFlows.groups:type_name -> openflow_13.FlowGroups
+	28, // 12: core_adapter.BulkFlows.flow_metadata:type_name -> openflow_13.FlowMetadata
+	25, // 13: core_adapter.IncrementalFlows.device:type_name -> device.Device
+	29, // 14: core_adapter.IncrementalFlows.flows:type_name -> openflow_13.FlowChanges
+	30, // 15: core_adapter.IncrementalFlows.groups:type_name -> openflow_13.FlowGroupChanges
+	28, // 16: core_adapter.IncrementalFlows.flow_metadata:type_name -> openflow_13.FlowMetadata
+	31, // 17: core_adapter.PmConfigsInfo.pm_configs:type_name -> device.PmConfigs
+	32, // 18: core_adapter.SwitchCapability.desc:type_name -> openflow_13.ofp_desc
+	33, // 19: core_adapter.SwitchCapability.switch_features:type_name -> openflow_13.ofp_switch_features
+	25, // 20: core_adapter.ImageDownloadMessage.device:type_name -> device.Device
+	34, // 21: core_adapter.ImageDownloadMessage.image:type_name -> device.ImageDownload
+	25, // 22: core_adapter.OMCITest.device:type_name -> device.Device
+	35, // 23: core_adapter.OMCITest.request:type_name -> omci.OmciTestRequest
+	25, // 24: core_adapter.SimulateAlarmMessage.device:type_name -> device.Device
+	36, // 25: core_adapter.SimulateAlarmMessage.request:type_name -> device.SimulateAlarmRequest
+	25, // 26: core_adapter.GetExtValueMessage.parent_device:type_name -> device.Device
+	25, // 27: core_adapter.GetExtValueMessage.child_device:type_name -> device.Device
+	37, // 28: core_adapter.GetExtValueMessage.value_type:type_name -> extension.ValueType.Type
+	25, // 29: core_adapter.SetExtValueMessage.device:type_name -> device.Device
+	38, // 30: core_adapter.SetExtValueMessage.value:type_name -> extension.ValueSet
+	31, // [31:31] is the sub-list for method output_type
+	31, // [31:31] is the sub-list for method input_type
+	31, // [31:31] is the sub-list for extension type_name
+	31, // [31:31] is the sub-list for extension extendee
+	0,  // [0:31] is the sub-list for field type_name
+}
 
-var fileDescriptor_b77436fd29d035f0 = []byte{
-	// 1107 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x56, 0x4f, 0x6f, 0x1b, 0x45,
-	0x14, 0xd7, 0x86, 0xc4, 0x89, 0x9f, 0xff, 0x24, 0x99, 0x34, 0x6d, 0xda, 0x10, 0x88, 0x96, 0x0a,
-	0xa5, 0xad, 0x70, 0x68, 0x42, 0x11, 0x48, 0x08, 0xa9, 0x75, 0x48, 0xe5, 0x43, 0x9a, 0x68, 0x5c,
-	0x21, 0xc4, 0x81, 0xd5, 0x64, 0x77, 0x6c, 0xaf, 0xb2, 0x3b, 0xb3, 0x9d, 0x99, 0x75, 0x9a, 0x33,
-	0x17, 0xce, 0xf0, 0x45, 0x38, 0xf1, 0x31, 0xb8, 0xf0, 0x09, 0xf8, 0x16, 0x1c, 0xd1, 0xfc, 0x59,
-	0xc7, 0xbb, 0x2e, 0xc1, 0x11, 0x5c, 0xec, 0x9d, 0xf7, 0x7e, 0xef, 0xbd, 0xdf, 0xef, 0xbd, 0xd9,
-	0xd9, 0x81, 0xdd, 0x31, 0x4f, 0xd4, 0x88, 0x04, 0x99, 0xe0, 0x8a, 0xcb, 0xfd, 0x90, 0x0b, 0x1a,
-	0x90, 0x88, 0x64, 0x8a, 0x8a, 0x8e, 0xb1, 0xa1, 0xe6, 0xb4, 0xed, 0xc1, 0x83, 0x2a, 0x3e, 0x4d,
-	0x39, 0xb3, 0xc8, 0xaa, 0xcf, 0xae, 0x9c, 0xef, 0xc3, 0xb2, 0x8f, 0x67, 0x94, 0x0d, 0x12, 0x7e,
-	0x19, 0x3c, 0x3d, 0x74, 0x80, 0xed, 0x32, 0xa0, 0xc4, 0xa1, 0x9a, 0x39, 0xa2, 0xe3, 0x38, 0xa4,
-	0xce, 0xf7, 0x41, 0xd9, 0x47, 0xdf, 0x2a, 0xca, 0x64, 0xcc, 0x99, 0x74, 0xfe, 0x9d, 0x4a, 0xe5,
-	0x34, 0x8c, 0x03, 0x45, 0xa5, 0xb2, 0x6e, 0x9f, 0xc1, 0xc6, 0x73, 0x5b, 0x0b, 0xd3, 0x61, 0x2c,
-	0x95, 0x20, 0x2a, 0xe6, 0x0c, 0x3d, 0x86, 0x65, 0x47, 0x61, 0xcb, 0xdb, 0xf5, 0xf6, 0x1a, 0x07,
-	0x6b, 0x9d, 0x82, 0x52, 0x01, 0x2f, 0x00, 0xe8, 0x09, 0xd4, 0xa2, 0xd7, 0x57, 0x19, 0x95, 0x5b,
-	0x0b, 0x06, 0xba, 0xd1, 0x71, 0x04, 0x8f, 0xcc, 0x9f, 0x71, 0x61, 0x07, 0xf1, 0x7f, 0xf6, 0x60,
-	0xbd, 0x3b, 0x8a, 0x93, 0xc8, 0x3a, 0x8f, 0xe3, 0x44, 0xa7, 0xd8, 0x86, 0x7a, 0x46, 0x04, 0x65,
-	0x2a, 0x88, 0x23, 0x53, 0xb0, 0x8e, 0x57, 0xac, 0xa1, 0x17, 0xa1, 0x8f, 0xa0, 0x25, 0xa9, 0x88,
-	0x49, 0x12, 0xb0, 0x3c, 0x3d, 0xa7, 0xc2, 0x94, 0xa9, 0xe3, 0xa6, 0x35, 0xbe, 0x32, 0x36, 0xb4,
-	0x09, 0x35, 0xce, 0x72, 0x1d, 0xfe, 0xde, 0xae, 0xb7, 0xd7, 0xc2, 0x4b, 0x9c, 0xe5, 0xbd, 0x08,
-	0x3d, 0x84, 0xb6, 0x4b, 0x9c, 0x71, 0xa1, 0x02, 0xc6, 0xb7, 0x16, 0x8d, 0xbb, 0x69, 0xad, 0x67,
-	0x5c, 0xa8, 0x57, 0xdc, 0x7f, 0x03, 0xa0, 0x9f, 0xae, 0xc9, 0x58, 0x01, 0x53, 0x64, 0xac, 0xa1,
-	0x17, 0x21, 0x04, 0x8b, 0x3a, 0x93, 0xe1, 0xd0, 0xc2, 0xe6, 0x19, 0x1d, 0x40, 0xdd, 0x64, 0x57,
-	0x57, 0x19, 0x35, 0xe5, 0xdb, 0x07, 0x9b, 0x45, 0x0f, 0x74, 0x5e, 0xf3, 0xa3, 0xe5, 0xe3, 0x95,
-	0xcc, 0x3d, 0xf9, 0x7f, 0x79, 0xb0, 0x6a, 0x5b, 0x70, 0x14, 0xcb, 0x90, 0x8f, 0xa9, 0xb8, 0xba,
-	0xb9, 0x0b, 0xb3, 0x4a, 0x16, 0x66, 0x95, 0xa0, 0xc7, 0xb0, 0x1e, 0xea, 0xee, 0x06, 0x4e, 0xc1,
-	0x84, 0x52, 0x1d, 0xaf, 0x86, 0xd7, 0x6d, 0xd7, 0x14, 0xd0, 0x0e, 0x40, 0x38, 0x22, 0x8c, 0xd1,
-	0x44, 0xd7, 0xb3, 0x7d, 0xa9, 0x3b, 0x4b, 0x2f, 0xd2, 0x6c, 0xc6, 0x94, 0x45, 0x5c, 0x68, 0xef,
-	0x92, 0x65, 0x63, 0x0d, 0xef, 0x9a, 0x49, 0xed, 0xc6, 0x99, 0x2c, 0x4f, 0xcd, 0xc4, 0xff, 0xc3,
-	0x83, 0x75, 0x4b, 0xa3, 0xaf, 0x88, 0xa2, 0xf3, 0x74, 0x7d, 0x0f, 0xd6, 0x9c, 0xf8, 0x6b, 0x8c,
-	0xdd, 0x05, 0xae, 0x29, 0x47, 0x05, 0xf2, 0x4b, 0x68, 0xf0, 0x8c, 0x8a, 0x40, 0x2a, 0xa2, 0x72,
-	0xe9, 0xa6, 0xb1, 0xd5, 0x71, 0x2f, 0xea, 0x69, 0x46, 0x45, 0xdf, 0x78, 0x3a, 0x76, 0x5b, 0x02,
-	0x9f, 0x58, 0xd0, 0x57, 0xd0, 0x08, 0x39, 0x63, 0x45, 0xe8, 0xa2, 0x09, 0xdd, 0x2e, 0x42, 0xbb,
-	0x9c, 0x31, 0x1a, 0xaa, 0x72, 0xb4, 0xc6, 0x5b, 0x8b, 0xff, 0xab, 0x07, 0x75, 0x3d, 0x04, 0xa3,
-	0xe9, 0x66, 0x35, 0xa5, 0xfd, 0xb2, 0x30, 0xd7, 0x7e, 0x41, 0xf7, 0x60, 0xb9, 0x98, 0xbb, 0xdd,
-	0xe0, 0xb5, 0xcc, 0x4e, 0xbc, 0x22, 0x78, 0x71, 0x7e, 0xc1, 0xfe, 0x2f, 0x1e, 0xac, 0x4e, 0x28,
-	0xcf, 0x3b, 0x86, 0x82, 0x78, 0x30, 0x30, 0x01, 0x6e, 0x17, 0xb6, 0x0b, 0xa2, 0x2e, 0xcd, 0x7f,
-	0x60, 0xd5, 0x87, 0x95, 0x33, 0x12, 0x5e, 0x50, 0xd5, 0x63, 0xb7, 0x7f, 0x15, 0xef, 0x42, 0x2d,
-	0x33, 0xc1, 0xa6, 0x4b, 0x4d, 0xec, 0x56, 0xfe, 0x8f, 0x7a, 0x3a, 0xe6, 0xf1, 0x34, 0x57, 0x37,
-	0xa7, 0x7d, 0x08, 0x6d, 0x3a, 0x14, 0x54, 0xca, 0xea, 0x8b, 0x66, 0xad, 0xee, 0x45, 0x3b, 0x2c,
-	0x15, 0x6a, 0x1c, 0x6c, 0x77, 0xa6, 0xcf, 0x74, 0x3e, 0xc8, 0x02, 0xeb, 0x0e, 0x78, 0xae, 0x26,
-	0x2c, 0xba, 0xd0, 0xb4, 0x1b, 0x15, 0x53, 0x22, 0xf9, 0xbf, 0xc8, 0xbb, 0x0b, 0x35, 0x61, 0x60,
-	0x6e, 0xa7, 0xbb, 0x95, 0xff, 0xbb, 0x07, 0xf5, 0x17, 0x79, 0x72, 0x71, 0x9c, 0xf0, 0x4b, 0x89,
-	0x3e, 0x86, 0x9a, 0x8d, 0x70, 0xe7, 0x74, 0xbb, 0x7c, 0xf8, 0x62, 0xe7, 0x45, 0x7b, 0xb0, 0xa4,
-	0xc9, 0x15, 0x67, 0x34, 0x2a, 0xd1, 0x35, 0xa9, 0xb0, 0x05, 0xa0, 0x7d, 0xa8, 0x0d, 0x05, 0xcf,
-	0x33, 0xe9, 0x94, 0xdd, 0x9b, 0x81, 0xbe, 0x34, 0x6e, 0xec, 0x60, 0xe8, 0x6b, 0x68, 0x19, 0x6f,
-	0x4a, 0x15, 0x89, 0x88, 0x22, 0x66, 0xda, 0x8d, 0x83, 0xfb, 0x33, 0x71, 0x27, 0x0e, 0x80, 0x9b,
-	0x83, 0xa9, 0x95, 0xff, 0xa7, 0x07, 0x6b, 0x3d, 0x16, 0x0a, 0x9a, 0x52, 0xa6, 0x48, 0x72, 0x3b,
-	0x5d, 0x9d, 0xb2, 0xae, 0xad, 0x99, 0xa2, 0xdd, 0x11, 0x61, 0x43, 0x3a, 0x51, 0xf7, 0xac, 0xa2,
-	0x6e, 0xe7, 0xdd, 0xea, 0x8a, 0xa8, 0xff, 0x4b, 0xe3, 0x0f, 0xd0, 0x3a, 0x4b, 0xbb, 0x9c, 0x0d,
-	0xe2, 0xa1, 0xec, 0xb1, 0x01, 0xbf, 0x79, 0xf4, 0x9f, 0x02, 0x64, 0x69, 0x10, 0x5a, 0xb8, 0x53,
-	0xb6, 0x3e, 0x39, 0x21, 0x8a, 0x3c, 0xb8, 0x9e, 0x15, 0x8f, 0xfe, 0x4f, 0x1e, 0xac, 0xf5, 0x2f,
-	0x63, 0x15, 0x8e, 0xba, 0x24, 0x23, 0xe7, 0x71, 0x12, 0xab, 0x2b, 0xf4, 0x08, 0x16, 0x23, 0x2a,
-	0x43, 0xd7, 0xc1, 0xcd, 0x99, 0x1d, 0xaa, 0x9d, 0xd8, 0x40, 0x50, 0x0f, 0x56, 0xa5, 0x09, 0x0f,
-	0x06, 0x94, 0xa8, 0x5c, 0x4c, 0x3e, 0xe6, 0xbb, 0x33, 0x51, 0x15, 0x1c, 0x6e, 0x5b, 0xc3, 0xb1,
-	0x5b, 0xfb, 0x17, 0x70, 0xa7, 0x97, 0x92, 0x21, 0x3d, 0xe2, 0x97, 0x2c, 0xe1, 0x24, 0x3a, 0xa1,
-	0x52, 0x92, 0x21, 0x9d, 0x7b, 0xa2, 0x4f, 0x60, 0x29, 0xd6, 0xf1, 0x8e, 0xc0, 0xe4, 0x64, 0x2c,
-	0x25, 0xc5, 0x16, 0xe3, 0x87, 0xb0, 0x72, 0x7a, 0xd2, 0xed, 0xbd, 0xa6, 0x52, 0xcd, 0x5d, 0x60,
-	0x1f, 0x96, 0x05, 0x7d, 0x93, 0x53, 0xa9, 0x26, 0x25, 0xf4, 0xad, 0xa8, 0x73, 0x9a, 0x86, 0xb1,
-	0x4e, 0x84, 0xad, 0x13, 0x17, 0x28, 0x7f, 0x0c, 0x77, 0xfa, 0x71, 0x9a, 0x27, 0x44, 0xd1, 0xe7,
-	0x09, 0x11, 0xe9, 0x6d, 0x15, 0x7d, 0x5e, 0x2d, 0xf8, 0x7e, 0x01, 0x2c, 0xa5, 0x9d, 0xa9, 0xfb,
-	0x9b, 0x07, 0xe8, 0x25, 0x55, 0xdf, 0xbc, 0x55, 0xdf, 0x92, 0x24, 0xa7, 0x45, 0xd9, 0x43, 0x68,
-	0x95, 0x3e, 0x86, 0xff, 0x50, 0xbd, 0x39, 0xfd, 0x65, 0x44, 0x4f, 0xa1, 0x39, 0x7d, 0x31, 0x70,
-	0x44, 0xaa, 0x31, 0x8d, 0xa9, 0x3b, 0x02, 0xfa, 0x02, 0x60, 0xac, 0xeb, 0x4e, 0xdf, 0x6b, 0xee,
-	0x77, 0x26, 0x17, 0xcc, 0x8e, 0x21, 0xa5, 0xcf, 0x6f, 0x73, 0x88, 0xe3, 0xfa, 0xb8, 0x58, 0xfb,
-	0x43, 0x40, 0xfd, 0x59, 0xde, 0xf3, 0xb6, 0xeb, 0x11, 0x2c, 0x99, 0x54, 0xee, 0x0d, 0xdd, 0xa8,
-	0x96, 0xec, 0x53, 0x85, 0x2d, 0xe2, 0xc5, 0x77, 0xb0, 0xcb, 0xc5, 0xd0, 0x6c, 0xd1, 0x90, 0x8b,
-	0xa8, 0xe3, 0xee, 0xdc, 0xd3, 0x57, 0xf6, 0xef, 0x3f, 0x1b, 0xc6, 0x6a, 0x94, 0x9f, 0xeb, 0x6f,
-	0xcf, 0x7e, 0x01, 0x74, 0x97, 0xf3, 0x4f, 0x8a, 0xab, 0xfa, 0xb3, 0xfd, 0x21, 0x2f, 0x5d, 0xfe,
-	0xcf, 0x6b, 0xc6, 0x75, 0xf8, 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0xbc, 0xbf, 0xfc, 0xfe, 0x21,
-	0x0c, 0x00, 0x00,
+func init() { file_voltha_protos_core_adapter_proto_init() }
+func file_voltha_protos_core_adapter_proto_init() {
+	if File_voltha_protos_core_adapter_proto != nil {
+		return
+	}
+	type x struct{}
+	out := protoimpl.TypeBuilder{
+		File: protoimpl.DescBuilder{
+			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+			RawDescriptor: unsafe.Slice(unsafe.StringData(file_voltha_protos_core_adapter_proto_rawDesc), len(file_voltha_protos_core_adapter_proto_rawDesc)),
+			NumEnums:      0,
+			NumMessages:   19,
+			NumExtensions: 0,
+			NumServices:   0,
+		},
+		GoTypes:           file_voltha_protos_core_adapter_proto_goTypes,
+		DependencyIndexes: file_voltha_protos_core_adapter_proto_depIdxs,
+		MessageInfos:      file_voltha_protos_core_adapter_proto_msgTypes,
+	}.Build()
+	File_voltha_protos_core_adapter_proto = out.File
+	file_voltha_protos_core_adapter_proto_goTypes = nil
+	file_voltha_protos_core_adapter_proto_depIdxs = nil
 }
diff --git a/go/core_service/core_services.pb.go b/go/core_service/core_services.pb.go
index 265d0c8..7547702 100644
--- a/go/core_service/core_services.pb.go
+++ b/go/core_service/core_services.pb.go
@@ -1,1023 +1,166 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// 	protoc-gen-go v1.36.11
+// 	protoc        v4.25.8
 // source: voltha_protos/core_services.proto
 
 package core_service
 
 import (
-	context "context"
-	fmt "fmt"
-	proto "github.com/golang/protobuf/proto"
-	empty "github.com/golang/protobuf/ptypes/empty"
 	common "github.com/opencord/voltha-protos/v5/go/common"
 	core_adapter "github.com/opencord/voltha-protos/v5/go/core_adapter"
 	health "github.com/opencord/voltha-protos/v5/go/health"
 	voltha "github.com/opencord/voltha-protos/v5/go/voltha"
-	grpc "google.golang.org/grpc"
-	codes "google.golang.org/grpc/codes"
-	status "google.golang.org/grpc/status"
-	math "math"
+	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+	emptypb "google.golang.org/protobuf/types/known/emptypb"
+	reflect "reflect"
+	unsafe "unsafe"
 )
 
-// Reference imports to suppress errors if they are not otherwise used.
-var _ = proto.Marshal
-var _ = fmt.Errorf
-var _ = math.Inf
+const (
+	// Verify that this generated code is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+	// Verify that runtime/protoimpl is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
 
-// 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
+var File_voltha_protos_core_services_proto protoreflect.FileDescriptor
 
-func init() { proto.RegisterFile("voltha_protos/core_services.proto", fileDescriptor_979c43850713f141) }
+const file_voltha_protos_core_services_proto_rawDesc = "" +
+	"\n" +
+	"!voltha_protos/core_services.proto\x12\fcore_service\x1a\x1bgoogle/protobuf/empty.proto\x1a voltha_protos/core_adapter.proto\x1a\x1avoltha_protos/common.proto\x1a\x1avoltha_protos/device.proto\x1a\x1avoltha_protos/health.proto2\xfd\v\n" +
+	"\vCoreService\x12?\n" +
+	"\x0fGetHealthStatus\x12\x12.common.Connection\x1a\x14.health.HealthStatus(\x010\x01\x12L\n" +
+	"\x0fRegisterAdapter\x12!.core_adapter.AdapterRegistration\x1a\x16.google.protobuf.Empty\x126\n" +
+	"\fDeviceUpdate\x12\x0e.device.Device\x1a\x16.google.protobuf.Empty\x123\n" +
+	"\vPortCreated\x12\f.device.Port\x1a\x16.google.protobuf.Empty\x12I\n" +
+	"\x10PortsStateUpdate\x12\x1d.core_adapter.PortStateFilter\x1a\x16.google.protobuf.Empty\x124\n" +
+	"\x0eDeleteAllPorts\x12\n" +
+	".common.ID\x1a\x16.google.protobuf.Empty\x127\n" +
+	"\rGetDevicePort\x12\x18.core_adapter.PortFilter\x1a\f.device.Port\x12,\n" +
+	"\x0fListDevicePorts\x12\n" +
+	".common.ID\x1a\r.device.Ports\x12L\n" +
+	"\x11DeviceStateUpdate\x12\x1f.core_adapter.DeviceStateFilter\x1a\x16.google.protobuf.Empty\x12A\n" +
+	"\x14DevicePMConfigUpdate\x12\x11.device.PmConfigs\x1a\x16.google.protobuf.Empty\x12D\n" +
+	"\x13ChildDeviceDetected\x12\x1d.core_adapter.DeviceDiscovery\x1a\x0e.device.Device\x126\n" +
+	"\x10ChildDevicesLost\x12\n" +
+	".common.ID\x1a\x16.google.protobuf.Empty\x12:\n" +
+	"\x14ChildDevicesDetected\x12\n" +
+	".common.ID\x1a\x16.google.protobuf.Empty\x12'\n" +
+	"\tGetDevice\x12\n" +
+	".common.ID\x1a\x0e.device.Device\x12A\n" +
+	"\x0eGetChildDevice\x12\x1f.core_adapter.ChildDeviceFilter\x1a\x0e.device.Device\x12.\n" +
+	"\x0fGetChildDevices\x12\n" +
+	".common.ID\x1a\x0f.device.Devices\x12>\n" +
+	"\fSendPacketIn\x12\x16.core_adapter.PacketIn\x1a\x16.google.protobuf.Empty\x12H\n" +
+	"\x12DeviceReasonUpdate\x12\x1a.core_adapter.DeviceReason\x1a\x16.google.protobuf.Empty\x12B\n" +
+	"\x0fPortStateUpdate\x12\x17.core_adapter.PortState\x1a\x16.google.protobuf.Empty\x12;\n" +
+	"\x15ReconcileChildDevices\x12\n" +
+	".common.ID\x1a\x16.google.protobuf.Empty\x12M\n" +
+	"\x1eGetChildDeviceWithProxyAddress\x12\x1b.device.Device.ProxyAddress\x1a\x0e.device.Device\x123\n" +
+	"\bGetPorts\x12\x18.core_adapter.PortFilter\x1a\r.device.Ports\x12N\n" +
+	"\x13ChildrenStateUpdate\x12\x1f.core_adapter.DeviceStateFilter\x1a\x16.google.protobuf.Empty\x12D\n" +
+	"\x13UpdateImageDownload\x12\x15.device.ImageDownload\x1a\x16.google.protobuf.EmptyBk\n" +
+	" org.opencord.voltha.core_serviceB\x11VolthaCoreServiceZ4github.com/opencord/voltha-protos/v5/go/core_serviceb\x06proto3"
 
-var fileDescriptor_979c43850713f141 = []byte{
-	// 625 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x55, 0xcd, 0x4f, 0x14, 0x31,
-	0x14, 0x0f, 0x17, 0xa3, 0x8f, 0x85, 0x85, 0xf2, 0xa1, 0x59, 0x82, 0xc2, 0x49, 0x0f, 0xda, 0x35,
-	0x82, 0x98, 0x68, 0xa2, 0x59, 0x76, 0x74, 0xd9, 0x64, 0x31, 0x04, 0xa2, 0x26, 0x5e, 0x48, 0x99,
-	0x79, 0xcc, 0x4c, 0x98, 0x6d, 0x37, 0x6d, 0x59, 0xdd, 0x3f, 0xde, 0xc4, 0xcc, 0xb4, 0xb3, 0x69,
-	0x87, 0x6d, 0xe4, 0xe0, 0xf5, 0xbd, 0xdf, 0x47, 0xdf, 0xaf, 0x7d, 0x29, 0xec, 0x4f, 0x45, 0xa1,
-	0x33, 0x76, 0x39, 0x91, 0x42, 0x0b, 0xd5, 0x8d, 0x85, 0xc4, 0x4b, 0x85, 0x72, 0x9a, 0xc7, 0xa8,
-	0x68, 0x55, 0x24, 0x2d, 0xb7, 0xd8, 0xd9, 0x49, 0x85, 0x48, 0x0b, 0xec, 0x56, 0xbd, 0xab, 0xdb,
-	0xeb, 0x2e, 0x8e, 0x27, 0x7a, 0x66, 0xa0, 0x9d, 0xbd, 0x05, 0x6a, 0x2c, 0x61, 0x13, 0x8d, 0xd2,
-	0x22, 0x3a, 0x4d, 0xc4, 0x78, 0x2c, 0xf8, 0xe2, 0x5e, 0x82, 0xa5, 0xe1, 0xe2, 0x5e, 0x86, 0xac,
-	0xd0, 0x99, 0xe9, 0xbd, 0xf9, 0xb3, 0x0c, 0xcb, 0x7d, 0x21, 0xf1, 0xc2, 0x1c, 0x91, 0x7c, 0x82,
-	0xf6, 0x00, 0xf5, 0x49, 0x05, 0xb9, 0xd0, 0x4c, 0xdf, 0x2a, 0x42, 0xa8, 0x75, 0xea, 0x0b, 0xce,
-	0x31, 0xd6, 0xb9, 0xe0, 0x9d, 0x4d, 0x6a, 0x55, 0x5c, 0xe4, 0x8b, 0xa5, 0xd7, 0x4b, 0x64, 0x04,
-	0xed, 0x73, 0x4c, 0x73, 0xa5, 0x51, 0xf6, 0xcc, 0xe9, 0xc9, 0x3e, 0xf5, 0x86, 0xb1, 0x65, 0x83,
-	0x92, 0xac, 0xd2, 0xdb, 0xa6, 0x26, 0x1a, 0x5a, 0x47, 0x43, 0x3f, 0x97, 0xd1, 0x90, 0x23, 0x68,
-	0x45, 0xd5, 0x28, 0xdf, 0x26, 0x09, 0xd3, 0x48, 0x56, 0xa9, 0x9d, 0xcc, 0x54, 0x83, 0xbc, 0x03,
-	0x58, 0x3e, 0x13, 0x52, 0xf7, 0x25, 0x32, 0x8d, 0x09, 0x69, 0xd5, 0xb4, 0xb2, 0x18, 0x24, 0x0d,
-	0x61, 0xad, 0xec, 0xab, 0x72, 0x9a, 0xda, 0x70, 0xd7, 0x3f, 0x7b, 0xd9, 0xaf, 0xda, 0x5f, 0xf2,
-	0x42, 0xa3, 0x0c, 0x4a, 0x1d, 0xc2, 0x6a, 0x84, 0x05, 0x6a, 0xec, 0x15, 0x45, 0xa5, 0x49, 0xa0,
-	0x4e, 0x71, 0x18, 0x05, 0x59, 0xef, 0x60, 0x65, 0x80, 0xda, 0x8c, 0x56, 0xb2, 0xc8, 0x93, 0xbb,
-	0xee, 0xd6, 0xd8, 0x9b, 0x88, 0xbc, 0x84, 0xf6, 0x28, 0x57, 0x0e, 0xd3, 0xf7, 0x5b, 0x71, 0xc1,
-	0x8a, 0x8c, 0x60, 0xdd, 0x20, 0xdd, 0x41, 0x9f, 0xf9, 0x56, 0x0e, 0xe0, 0x1f, 0xa3, 0xf6, 0x60,
-	0xd3, 0xfa, 0x9e, 0xf6, 0x05, 0xbf, 0xce, 0x53, 0x2b, 0xb8, 0x3e, 0x37, 0x1d, 0x9b, 0xba, 0x0a,
-	0x4a, 0x44, 0xb0, 0xd1, 0xcf, 0xf2, 0x22, 0x31, 0x3a, 0x11, 0x6a, 0x8c, 0xcb, 0x5b, 0xdb, 0x5d,
-	0x74, 0xa4, 0x28, 0x57, 0xb1, 0x98, 0xa2, 0x9c, 0x75, 0x1a, 0x6f, 0x81, 0x1c, 0xc1, 0x9a, 0xa3,
-	0xa2, 0x46, 0x42, 0xe9, 0x7b, 0xa5, 0xfe, 0x1e, 0x36, 0x5d, 0xde, 0xdc, 0xfe, 0x3e, 0xdc, 0xe7,
-	0xf0, 0x68, 0x7e, 0x63, 0x1e, 0xa1, 0x79, 0xb8, 0x1e, 0xac, 0x0e, 0x50, 0x3b, 0x3e, 0xcd, 0xc0,
-	0x9d, 0x96, 0x0d, 0xbc, 0x29, 0x41, 0xab, 0xd5, 0x74, 0x8f, 0xea, 0x39, 0xb6, 0x7d, 0xb8, 0x22,
-	0x1f, 0xa1, 0x75, 0x81, 0x3c, 0x39, 0x63, 0xf1, 0x0d, 0xea, 0x21, 0x27, 0xdb, 0x8d, 0xc7, 0x64,
-	0xeb, 0xc1, 0xd9, 0x4e, 0x80, 0x18, 0xa9, 0x73, 0x64, 0x4a, 0x70, 0x7b, 0xad, 0x9d, 0x45, 0x97,
-	0x62, 0x10, 0x41, 0xa5, 0x63, 0x68, 0xcf, 0x17, 0xc7, 0xca, 0x3c, 0x0e, 0xec, 0x55, 0x50, 0xe3,
-	0x03, 0x6c, 0x9d, 0x63, 0x2c, 0x78, 0x9c, 0x17, 0x18, 0xcc, 0x20, 0x44, 0x3e, 0x85, 0xa7, 0x7e,
-	0x74, 0x3f, 0x72, 0x9d, 0x9d, 0x49, 0xf1, 0x7b, 0xd6, 0x4b, 0x12, 0x89, 0x4a, 0x91, 0x1d, 0x3f,
-	0x3d, 0xea, 0x36, 0xef, 0xdc, 0xc4, 0x01, 0x3c, 0x1c, 0xa0, 0x36, 0xcb, 0x14, 0x5e, 0xd1, 0xc6,
-	0xd6, 0x7d, 0xb5, 0x8f, 0x5c, 0x22, 0xff, 0x2f, 0x7b, 0x17, 0xc1, 0x86, 0x91, 0x18, 0x8e, 0x59,
-	0x8a, 0x91, 0xf8, 0xc5, 0x0b, 0xc1, 0x12, 0xb2, 0x55, 0xbb, 0x7a, 0xe5, 0x90, 0xca, 0xf1, 0x0d,
-	0xec, 0x09, 0x99, 0x52, 0x31, 0x41, 0x1e, 0x0b, 0x99, 0x50, 0xf3, 0x55, 0x50, 0xf7, 0xdb, 0x3a,
-	0x5e, 0xff, 0x5e, 0x15, 0x9d, 0x6f, 0xe2, 0xe7, 0x61, 0x9a, 0xeb, 0xec, 0xf6, 0xaa, 0x8c, 0xbe,
-	0x5b, 0x73, 0xbb, 0x86, 0xfb, 0xca, 0x7e, 0x33, 0xd3, 0xb7, 0xdd, 0x54, 0x78, 0x9f, 0xe2, 0xd5,
-	0x83, 0xaa, 0x75, 0xf0, 0x37, 0x00, 0x00, 0xff, 0xff, 0x7f, 0x44, 0xa5, 0x7d, 0x39, 0x07, 0x00,
-	0x00,
-}
-
-// Reference imports to suppress errors if they are not otherwise used.
-var _ context.Context
-var _ grpc.ClientConn
-
-// This is a compile-time assertion to ensure that this generated file
-// is compatible with the grpc package it is being compiled against.
-const _ = grpc.SupportPackageIsVersion4
-
-// CoreServiceClient is the client API for CoreService service.
-//
-// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
-type CoreServiceClient interface {
-	// GetHealthStatus is used by a CoreService client to verify connectivity
-	// to the gRPC server hosting the CoreService service
-	GetHealthStatus(ctx context.Context, opts ...grpc.CallOption) (CoreService_GetHealthStatusClient, error)
-	RegisterAdapter(ctx context.Context, in *core_adapter.AdapterRegistration, opts ...grpc.CallOption) (*empty.Empty, error)
-	DeviceUpdate(ctx context.Context, in *voltha.Device, opts ...grpc.CallOption) (*empty.Empty, error)
-	PortCreated(ctx context.Context, in *voltha.Port, opts ...grpc.CallOption) (*empty.Empty, error)
-	PortsStateUpdate(ctx context.Context, in *core_adapter.PortStateFilter, opts ...grpc.CallOption) (*empty.Empty, error)
-	DeleteAllPorts(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*empty.Empty, error)
-	GetDevicePort(ctx context.Context, in *core_adapter.PortFilter, opts ...grpc.CallOption) (*voltha.Port, error)
-	ListDevicePorts(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*voltha.Ports, error)
-	DeviceStateUpdate(ctx context.Context, in *core_adapter.DeviceStateFilter, opts ...grpc.CallOption) (*empty.Empty, error)
-	DevicePMConfigUpdate(ctx context.Context, in *voltha.PmConfigs, opts ...grpc.CallOption) (*empty.Empty, error)
-	ChildDeviceDetected(ctx context.Context, in *core_adapter.DeviceDiscovery, opts ...grpc.CallOption) (*voltha.Device, error)
-	ChildDevicesLost(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*empty.Empty, error)
-	ChildDevicesDetected(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*empty.Empty, error)
-	GetDevice(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*voltha.Device, error)
-	GetChildDevice(ctx context.Context, in *core_adapter.ChildDeviceFilter, opts ...grpc.CallOption) (*voltha.Device, error)
-	GetChildDevices(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*voltha.Devices, error)
-	SendPacketIn(ctx context.Context, in *core_adapter.PacketIn, opts ...grpc.CallOption) (*empty.Empty, error)
-	DeviceReasonUpdate(ctx context.Context, in *core_adapter.DeviceReason, opts ...grpc.CallOption) (*empty.Empty, error)
-	PortStateUpdate(ctx context.Context, in *core_adapter.PortState, opts ...grpc.CallOption) (*empty.Empty, error)
-	// Additional API found in the Core - unused?
-	ReconcileChildDevices(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*empty.Empty, error)
-	GetChildDeviceWithProxyAddress(ctx context.Context, in *voltha.Device_ProxyAddress, opts ...grpc.CallOption) (*voltha.Device, error)
-	GetPorts(ctx context.Context, in *core_adapter.PortFilter, opts ...grpc.CallOption) (*voltha.Ports, error)
-	ChildrenStateUpdate(ctx context.Context, in *core_adapter.DeviceStateFilter, opts ...grpc.CallOption) (*empty.Empty, error)
-	UpdateImageDownload(ctx context.Context, in *voltha.ImageDownload, opts ...grpc.CallOption) (*empty.Empty, error)
-}
-
-type coreServiceClient struct {
-	cc *grpc.ClientConn
+var file_voltha_protos_core_services_proto_goTypes = []any{
+	(*common.Connection)(nil),                // 0: common.Connection
+	(*core_adapter.AdapterRegistration)(nil), // 1: core_adapter.AdapterRegistration
+	(*voltha.Device)(nil),                    // 2: device.Device
+	(*voltha.Port)(nil),                      // 3: device.Port
+	(*core_adapter.PortStateFilter)(nil),     // 4: core_adapter.PortStateFilter
+	(*common.ID)(nil),                        // 5: common.ID
+	(*core_adapter.PortFilter)(nil),          // 6: core_adapter.PortFilter
+	(*core_adapter.DeviceStateFilter)(nil),   // 7: core_adapter.DeviceStateFilter
+	(*voltha.PmConfigs)(nil),                 // 8: device.PmConfigs
+	(*core_adapter.DeviceDiscovery)(nil),     // 9: core_adapter.DeviceDiscovery
+	(*core_adapter.ChildDeviceFilter)(nil),   // 10: core_adapter.ChildDeviceFilter
+	(*core_adapter.PacketIn)(nil),            // 11: core_adapter.PacketIn
+	(*core_adapter.DeviceReason)(nil),        // 12: core_adapter.DeviceReason
+	(*core_adapter.PortState)(nil),           // 13: core_adapter.PortState
+	(*voltha.Device_ProxyAddress)(nil),       // 14: device.Device.ProxyAddress
+	(*voltha.ImageDownload)(nil),             // 15: device.ImageDownload
+	(*health.HealthStatus)(nil),              // 16: health.HealthStatus
+	(*emptypb.Empty)(nil),                    // 17: google.protobuf.Empty
+	(*voltha.Ports)(nil),                     // 18: device.Ports
+	(*voltha.Devices)(nil),                   // 19: device.Devices
 }
-
-func NewCoreServiceClient(cc *grpc.ClientConn) CoreServiceClient {
-	return &coreServiceClient{cc}
+var file_voltha_protos_core_services_proto_depIdxs = []int32{
+	0,  // 0: core_service.CoreService.GetHealthStatus:input_type -> common.Connection
+	1,  // 1: core_service.CoreService.RegisterAdapter:input_type -> core_adapter.AdapterRegistration
+	2,  // 2: core_service.CoreService.DeviceUpdate:input_type -> device.Device
+	3,  // 3: core_service.CoreService.PortCreated:input_type -> device.Port
+	4,  // 4: core_service.CoreService.PortsStateUpdate:input_type -> core_adapter.PortStateFilter
+	5,  // 5: core_service.CoreService.DeleteAllPorts:input_type -> common.ID
+	6,  // 6: core_service.CoreService.GetDevicePort:input_type -> core_adapter.PortFilter
+	5,  // 7: core_service.CoreService.ListDevicePorts:input_type -> common.ID
+	7,  // 8: core_service.CoreService.DeviceStateUpdate:input_type -> core_adapter.DeviceStateFilter
+	8,  // 9: core_service.CoreService.DevicePMConfigUpdate:input_type -> device.PmConfigs
+	9,  // 10: core_service.CoreService.ChildDeviceDetected:input_type -> core_adapter.DeviceDiscovery
+	5,  // 11: core_service.CoreService.ChildDevicesLost:input_type -> common.ID
+	5,  // 12: core_service.CoreService.ChildDevicesDetected:input_type -> common.ID
+	5,  // 13: core_service.CoreService.GetDevice:input_type -> common.ID
+	10, // 14: core_service.CoreService.GetChildDevice:input_type -> core_adapter.ChildDeviceFilter
+	5,  // 15: core_service.CoreService.GetChildDevices:input_type -> common.ID
+	11, // 16: core_service.CoreService.SendPacketIn:input_type -> core_adapter.PacketIn
+	12, // 17: core_service.CoreService.DeviceReasonUpdate:input_type -> core_adapter.DeviceReason
+	13, // 18: core_service.CoreService.PortStateUpdate:input_type -> core_adapter.PortState
+	5,  // 19: core_service.CoreService.ReconcileChildDevices:input_type -> common.ID
+	14, // 20: core_service.CoreService.GetChildDeviceWithProxyAddress:input_type -> device.Device.ProxyAddress
+	6,  // 21: core_service.CoreService.GetPorts:input_type -> core_adapter.PortFilter
+	7,  // 22: core_service.CoreService.ChildrenStateUpdate:input_type -> core_adapter.DeviceStateFilter
+	15, // 23: core_service.CoreService.UpdateImageDownload:input_type -> device.ImageDownload
+	16, // 24: core_service.CoreService.GetHealthStatus:output_type -> health.HealthStatus
+	17, // 25: core_service.CoreService.RegisterAdapter:output_type -> google.protobuf.Empty
+	17, // 26: core_service.CoreService.DeviceUpdate:output_type -> google.protobuf.Empty
+	17, // 27: core_service.CoreService.PortCreated:output_type -> google.protobuf.Empty
+	17, // 28: core_service.CoreService.PortsStateUpdate:output_type -> google.protobuf.Empty
+	17, // 29: core_service.CoreService.DeleteAllPorts:output_type -> google.protobuf.Empty
+	3,  // 30: core_service.CoreService.GetDevicePort:output_type -> device.Port
+	18, // 31: core_service.CoreService.ListDevicePorts:output_type -> device.Ports
+	17, // 32: core_service.CoreService.DeviceStateUpdate:output_type -> google.protobuf.Empty
+	17, // 33: core_service.CoreService.DevicePMConfigUpdate:output_type -> google.protobuf.Empty
+	2,  // 34: core_service.CoreService.ChildDeviceDetected:output_type -> device.Device
+	17, // 35: core_service.CoreService.ChildDevicesLost:output_type -> google.protobuf.Empty
+	17, // 36: core_service.CoreService.ChildDevicesDetected:output_type -> google.protobuf.Empty
+	2,  // 37: core_service.CoreService.GetDevice:output_type -> device.Device
+	2,  // 38: core_service.CoreService.GetChildDevice:output_type -> device.Device
+	19, // 39: core_service.CoreService.GetChildDevices:output_type -> device.Devices
+	17, // 40: core_service.CoreService.SendPacketIn:output_type -> google.protobuf.Empty
+	17, // 41: core_service.CoreService.DeviceReasonUpdate:output_type -> google.protobuf.Empty
+	17, // 42: core_service.CoreService.PortStateUpdate:output_type -> google.protobuf.Empty
+	17, // 43: core_service.CoreService.ReconcileChildDevices:output_type -> google.protobuf.Empty
+	2,  // 44: core_service.CoreService.GetChildDeviceWithProxyAddress:output_type -> device.Device
+	18, // 45: core_service.CoreService.GetPorts:output_type -> device.Ports
+	17, // 46: core_service.CoreService.ChildrenStateUpdate:output_type -> google.protobuf.Empty
+	17, // 47: core_service.CoreService.UpdateImageDownload:output_type -> google.protobuf.Empty
+	24, // [24:48] is the sub-list for method output_type
+	0,  // [0:24] is the sub-list for method input_type
+	0,  // [0:0] is the sub-list for extension type_name
+	0,  // [0:0] is the sub-list for extension extendee
+	0,  // [0:0] is the sub-list for field type_name
 }
 
-func (c *coreServiceClient) GetHealthStatus(ctx context.Context, opts ...grpc.CallOption) (CoreService_GetHealthStatusClient, error) {
-	stream, err := c.cc.NewStream(ctx, &_CoreService_serviceDesc.Streams[0], "/core_service.CoreService/GetHealthStatus", opts...)
-	if err != nil {
-		return nil, err
+func init() { file_voltha_protos_core_services_proto_init() }
+func file_voltha_protos_core_services_proto_init() {
+	if File_voltha_protos_core_services_proto != nil {
+		return
 	}
-	x := &coreServiceGetHealthStatusClient{stream}
-	return x, nil
-}
-
-type CoreService_GetHealthStatusClient interface {
-	Send(*common.Connection) error
-	Recv() (*health.HealthStatus, error)
-	grpc.ClientStream
-}
-
-type coreServiceGetHealthStatusClient struct {
-	grpc.ClientStream
-}
-
-func (x *coreServiceGetHealthStatusClient) Send(m *common.Connection) error {
-	return x.ClientStream.SendMsg(m)
-}
-
-func (x *coreServiceGetHealthStatusClient) Recv() (*health.HealthStatus, error) {
-	m := new(health.HealthStatus)
-	if err := x.ClientStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
-
-func (c *coreServiceClient) RegisterAdapter(ctx context.Context, in *core_adapter.AdapterRegistration, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/core_service.CoreService/RegisterAdapter", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *coreServiceClient) DeviceUpdate(ctx context.Context, in *voltha.Device, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/core_service.CoreService/DeviceUpdate", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *coreServiceClient) PortCreated(ctx context.Context, in *voltha.Port, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/core_service.CoreService/PortCreated", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *coreServiceClient) PortsStateUpdate(ctx context.Context, in *core_adapter.PortStateFilter, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/core_service.CoreService/PortsStateUpdate", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *coreServiceClient) DeleteAllPorts(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/core_service.CoreService/DeleteAllPorts", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *coreServiceClient) GetDevicePort(ctx context.Context, in *core_adapter.PortFilter, opts ...grpc.CallOption) (*voltha.Port, error) {
-	out := new(voltha.Port)
-	err := c.cc.Invoke(ctx, "/core_service.CoreService/GetDevicePort", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *coreServiceClient) ListDevicePorts(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*voltha.Ports, error) {
-	out := new(voltha.Ports)
-	err := c.cc.Invoke(ctx, "/core_service.CoreService/ListDevicePorts", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *coreServiceClient) DeviceStateUpdate(ctx context.Context, in *core_adapter.DeviceStateFilter, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/core_service.CoreService/DeviceStateUpdate", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *coreServiceClient) DevicePMConfigUpdate(ctx context.Context, in *voltha.PmConfigs, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/core_service.CoreService/DevicePMConfigUpdate", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *coreServiceClient) ChildDeviceDetected(ctx context.Context, in *core_adapter.DeviceDiscovery, opts ...grpc.CallOption) (*voltha.Device, error) {
-	out := new(voltha.Device)
-	err := c.cc.Invoke(ctx, "/core_service.CoreService/ChildDeviceDetected", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *coreServiceClient) ChildDevicesLost(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/core_service.CoreService/ChildDevicesLost", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *coreServiceClient) ChildDevicesDetected(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/core_service.CoreService/ChildDevicesDetected", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *coreServiceClient) GetDevice(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*voltha.Device, error) {
-	out := new(voltha.Device)
-	err := c.cc.Invoke(ctx, "/core_service.CoreService/GetDevice", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *coreServiceClient) GetChildDevice(ctx context.Context, in *core_adapter.ChildDeviceFilter, opts ...grpc.CallOption) (*voltha.Device, error) {
-	out := new(voltha.Device)
-	err := c.cc.Invoke(ctx, "/core_service.CoreService/GetChildDevice", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *coreServiceClient) GetChildDevices(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*voltha.Devices, error) {
-	out := new(voltha.Devices)
-	err := c.cc.Invoke(ctx, "/core_service.CoreService/GetChildDevices", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *coreServiceClient) SendPacketIn(ctx context.Context, in *core_adapter.PacketIn, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/core_service.CoreService/SendPacketIn", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *coreServiceClient) DeviceReasonUpdate(ctx context.Context, in *core_adapter.DeviceReason, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/core_service.CoreService/DeviceReasonUpdate", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *coreServiceClient) PortStateUpdate(ctx context.Context, in *core_adapter.PortState, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/core_service.CoreService/PortStateUpdate", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *coreServiceClient) ReconcileChildDevices(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/core_service.CoreService/ReconcileChildDevices", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *coreServiceClient) GetChildDeviceWithProxyAddress(ctx context.Context, in *voltha.Device_ProxyAddress, opts ...grpc.CallOption) (*voltha.Device, error) {
-	out := new(voltha.Device)
-	err := c.cc.Invoke(ctx, "/core_service.CoreService/GetChildDeviceWithProxyAddress", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *coreServiceClient) GetPorts(ctx context.Context, in *core_adapter.PortFilter, opts ...grpc.CallOption) (*voltha.Ports, error) {
-	out := new(voltha.Ports)
-	err := c.cc.Invoke(ctx, "/core_service.CoreService/GetPorts", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *coreServiceClient) ChildrenStateUpdate(ctx context.Context, in *core_adapter.DeviceStateFilter, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/core_service.CoreService/ChildrenStateUpdate", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *coreServiceClient) UpdateImageDownload(ctx context.Context, in *voltha.ImageDownload, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/core_service.CoreService/UpdateImageDownload", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-// CoreServiceServer is the server API for CoreService service.
-type CoreServiceServer interface {
-	// GetHealthStatus is used by a CoreService client to verify connectivity
-	// to the gRPC server hosting the CoreService service
-	GetHealthStatus(CoreService_GetHealthStatusServer) error
-	RegisterAdapter(context.Context, *core_adapter.AdapterRegistration) (*empty.Empty, error)
-	DeviceUpdate(context.Context, *voltha.Device) (*empty.Empty, error)
-	PortCreated(context.Context, *voltha.Port) (*empty.Empty, error)
-	PortsStateUpdate(context.Context, *core_adapter.PortStateFilter) (*empty.Empty, error)
-	DeleteAllPorts(context.Context, *common.ID) (*empty.Empty, error)
-	GetDevicePort(context.Context, *core_adapter.PortFilter) (*voltha.Port, error)
-	ListDevicePorts(context.Context, *common.ID) (*voltha.Ports, error)
-	DeviceStateUpdate(context.Context, *core_adapter.DeviceStateFilter) (*empty.Empty, error)
-	DevicePMConfigUpdate(context.Context, *voltha.PmConfigs) (*empty.Empty, error)
-	ChildDeviceDetected(context.Context, *core_adapter.DeviceDiscovery) (*voltha.Device, error)
-	ChildDevicesLost(context.Context, *common.ID) (*empty.Empty, error)
-	ChildDevicesDetected(context.Context, *common.ID) (*empty.Empty, error)
-	GetDevice(context.Context, *common.ID) (*voltha.Device, error)
-	GetChildDevice(context.Context, *core_adapter.ChildDeviceFilter) (*voltha.Device, error)
-	GetChildDevices(context.Context, *common.ID) (*voltha.Devices, error)
-	SendPacketIn(context.Context, *core_adapter.PacketIn) (*empty.Empty, error)
-	DeviceReasonUpdate(context.Context, *core_adapter.DeviceReason) (*empty.Empty, error)
-	PortStateUpdate(context.Context, *core_adapter.PortState) (*empty.Empty, error)
-	// Additional API found in the Core - unused?
-	ReconcileChildDevices(context.Context, *common.ID) (*empty.Empty, error)
-	GetChildDeviceWithProxyAddress(context.Context, *voltha.Device_ProxyAddress) (*voltha.Device, error)
-	GetPorts(context.Context, *core_adapter.PortFilter) (*voltha.Ports, error)
-	ChildrenStateUpdate(context.Context, *core_adapter.DeviceStateFilter) (*empty.Empty, error)
-	UpdateImageDownload(context.Context, *voltha.ImageDownload) (*empty.Empty, error)
-}
-
-// UnimplementedCoreServiceServer can be embedded to have forward compatible implementations.
-type UnimplementedCoreServiceServer struct {
-}
-
-func (*UnimplementedCoreServiceServer) GetHealthStatus(srv CoreService_GetHealthStatusServer) error {
-	return status.Errorf(codes.Unimplemented, "method GetHealthStatus not implemented")
-}
-func (*UnimplementedCoreServiceServer) RegisterAdapter(ctx context.Context, req *core_adapter.AdapterRegistration) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method RegisterAdapter not implemented")
-}
-func (*UnimplementedCoreServiceServer) DeviceUpdate(ctx context.Context, req *voltha.Device) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method DeviceUpdate not implemented")
-}
-func (*UnimplementedCoreServiceServer) PortCreated(ctx context.Context, req *voltha.Port) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method PortCreated not implemented")
-}
-func (*UnimplementedCoreServiceServer) PortsStateUpdate(ctx context.Context, req *core_adapter.PortStateFilter) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method PortsStateUpdate not implemented")
-}
-func (*UnimplementedCoreServiceServer) DeleteAllPorts(ctx context.Context, req *common.ID) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method DeleteAllPorts not implemented")
-}
-func (*UnimplementedCoreServiceServer) GetDevicePort(ctx context.Context, req *core_adapter.PortFilter) (*voltha.Port, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetDevicePort not implemented")
-}
-func (*UnimplementedCoreServiceServer) ListDevicePorts(ctx context.Context, req *common.ID) (*voltha.Ports, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method ListDevicePorts not implemented")
-}
-func (*UnimplementedCoreServiceServer) DeviceStateUpdate(ctx context.Context, req *core_adapter.DeviceStateFilter) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method DeviceStateUpdate not implemented")
-}
-func (*UnimplementedCoreServiceServer) DevicePMConfigUpdate(ctx context.Context, req *voltha.PmConfigs) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method DevicePMConfigUpdate not implemented")
-}
-func (*UnimplementedCoreServiceServer) ChildDeviceDetected(ctx context.Context, req *core_adapter.DeviceDiscovery) (*voltha.Device, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method ChildDeviceDetected not implemented")
-}
-func (*UnimplementedCoreServiceServer) ChildDevicesLost(ctx context.Context, req *common.ID) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method ChildDevicesLost not implemented")
-}
-func (*UnimplementedCoreServiceServer) ChildDevicesDetected(ctx context.Context, req *common.ID) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method ChildDevicesDetected not implemented")
-}
-func (*UnimplementedCoreServiceServer) GetDevice(ctx context.Context, req *common.ID) (*voltha.Device, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetDevice not implemented")
-}
-func (*UnimplementedCoreServiceServer) GetChildDevice(ctx context.Context, req *core_adapter.ChildDeviceFilter) (*voltha.Device, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetChildDevice not implemented")
-}
-func (*UnimplementedCoreServiceServer) GetChildDevices(ctx context.Context, req *common.ID) (*voltha.Devices, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetChildDevices not implemented")
-}
-func (*UnimplementedCoreServiceServer) SendPacketIn(ctx context.Context, req *core_adapter.PacketIn) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method SendPacketIn not implemented")
-}
-func (*UnimplementedCoreServiceServer) DeviceReasonUpdate(ctx context.Context, req *core_adapter.DeviceReason) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method DeviceReasonUpdate not implemented")
-}
-func (*UnimplementedCoreServiceServer) PortStateUpdate(ctx context.Context, req *core_adapter.PortState) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method PortStateUpdate not implemented")
-}
-func (*UnimplementedCoreServiceServer) ReconcileChildDevices(ctx context.Context, req *common.ID) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method ReconcileChildDevices not implemented")
-}
-func (*UnimplementedCoreServiceServer) GetChildDeviceWithProxyAddress(ctx context.Context, req *voltha.Device_ProxyAddress) (*voltha.Device, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetChildDeviceWithProxyAddress not implemented")
-}
-func (*UnimplementedCoreServiceServer) GetPorts(ctx context.Context, req *core_adapter.PortFilter) (*voltha.Ports, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetPorts not implemented")
-}
-func (*UnimplementedCoreServiceServer) ChildrenStateUpdate(ctx context.Context, req *core_adapter.DeviceStateFilter) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method ChildrenStateUpdate not implemented")
-}
-func (*UnimplementedCoreServiceServer) UpdateImageDownload(ctx context.Context, req *voltha.ImageDownload) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method UpdateImageDownload not implemented")
-}
-
-func RegisterCoreServiceServer(s *grpc.Server, srv CoreServiceServer) {
-	s.RegisterService(&_CoreService_serviceDesc, srv)
-}
-
-func _CoreService_GetHealthStatus_Handler(srv interface{}, stream grpc.ServerStream) error {
-	return srv.(CoreServiceServer).GetHealthStatus(&coreServiceGetHealthStatusServer{stream})
-}
-
-type CoreService_GetHealthStatusServer interface {
-	Send(*health.HealthStatus) error
-	Recv() (*common.Connection, error)
-	grpc.ServerStream
-}
-
-type coreServiceGetHealthStatusServer struct {
-	grpc.ServerStream
-}
-
-func (x *coreServiceGetHealthStatusServer) Send(m *health.HealthStatus) error {
-	return x.ServerStream.SendMsg(m)
-}
-
-func (x *coreServiceGetHealthStatusServer) Recv() (*common.Connection, error) {
-	m := new(common.Connection)
-	if err := x.ServerStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
-
-func _CoreService_RegisterAdapter_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(core_adapter.AdapterRegistration)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(CoreServiceServer).RegisterAdapter(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/core_service.CoreService/RegisterAdapter",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CoreServiceServer).RegisterAdapter(ctx, req.(*core_adapter.AdapterRegistration))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _CoreService_DeviceUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(voltha.Device)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(CoreServiceServer).DeviceUpdate(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/core_service.CoreService/DeviceUpdate",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CoreServiceServer).DeviceUpdate(ctx, req.(*voltha.Device))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _CoreService_PortCreated_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(voltha.Port)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(CoreServiceServer).PortCreated(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/core_service.CoreService/PortCreated",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CoreServiceServer).PortCreated(ctx, req.(*voltha.Port))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _CoreService_PortsStateUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(core_adapter.PortStateFilter)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(CoreServiceServer).PortsStateUpdate(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/core_service.CoreService/PortsStateUpdate",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CoreServiceServer).PortsStateUpdate(ctx, req.(*core_adapter.PortStateFilter))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _CoreService_DeleteAllPorts_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.(CoreServiceServer).DeleteAllPorts(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/core_service.CoreService/DeleteAllPorts",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CoreServiceServer).DeleteAllPorts(ctx, req.(*common.ID))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _CoreService_GetDevicePort_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(core_adapter.PortFilter)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(CoreServiceServer).GetDevicePort(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/core_service.CoreService/GetDevicePort",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CoreServiceServer).GetDevicePort(ctx, req.(*core_adapter.PortFilter))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _CoreService_ListDevicePorts_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.(CoreServiceServer).ListDevicePorts(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/core_service.CoreService/ListDevicePorts",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CoreServiceServer).ListDevicePorts(ctx, req.(*common.ID))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _CoreService_DeviceStateUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(core_adapter.DeviceStateFilter)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(CoreServiceServer).DeviceStateUpdate(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/core_service.CoreService/DeviceStateUpdate",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CoreServiceServer).DeviceStateUpdate(ctx, req.(*core_adapter.DeviceStateFilter))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _CoreService_DevicePMConfigUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(voltha.PmConfigs)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(CoreServiceServer).DevicePMConfigUpdate(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/core_service.CoreService/DevicePMConfigUpdate",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CoreServiceServer).DevicePMConfigUpdate(ctx, req.(*voltha.PmConfigs))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _CoreService_ChildDeviceDetected_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(core_adapter.DeviceDiscovery)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(CoreServiceServer).ChildDeviceDetected(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/core_service.CoreService/ChildDeviceDetected",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CoreServiceServer).ChildDeviceDetected(ctx, req.(*core_adapter.DeviceDiscovery))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _CoreService_ChildDevicesLost_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.(CoreServiceServer).ChildDevicesLost(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/core_service.CoreService/ChildDevicesLost",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CoreServiceServer).ChildDevicesLost(ctx, req.(*common.ID))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _CoreService_ChildDevicesDetected_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.(CoreServiceServer).ChildDevicesDetected(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/core_service.CoreService/ChildDevicesDetected",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CoreServiceServer).ChildDevicesDetected(ctx, req.(*common.ID))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _CoreService_GetDevice_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.(CoreServiceServer).GetDevice(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/core_service.CoreService/GetDevice",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CoreServiceServer).GetDevice(ctx, req.(*common.ID))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _CoreService_GetChildDevice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(core_adapter.ChildDeviceFilter)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(CoreServiceServer).GetChildDevice(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/core_service.CoreService/GetChildDevice",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CoreServiceServer).GetChildDevice(ctx, req.(*core_adapter.ChildDeviceFilter))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _CoreService_GetChildDevices_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.(CoreServiceServer).GetChildDevices(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/core_service.CoreService/GetChildDevices",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CoreServiceServer).GetChildDevices(ctx, req.(*common.ID))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _CoreService_SendPacketIn_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(core_adapter.PacketIn)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(CoreServiceServer).SendPacketIn(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/core_service.CoreService/SendPacketIn",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CoreServiceServer).SendPacketIn(ctx, req.(*core_adapter.PacketIn))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _CoreService_DeviceReasonUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(core_adapter.DeviceReason)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(CoreServiceServer).DeviceReasonUpdate(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/core_service.CoreService/DeviceReasonUpdate",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CoreServiceServer).DeviceReasonUpdate(ctx, req.(*core_adapter.DeviceReason))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _CoreService_PortStateUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(core_adapter.PortState)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(CoreServiceServer).PortStateUpdate(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/core_service.CoreService/PortStateUpdate",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CoreServiceServer).PortStateUpdate(ctx, req.(*core_adapter.PortState))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _CoreService_ReconcileChildDevices_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.(CoreServiceServer).ReconcileChildDevices(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/core_service.CoreService/ReconcileChildDevices",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CoreServiceServer).ReconcileChildDevices(ctx, req.(*common.ID))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _CoreService_GetChildDeviceWithProxyAddress_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(voltha.Device_ProxyAddress)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(CoreServiceServer).GetChildDeviceWithProxyAddress(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/core_service.CoreService/GetChildDeviceWithProxyAddress",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CoreServiceServer).GetChildDeviceWithProxyAddress(ctx, req.(*voltha.Device_ProxyAddress))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _CoreService_GetPorts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(core_adapter.PortFilter)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(CoreServiceServer).GetPorts(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/core_service.CoreService/GetPorts",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CoreServiceServer).GetPorts(ctx, req.(*core_adapter.PortFilter))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _CoreService_ChildrenStateUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(core_adapter.DeviceStateFilter)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(CoreServiceServer).ChildrenStateUpdate(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/core_service.CoreService/ChildrenStateUpdate",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CoreServiceServer).ChildrenStateUpdate(ctx, req.(*core_adapter.DeviceStateFilter))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _CoreService_UpdateImageDownload_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(voltha.ImageDownload)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(CoreServiceServer).UpdateImageDownload(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/core_service.CoreService/UpdateImageDownload",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CoreServiceServer).UpdateImageDownload(ctx, req.(*voltha.ImageDownload))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-var _CoreService_serviceDesc = grpc.ServiceDesc{
-	ServiceName: "core_service.CoreService",
-	HandlerType: (*CoreServiceServer)(nil),
-	Methods: []grpc.MethodDesc{
-		{
-			MethodName: "RegisterAdapter",
-			Handler:    _CoreService_RegisterAdapter_Handler,
+	type x struct{}
+	out := protoimpl.TypeBuilder{
+		File: protoimpl.DescBuilder{
+			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+			RawDescriptor: unsafe.Slice(unsafe.StringData(file_voltha_protos_core_services_proto_rawDesc), len(file_voltha_protos_core_services_proto_rawDesc)),
+			NumEnums:      0,
+			NumMessages:   0,
+			NumExtensions: 0,
+			NumServices:   1,
 		},
-		{
-			MethodName: "DeviceUpdate",
-			Handler:    _CoreService_DeviceUpdate_Handler,
-		},
-		{
-			MethodName: "PortCreated",
-			Handler:    _CoreService_PortCreated_Handler,
-		},
-		{
-			MethodName: "PortsStateUpdate",
-			Handler:    _CoreService_PortsStateUpdate_Handler,
-		},
-		{
-			MethodName: "DeleteAllPorts",
-			Handler:    _CoreService_DeleteAllPorts_Handler,
-		},
-		{
-			MethodName: "GetDevicePort",
-			Handler:    _CoreService_GetDevicePort_Handler,
-		},
-		{
-			MethodName: "ListDevicePorts",
-			Handler:    _CoreService_ListDevicePorts_Handler,
-		},
-		{
-			MethodName: "DeviceStateUpdate",
-			Handler:    _CoreService_DeviceStateUpdate_Handler,
-		},
-		{
-			MethodName: "DevicePMConfigUpdate",
-			Handler:    _CoreService_DevicePMConfigUpdate_Handler,
-		},
-		{
-			MethodName: "ChildDeviceDetected",
-			Handler:    _CoreService_ChildDeviceDetected_Handler,
-		},
-		{
-			MethodName: "ChildDevicesLost",
-			Handler:    _CoreService_ChildDevicesLost_Handler,
-		},
-		{
-			MethodName: "ChildDevicesDetected",
-			Handler:    _CoreService_ChildDevicesDetected_Handler,
-		},
-		{
-			MethodName: "GetDevice",
-			Handler:    _CoreService_GetDevice_Handler,
-		},
-		{
-			MethodName: "GetChildDevice",
-			Handler:    _CoreService_GetChildDevice_Handler,
-		},
-		{
-			MethodName: "GetChildDevices",
-			Handler:    _CoreService_GetChildDevices_Handler,
-		},
-		{
-			MethodName: "SendPacketIn",
-			Handler:    _CoreService_SendPacketIn_Handler,
-		},
-		{
-			MethodName: "DeviceReasonUpdate",
-			Handler:    _CoreService_DeviceReasonUpdate_Handler,
-		},
-		{
-			MethodName: "PortStateUpdate",
-			Handler:    _CoreService_PortStateUpdate_Handler,
-		},
-		{
-			MethodName: "ReconcileChildDevices",
-			Handler:    _CoreService_ReconcileChildDevices_Handler,
-		},
-		{
-			MethodName: "GetChildDeviceWithProxyAddress",
-			Handler:    _CoreService_GetChildDeviceWithProxyAddress_Handler,
-		},
-		{
-			MethodName: "GetPorts",
-			Handler:    _CoreService_GetPorts_Handler,
-		},
-		{
-			MethodName: "ChildrenStateUpdate",
-			Handler:    _CoreService_ChildrenStateUpdate_Handler,
-		},
-		{
-			MethodName: "UpdateImageDownload",
-			Handler:    _CoreService_UpdateImageDownload_Handler,
-		},
-	},
-	Streams: []grpc.StreamDesc{
-		{
-			StreamName:    "GetHealthStatus",
-			Handler:       _CoreService_GetHealthStatus_Handler,
-			ServerStreams: true,
-			ClientStreams: true,
-		},
-	},
-	Metadata: "voltha_protos/core_services.proto",
+		GoTypes:           file_voltha_protos_core_services_proto_goTypes,
+		DependencyIndexes: file_voltha_protos_core_services_proto_depIdxs,
+	}.Build()
+	File_voltha_protos_core_services_proto = out.File
+	file_voltha_protos_core_services_proto_goTypes = nil
+	file_voltha_protos_core_services_proto_depIdxs = nil
 }
diff --git a/go/core_service/core_services_grpc.pb.go b/go/core_service/core_services_grpc.pb.go
new file mode 100644
index 0000000..61f346d
--- /dev/null
+++ b/go/core_service/core_services_grpc.pb.go
@@ -0,0 +1,1007 @@
+// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
+// versions:
+// - protoc-gen-go-grpc v1.6.0
+// - protoc             v4.25.8
+// source: voltha_protos/core_services.proto
+
+package core_service
+
+import (
+	context "context"
+	common "github.com/opencord/voltha-protos/v5/go/common"
+	core_adapter "github.com/opencord/voltha-protos/v5/go/core_adapter"
+	health "github.com/opencord/voltha-protos/v5/go/health"
+	voltha "github.com/opencord/voltha-protos/v5/go/voltha"
+	grpc "google.golang.org/grpc"
+	codes "google.golang.org/grpc/codes"
+	status "google.golang.org/grpc/status"
+	emptypb "google.golang.org/protobuf/types/known/emptypb"
+)
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+// Requires gRPC-Go v1.64.0 or later.
+const _ = grpc.SupportPackageIsVersion9
+
+const (
+	CoreService_GetHealthStatus_FullMethodName                = "/core_service.CoreService/GetHealthStatus"
+	CoreService_RegisterAdapter_FullMethodName                = "/core_service.CoreService/RegisterAdapter"
+	CoreService_DeviceUpdate_FullMethodName                   = "/core_service.CoreService/DeviceUpdate"
+	CoreService_PortCreated_FullMethodName                    = "/core_service.CoreService/PortCreated"
+	CoreService_PortsStateUpdate_FullMethodName               = "/core_service.CoreService/PortsStateUpdate"
+	CoreService_DeleteAllPorts_FullMethodName                 = "/core_service.CoreService/DeleteAllPorts"
+	CoreService_GetDevicePort_FullMethodName                  = "/core_service.CoreService/GetDevicePort"
+	CoreService_ListDevicePorts_FullMethodName                = "/core_service.CoreService/ListDevicePorts"
+	CoreService_DeviceStateUpdate_FullMethodName              = "/core_service.CoreService/DeviceStateUpdate"
+	CoreService_DevicePMConfigUpdate_FullMethodName           = "/core_service.CoreService/DevicePMConfigUpdate"
+	CoreService_ChildDeviceDetected_FullMethodName            = "/core_service.CoreService/ChildDeviceDetected"
+	CoreService_ChildDevicesLost_FullMethodName               = "/core_service.CoreService/ChildDevicesLost"
+	CoreService_ChildDevicesDetected_FullMethodName           = "/core_service.CoreService/ChildDevicesDetected"
+	CoreService_GetDevice_FullMethodName                      = "/core_service.CoreService/GetDevice"
+	CoreService_GetChildDevice_FullMethodName                 = "/core_service.CoreService/GetChildDevice"
+	CoreService_GetChildDevices_FullMethodName                = "/core_service.CoreService/GetChildDevices"
+	CoreService_SendPacketIn_FullMethodName                   = "/core_service.CoreService/SendPacketIn"
+	CoreService_DeviceReasonUpdate_FullMethodName             = "/core_service.CoreService/DeviceReasonUpdate"
+	CoreService_PortStateUpdate_FullMethodName                = "/core_service.CoreService/PortStateUpdate"
+	CoreService_ReconcileChildDevices_FullMethodName          = "/core_service.CoreService/ReconcileChildDevices"
+	CoreService_GetChildDeviceWithProxyAddress_FullMethodName = "/core_service.CoreService/GetChildDeviceWithProxyAddress"
+	CoreService_GetPorts_FullMethodName                       = "/core_service.CoreService/GetPorts"
+	CoreService_ChildrenStateUpdate_FullMethodName            = "/core_service.CoreService/ChildrenStateUpdate"
+	CoreService_UpdateImageDownload_FullMethodName            = "/core_service.CoreService/UpdateImageDownload"
+)
+
+// CoreServiceClient is the client API for CoreService service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
+//
+// The CoreService is a gRPC service implemented by the Voltha RW-Core for the
+// sole purpose of serving requests/updates from the Voltha adapters.
+type CoreServiceClient interface {
+	// GetHealthStatus is used by a CoreService client to verify connectivity
+	// to the gRPC server hosting the CoreService service
+	GetHealthStatus(ctx context.Context, opts ...grpc.CallOption) (grpc.BidiStreamingClient[common.Connection, health.HealthStatus], error)
+	RegisterAdapter(ctx context.Context, in *core_adapter.AdapterRegistration, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	DeviceUpdate(ctx context.Context, in *voltha.Device, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	PortCreated(ctx context.Context, in *voltha.Port, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	PortsStateUpdate(ctx context.Context, in *core_adapter.PortStateFilter, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	DeleteAllPorts(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	GetDevicePort(ctx context.Context, in *core_adapter.PortFilter, opts ...grpc.CallOption) (*voltha.Port, error)
+	ListDevicePorts(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*voltha.Ports, error)
+	DeviceStateUpdate(ctx context.Context, in *core_adapter.DeviceStateFilter, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	DevicePMConfigUpdate(ctx context.Context, in *voltha.PmConfigs, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	ChildDeviceDetected(ctx context.Context, in *core_adapter.DeviceDiscovery, opts ...grpc.CallOption) (*voltha.Device, error)
+	ChildDevicesLost(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	ChildDevicesDetected(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	GetDevice(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*voltha.Device, error)
+	GetChildDevice(ctx context.Context, in *core_adapter.ChildDeviceFilter, opts ...grpc.CallOption) (*voltha.Device, error)
+	GetChildDevices(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*voltha.Devices, error)
+	SendPacketIn(ctx context.Context, in *core_adapter.PacketIn, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	DeviceReasonUpdate(ctx context.Context, in *core_adapter.DeviceReason, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	PortStateUpdate(ctx context.Context, in *core_adapter.PortState, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	// Additional API found in the Core - unused?
+	ReconcileChildDevices(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	GetChildDeviceWithProxyAddress(ctx context.Context, in *voltha.Device_ProxyAddress, opts ...grpc.CallOption) (*voltha.Device, error)
+	GetPorts(ctx context.Context, in *core_adapter.PortFilter, opts ...grpc.CallOption) (*voltha.Ports, error)
+	ChildrenStateUpdate(ctx context.Context, in *core_adapter.DeviceStateFilter, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	UpdateImageDownload(ctx context.Context, in *voltha.ImageDownload, opts ...grpc.CallOption) (*emptypb.Empty, error)
+}
+
+type coreServiceClient struct {
+	cc grpc.ClientConnInterface
+}
+
+func NewCoreServiceClient(cc grpc.ClientConnInterface) CoreServiceClient {
+	return &coreServiceClient{cc}
+}
+
+func (c *coreServiceClient) GetHealthStatus(ctx context.Context, opts ...grpc.CallOption) (grpc.BidiStreamingClient[common.Connection, health.HealthStatus], error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	stream, err := c.cc.NewStream(ctx, &CoreService_ServiceDesc.Streams[0], CoreService_GetHealthStatus_FullMethodName, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	x := &grpc.GenericClientStream[common.Connection, health.HealthStatus]{ClientStream: stream}
+	return x, nil
+}
+
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type CoreService_GetHealthStatusClient = grpc.BidiStreamingClient[common.Connection, health.HealthStatus]
+
+func (c *coreServiceClient) RegisterAdapter(ctx context.Context, in *core_adapter.AdapterRegistration, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, CoreService_RegisterAdapter_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *coreServiceClient) DeviceUpdate(ctx context.Context, in *voltha.Device, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, CoreService_DeviceUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *coreServiceClient) PortCreated(ctx context.Context, in *voltha.Port, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, CoreService_PortCreated_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *coreServiceClient) PortsStateUpdate(ctx context.Context, in *core_adapter.PortStateFilter, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, CoreService_PortsStateUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *coreServiceClient) DeleteAllPorts(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, CoreService_DeleteAllPorts_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *coreServiceClient) GetDevicePort(ctx context.Context, in *core_adapter.PortFilter, opts ...grpc.CallOption) (*voltha.Port, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(voltha.Port)
+	err := c.cc.Invoke(ctx, CoreService_GetDevicePort_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *coreServiceClient) ListDevicePorts(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*voltha.Ports, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(voltha.Ports)
+	err := c.cc.Invoke(ctx, CoreService_ListDevicePorts_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *coreServiceClient) DeviceStateUpdate(ctx context.Context, in *core_adapter.DeviceStateFilter, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, CoreService_DeviceStateUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *coreServiceClient) DevicePMConfigUpdate(ctx context.Context, in *voltha.PmConfigs, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, CoreService_DevicePMConfigUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *coreServiceClient) ChildDeviceDetected(ctx context.Context, in *core_adapter.DeviceDiscovery, opts ...grpc.CallOption) (*voltha.Device, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(voltha.Device)
+	err := c.cc.Invoke(ctx, CoreService_ChildDeviceDetected_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *coreServiceClient) ChildDevicesLost(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, CoreService_ChildDevicesLost_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *coreServiceClient) ChildDevicesDetected(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, CoreService_ChildDevicesDetected_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *coreServiceClient) GetDevice(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*voltha.Device, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(voltha.Device)
+	err := c.cc.Invoke(ctx, CoreService_GetDevice_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *coreServiceClient) GetChildDevice(ctx context.Context, in *core_adapter.ChildDeviceFilter, opts ...grpc.CallOption) (*voltha.Device, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(voltha.Device)
+	err := c.cc.Invoke(ctx, CoreService_GetChildDevice_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *coreServiceClient) GetChildDevices(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*voltha.Devices, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(voltha.Devices)
+	err := c.cc.Invoke(ctx, CoreService_GetChildDevices_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *coreServiceClient) SendPacketIn(ctx context.Context, in *core_adapter.PacketIn, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, CoreService_SendPacketIn_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *coreServiceClient) DeviceReasonUpdate(ctx context.Context, in *core_adapter.DeviceReason, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, CoreService_DeviceReasonUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *coreServiceClient) PortStateUpdate(ctx context.Context, in *core_adapter.PortState, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, CoreService_PortStateUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *coreServiceClient) ReconcileChildDevices(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, CoreService_ReconcileChildDevices_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *coreServiceClient) GetChildDeviceWithProxyAddress(ctx context.Context, in *voltha.Device_ProxyAddress, opts ...grpc.CallOption) (*voltha.Device, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(voltha.Device)
+	err := c.cc.Invoke(ctx, CoreService_GetChildDeviceWithProxyAddress_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *coreServiceClient) GetPorts(ctx context.Context, in *core_adapter.PortFilter, opts ...grpc.CallOption) (*voltha.Ports, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(voltha.Ports)
+	err := c.cc.Invoke(ctx, CoreService_GetPorts_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *coreServiceClient) ChildrenStateUpdate(ctx context.Context, in *core_adapter.DeviceStateFilter, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, CoreService_ChildrenStateUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *coreServiceClient) UpdateImageDownload(ctx context.Context, in *voltha.ImageDownload, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, CoreService_UpdateImageDownload_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+// CoreServiceServer is the server API for CoreService service.
+// All implementations must embed UnimplementedCoreServiceServer
+// for forward compatibility.
+//
+// The CoreService is a gRPC service implemented by the Voltha RW-Core for the
+// sole purpose of serving requests/updates from the Voltha adapters.
+type CoreServiceServer interface {
+	// GetHealthStatus is used by a CoreService client to verify connectivity
+	// to the gRPC server hosting the CoreService service
+	GetHealthStatus(grpc.BidiStreamingServer[common.Connection, health.HealthStatus]) error
+	RegisterAdapter(context.Context, *core_adapter.AdapterRegistration) (*emptypb.Empty, error)
+	DeviceUpdate(context.Context, *voltha.Device) (*emptypb.Empty, error)
+	PortCreated(context.Context, *voltha.Port) (*emptypb.Empty, error)
+	PortsStateUpdate(context.Context, *core_adapter.PortStateFilter) (*emptypb.Empty, error)
+	DeleteAllPorts(context.Context, *common.ID) (*emptypb.Empty, error)
+	GetDevicePort(context.Context, *core_adapter.PortFilter) (*voltha.Port, error)
+	ListDevicePorts(context.Context, *common.ID) (*voltha.Ports, error)
+	DeviceStateUpdate(context.Context, *core_adapter.DeviceStateFilter) (*emptypb.Empty, error)
+	DevicePMConfigUpdate(context.Context, *voltha.PmConfigs) (*emptypb.Empty, error)
+	ChildDeviceDetected(context.Context, *core_adapter.DeviceDiscovery) (*voltha.Device, error)
+	ChildDevicesLost(context.Context, *common.ID) (*emptypb.Empty, error)
+	ChildDevicesDetected(context.Context, *common.ID) (*emptypb.Empty, error)
+	GetDevice(context.Context, *common.ID) (*voltha.Device, error)
+	GetChildDevice(context.Context, *core_adapter.ChildDeviceFilter) (*voltha.Device, error)
+	GetChildDevices(context.Context, *common.ID) (*voltha.Devices, error)
+	SendPacketIn(context.Context, *core_adapter.PacketIn) (*emptypb.Empty, error)
+	DeviceReasonUpdate(context.Context, *core_adapter.DeviceReason) (*emptypb.Empty, error)
+	PortStateUpdate(context.Context, *core_adapter.PortState) (*emptypb.Empty, error)
+	// Additional API found in the Core - unused?
+	ReconcileChildDevices(context.Context, *common.ID) (*emptypb.Empty, error)
+	GetChildDeviceWithProxyAddress(context.Context, *voltha.Device_ProxyAddress) (*voltha.Device, error)
+	GetPorts(context.Context, *core_adapter.PortFilter) (*voltha.Ports, error)
+	ChildrenStateUpdate(context.Context, *core_adapter.DeviceStateFilter) (*emptypb.Empty, error)
+	UpdateImageDownload(context.Context, *voltha.ImageDownload) (*emptypb.Empty, error)
+	mustEmbedUnimplementedCoreServiceServer()
+}
+
+// UnimplementedCoreServiceServer must be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedCoreServiceServer struct{}
+
+func (UnimplementedCoreServiceServer) GetHealthStatus(grpc.BidiStreamingServer[common.Connection, health.HealthStatus]) error {
+	return status.Error(codes.Unimplemented, "method GetHealthStatus not implemented")
+}
+func (UnimplementedCoreServiceServer) RegisterAdapter(context.Context, *core_adapter.AdapterRegistration) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method RegisterAdapter not implemented")
+}
+func (UnimplementedCoreServiceServer) DeviceUpdate(context.Context, *voltha.Device) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method DeviceUpdate not implemented")
+}
+func (UnimplementedCoreServiceServer) PortCreated(context.Context, *voltha.Port) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method PortCreated not implemented")
+}
+func (UnimplementedCoreServiceServer) PortsStateUpdate(context.Context, *core_adapter.PortStateFilter) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method PortsStateUpdate not implemented")
+}
+func (UnimplementedCoreServiceServer) DeleteAllPorts(context.Context, *common.ID) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method DeleteAllPorts not implemented")
+}
+func (UnimplementedCoreServiceServer) GetDevicePort(context.Context, *core_adapter.PortFilter) (*voltha.Port, error) {
+	return nil, status.Error(codes.Unimplemented, "method GetDevicePort not implemented")
+}
+func (UnimplementedCoreServiceServer) ListDevicePorts(context.Context, *common.ID) (*voltha.Ports, error) {
+	return nil, status.Error(codes.Unimplemented, "method ListDevicePorts not implemented")
+}
+func (UnimplementedCoreServiceServer) DeviceStateUpdate(context.Context, *core_adapter.DeviceStateFilter) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method DeviceStateUpdate not implemented")
+}
+func (UnimplementedCoreServiceServer) DevicePMConfigUpdate(context.Context, *voltha.PmConfigs) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method DevicePMConfigUpdate not implemented")
+}
+func (UnimplementedCoreServiceServer) ChildDeviceDetected(context.Context, *core_adapter.DeviceDiscovery) (*voltha.Device, error) {
+	return nil, status.Error(codes.Unimplemented, "method ChildDeviceDetected not implemented")
+}
+func (UnimplementedCoreServiceServer) ChildDevicesLost(context.Context, *common.ID) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method ChildDevicesLost not implemented")
+}
+func (UnimplementedCoreServiceServer) ChildDevicesDetected(context.Context, *common.ID) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method ChildDevicesDetected not implemented")
+}
+func (UnimplementedCoreServiceServer) GetDevice(context.Context, *common.ID) (*voltha.Device, error) {
+	return nil, status.Error(codes.Unimplemented, "method GetDevice not implemented")
+}
+func (UnimplementedCoreServiceServer) GetChildDevice(context.Context, *core_adapter.ChildDeviceFilter) (*voltha.Device, error) {
+	return nil, status.Error(codes.Unimplemented, "method GetChildDevice not implemented")
+}
+func (UnimplementedCoreServiceServer) GetChildDevices(context.Context, *common.ID) (*voltha.Devices, error) {
+	return nil, status.Error(codes.Unimplemented, "method GetChildDevices not implemented")
+}
+func (UnimplementedCoreServiceServer) SendPacketIn(context.Context, *core_adapter.PacketIn) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method SendPacketIn not implemented")
+}
+func (UnimplementedCoreServiceServer) DeviceReasonUpdate(context.Context, *core_adapter.DeviceReason) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method DeviceReasonUpdate not implemented")
+}
+func (UnimplementedCoreServiceServer) PortStateUpdate(context.Context, *core_adapter.PortState) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method PortStateUpdate not implemented")
+}
+func (UnimplementedCoreServiceServer) ReconcileChildDevices(context.Context, *common.ID) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method ReconcileChildDevices not implemented")
+}
+func (UnimplementedCoreServiceServer) GetChildDeviceWithProxyAddress(context.Context, *voltha.Device_ProxyAddress) (*voltha.Device, error) {
+	return nil, status.Error(codes.Unimplemented, "method GetChildDeviceWithProxyAddress not implemented")
+}
+func (UnimplementedCoreServiceServer) GetPorts(context.Context, *core_adapter.PortFilter) (*voltha.Ports, error) {
+	return nil, status.Error(codes.Unimplemented, "method GetPorts not implemented")
+}
+func (UnimplementedCoreServiceServer) ChildrenStateUpdate(context.Context, *core_adapter.DeviceStateFilter) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method ChildrenStateUpdate not implemented")
+}
+func (UnimplementedCoreServiceServer) UpdateImageDownload(context.Context, *voltha.ImageDownload) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method UpdateImageDownload not implemented")
+}
+func (UnimplementedCoreServiceServer) mustEmbedUnimplementedCoreServiceServer() {}
+func (UnimplementedCoreServiceServer) testEmbeddedByValue()                     {}
+
+// UnsafeCoreServiceServer may be embedded to opt out of forward compatibility for this service.
+// Use of this interface is not recommended, as added methods to CoreServiceServer will
+// result in compilation errors.
+type UnsafeCoreServiceServer interface {
+	mustEmbedUnimplementedCoreServiceServer()
+}
+
+func RegisterCoreServiceServer(s grpc.ServiceRegistrar, srv CoreServiceServer) {
+	// If the following call panics, it indicates UnimplementedCoreServiceServer was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
+	s.RegisterService(&CoreService_ServiceDesc, srv)
+}
+
+func _CoreService_GetHealthStatus_Handler(srv interface{}, stream grpc.ServerStream) error {
+	return srv.(CoreServiceServer).GetHealthStatus(&grpc.GenericServerStream[common.Connection, health.HealthStatus]{ServerStream: stream})
+}
+
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type CoreService_GetHealthStatusServer = grpc.BidiStreamingServer[common.Connection, health.HealthStatus]
+
+func _CoreService_RegisterAdapter_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(core_adapter.AdapterRegistration)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(CoreServiceServer).RegisterAdapter(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: CoreService_RegisterAdapter_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(CoreServiceServer).RegisterAdapter(ctx, req.(*core_adapter.AdapterRegistration))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _CoreService_DeviceUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(voltha.Device)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(CoreServiceServer).DeviceUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: CoreService_DeviceUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(CoreServiceServer).DeviceUpdate(ctx, req.(*voltha.Device))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _CoreService_PortCreated_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(voltha.Port)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(CoreServiceServer).PortCreated(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: CoreService_PortCreated_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(CoreServiceServer).PortCreated(ctx, req.(*voltha.Port))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _CoreService_PortsStateUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(core_adapter.PortStateFilter)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(CoreServiceServer).PortsStateUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: CoreService_PortsStateUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(CoreServiceServer).PortsStateUpdate(ctx, req.(*core_adapter.PortStateFilter))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _CoreService_DeleteAllPorts_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.(CoreServiceServer).DeleteAllPorts(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: CoreService_DeleteAllPorts_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(CoreServiceServer).DeleteAllPorts(ctx, req.(*common.ID))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _CoreService_GetDevicePort_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(core_adapter.PortFilter)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(CoreServiceServer).GetDevicePort(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: CoreService_GetDevicePort_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(CoreServiceServer).GetDevicePort(ctx, req.(*core_adapter.PortFilter))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _CoreService_ListDevicePorts_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.(CoreServiceServer).ListDevicePorts(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: CoreService_ListDevicePorts_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(CoreServiceServer).ListDevicePorts(ctx, req.(*common.ID))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _CoreService_DeviceStateUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(core_adapter.DeviceStateFilter)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(CoreServiceServer).DeviceStateUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: CoreService_DeviceStateUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(CoreServiceServer).DeviceStateUpdate(ctx, req.(*core_adapter.DeviceStateFilter))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _CoreService_DevicePMConfigUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(voltha.PmConfigs)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(CoreServiceServer).DevicePMConfigUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: CoreService_DevicePMConfigUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(CoreServiceServer).DevicePMConfigUpdate(ctx, req.(*voltha.PmConfigs))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _CoreService_ChildDeviceDetected_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(core_adapter.DeviceDiscovery)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(CoreServiceServer).ChildDeviceDetected(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: CoreService_ChildDeviceDetected_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(CoreServiceServer).ChildDeviceDetected(ctx, req.(*core_adapter.DeviceDiscovery))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _CoreService_ChildDevicesLost_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.(CoreServiceServer).ChildDevicesLost(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: CoreService_ChildDevicesLost_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(CoreServiceServer).ChildDevicesLost(ctx, req.(*common.ID))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _CoreService_ChildDevicesDetected_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.(CoreServiceServer).ChildDevicesDetected(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: CoreService_ChildDevicesDetected_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(CoreServiceServer).ChildDevicesDetected(ctx, req.(*common.ID))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _CoreService_GetDevice_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.(CoreServiceServer).GetDevice(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: CoreService_GetDevice_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(CoreServiceServer).GetDevice(ctx, req.(*common.ID))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _CoreService_GetChildDevice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(core_adapter.ChildDeviceFilter)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(CoreServiceServer).GetChildDevice(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: CoreService_GetChildDevice_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(CoreServiceServer).GetChildDevice(ctx, req.(*core_adapter.ChildDeviceFilter))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _CoreService_GetChildDevices_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.(CoreServiceServer).GetChildDevices(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: CoreService_GetChildDevices_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(CoreServiceServer).GetChildDevices(ctx, req.(*common.ID))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _CoreService_SendPacketIn_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(core_adapter.PacketIn)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(CoreServiceServer).SendPacketIn(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: CoreService_SendPacketIn_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(CoreServiceServer).SendPacketIn(ctx, req.(*core_adapter.PacketIn))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _CoreService_DeviceReasonUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(core_adapter.DeviceReason)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(CoreServiceServer).DeviceReasonUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: CoreService_DeviceReasonUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(CoreServiceServer).DeviceReasonUpdate(ctx, req.(*core_adapter.DeviceReason))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _CoreService_PortStateUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(core_adapter.PortState)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(CoreServiceServer).PortStateUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: CoreService_PortStateUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(CoreServiceServer).PortStateUpdate(ctx, req.(*core_adapter.PortState))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _CoreService_ReconcileChildDevices_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.(CoreServiceServer).ReconcileChildDevices(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: CoreService_ReconcileChildDevices_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(CoreServiceServer).ReconcileChildDevices(ctx, req.(*common.ID))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _CoreService_GetChildDeviceWithProxyAddress_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(voltha.Device_ProxyAddress)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(CoreServiceServer).GetChildDeviceWithProxyAddress(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: CoreService_GetChildDeviceWithProxyAddress_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(CoreServiceServer).GetChildDeviceWithProxyAddress(ctx, req.(*voltha.Device_ProxyAddress))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _CoreService_GetPorts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(core_adapter.PortFilter)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(CoreServiceServer).GetPorts(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: CoreService_GetPorts_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(CoreServiceServer).GetPorts(ctx, req.(*core_adapter.PortFilter))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _CoreService_ChildrenStateUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(core_adapter.DeviceStateFilter)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(CoreServiceServer).ChildrenStateUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: CoreService_ChildrenStateUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(CoreServiceServer).ChildrenStateUpdate(ctx, req.(*core_adapter.DeviceStateFilter))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _CoreService_UpdateImageDownload_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(voltha.ImageDownload)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(CoreServiceServer).UpdateImageDownload(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: CoreService_UpdateImageDownload_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(CoreServiceServer).UpdateImageDownload(ctx, req.(*voltha.ImageDownload))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+// CoreService_ServiceDesc is the grpc.ServiceDesc for CoreService service.
+// It's only intended for direct use with grpc.RegisterService,
+// and not to be introspected or modified (even as a copy)
+var CoreService_ServiceDesc = grpc.ServiceDesc{
+	ServiceName: "core_service.CoreService",
+	HandlerType: (*CoreServiceServer)(nil),
+	Methods: []grpc.MethodDesc{
+		{
+			MethodName: "RegisterAdapter",
+			Handler:    _CoreService_RegisterAdapter_Handler,
+		},
+		{
+			MethodName: "DeviceUpdate",
+			Handler:    _CoreService_DeviceUpdate_Handler,
+		},
+		{
+			MethodName: "PortCreated",
+			Handler:    _CoreService_PortCreated_Handler,
+		},
+		{
+			MethodName: "PortsStateUpdate",
+			Handler:    _CoreService_PortsStateUpdate_Handler,
+		},
+		{
+			MethodName: "DeleteAllPorts",
+			Handler:    _CoreService_DeleteAllPorts_Handler,
+		},
+		{
+			MethodName: "GetDevicePort",
+			Handler:    _CoreService_GetDevicePort_Handler,
+		},
+		{
+			MethodName: "ListDevicePorts",
+			Handler:    _CoreService_ListDevicePorts_Handler,
+		},
+		{
+			MethodName: "DeviceStateUpdate",
+			Handler:    _CoreService_DeviceStateUpdate_Handler,
+		},
+		{
+			MethodName: "DevicePMConfigUpdate",
+			Handler:    _CoreService_DevicePMConfigUpdate_Handler,
+		},
+		{
+			MethodName: "ChildDeviceDetected",
+			Handler:    _CoreService_ChildDeviceDetected_Handler,
+		},
+		{
+			MethodName: "ChildDevicesLost",
+			Handler:    _CoreService_ChildDevicesLost_Handler,
+		},
+		{
+			MethodName: "ChildDevicesDetected",
+			Handler:    _CoreService_ChildDevicesDetected_Handler,
+		},
+		{
+			MethodName: "GetDevice",
+			Handler:    _CoreService_GetDevice_Handler,
+		},
+		{
+			MethodName: "GetChildDevice",
+			Handler:    _CoreService_GetChildDevice_Handler,
+		},
+		{
+			MethodName: "GetChildDevices",
+			Handler:    _CoreService_GetChildDevices_Handler,
+		},
+		{
+			MethodName: "SendPacketIn",
+			Handler:    _CoreService_SendPacketIn_Handler,
+		},
+		{
+			MethodName: "DeviceReasonUpdate",
+			Handler:    _CoreService_DeviceReasonUpdate_Handler,
+		},
+		{
+			MethodName: "PortStateUpdate",
+			Handler:    _CoreService_PortStateUpdate_Handler,
+		},
+		{
+			MethodName: "ReconcileChildDevices",
+			Handler:    _CoreService_ReconcileChildDevices_Handler,
+		},
+		{
+			MethodName: "GetChildDeviceWithProxyAddress",
+			Handler:    _CoreService_GetChildDeviceWithProxyAddress_Handler,
+		},
+		{
+			MethodName: "GetPorts",
+			Handler:    _CoreService_GetPorts_Handler,
+		},
+		{
+			MethodName: "ChildrenStateUpdate",
+			Handler:    _CoreService_ChildrenStateUpdate_Handler,
+		},
+		{
+			MethodName: "UpdateImageDownload",
+			Handler:    _CoreService_UpdateImageDownload_Handler,
+		},
+	},
+	Streams: []grpc.StreamDesc{
+		{
+			StreamName:    "GetHealthStatus",
+			Handler:       _CoreService_GetHealthStatus_Handler,
+			ServerStreams: true,
+			ClientStreams: true,
+		},
+	},
+	Metadata: "voltha_protos/core_services.proto",
+}
diff --git a/go/ext/config/ext_config.pb.go b/go/ext/config/ext_config.pb.go
index 2db2ed1..06b5dd3 100644
--- a/go/ext/config/ext_config.pb.go
+++ b/go/ext/config/ext_config.pb.go
@@ -1,108 +1,187 @@
+// Copyright 2020-2024 Open Networking Foundation (ONF) and the ONF Contributors
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at:
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
 // Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// 	protoc-gen-go v1.36.11
+// 	protoc        v4.25.8
 // source: voltha_protos/ext_config.proto
 
 package config
 
 import (
-	fmt "fmt"
-	proto "github.com/golang/protobuf/proto"
-	math "math"
+	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+	reflect "reflect"
+	sync "sync"
+	unsafe "unsafe"
 )
 
-// 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
+const (
+	// Verify that this generated code is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+	// Verify that runtime/protoimpl is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
 
 type OnuItuPonAlarm_AlarmID int32
 
 const (
-	OnuItuPonAlarm_RDI_ERRORS OnuItuPonAlarm_AlarmID = 0
+	OnuItuPonAlarm_RDI_ERRORS OnuItuPonAlarm_AlarmID = 0 // RDI errors
 )
 
-var OnuItuPonAlarm_AlarmID_name = map[int32]string{
-	0: "RDI_ERRORS",
-}
+// Enum value maps for OnuItuPonAlarm_AlarmID.
+var (
+	OnuItuPonAlarm_AlarmID_name = map[int32]string{
+		0: "RDI_ERRORS",
+	}
+	OnuItuPonAlarm_AlarmID_value = map[string]int32{
+		"RDI_ERRORS": 0,
+	}
+)
 
-var OnuItuPonAlarm_AlarmID_value = map[string]int32{
-	"RDI_ERRORS": 0,
+func (x OnuItuPonAlarm_AlarmID) Enum() *OnuItuPonAlarm_AlarmID {
+	p := new(OnuItuPonAlarm_AlarmID)
+	*p = x
+	return p
 }
 
 func (x OnuItuPonAlarm_AlarmID) String() string {
-	return proto.EnumName(OnuItuPonAlarm_AlarmID_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OnuItuPonAlarm_AlarmID) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_ext_config_proto_enumTypes[0].Descriptor()
+}
+
+func (OnuItuPonAlarm_AlarmID) Type() protoreflect.EnumType {
+	return &file_voltha_protos_ext_config_proto_enumTypes[0]
+}
+
+func (x OnuItuPonAlarm_AlarmID) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OnuItuPonAlarm_AlarmID.Descriptor instead.
 func (OnuItuPonAlarm_AlarmID) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_fb43b44b7fa3aba9, []int{1, 0}
+	return file_voltha_protos_ext_config_proto_rawDescGZIP(), []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
+	OnuItuPonAlarm_RATE_THRESHOLD  OnuItuPonAlarm_AlarmReportingCondition = 0 // The alarm is triggered if the stats delta value between samples crosses the configured threshold boundary
+	OnuItuPonAlarm_RATE_RANGE      OnuItuPonAlarm_AlarmReportingCondition = 1 // The alarm is triggered if the stats delta value between samples deviates from the configured range
+	OnuItuPonAlarm_VALUE_THRESHOLD OnuItuPonAlarm_AlarmReportingCondition = 2 // The alarm is raised if the stats sample value becomes greater than this level.  The alarm is cleared when the host read the stats
 )
 
-var OnuItuPonAlarm_AlarmReportingCondition_name = map[int32]string{
-	0: "RATE_THRESHOLD",
-	1: "RATE_RANGE",
-	2: "VALUE_THRESHOLD",
-}
+// Enum value maps for OnuItuPonAlarm_AlarmReportingCondition.
+var (
+	OnuItuPonAlarm_AlarmReportingCondition_name = map[int32]string{
+		0: "RATE_THRESHOLD",
+		1: "RATE_RANGE",
+		2: "VALUE_THRESHOLD",
+	}
+	OnuItuPonAlarm_AlarmReportingCondition_value = map[string]int32{
+		"RATE_THRESHOLD":  0,
+		"RATE_RANGE":      1,
+		"VALUE_THRESHOLD": 2,
+	}
+)
 
-var OnuItuPonAlarm_AlarmReportingCondition_value = map[string]int32{
-	"RATE_THRESHOLD":  0,
-	"RATE_RANGE":      1,
-	"VALUE_THRESHOLD": 2,
+func (x OnuItuPonAlarm_AlarmReportingCondition) Enum() *OnuItuPonAlarm_AlarmReportingCondition {
+	p := new(OnuItuPonAlarm_AlarmReportingCondition)
+	*p = x
+	return p
 }
 
 func (x OnuItuPonAlarm_AlarmReportingCondition) String() string {
-	return proto.EnumName(OnuItuPonAlarm_AlarmReportingCondition_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OnuItuPonAlarm_AlarmReportingCondition) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_ext_config_proto_enumTypes[1].Descriptor()
+}
+
+func (OnuItuPonAlarm_AlarmReportingCondition) Type() protoreflect.EnumType {
+	return &file_voltha_protos_ext_config_proto_enumTypes[1]
+}
+
+func (x OnuItuPonAlarm_AlarmReportingCondition) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OnuItuPonAlarm_AlarmReportingCondition.Descriptor instead.
 func (OnuItuPonAlarm_AlarmReportingCondition) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_fb43b44b7fa3aba9, []int{1, 1}
+	return file_voltha_protos_ext_config_proto_rawDescGZIP(), []int{1, 1}
 }
 
 type AlarmConfig struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
 	// 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:"-"`
+	Config        isAlarmConfig_Config `protobuf_oneof:"config"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *AlarmConfig) Reset()         { *m = AlarmConfig{} }
-func (m *AlarmConfig) String() string { return proto.CompactTextString(m) }
-func (*AlarmConfig) ProtoMessage()    {}
+func (x *AlarmConfig) Reset() {
+	*x = AlarmConfig{}
+	mi := &file_voltha_protos_ext_config_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *AlarmConfig) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AlarmConfig) ProtoMessage() {}
+
+func (x *AlarmConfig) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_ext_config_proto_msgTypes[0]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use AlarmConfig.ProtoReflect.Descriptor instead.
 func (*AlarmConfig) Descriptor() ([]byte, []int) {
-	return fileDescriptor_fb43b44b7fa3aba9, []int{0}
+	return file_voltha_protos_ext_config_proto_rawDescGZIP(), []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)
+func (x *AlarmConfig) GetConfig() isAlarmConfig_Config {
+	if x != nil {
+		return x.Config
+	}
+	return nil
 }
 
-var xxx_messageInfo_AlarmConfig proto.InternalMessageInfo
+func (x *AlarmConfig) GetOnuItuPonAlarmConfig() *OnuItuPonAlarm {
+	if x != nil {
+		if x, ok := x.Config.(*AlarmConfig_OnuItuPonAlarmConfig); ok {
+			return x.OnuItuPonAlarmConfig
+		}
+	}
+	return nil
+}
 
 type isAlarmConfig_Config interface {
 	isAlarmConfig_Config()
@@ -114,95 +193,114 @@
 
 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 {
+	state                   protoimpl.MessageState                 `protogen:"open.v1"`
 	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:"-"`
+	Config        isOnuItuPonAlarm_Config `protobuf_oneof:"config"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *OnuItuPonAlarm) Reset()         { *m = OnuItuPonAlarm{} }
-func (m *OnuItuPonAlarm) String() string { return proto.CompactTextString(m) }
-func (*OnuItuPonAlarm) ProtoMessage()    {}
+func (x *OnuItuPonAlarm) Reset() {
+	*x = OnuItuPonAlarm{}
+	mi := &file_voltha_protos_ext_config_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OnuItuPonAlarm) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OnuItuPonAlarm) ProtoMessage() {}
+
+func (x *OnuItuPonAlarm) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_ext_config_proto_msgTypes[1]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OnuItuPonAlarm.ProtoReflect.Descriptor instead.
 func (*OnuItuPonAlarm) Descriptor() ([]byte, []int) {
-	return fileDescriptor_fb43b44b7fa3aba9, []int{1}
+	return file_voltha_protos_ext_config_proto_rawDescGZIP(), []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
+func (x *OnuItuPonAlarm) GetPonNi() uint32 {
+	if x != nil {
+		return x.PonNi
 	}
 	return 0
 }
 
-func (m *OnuItuPonAlarm) GetOnuId() uint32 {
-	if m != nil {
-		return m.OnuId
+func (x *OnuItuPonAlarm) GetOnuId() uint32 {
+	if x != nil {
+		return x.OnuId
 	}
 	return 0
 }
 
-func (m *OnuItuPonAlarm) GetAlarmId() OnuItuPonAlarm_AlarmID {
-	if m != nil {
-		return m.AlarmId
+func (x *OnuItuPonAlarm) GetAlarmId() OnuItuPonAlarm_AlarmID {
+	if x != nil {
+		return x.AlarmId
 	}
 	return OnuItuPonAlarm_RDI_ERRORS
 }
 
-func (m *OnuItuPonAlarm) GetAlarmReportingCondition() OnuItuPonAlarm_AlarmReportingCondition {
-	if m != nil {
-		return m.AlarmReportingCondition
+func (x *OnuItuPonAlarm) GetAlarmReportingCondition() OnuItuPonAlarm_AlarmReportingCondition {
+	if x != nil {
+		return x.AlarmReportingCondition
 	}
 	return OnuItuPonAlarm_RATE_THRESHOLD
 }
 
+func (x *OnuItuPonAlarm) GetConfig() isOnuItuPonAlarm_Config {
+	if x != nil {
+		return x.Config
+	}
+	return nil
+}
+
+func (x *OnuItuPonAlarm) GetRateThresholdConfig() *OnuItuPonAlarm_RateThresholdConfig {
+	if x != nil {
+		if x, ok := x.Config.(*OnuItuPonAlarm_RateThresholdConfig_); ok {
+			return x.RateThresholdConfig
+		}
+	}
+	return nil
+}
+
+func (x *OnuItuPonAlarm) GetRateRangeConfig() *OnuItuPonAlarm_RateRangeConfig {
+	if x != nil {
+		if x, ok := x.Config.(*OnuItuPonAlarm_RateRangeConfig_); ok {
+			return x.RateRangeConfig
+		}
+	}
+	return nil
+}
+
+func (x *OnuItuPonAlarm) GetValueThresholdConfig() *OnuItuPonAlarm_ValueThresholdConfig {
+	if x != nil {
+		if x, ok := x.Config.(*OnuItuPonAlarm_ValueThresholdConfig_); ok {
+			return x.ValueThresholdConfig
+		}
+	}
+	return nil
+}
+
 type isOnuItuPonAlarm_Config interface {
 	isOnuItuPonAlarm_Config()
 }
@@ -225,299 +323,341 @@
 
 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:"-"`
+	state          protoimpl.MessageState `protogen:"open.v1"`
+	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"`
+	unknownFields  protoimpl.UnknownFields
+	sizeCache      protoimpl.SizeCache
 }
 
-func (m *OnuItuPonAlarm_SoakTime) Reset()         { *m = OnuItuPonAlarm_SoakTime{} }
-func (m *OnuItuPonAlarm_SoakTime) String() string { return proto.CompactTextString(m) }
-func (*OnuItuPonAlarm_SoakTime) ProtoMessage()    {}
+func (x *OnuItuPonAlarm_SoakTime) Reset() {
+	*x = OnuItuPonAlarm_SoakTime{}
+	mi := &file_voltha_protos_ext_config_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OnuItuPonAlarm_SoakTime) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OnuItuPonAlarm_SoakTime) ProtoMessage() {}
+
+func (x *OnuItuPonAlarm_SoakTime) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_ext_config_proto_msgTypes[2]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OnuItuPonAlarm_SoakTime.ProtoReflect.Descriptor instead.
 func (*OnuItuPonAlarm_SoakTime) Descriptor() ([]byte, []int) {
-	return fileDescriptor_fb43b44b7fa3aba9, []int{1, 0}
+	return file_voltha_protos_ext_config_proto_rawDescGZIP(), []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
+func (x *OnuItuPonAlarm_SoakTime) GetActiveSoakTime() uint32 {
+	if x != nil {
+		return x.ActiveSoakTime
 	}
 	return 0
 }
 
-func (m *OnuItuPonAlarm_SoakTime) GetClearSoakTime() uint32 {
-	if m != nil {
-		return m.ClearSoakTime
+func (x *OnuItuPonAlarm_SoakTime) GetClearSoakTime() uint32 {
+	if x != nil {
+		return x.ClearSoakTime
 	}
 	return 0
 }
 
 type OnuItuPonAlarm_RateThresholdConfig struct {
+	state                protoimpl.MessageState   `protogen:"open.v1"`
 	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:"-"`
+	unknownFields        protoimpl.UnknownFields
+	sizeCache            protoimpl.SizeCache
 }
 
-func (m *OnuItuPonAlarm_RateThresholdConfig) Reset()         { *m = OnuItuPonAlarm_RateThresholdConfig{} }
-func (m *OnuItuPonAlarm_RateThresholdConfig) String() string { return proto.CompactTextString(m) }
-func (*OnuItuPonAlarm_RateThresholdConfig) ProtoMessage()    {}
+func (x *OnuItuPonAlarm_RateThresholdConfig) Reset() {
+	*x = OnuItuPonAlarm_RateThresholdConfig{}
+	mi := &file_voltha_protos_ext_config_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OnuItuPonAlarm_RateThresholdConfig) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OnuItuPonAlarm_RateThresholdConfig) ProtoMessage() {}
+
+func (x *OnuItuPonAlarm_RateThresholdConfig) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_ext_config_proto_msgTypes[3]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OnuItuPonAlarm_RateThresholdConfig.ProtoReflect.Descriptor instead.
 func (*OnuItuPonAlarm_RateThresholdConfig) Descriptor() ([]byte, []int) {
-	return fileDescriptor_fb43b44b7fa3aba9, []int{1, 1}
+	return file_voltha_protos_ext_config_proto_rawDescGZIP(), []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
+func (x *OnuItuPonAlarm_RateThresholdConfig) GetRateThresholdRising() uint64 {
+	if x != nil {
+		return x.RateThresholdRising
 	}
 	return 0
 }
 
-func (m *OnuItuPonAlarm_RateThresholdConfig) GetRateThresholdFalling() uint64 {
-	if m != nil {
-		return m.RateThresholdFalling
+func (x *OnuItuPonAlarm_RateThresholdConfig) GetRateThresholdFalling() uint64 {
+	if x != nil {
+		return x.RateThresholdFalling
 	}
 	return 0
 }
 
-func (m *OnuItuPonAlarm_RateThresholdConfig) GetSoakTime() *OnuItuPonAlarm_SoakTime {
-	if m != nil {
-		return m.SoakTime
+func (x *OnuItuPonAlarm_RateThresholdConfig) GetSoakTime() *OnuItuPonAlarm_SoakTime {
+	if x != nil {
+		return x.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:"-"`
+	state          protoimpl.MessageState   `protogen:"open.v1"`
+	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"`
+	unknownFields  protoimpl.UnknownFields
+	sizeCache      protoimpl.SizeCache
 }
 
-func (m *OnuItuPonAlarm_RateRangeConfig) Reset()         { *m = OnuItuPonAlarm_RateRangeConfig{} }
-func (m *OnuItuPonAlarm_RateRangeConfig) String() string { return proto.CompactTextString(m) }
-func (*OnuItuPonAlarm_RateRangeConfig) ProtoMessage()    {}
+func (x *OnuItuPonAlarm_RateRangeConfig) Reset() {
+	*x = OnuItuPonAlarm_RateRangeConfig{}
+	mi := &file_voltha_protos_ext_config_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OnuItuPonAlarm_RateRangeConfig) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OnuItuPonAlarm_RateRangeConfig) ProtoMessage() {}
+
+func (x *OnuItuPonAlarm_RateRangeConfig) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_ext_config_proto_msgTypes[4]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OnuItuPonAlarm_RateRangeConfig.ProtoReflect.Descriptor instead.
 func (*OnuItuPonAlarm_RateRangeConfig) Descriptor() ([]byte, []int) {
-	return fileDescriptor_fb43b44b7fa3aba9, []int{1, 2}
+	return file_voltha_protos_ext_config_proto_rawDescGZIP(), []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
+func (x *OnuItuPonAlarm_RateRangeConfig) GetRateRangeLower() uint64 {
+	if x != nil {
+		return x.RateRangeLower
 	}
 	return 0
 }
 
-func (m *OnuItuPonAlarm_RateRangeConfig) GetRateRangeUpper() uint64 {
-	if m != nil {
-		return m.RateRangeUpper
+func (x *OnuItuPonAlarm_RateRangeConfig) GetRateRangeUpper() uint64 {
+	if x != nil {
+		return x.RateRangeUpper
 	}
 	return 0
 }
 
-func (m *OnuItuPonAlarm_RateRangeConfig) GetSoakTime() *OnuItuPonAlarm_SoakTime {
-	if m != nil {
-		return m.SoakTime
+func (x *OnuItuPonAlarm_RateRangeConfig) GetSoakTime() *OnuItuPonAlarm_SoakTime {
+	if x != nil {
+		return x.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:"-"`
+	state          protoimpl.MessageState   `protogen:"open.v1"`
+	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"`
+	unknownFields  protoimpl.UnknownFields
+	sizeCache      protoimpl.SizeCache
 }
 
-func (m *OnuItuPonAlarm_ValueThresholdConfig) Reset()         { *m = OnuItuPonAlarm_ValueThresholdConfig{} }
-func (m *OnuItuPonAlarm_ValueThresholdConfig) String() string { return proto.CompactTextString(m) }
-func (*OnuItuPonAlarm_ValueThresholdConfig) ProtoMessage()    {}
+func (x *OnuItuPonAlarm_ValueThresholdConfig) Reset() {
+	*x = OnuItuPonAlarm_ValueThresholdConfig{}
+	mi := &file_voltha_protos_ext_config_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OnuItuPonAlarm_ValueThresholdConfig) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OnuItuPonAlarm_ValueThresholdConfig) ProtoMessage() {}
+
+func (x *OnuItuPonAlarm_ValueThresholdConfig) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_ext_config_proto_msgTypes[5]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OnuItuPonAlarm_ValueThresholdConfig.ProtoReflect.Descriptor instead.
 func (*OnuItuPonAlarm_ValueThresholdConfig) Descriptor() ([]byte, []int) {
-	return fileDescriptor_fb43b44b7fa3aba9, []int{1, 3}
+	return file_voltha_protos_ext_config_proto_rawDescGZIP(), []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
+func (x *OnuItuPonAlarm_ValueThresholdConfig) GetThresholdLimit() uint64 {
+	if x != nil {
+		return x.ThresholdLimit
 	}
 	return 0
 }
 
-func (m *OnuItuPonAlarm_ValueThresholdConfig) GetSoakTime() *OnuItuPonAlarm_SoakTime {
-	if m != nil {
-		return m.SoakTime
+func (x *OnuItuPonAlarm_ValueThresholdConfig) GetSoakTime() *OnuItuPonAlarm_SoakTime {
+	if x != nil {
+		return x.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")
+var File_voltha_protos_ext_config_proto protoreflect.FileDescriptor
+
+const file_voltha_protos_ext_config_proto_rawDesc = "" +
+	"\n" +
+	"\x1evoltha_protos/ext_config.proto\x12\x06config\"i\n" +
+	"\vAlarmConfig\x12P\n" +
+	"\x18onu_itu_pon_alarm_config\x18\x01 \x01(\v2\x16.config.OnuItuPonAlarmH\x00R\x14onuItuPonAlarmConfigB\b\n" +
+	"\x06config\"\xbe\t\n" +
+	"\x0eOnuItuPonAlarm\x12\x15\n" +
+	"\x06pon_ni\x18\x01 \x01(\aR\x05ponNi\x12\x15\n" +
+	"\x06onu_id\x18\x02 \x01(\aR\x05onuId\x129\n" +
+	"\balarm_id\x18\x03 \x01(\x0e2\x1e.config.OnuItuPonAlarm.AlarmIDR\aalarmId\x12j\n" +
+	"\x19alarm_reporting_condition\x18\x04 \x01(\x0e2..config.OnuItuPonAlarm.AlarmReportingConditionR\x17alarmReportingCondition\x12`\n" +
+	"\x15rate_threshold_config\x18\x05 \x01(\v2*.config.OnuItuPonAlarm.RateThresholdConfigH\x00R\x13rateThresholdConfig\x12T\n" +
+	"\x11rate_range_config\x18\x06 \x01(\v2&.config.OnuItuPonAlarm.RateRangeConfigH\x00R\x0frateRangeConfig\x12c\n" +
+	"\x16value_threshold_config\x18\a \x01(\v2+.config.OnuItuPonAlarm.ValueThresholdConfigH\x00R\x14valueThresholdConfig\x1a\\\n" +
+	"\bSoakTime\x12(\n" +
+	"\x10active_soak_time\x18\x01 \x01(\aR\x0eactiveSoakTime\x12&\n" +
+	"\x0fclear_soak_time\x18\x02 \x01(\aR\rclearSoakTime\x1a\xbd\x01\n" +
+	"\x13RateThresholdConfig\x122\n" +
+	"\x15rate_threshold_rising\x18\x01 \x01(\x06R\x13rateThresholdRising\x124\n" +
+	"\x16rate_threshold_falling\x18\x02 \x01(\x06R\x14rateThresholdFalling\x12<\n" +
+	"\tsoak_time\x18\x03 \x01(\v2\x1f.config.OnuItuPonAlarm.SoakTimeR\bsoakTime\x1a\xa3\x01\n" +
+	"\x0fRateRangeConfig\x12(\n" +
+	"\x10rate_range_lower\x18\x01 \x01(\x06R\x0erateRangeLower\x12(\n" +
+	"\x10rate_range_upper\x18\x02 \x01(\x06R\x0erateRangeUpper\x12<\n" +
+	"\tsoak_time\x18\x03 \x01(\v2\x1f.config.OnuItuPonAlarm.SoakTimeR\bsoakTime\x1a}\n" +
+	"\x14ValueThresholdConfig\x12'\n" +
+	"\x0fthreshold_limit\x18\x01 \x01(\x06R\x0ethresholdLimit\x12<\n" +
+	"\tsoak_time\x18\x02 \x01(\v2\x1f.config.OnuItuPonAlarm.SoakTimeR\bsoakTime\"\x19\n" +
+	"\aAlarmID\x12\x0e\n" +
+	"\n" +
+	"RDI_ERRORS\x10\x00\"R\n" +
+	"\x17AlarmReportingCondition\x12\x12\n" +
+	"\x0eRATE_THRESHOLD\x10\x00\x12\x0e\n" +
+	"\n" +
+	"RATE_RANGE\x10\x01\x12\x13\n" +
+	"\x0fVALUE_THRESHOLD\x10\x02B\b\n" +
+	"\x06configBI\n" +
+	"\x13org.opencord.volthaZ2github.com/opencord/voltha-protos/v5/go/ext/configb\x06proto3"
+
+var (
+	file_voltha_protos_ext_config_proto_rawDescOnce sync.Once
+	file_voltha_protos_ext_config_proto_rawDescData []byte
+)
+
+func file_voltha_protos_ext_config_proto_rawDescGZIP() []byte {
+	file_voltha_protos_ext_config_proto_rawDescOnce.Do(func() {
+		file_voltha_protos_ext_config_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_voltha_protos_ext_config_proto_rawDesc), len(file_voltha_protos_ext_config_proto_rawDesc)))
+	})
+	return file_voltha_protos_ext_config_proto_rawDescData
 }
 
-func init() { proto.RegisterFile("voltha_protos/ext_config.proto", fileDescriptor_fb43b44b7fa3aba9) }
+var file_voltha_protos_ext_config_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
+var file_voltha_protos_ext_config_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
+var file_voltha_protos_ext_config_proto_goTypes = []any{
+	(OnuItuPonAlarm_AlarmID)(0),                 // 0: config.OnuItuPonAlarm.AlarmID
+	(OnuItuPonAlarm_AlarmReportingCondition)(0), // 1: config.OnuItuPonAlarm.AlarmReportingCondition
+	(*AlarmConfig)(nil),                         // 2: config.AlarmConfig
+	(*OnuItuPonAlarm)(nil),                      // 3: config.OnuItuPonAlarm
+	(*OnuItuPonAlarm_SoakTime)(nil),             // 4: config.OnuItuPonAlarm.SoakTime
+	(*OnuItuPonAlarm_RateThresholdConfig)(nil),  // 5: config.OnuItuPonAlarm.RateThresholdConfig
+	(*OnuItuPonAlarm_RateRangeConfig)(nil),      // 6: config.OnuItuPonAlarm.RateRangeConfig
+	(*OnuItuPonAlarm_ValueThresholdConfig)(nil), // 7: config.OnuItuPonAlarm.ValueThresholdConfig
+}
+var file_voltha_protos_ext_config_proto_depIdxs = []int32{
+	3, // 0: config.AlarmConfig.onu_itu_pon_alarm_config:type_name -> config.OnuItuPonAlarm
+	0, // 1: config.OnuItuPonAlarm.alarm_id:type_name -> config.OnuItuPonAlarm.AlarmID
+	1, // 2: config.OnuItuPonAlarm.alarm_reporting_condition:type_name -> config.OnuItuPonAlarm.AlarmReportingCondition
+	5, // 3: config.OnuItuPonAlarm.rate_threshold_config:type_name -> config.OnuItuPonAlarm.RateThresholdConfig
+	6, // 4: config.OnuItuPonAlarm.rate_range_config:type_name -> config.OnuItuPonAlarm.RateRangeConfig
+	7, // 5: config.OnuItuPonAlarm.value_threshold_config:type_name -> config.OnuItuPonAlarm.ValueThresholdConfig
+	4, // 6: config.OnuItuPonAlarm.RateThresholdConfig.soak_time:type_name -> config.OnuItuPonAlarm.SoakTime
+	4, // 7: config.OnuItuPonAlarm.RateRangeConfig.soak_time:type_name -> config.OnuItuPonAlarm.SoakTime
+	4, // 8: config.OnuItuPonAlarm.ValueThresholdConfig.soak_time:type_name -> config.OnuItuPonAlarm.SoakTime
+	9, // [9:9] is the sub-list for method output_type
+	9, // [9:9] is the sub-list for method input_type
+	9, // [9:9] is the sub-list for extension type_name
+	9, // [9:9] is the sub-list for extension extendee
+	0, // [0:9] is the sub-list for field type_name
+}
 
-var fileDescriptor_fb43b44b7fa3aba9 = []byte{
-	// 610 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x54, 0xd1, 0x6e, 0x12, 0x41,
-	0x14, 0x05, 0x6a, 0x81, 0xde, 0x46, 0xc0, 0x81, 0xb6, 0xb4, 0x0f, 0xb5, 0xe9, 0x43, 0x6d, 0x34,
-	0x2e, 0x09, 0xea, 0x83, 0x89, 0x2f, 0xb4, 0x45, 0x21, 0x21, 0x6d, 0x33, 0xa5, 0x7d, 0x30, 0x26,
-	0xeb, 0x94, 0x9d, 0x2e, 0x63, 0x97, 0x99, 0xcd, 0x30, 0x8b, 0xbe, 0xf8, 0x35, 0x7e, 0x87, 0x7e,
-	0x9b, 0x99, 0x99, 0x5d, 0x28, 0xb0, 0x34, 0x31, 0xbe, 0x90, 0xec, 0xb9, 0xf7, 0x9c, 0x7b, 0x38,
-	0x77, 0x66, 0x60, 0x7f, 0x22, 0x02, 0x35, 0x24, 0x6e, 0x28, 0x85, 0x12, 0xe3, 0x06, 0xfd, 0xa1,
-	0xdc, 0x81, 0xe0, 0x77, 0xcc, 0x77, 0x0c, 0x82, 0xf2, 0xf6, 0xeb, 0x90, 0xc1, 0x66, 0x2b, 0x20,
-	0x72, 0x74, 0x6a, 0x3e, 0xd1, 0x25, 0xd4, 0x05, 0x8f, 0x5c, 0xa6, 0x22, 0x37, 0x14, 0xdc, 0x25,
-	0xba, 0x14, 0x13, 0xeb, 0xd9, 0x83, 0xec, 0xf1, 0x66, 0x73, 0xdb, 0x89, 0x75, 0x2e, 0x78, 0xd4,
-	0x55, 0xd1, 0xa5, 0xe0, 0x86, 0xdf, 0xc9, 0xe0, 0x9a, 0x98, 0x43, 0xac, 0xe2, 0x49, 0x11, 0x92,
-	0x51, 0x7f, 0x36, 0xa0, 0x34, 0x4f, 0x42, 0x5b, 0x90, 0xd7, 0x63, 0x38, 0x33, 0xe2, 0x05, 0xbc,
-	0x1e, 0x0a, 0x7e, 0xce, 0x34, 0x6c, 0x5c, 0x78, 0xf5, 0x9c, 0x85, 0xb5, 0xb2, 0x87, 0xde, 0x43,
-	0xd1, 0x1a, 0x62, 0x5e, 0x7d, 0xed, 0x20, 0x7b, 0x5c, 0x6a, 0xee, 0xa7, 0x9b, 0x71, 0xcc, 0x6f,
-	0xf7, 0x0c, 0x17, 0x4c, 0x7f, 0xd7, 0x43, 0xdf, 0x60, 0xd7, 0x52, 0x25, 0x0d, 0x85, 0x54, 0x8c,
-	0xfb, 0xfa, 0x5f, 0x79, 0x4c, 0x31, 0xc1, 0xeb, 0x4f, 0x8c, 0x96, 0xf3, 0x98, 0x16, 0x4e, 0x68,
-	0xa7, 0x09, 0x0b, 0xef, 0x90, 0xf4, 0x02, 0xfa, 0x0a, 0x5b, 0x92, 0x28, 0xea, 0xaa, 0xa1, 0xa4,
-	0xe3, 0xa1, 0x08, 0xbc, 0x24, 0xc0, 0x75, 0x13, 0xe0, 0xcb, 0x15, 0x73, 0x30, 0x51, 0xb4, 0x9f,
-	0x50, 0x6c, 0x78, 0x9d, 0x0c, 0xae, 0xca, 0x65, 0x18, 0xf5, 0xe1, 0x99, 0x99, 0x20, 0x09, 0xf7,
-	0x69, 0xa2, 0x9e, 0x37, 0xea, 0x47, 0x8f, 0xa8, 0x63, 0xdd, 0x3e, 0x55, 0x2e, 0xcb, 0x79, 0x08,
-	0x0d, 0x60, 0x7b, 0x42, 0x82, 0x28, 0xc5, 0x78, 0xc1, 0x48, 0xbf, 0x5a, 0x21, 0x7d, 0xa3, 0x49,
-	0xcb, 0xce, 0x6b, 0x93, 0x14, 0x7c, 0xef, 0x0b, 0x14, 0xaf, 0x04, 0xb9, 0xef, 0xb3, 0x11, 0x45,
-	0xc7, 0x50, 0x21, 0x03, 0xc5, 0x26, 0xd4, 0x1d, 0x0b, 0x72, 0xef, 0x2a, 0x36, 0xa2, 0xf1, 0x39,
-	0x28, 0x59, 0x7c, 0xda, 0x79, 0x04, 0xe5, 0x41, 0x40, 0x89, 0x7c, 0xd0, 0x68, 0x4f, 0xc6, 0x53,
-	0x03, 0x27, 0x7d, 0x7b, 0xbf, 0xb3, 0x50, 0x4d, 0xc9, 0x11, 0x35, 0x97, 0x56, 0x22, 0xd9, 0x98,
-	0x71, 0x7b, 0xa6, 0xf3, 0x0b, 0x21, 0x63, 0x53, 0x42, 0x6f, 0x61, 0x7b, 0x81, 0x73, 0x47, 0x82,
-	0x40, 0x93, 0x72, 0x86, 0x54, 0x9b, 0x23, 0x7d, 0xb4, 0x35, 0xf4, 0x01, 0x36, 0x66, 0x1e, 0xd7,
-	0x4c, 0x6e, 0xcf, 0x57, 0xe4, 0x96, 0xb8, 0xc6, 0xc5, 0x71, 0xe2, 0xff, 0x57, 0x16, 0xca, 0x0b,
-	0x9b, 0xd2, 0x29, 0x3d, 0x58, 0x76, 0x20, 0xbe, 0x53, 0x19, 0xdb, 0x2e, 0x4d, 0x37, 0xd8, 0xd3,
-	0xe8, 0x42, 0x67, 0x14, 0x86, 0x54, 0xc6, 0x5e, 0x67, 0x9d, 0xd7, 0x1a, 0xfd, 0x4f, 0x97, 0x3f,
-	0xa1, 0x96, 0xb6, 0x73, 0xf4, 0x02, 0xca, 0xb3, 0xb0, 0x02, 0x36, 0x62, 0x2a, 0x31, 0x3a, 0x85,
-	0x7b, 0x1a, 0x9d, 0x1f, 0x9f, 0xfb, 0xc7, 0xf1, 0x87, 0xbb, 0x50, 0x88, 0xef, 0x37, 0x2a, 0x01,
-	0xe0, 0xb3, 0xae, 0xdb, 0xc6, 0xf8, 0x02, 0x5f, 0x55, 0x32, 0x87, 0x18, 0x76, 0x56, 0x5c, 0x57,
-	0x84, 0xa0, 0x84, 0x5b, 0xfd, 0xb6, 0xdb, 0xef, 0xe0, 0xf6, 0x55, 0xe7, 0xa2, 0x77, 0x56, 0xc9,
-	0x18, 0xba, 0xc6, 0x70, 0xeb, 0xfc, 0x53, 0xbb, 0x92, 0x45, 0x55, 0x28, 0xdf, 0xb4, 0x7a, 0xd7,
-	0x0f, 0x9b, 0x72, 0xb3, 0x07, 0xec, 0xa4, 0x0b, 0x55, 0x21, 0x7d, 0x47, 0x84, 0x94, 0x0f, 0x84,
-	0xf4, 0x1c, 0xfb, 0xc4, 0x7e, 0x6e, 0xfa, 0x4c, 0x0d, 0xa3, 0x5b, 0x67, 0x20, 0x46, 0x8d, 0xa4,
-	0xd6, 0xb0, 0xb5, 0xd7, 0xf1, 0xf3, 0x3b, 0x79, 0xd7, 0xf0, 0x85, 0x7e, 0x84, 0x1b, 0x56, 0xea,
-	0x36, 0x6f, 0x0a, 0x6f, 0xfe, 0x06, 0x00, 0x00, 0xff, 0xff, 0x36, 0x9d, 0x64, 0x93, 0xa7, 0x05,
-	0x00, 0x00,
+func init() { file_voltha_protos_ext_config_proto_init() }
+func file_voltha_protos_ext_config_proto_init() {
+	if File_voltha_protos_ext_config_proto != nil {
+		return
+	}
+	file_voltha_protos_ext_config_proto_msgTypes[0].OneofWrappers = []any{
+		(*AlarmConfig_OnuItuPonAlarmConfig)(nil),
+	}
+	file_voltha_protos_ext_config_proto_msgTypes[1].OneofWrappers = []any{
+		(*OnuItuPonAlarm_RateThresholdConfig_)(nil),
+		(*OnuItuPonAlarm_RateRangeConfig_)(nil),
+		(*OnuItuPonAlarm_ValueThresholdConfig_)(nil),
+	}
+	type x struct{}
+	out := protoimpl.TypeBuilder{
+		File: protoimpl.DescBuilder{
+			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+			RawDescriptor: unsafe.Slice(unsafe.StringData(file_voltha_protos_ext_config_proto_rawDesc), len(file_voltha_protos_ext_config_proto_rawDesc)),
+			NumEnums:      2,
+			NumMessages:   6,
+			NumExtensions: 0,
+			NumServices:   0,
+		},
+		GoTypes:           file_voltha_protos_ext_config_proto_goTypes,
+		DependencyIndexes: file_voltha_protos_ext_config_proto_depIdxs,
+		EnumInfos:         file_voltha_protos_ext_config_proto_enumTypes,
+		MessageInfos:      file_voltha_protos_ext_config_proto_msgTypes,
+	}.Build()
+	File_voltha_protos_ext_config_proto = out.File
+	file_voltha_protos_ext_config_proto_goTypes = nil
+	file_voltha_protos_ext_config_proto_depIdxs = nil
 }
diff --git a/go/extension/extensions.pb.go b/go/extension/extensions.pb.go
index a43c4bd..883a391 100644
--- a/go/extension/extensions.pb.go
+++ b/go/extension/extensions.pb.go
@@ -1,31 +1,42 @@
+// Copyright 2018-2024 Open Networking Foundation (ONF) and the ONF Contributors
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at:
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
 // Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// 	protoc-gen-go v1.36.11
+// 	protoc        v4.25.8
 // source: voltha_protos/extensions.proto
 
 package extension
 
 import (
-	context "context"
-	fmt "fmt"
-	proto "github.com/golang/protobuf/proto"
-	empty "github.com/golang/protobuf/ptypes/empty"
 	common "github.com/opencord/voltha-protos/v5/go/common"
 	config "github.com/opencord/voltha-protos/v5/go/ext/config"
-	grpc "google.golang.org/grpc"
-	codes "google.golang.org/grpc/codes"
-	status "google.golang.org/grpc/status"
-	math "math"
+	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+	emptypb "google.golang.org/protobuf/types/known/emptypb"
+	reflect "reflect"
+	sync "sync"
+	unsafe "unsafe"
 )
 
-// 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
+const (
+	// Verify that this generated code is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+	// Verify that runtime/protoimpl is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
 
 type ValueType_Type int32
 
@@ -34,22 +45,43 @@
 	ValueType_DISTANCE ValueType_Type = 1
 )
 
-var ValueType_Type_name = map[int32]string{
-	0: "EMPTY",
-	1: "DISTANCE",
-}
+// Enum value maps for ValueType_Type.
+var (
+	ValueType_Type_name = map[int32]string{
+		0: "EMPTY",
+		1: "DISTANCE",
+	}
+	ValueType_Type_value = map[string]int32{
+		"EMPTY":    0,
+		"DISTANCE": 1,
+	}
+)
 
-var ValueType_Type_value = map[string]int32{
-	"EMPTY":    0,
-	"DISTANCE": 1,
+func (x ValueType_Type) Enum() *ValueType_Type {
+	p := new(ValueType_Type)
+	*p = x
+	return p
 }
 
 func (x ValueType_Type) String() string {
-	return proto.EnumName(ValueType_Type_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (ValueType_Type) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_extensions_proto_enumTypes[0].Descriptor()
+}
+
+func (ValueType_Type) Type() protoreflect.EnumType {
+	return &file_voltha_protos_extensions_proto_enumTypes[0]
+}
+
+func (x ValueType_Type) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use ValueType_Type.Descriptor instead.
 func (ValueType_Type) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{1, 0}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{1, 0}
 }
 
 type GetOnuUniInfoResponse_ConfigurationInd int32
@@ -65,34 +97,55 @@
 	GetOnuUniInfoResponse_GIGABIT_ETHERNET_HDX GetOnuUniInfoResponse_ConfigurationInd = 7
 )
 
-var GetOnuUniInfoResponse_ConfigurationInd_name = map[int32]string{
-	0: "UNKOWN",
-	1: "TEN_BASE_T_FDX",
-	2: "HUNDRED_BASE_T_FDX",
-	3: "GIGABIT_ETHERNET_FDX",
-	4: "TEN_G_ETHERNET_FDX",
-	5: "TEN_BASE_T_HDX",
-	6: "HUNDRED_BASE_T_HDX",
-	7: "GIGABIT_ETHERNET_HDX",
-}
+// Enum value maps for GetOnuUniInfoResponse_ConfigurationInd.
+var (
+	GetOnuUniInfoResponse_ConfigurationInd_name = map[int32]string{
+		0: "UNKOWN",
+		1: "TEN_BASE_T_FDX",
+		2: "HUNDRED_BASE_T_FDX",
+		3: "GIGABIT_ETHERNET_FDX",
+		4: "TEN_G_ETHERNET_FDX",
+		5: "TEN_BASE_T_HDX",
+		6: "HUNDRED_BASE_T_HDX",
+		7: "GIGABIT_ETHERNET_HDX",
+	}
+	GetOnuUniInfoResponse_ConfigurationInd_value = map[string]int32{
+		"UNKOWN":               0,
+		"TEN_BASE_T_FDX":       1,
+		"HUNDRED_BASE_T_FDX":   2,
+		"GIGABIT_ETHERNET_FDX": 3,
+		"TEN_G_ETHERNET_FDX":   4,
+		"TEN_BASE_T_HDX":       5,
+		"HUNDRED_BASE_T_HDX":   6,
+		"GIGABIT_ETHERNET_HDX": 7,
+	}
+)
 
-var GetOnuUniInfoResponse_ConfigurationInd_value = map[string]int32{
-	"UNKOWN":               0,
-	"TEN_BASE_T_FDX":       1,
-	"HUNDRED_BASE_T_FDX":   2,
-	"GIGABIT_ETHERNET_FDX": 3,
-	"TEN_G_ETHERNET_FDX":   4,
-	"TEN_BASE_T_HDX":       5,
-	"HUNDRED_BASE_T_HDX":   6,
-	"GIGABIT_ETHERNET_HDX": 7,
+func (x GetOnuUniInfoResponse_ConfigurationInd) Enum() *GetOnuUniInfoResponse_ConfigurationInd {
+	p := new(GetOnuUniInfoResponse_ConfigurationInd)
+	*p = x
+	return p
 }
 
 func (x GetOnuUniInfoResponse_ConfigurationInd) String() string {
-	return proto.EnumName(GetOnuUniInfoResponse_ConfigurationInd_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (GetOnuUniInfoResponse_ConfigurationInd) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_extensions_proto_enumTypes[1].Descriptor()
+}
+
+func (GetOnuUniInfoResponse_ConfigurationInd) Type() protoreflect.EnumType {
+	return &file_voltha_protos_extensions_proto_enumTypes[1]
+}
+
+func (x GetOnuUniInfoResponse_ConfigurationInd) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use GetOnuUniInfoResponse_ConfigurationInd.Descriptor instead.
 func (GetOnuUniInfoResponse_ConfigurationInd) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{7, 0}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{7, 0}
 }
 
 type GetOnuUniInfoResponse_AdministrativeState int32
@@ -103,24 +156,45 @@
 	GetOnuUniInfoResponse_UNLOCKED           GetOnuUniInfoResponse_AdministrativeState = 2
 )
 
-var GetOnuUniInfoResponse_AdministrativeState_name = map[int32]string{
-	0: "ADMSTATE_UNDEFINED",
-	1: "LOCKED",
-	2: "UNLOCKED",
-}
+// Enum value maps for GetOnuUniInfoResponse_AdministrativeState.
+var (
+	GetOnuUniInfoResponse_AdministrativeState_name = map[int32]string{
+		0: "ADMSTATE_UNDEFINED",
+		1: "LOCKED",
+		2: "UNLOCKED",
+	}
+	GetOnuUniInfoResponse_AdministrativeState_value = map[string]int32{
+		"ADMSTATE_UNDEFINED": 0,
+		"LOCKED":             1,
+		"UNLOCKED":           2,
+	}
+)
 
-var GetOnuUniInfoResponse_AdministrativeState_value = map[string]int32{
-	"ADMSTATE_UNDEFINED": 0,
-	"LOCKED":             1,
-	"UNLOCKED":           2,
+func (x GetOnuUniInfoResponse_AdministrativeState) Enum() *GetOnuUniInfoResponse_AdministrativeState {
+	p := new(GetOnuUniInfoResponse_AdministrativeState)
+	*p = x
+	return p
 }
 
 func (x GetOnuUniInfoResponse_AdministrativeState) String() string {
-	return proto.EnumName(GetOnuUniInfoResponse_AdministrativeState_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (GetOnuUniInfoResponse_AdministrativeState) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_extensions_proto_enumTypes[2].Descriptor()
+}
+
+func (GetOnuUniInfoResponse_AdministrativeState) Type() protoreflect.EnumType {
+	return &file_voltha_protos_extensions_proto_enumTypes[2]
+}
+
+func (x GetOnuUniInfoResponse_AdministrativeState) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use GetOnuUniInfoResponse_AdministrativeState.Descriptor instead.
 func (GetOnuUniInfoResponse_AdministrativeState) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{7, 1}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{7, 1}
 }
 
 type GetOnuUniInfoResponse_OperationalState int32
@@ -131,24 +205,45 @@
 	GetOnuUniInfoResponse_DISABLED            GetOnuUniInfoResponse_OperationalState = 2
 )
 
-var GetOnuUniInfoResponse_OperationalState_name = map[int32]string{
-	0: "OPERSTATE_UNDEFINED",
-	1: "ENABLED",
-	2: "DISABLED",
-}
+// Enum value maps for GetOnuUniInfoResponse_OperationalState.
+var (
+	GetOnuUniInfoResponse_OperationalState_name = map[int32]string{
+		0: "OPERSTATE_UNDEFINED",
+		1: "ENABLED",
+		2: "DISABLED",
+	}
+	GetOnuUniInfoResponse_OperationalState_value = map[string]int32{
+		"OPERSTATE_UNDEFINED": 0,
+		"ENABLED":             1,
+		"DISABLED":            2,
+	}
+)
 
-var GetOnuUniInfoResponse_OperationalState_value = map[string]int32{
-	"OPERSTATE_UNDEFINED": 0,
-	"ENABLED":             1,
-	"DISABLED":            2,
+func (x GetOnuUniInfoResponse_OperationalState) Enum() *GetOnuUniInfoResponse_OperationalState {
+	p := new(GetOnuUniInfoResponse_OperationalState)
+	*p = x
+	return p
 }
 
 func (x GetOnuUniInfoResponse_OperationalState) String() string {
-	return proto.EnumName(GetOnuUniInfoResponse_OperationalState_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (GetOnuUniInfoResponse_OperationalState) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_extensions_proto_enumTypes[3].Descriptor()
+}
+
+func (GetOnuUniInfoResponse_OperationalState) Type() protoreflect.EnumType {
+	return &file_voltha_protos_extensions_proto_enumTypes[3]
+}
+
+func (x GetOnuUniInfoResponse_OperationalState) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use GetOnuUniInfoResponse_OperationalState.Descriptor instead.
 func (GetOnuUniInfoResponse_OperationalState) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{7, 2}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{7, 2}
 }
 
 type GetOltPortCounters_PortType int32
@@ -159,24 +254,45 @@
 	GetOltPortCounters_Port_PON_OLT      GetOltPortCounters_PortType = 2
 )
 
-var GetOltPortCounters_PortType_name = map[int32]string{
-	0: "Port_UNKNOWN",
-	1: "Port_ETHERNET_NNI",
-	2: "Port_PON_OLT",
-}
+// Enum value maps for GetOltPortCounters_PortType.
+var (
+	GetOltPortCounters_PortType_name = map[int32]string{
+		0: "Port_UNKNOWN",
+		1: "Port_ETHERNET_NNI",
+		2: "Port_PON_OLT",
+	}
+	GetOltPortCounters_PortType_value = map[string]int32{
+		"Port_UNKNOWN":      0,
+		"Port_ETHERNET_NNI": 1,
+		"Port_PON_OLT":      2,
+	}
+)
 
-var GetOltPortCounters_PortType_value = map[string]int32{
-	"Port_UNKNOWN":      0,
-	"Port_ETHERNET_NNI": 1,
-	"Port_PON_OLT":      2,
+func (x GetOltPortCounters_PortType) Enum() *GetOltPortCounters_PortType {
+	p := new(GetOltPortCounters_PortType)
+	*p = x
+	return p
 }
 
 func (x GetOltPortCounters_PortType) String() string {
-	return proto.EnumName(GetOltPortCounters_PortType_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (GetOltPortCounters_PortType) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_extensions_proto_enumTypes[4].Descriptor()
+}
+
+func (GetOltPortCounters_PortType) Type() protoreflect.EnumType {
+	return &file_voltha_protos_extensions_proto_enumTypes[4]
+}
+
+func (x GetOltPortCounters_PortType) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use GetOltPortCounters_PortType.Descriptor instead.
 func (GetOltPortCounters_PortType) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{8, 0}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{8, 0}
 }
 
 type GetOnuEthernetBridgePortHistory_Direction int32
@@ -187,24 +303,45 @@
 	GetOnuEthernetBridgePortHistory_DOWNSTREAM GetOnuEthernetBridgePortHistory_Direction = 2
 )
 
-var GetOnuEthernetBridgePortHistory_Direction_name = map[int32]string{
-	0: "UNDEFINED",
-	1: "UPSTREAM",
-	2: "DOWNSTREAM",
-}
+// Enum value maps for GetOnuEthernetBridgePortHistory_Direction.
+var (
+	GetOnuEthernetBridgePortHistory_Direction_name = map[int32]string{
+		0: "UNDEFINED",
+		1: "UPSTREAM",
+		2: "DOWNSTREAM",
+	}
+	GetOnuEthernetBridgePortHistory_Direction_value = map[string]int32{
+		"UNDEFINED":  0,
+		"UPSTREAM":   1,
+		"DOWNSTREAM": 2,
+	}
+)
 
-var GetOnuEthernetBridgePortHistory_Direction_value = map[string]int32{
-	"UNDEFINED":  0,
-	"UPSTREAM":   1,
-	"DOWNSTREAM": 2,
+func (x GetOnuEthernetBridgePortHistory_Direction) Enum() *GetOnuEthernetBridgePortHistory_Direction {
+	p := new(GetOnuEthernetBridgePortHistory_Direction)
+	*p = x
+	return p
 }
 
 func (x GetOnuEthernetBridgePortHistory_Direction) String() string {
-	return proto.EnumName(GetOnuEthernetBridgePortHistory_Direction_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (GetOnuEthernetBridgePortHistory_Direction) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_extensions_proto_enumTypes[5].Descriptor()
+}
+
+func (GetOnuEthernetBridgePortHistory_Direction) Type() protoreflect.EnumType {
+	return &file_voltha_protos_extensions_proto_enumTypes[5]
+}
+
+func (x GetOnuEthernetBridgePortHistory_Direction) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use GetOnuEthernetBridgePortHistory_Direction.Descriptor instead.
 func (GetOnuEthernetBridgePortHistory_Direction) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{12, 0}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{12, 0}
 }
 
 type GetOmciEthernetFrameExtendedPmResponse_Format int32
@@ -214,22 +351,43 @@
 	GetOmciEthernetFrameExtendedPmResponse_SIXTY_FOUR_BIT GetOmciEthernetFrameExtendedPmResponse_Format = 1
 )
 
-var GetOmciEthernetFrameExtendedPmResponse_Format_name = map[int32]string{
-	0: "THIRTY_TWO_BIT",
-	1: "SIXTY_FOUR_BIT",
-}
+// Enum value maps for GetOmciEthernetFrameExtendedPmResponse_Format.
+var (
+	GetOmciEthernetFrameExtendedPmResponse_Format_name = map[int32]string{
+		0: "THIRTY_TWO_BIT",
+		1: "SIXTY_FOUR_BIT",
+	}
+	GetOmciEthernetFrameExtendedPmResponse_Format_value = map[string]int32{
+		"THIRTY_TWO_BIT": 0,
+		"SIXTY_FOUR_BIT": 1,
+	}
+)
 
-var GetOmciEthernetFrameExtendedPmResponse_Format_value = map[string]int32{
-	"THIRTY_TWO_BIT": 0,
-	"SIXTY_FOUR_BIT": 1,
+func (x GetOmciEthernetFrameExtendedPmResponse_Format) Enum() *GetOmciEthernetFrameExtendedPmResponse_Format {
+	p := new(GetOmciEthernetFrameExtendedPmResponse_Format)
+	*p = x
+	return p
 }
 
 func (x GetOmciEthernetFrameExtendedPmResponse_Format) String() string {
-	return proto.EnumName(GetOmciEthernetFrameExtendedPmResponse_Format_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (GetOmciEthernetFrameExtendedPmResponse_Format) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_extensions_proto_enumTypes[6].Descriptor()
+}
+
+func (GetOmciEthernetFrameExtendedPmResponse_Format) Type() protoreflect.EnumType {
+	return &file_voltha_protos_extensions_proto_enumTypes[6]
+}
+
+func (x GetOmciEthernetFrameExtendedPmResponse_Format) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use GetOmciEthernetFrameExtendedPmResponse_Format.Descriptor instead.
 func (GetOmciEthernetFrameExtendedPmResponse_Format) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{36, 0}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{36, 0}
 }
 
 type GetOffloadedAppsStatisticsRequest_OffloadedApp int32
@@ -241,26 +399,47 @@
 	GetOffloadedAppsStatisticsRequest_DHCPv6RA  GetOffloadedAppsStatisticsRequest_OffloadedApp = 3
 )
 
-var GetOffloadedAppsStatisticsRequest_OffloadedApp_name = map[int32]string{
-	0: "UNDEFINED",
-	1: "PPPoeIA",
-	2: "DHCPv4RA",
-	3: "DHCPv6RA",
-}
+// Enum value maps for GetOffloadedAppsStatisticsRequest_OffloadedApp.
+var (
+	GetOffloadedAppsStatisticsRequest_OffloadedApp_name = map[int32]string{
+		0: "UNDEFINED",
+		1: "PPPoeIA",
+		2: "DHCPv4RA",
+		3: "DHCPv6RA",
+	}
+	GetOffloadedAppsStatisticsRequest_OffloadedApp_value = map[string]int32{
+		"UNDEFINED": 0,
+		"PPPoeIA":   1,
+		"DHCPv4RA":  2,
+		"DHCPv6RA":  3,
+	}
+)
 
-var GetOffloadedAppsStatisticsRequest_OffloadedApp_value = map[string]int32{
-	"UNDEFINED": 0,
-	"PPPoeIA":   1,
-	"DHCPv4RA":  2,
-	"DHCPv6RA":  3,
+func (x GetOffloadedAppsStatisticsRequest_OffloadedApp) Enum() *GetOffloadedAppsStatisticsRequest_OffloadedApp {
+	p := new(GetOffloadedAppsStatisticsRequest_OffloadedApp)
+	*p = x
+	return p
 }
 
 func (x GetOffloadedAppsStatisticsRequest_OffloadedApp) String() string {
-	return proto.EnumName(GetOffloadedAppsStatisticsRequest_OffloadedApp_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (GetOffloadedAppsStatisticsRequest_OffloadedApp) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_extensions_proto_enumTypes[7].Descriptor()
+}
+
+func (GetOffloadedAppsStatisticsRequest_OffloadedApp) Type() protoreflect.EnumType {
+	return &file_voltha_protos_extensions_proto_enumTypes[7]
+}
+
+func (x GetOffloadedAppsStatisticsRequest_OffloadedApp) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use GetOffloadedAppsStatisticsRequest_OffloadedApp.Descriptor instead.
 func (GetOffloadedAppsStatisticsRequest_OffloadedApp) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{45, 0}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{45, 0}
 }
 
 type GetValueResponse_Status int32
@@ -271,24 +450,45 @@
 	GetValueResponse_ERROR            GetValueResponse_Status = 2
 )
 
-var GetValueResponse_Status_name = map[int32]string{
-	0: "STATUS_UNDEFINED",
-	1: "OK",
-	2: "ERROR",
-}
+// Enum value maps for GetValueResponse_Status.
+var (
+	GetValueResponse_Status_name = map[int32]string{
+		0: "STATUS_UNDEFINED",
+		1: "OK",
+		2: "ERROR",
+	}
+	GetValueResponse_Status_value = map[string]int32{
+		"STATUS_UNDEFINED": 0,
+		"OK":               1,
+		"ERROR":            2,
+	}
+)
 
-var GetValueResponse_Status_value = map[string]int32{
-	"STATUS_UNDEFINED": 0,
-	"OK":               1,
-	"ERROR":            2,
+func (x GetValueResponse_Status) Enum() *GetValueResponse_Status {
+	p := new(GetValueResponse_Status)
+	*p = x
+	return p
 }
 
 func (x GetValueResponse_Status) String() string {
-	return proto.EnumName(GetValueResponse_Status_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (GetValueResponse_Status) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_extensions_proto_enumTypes[8].Descriptor()
+}
+
+func (GetValueResponse_Status) Type() protoreflect.EnumType {
+	return &file_voltha_protos_extensions_proto_enumTypes[8]
+}
+
+func (x GetValueResponse_Status) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use GetValueResponse_Status.Descriptor instead.
 func (GetValueResponse_Status) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{48, 0}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{48, 0}
 }
 
 type GetValueResponse_ErrorReason int32
@@ -304,34 +504,55 @@
 	GetValueResponse_INVALID_DEVICE    GetValueResponse_ErrorReason = 7
 )
 
-var GetValueResponse_ErrorReason_name = map[int32]string{
-	0: "REASON_UNDEFINED",
-	1: "UNSUPPORTED",
-	2: "INVALID_DEVICE_ID",
-	3: "INVALID_PORT_TYPE",
-	4: "TIMEOUT",
-	5: "INVALID_REQ_TYPE",
-	6: "INTERNAL_ERROR",
-	7: "INVALID_DEVICE",
-}
+// Enum value maps for GetValueResponse_ErrorReason.
+var (
+	GetValueResponse_ErrorReason_name = map[int32]string{
+		0: "REASON_UNDEFINED",
+		1: "UNSUPPORTED",
+		2: "INVALID_DEVICE_ID",
+		3: "INVALID_PORT_TYPE",
+		4: "TIMEOUT",
+		5: "INVALID_REQ_TYPE",
+		6: "INTERNAL_ERROR",
+		7: "INVALID_DEVICE",
+	}
+	GetValueResponse_ErrorReason_value = map[string]int32{
+		"REASON_UNDEFINED":  0,
+		"UNSUPPORTED":       1,
+		"INVALID_DEVICE_ID": 2,
+		"INVALID_PORT_TYPE": 3,
+		"TIMEOUT":           4,
+		"INVALID_REQ_TYPE":  5,
+		"INTERNAL_ERROR":    6,
+		"INVALID_DEVICE":    7,
+	}
+)
 
-var GetValueResponse_ErrorReason_value = map[string]int32{
-	"REASON_UNDEFINED":  0,
-	"UNSUPPORTED":       1,
-	"INVALID_DEVICE_ID": 2,
-	"INVALID_PORT_TYPE": 3,
-	"TIMEOUT":           4,
-	"INVALID_REQ_TYPE":  5,
-	"INTERNAL_ERROR":    6,
-	"INVALID_DEVICE":    7,
+func (x GetValueResponse_ErrorReason) Enum() *GetValueResponse_ErrorReason {
+	p := new(GetValueResponse_ErrorReason)
+	*p = x
+	return p
 }
 
 func (x GetValueResponse_ErrorReason) String() string {
-	return proto.EnumName(GetValueResponse_ErrorReason_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (GetValueResponse_ErrorReason) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_extensions_proto_enumTypes[9].Descriptor()
+}
+
+func (GetValueResponse_ErrorReason) Type() protoreflect.EnumType {
+	return &file_voltha_protos_extensions_proto_enumTypes[9]
+}
+
+func (x GetValueResponse_ErrorReason) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use GetValueResponse_ErrorReason.Descriptor instead.
 func (GetValueResponse_ErrorReason) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{48, 1}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{48, 1}
 }
 
 type SetValueResponse_Status int32
@@ -342,24 +563,45 @@
 	SetValueResponse_ERROR            SetValueResponse_Status = 2
 )
 
-var SetValueResponse_Status_name = map[int32]string{
-	0: "STATUS_UNDEFINED",
-	1: "OK",
-	2: "ERROR",
-}
+// Enum value maps for SetValueResponse_Status.
+var (
+	SetValueResponse_Status_name = map[int32]string{
+		0: "STATUS_UNDEFINED",
+		1: "OK",
+		2: "ERROR",
+	}
+	SetValueResponse_Status_value = map[string]int32{
+		"STATUS_UNDEFINED": 0,
+		"OK":               1,
+		"ERROR":            2,
+	}
+)
 
-var SetValueResponse_Status_value = map[string]int32{
-	"STATUS_UNDEFINED": 0,
-	"OK":               1,
-	"ERROR":            2,
+func (x SetValueResponse_Status) Enum() *SetValueResponse_Status {
+	p := new(SetValueResponse_Status)
+	*p = x
+	return p
 }
 
 func (x SetValueResponse_Status) String() string {
-	return proto.EnumName(SetValueResponse_Status_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (SetValueResponse_Status) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_extensions_proto_enumTypes[10].Descriptor()
+}
+
+func (SetValueResponse_Status) Type() protoreflect.EnumType {
+	return &file_voltha_protos_extensions_proto_enumTypes[10]
+}
+
+func (x SetValueResponse_Status) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use SetValueResponse_Status.Descriptor instead.
 func (SetValueResponse_Status) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{52, 0}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{52, 0}
 }
 
 type SetValueResponse_ErrorReason int32
@@ -372,72 +614,115 @@
 	SetValueResponse_INVALID_UNI_ID        SetValueResponse_ErrorReason = 4
 )
 
-var SetValueResponse_ErrorReason_name = map[int32]string{
-	0: "REASON_UNDEFINED",
-	1: "UNSUPPORTED",
-	2: "INVALID_DEVICE_ID",
-	3: "INVALID_ONU_DEVICE_ID",
-	4: "INVALID_UNI_ID",
-}
+// Enum value maps for SetValueResponse_ErrorReason.
+var (
+	SetValueResponse_ErrorReason_name = map[int32]string{
+		0: "REASON_UNDEFINED",
+		1: "UNSUPPORTED",
+		2: "INVALID_DEVICE_ID",
+		3: "INVALID_ONU_DEVICE_ID",
+		4: "INVALID_UNI_ID",
+	}
+	SetValueResponse_ErrorReason_value = map[string]int32{
+		"REASON_UNDEFINED":      0,
+		"UNSUPPORTED":           1,
+		"INVALID_DEVICE_ID":     2,
+		"INVALID_ONU_DEVICE_ID": 3,
+		"INVALID_UNI_ID":        4,
+	}
+)
 
-var SetValueResponse_ErrorReason_value = map[string]int32{
-	"REASON_UNDEFINED":      0,
-	"UNSUPPORTED":           1,
-	"INVALID_DEVICE_ID":     2,
-	"INVALID_ONU_DEVICE_ID": 3,
-	"INVALID_UNI_ID":        4,
+func (x SetValueResponse_ErrorReason) Enum() *SetValueResponse_ErrorReason {
+	p := new(SetValueResponse_ErrorReason)
+	*p = x
+	return p
 }
 
 func (x SetValueResponse_ErrorReason) String() string {
-	return proto.EnumName(SetValueResponse_ErrorReason_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (SetValueResponse_ErrorReason) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_extensions_proto_enumTypes[11].Descriptor()
+}
+
+func (SetValueResponse_ErrorReason) Type() protoreflect.EnumType {
+	return &file_voltha_protos_extensions_proto_enumTypes[11]
+}
+
+func (x SetValueResponse_ErrorReason) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use SetValueResponse_ErrorReason.Descriptor instead.
 func (SetValueResponse_ErrorReason) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{52, 1}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{52, 1}
 }
 
 type ValueSet struct {
-	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+	state protoimpl.MessageState `protogen:"open.v1"`
+	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:"-"`
+	Value         isValueSet_Value `protobuf_oneof:"value"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *ValueSet) Reset()         { *m = ValueSet{} }
-func (m *ValueSet) String() string { return proto.CompactTextString(m) }
-func (*ValueSet) ProtoMessage()    {}
+func (x *ValueSet) Reset() {
+	*x = ValueSet{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ValueSet) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ValueSet) ProtoMessage() {}
+
+func (x *ValueSet) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[0]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ValueSet.ProtoReflect.Descriptor instead.
 func (*ValueSet) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{0}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{0}
 }
 
-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
+func (x *ValueSet) GetId() string {
+	if x != nil {
+		return x.Id
 	}
 	return ""
 }
 
+func (x *ValueSet) GetValue() isValueSet_Value {
+	if x != nil {
+		return x.Value
+	}
+	return nil
+}
+
+func (x *ValueSet) GetAlarmConfig() *config.AlarmConfig {
+	if x != nil {
+		if x, ok := x.Value.(*ValueSet_AlarmConfig); ok {
+			return x.AlarmConfig
+		}
+	}
+	return nil
+}
+
 type isValueSet_Value interface {
 	isValueSet_Value()
 }
@@ -448,549 +733,578 @@
 
 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),
-	}
-}
-
 type ValueType struct {
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *ValueType) Reset()         { *m = ValueType{} }
-func (m *ValueType) String() string { return proto.CompactTextString(m) }
-func (*ValueType) ProtoMessage()    {}
+func (x *ValueType) Reset() {
+	*x = ValueType{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ValueType) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ValueType) ProtoMessage() {}
+
+func (x *ValueType) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[1]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ValueType.ProtoReflect.Descriptor instead.
 func (*ValueType) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{1}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{1}
 }
 
-func (m *ValueType) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_ValueType.Unmarshal(m, b)
-}
-func (m *ValueType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_ValueType.Marshal(b, m, deterministic)
-}
-func (m *ValueType) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_ValueType.Merge(m, src)
-}
-func (m *ValueType) XXX_Size() int {
-	return xxx_messageInfo_ValueType.Size(m)
-}
-func (m *ValueType) XXX_DiscardUnknown() {
-	xxx_messageInfo_ValueType.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_ValueType proto.InternalMessageInfo
-
 type ValueSpecifier struct {
-	Id                   string         `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
-	Value                ValueType_Type `protobuf:"varint,2,opt,name=value,proto3,enum=extension.ValueType_Type" json:"value,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
-	XXX_unrecognized     []byte         `json:"-"`
-	XXX_sizecache        int32          `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+	Value         ValueType_Type         `protobuf:"varint,2,opt,name=value,proto3,enum=extension.ValueType_Type" json:"value,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *ValueSpecifier) Reset()         { *m = ValueSpecifier{} }
-func (m *ValueSpecifier) String() string { return proto.CompactTextString(m) }
-func (*ValueSpecifier) ProtoMessage()    {}
+func (x *ValueSpecifier) Reset() {
+	*x = ValueSpecifier{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ValueSpecifier) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ValueSpecifier) ProtoMessage() {}
+
+func (x *ValueSpecifier) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[2]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ValueSpecifier.ProtoReflect.Descriptor instead.
 func (*ValueSpecifier) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{2}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{2}
 }
 
-func (m *ValueSpecifier) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_ValueSpecifier.Unmarshal(m, b)
-}
-func (m *ValueSpecifier) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_ValueSpecifier.Marshal(b, m, deterministic)
-}
-func (m *ValueSpecifier) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_ValueSpecifier.Merge(m, src)
-}
-func (m *ValueSpecifier) XXX_Size() int {
-	return xxx_messageInfo_ValueSpecifier.Size(m)
-}
-func (m *ValueSpecifier) XXX_DiscardUnknown() {
-	xxx_messageInfo_ValueSpecifier.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_ValueSpecifier proto.InternalMessageInfo
-
-func (m *ValueSpecifier) GetId() string {
-	if m != nil {
-		return m.Id
+func (x *ValueSpecifier) GetId() string {
+	if x != nil {
+		return x.Id
 	}
 	return ""
 }
 
-func (m *ValueSpecifier) GetValue() ValueType_Type {
-	if m != nil {
-		return m.Value
+func (x *ValueSpecifier) GetValue() ValueType_Type {
+	if x != nil {
+		return x.Value
 	}
 	return ValueType_EMPTY
 }
 
 type ReturnValues struct {
-	Set                  uint32   `protobuf:"varint,1,opt,name=Set,proto3" json:"Set,omitempty"`
-	Unsupported          uint32   `protobuf:"varint,2,opt,name=Unsupported,proto3" json:"Unsupported,omitempty"`
-	Error                uint32   `protobuf:"varint,3,opt,name=Error,proto3" json:"Error,omitempty"`
-	Distance             uint32   `protobuf:"varint,4,opt,name=Distance,proto3" json:"Distance,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Set           uint32                 `protobuf:"varint,1,opt,name=Set,proto3" json:"Set,omitempty"`                 // Specifies what values are
+	Unsupported   uint32                 `protobuf:"varint,2,opt,name=Unsupported,proto3" json:"Unsupported,omitempty"` // Specifies requested values not
+	Error         uint32                 `protobuf:"varint,3,opt,name=Error,proto3" json:"Error,omitempty"`             // Specifies requested values not
+	Distance      uint32                 `protobuf:"varint,4,opt,name=Distance,proto3" json:"Distance,omitempty"`       // Value of distance Set includes
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *ReturnValues) Reset()         { *m = ReturnValues{} }
-func (m *ReturnValues) String() string { return proto.CompactTextString(m) }
-func (*ReturnValues) ProtoMessage()    {}
+func (x *ReturnValues) Reset() {
+	*x = ReturnValues{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ReturnValues) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ReturnValues) ProtoMessage() {}
+
+func (x *ReturnValues) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[3]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ReturnValues.ProtoReflect.Descriptor instead.
 func (*ReturnValues) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{3}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{3}
 }
 
-func (m *ReturnValues) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_ReturnValues.Unmarshal(m, b)
-}
-func (m *ReturnValues) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_ReturnValues.Marshal(b, m, deterministic)
-}
-func (m *ReturnValues) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_ReturnValues.Merge(m, src)
-}
-func (m *ReturnValues) XXX_Size() int {
-	return xxx_messageInfo_ReturnValues.Size(m)
-}
-func (m *ReturnValues) XXX_DiscardUnknown() {
-	xxx_messageInfo_ReturnValues.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_ReturnValues proto.InternalMessageInfo
-
-func (m *ReturnValues) GetSet() uint32 {
-	if m != nil {
-		return m.Set
+func (x *ReturnValues) GetSet() uint32 {
+	if x != nil {
+		return x.Set
 	}
 	return 0
 }
 
-func (m *ReturnValues) GetUnsupported() uint32 {
-	if m != nil {
-		return m.Unsupported
+func (x *ReturnValues) GetUnsupported() uint32 {
+	if x != nil {
+		return x.Unsupported
 	}
 	return 0
 }
 
-func (m *ReturnValues) GetError() uint32 {
-	if m != nil {
-		return m.Error
+func (x *ReturnValues) GetError() uint32 {
+	if x != nil {
+		return x.Error
 	}
 	return 0
 }
 
-func (m *ReturnValues) GetDistance() uint32 {
-	if m != nil {
-		return m.Distance
+func (x *ReturnValues) GetDistance() uint32 {
+	if x != nil {
+		return x.Distance
 	}
 	return 0
 }
 
 type GetDistanceRequest struct {
-	OnuDeviceId          string   `protobuf:"bytes,1,opt,name=onuDeviceId,proto3" json:"onuDeviceId,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	OnuDeviceId   string                 `protobuf:"bytes,1,opt,name=onuDeviceId,proto3" json:"onuDeviceId,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *GetDistanceRequest) Reset()         { *m = GetDistanceRequest{} }
-func (m *GetDistanceRequest) String() string { return proto.CompactTextString(m) }
-func (*GetDistanceRequest) ProtoMessage()    {}
+func (x *GetDistanceRequest) Reset() {
+	*x = GetDistanceRequest{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GetDistanceRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetDistanceRequest) ProtoMessage() {}
+
+func (x *GetDistanceRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[4]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetDistanceRequest.ProtoReflect.Descriptor instead.
 func (*GetDistanceRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{4}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{4}
 }
 
-func (m *GetDistanceRequest) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_GetDistanceRequest.Unmarshal(m, b)
-}
-func (m *GetDistanceRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_GetDistanceRequest.Marshal(b, m, deterministic)
-}
-func (m *GetDistanceRequest) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_GetDistanceRequest.Merge(m, src)
-}
-func (m *GetDistanceRequest) XXX_Size() int {
-	return xxx_messageInfo_GetDistanceRequest.Size(m)
-}
-func (m *GetDistanceRequest) XXX_DiscardUnknown() {
-	xxx_messageInfo_GetDistanceRequest.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_GetDistanceRequest proto.InternalMessageInfo
-
-func (m *GetDistanceRequest) GetOnuDeviceId() string {
-	if m != nil {
-		return m.OnuDeviceId
+func (x *GetDistanceRequest) GetOnuDeviceId() string {
+	if x != nil {
+		return x.OnuDeviceId
 	}
 	return ""
 }
 
 type GetDistanceResponse struct {
-	Distance             uint32   `protobuf:"varint,1,opt,name=distance,proto3" json:"distance,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Distance      uint32                 `protobuf:"varint,1,opt,name=distance,proto3" json:"distance,omitempty"` // distance in meters
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *GetDistanceResponse) Reset()         { *m = GetDistanceResponse{} }
-func (m *GetDistanceResponse) String() string { return proto.CompactTextString(m) }
-func (*GetDistanceResponse) ProtoMessage()    {}
+func (x *GetDistanceResponse) Reset() {
+	*x = GetDistanceResponse{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GetDistanceResponse) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetDistanceResponse) ProtoMessage() {}
+
+func (x *GetDistanceResponse) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[5]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetDistanceResponse.ProtoReflect.Descriptor instead.
 func (*GetDistanceResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{5}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{5}
 }
 
-func (m *GetDistanceResponse) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_GetDistanceResponse.Unmarshal(m, b)
-}
-func (m *GetDistanceResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_GetDistanceResponse.Marshal(b, m, deterministic)
-}
-func (m *GetDistanceResponse) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_GetDistanceResponse.Merge(m, src)
-}
-func (m *GetDistanceResponse) XXX_Size() int {
-	return xxx_messageInfo_GetDistanceResponse.Size(m)
-}
-func (m *GetDistanceResponse) XXX_DiscardUnknown() {
-	xxx_messageInfo_GetDistanceResponse.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_GetDistanceResponse proto.InternalMessageInfo
-
-func (m *GetDistanceResponse) GetDistance() uint32 {
-	if m != nil {
-		return m.Distance
+func (x *GetDistanceResponse) GetDistance() uint32 {
+	if x != nil {
+		return x.Distance
 	}
 	return 0
 }
 
 type GetOnuUniInfoRequest struct {
-	UniIndex             uint32   `protobuf:"varint,1,opt,name=uniIndex,proto3" json:"uniIndex,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	UniIndex      uint32                 `protobuf:"varint,1,opt,name=uniIndex,proto3" json:"uniIndex,omitempty"` // Index of the uni starting from 0
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *GetOnuUniInfoRequest) Reset()         { *m = GetOnuUniInfoRequest{} }
-func (m *GetOnuUniInfoRequest) String() string { return proto.CompactTextString(m) }
-func (*GetOnuUniInfoRequest) ProtoMessage()    {}
+func (x *GetOnuUniInfoRequest) Reset() {
+	*x = GetOnuUniInfoRequest{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GetOnuUniInfoRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetOnuUniInfoRequest) ProtoMessage() {}
+
+func (x *GetOnuUniInfoRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[6]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetOnuUniInfoRequest.ProtoReflect.Descriptor instead.
 func (*GetOnuUniInfoRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{6}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{6}
 }
 
-func (m *GetOnuUniInfoRequest) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_GetOnuUniInfoRequest.Unmarshal(m, b)
-}
-func (m *GetOnuUniInfoRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_GetOnuUniInfoRequest.Marshal(b, m, deterministic)
-}
-func (m *GetOnuUniInfoRequest) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_GetOnuUniInfoRequest.Merge(m, src)
-}
-func (m *GetOnuUniInfoRequest) XXX_Size() int {
-	return xxx_messageInfo_GetOnuUniInfoRequest.Size(m)
-}
-func (m *GetOnuUniInfoRequest) XXX_DiscardUnknown() {
-	xxx_messageInfo_GetOnuUniInfoRequest.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_GetOnuUniInfoRequest proto.InternalMessageInfo
-
-func (m *GetOnuUniInfoRequest) GetUniIndex() uint32 {
-	if m != nil {
-		return m.UniIndex
+func (x *GetOnuUniInfoRequest) GetUniIndex() uint32 {
+	if x != nil {
+		return x.UniIndex
 	}
 	return 0
 }
 
 type GetOnuUniInfoResponse struct {
-	AdmState             GetOnuUniInfoResponse_AdministrativeState `protobuf:"varint,1,opt,name=admState,proto3,enum=extension.GetOnuUniInfoResponse_AdministrativeState" json:"admState,omitempty"`
-	OperState            GetOnuUniInfoResponse_OperationalState    `protobuf:"varint,2,opt,name=operState,proto3,enum=extension.GetOnuUniInfoResponse_OperationalState" json:"operState,omitempty"`
-	ConfigInd            GetOnuUniInfoResponse_ConfigurationInd    `protobuf:"varint,3,opt,name=configInd,proto3,enum=extension.GetOnuUniInfoResponse_ConfigurationInd" json:"configInd,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                                  `json:"-"`
-	XXX_unrecognized     []byte                                    `json:"-"`
-	XXX_sizecache        int32                                     `json:"-"`
+	state         protoimpl.MessageState                    `protogen:"open.v1"`
+	AdmState      GetOnuUniInfoResponse_AdministrativeState `protobuf:"varint,1,opt,name=admState,proto3,enum=extension.GetOnuUniInfoResponse_AdministrativeState" json:"admState,omitempty"`
+	OperState     GetOnuUniInfoResponse_OperationalState    `protobuf:"varint,2,opt,name=operState,proto3,enum=extension.GetOnuUniInfoResponse_OperationalState" json:"operState,omitempty"`
+	ConfigInd     GetOnuUniInfoResponse_ConfigurationInd    `protobuf:"varint,3,opt,name=configInd,proto3,enum=extension.GetOnuUniInfoResponse_ConfigurationInd" json:"configInd,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *GetOnuUniInfoResponse) Reset()         { *m = GetOnuUniInfoResponse{} }
-func (m *GetOnuUniInfoResponse) String() string { return proto.CompactTextString(m) }
-func (*GetOnuUniInfoResponse) ProtoMessage()    {}
+func (x *GetOnuUniInfoResponse) Reset() {
+	*x = GetOnuUniInfoResponse{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[7]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GetOnuUniInfoResponse) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetOnuUniInfoResponse) ProtoMessage() {}
+
+func (x *GetOnuUniInfoResponse) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[7]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetOnuUniInfoResponse.ProtoReflect.Descriptor instead.
 func (*GetOnuUniInfoResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{7}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{7}
 }
 
-func (m *GetOnuUniInfoResponse) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_GetOnuUniInfoResponse.Unmarshal(m, b)
-}
-func (m *GetOnuUniInfoResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_GetOnuUniInfoResponse.Marshal(b, m, deterministic)
-}
-func (m *GetOnuUniInfoResponse) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_GetOnuUniInfoResponse.Merge(m, src)
-}
-func (m *GetOnuUniInfoResponse) XXX_Size() int {
-	return xxx_messageInfo_GetOnuUniInfoResponse.Size(m)
-}
-func (m *GetOnuUniInfoResponse) XXX_DiscardUnknown() {
-	xxx_messageInfo_GetOnuUniInfoResponse.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_GetOnuUniInfoResponse proto.InternalMessageInfo
-
-func (m *GetOnuUniInfoResponse) GetAdmState() GetOnuUniInfoResponse_AdministrativeState {
-	if m != nil {
-		return m.AdmState
+func (x *GetOnuUniInfoResponse) GetAdmState() GetOnuUniInfoResponse_AdministrativeState {
+	if x != nil {
+		return x.AdmState
 	}
 	return GetOnuUniInfoResponse_ADMSTATE_UNDEFINED
 }
 
-func (m *GetOnuUniInfoResponse) GetOperState() GetOnuUniInfoResponse_OperationalState {
-	if m != nil {
-		return m.OperState
+func (x *GetOnuUniInfoResponse) GetOperState() GetOnuUniInfoResponse_OperationalState {
+	if x != nil {
+		return x.OperState
 	}
 	return GetOnuUniInfoResponse_OPERSTATE_UNDEFINED
 }
 
-func (m *GetOnuUniInfoResponse) GetConfigInd() GetOnuUniInfoResponse_ConfigurationInd {
-	if m != nil {
-		return m.ConfigInd
+func (x *GetOnuUniInfoResponse) GetConfigInd() GetOnuUniInfoResponse_ConfigurationInd {
+	if x != nil {
+		return x.ConfigInd
 	}
 	return GetOnuUniInfoResponse_UNKOWN
 }
 
 type GetOltPortCounters struct {
-	PortNo               uint32                      `protobuf:"varint,1,opt,name=portNo,proto3" json:"portNo,omitempty"`
-	PortType             GetOltPortCounters_PortType `protobuf:"varint,2,opt,name=portType,proto3,enum=extension.GetOltPortCounters_PortType" json:"portType,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                    `json:"-"`
-	XXX_unrecognized     []byte                      `json:"-"`
-	XXX_sizecache        int32                       `json:"-"`
+	state         protoimpl.MessageState      `protogen:"open.v1"`
+	PortNo        uint32                      `protobuf:"varint,1,opt,name=portNo,proto3" json:"portNo,omitempty"` // Device-unique port number
+	PortType      GetOltPortCounters_PortType `protobuf:"varint,2,opt,name=portType,proto3,enum=extension.GetOltPortCounters_PortType" json:"portType,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *GetOltPortCounters) Reset()         { *m = GetOltPortCounters{} }
-func (m *GetOltPortCounters) String() string { return proto.CompactTextString(m) }
-func (*GetOltPortCounters) ProtoMessage()    {}
+func (x *GetOltPortCounters) Reset() {
+	*x = GetOltPortCounters{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[8]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GetOltPortCounters) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetOltPortCounters) ProtoMessage() {}
+
+func (x *GetOltPortCounters) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[8]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetOltPortCounters.ProtoReflect.Descriptor instead.
 func (*GetOltPortCounters) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{8}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{8}
 }
 
-func (m *GetOltPortCounters) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_GetOltPortCounters.Unmarshal(m, b)
-}
-func (m *GetOltPortCounters) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_GetOltPortCounters.Marshal(b, m, deterministic)
-}
-func (m *GetOltPortCounters) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_GetOltPortCounters.Merge(m, src)
-}
-func (m *GetOltPortCounters) XXX_Size() int {
-	return xxx_messageInfo_GetOltPortCounters.Size(m)
-}
-func (m *GetOltPortCounters) XXX_DiscardUnknown() {
-	xxx_messageInfo_GetOltPortCounters.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_GetOltPortCounters proto.InternalMessageInfo
-
-func (m *GetOltPortCounters) GetPortNo() uint32 {
-	if m != nil {
-		return m.PortNo
+func (x *GetOltPortCounters) GetPortNo() uint32 {
+	if x != nil {
+		return x.PortNo
 	}
 	return 0
 }
 
-func (m *GetOltPortCounters) GetPortType() GetOltPortCounters_PortType {
-	if m != nil {
-		return m.PortType
+func (x *GetOltPortCounters) GetPortType() GetOltPortCounters_PortType {
+	if x != nil {
+		return x.PortType
 	}
 	return GetOltPortCounters_Port_UNKNOWN
 }
 
 type GetOltPortCountersResponse struct {
-	TxBytes              uint64   `protobuf:"varint,1,opt,name=txBytes,proto3" json:"txBytes,omitempty"`
-	RxBytes              uint64   `protobuf:"varint,2,opt,name=rxBytes,proto3" json:"rxBytes,omitempty"`
-	TxPackets            uint64   `protobuf:"varint,3,opt,name=txPackets,proto3" json:"txPackets,omitempty"`
-	RxPackets            uint64   `protobuf:"varint,4,opt,name=rxPackets,proto3" json:"rxPackets,omitempty"`
-	TxErrorPackets       uint64   `protobuf:"varint,5,opt,name=txErrorPackets,proto3" json:"txErrorPackets,omitempty"`
-	RxErrorPackets       uint64   `protobuf:"varint,6,opt,name=rxErrorPackets,proto3" json:"rxErrorPackets,omitempty"`
-	TxBcastPackets       uint64   `protobuf:"varint,7,opt,name=txBcastPackets,proto3" json:"txBcastPackets,omitempty"`
-	RxBcastPackets       uint64   `protobuf:"varint,8,opt,name=rxBcastPackets,proto3" json:"rxBcastPackets,omitempty"`
-	TxUcastPackets       uint64   `protobuf:"varint,9,opt,name=txUcastPackets,proto3" json:"txUcastPackets,omitempty"`
-	RxUcastPackets       uint64   `protobuf:"varint,10,opt,name=rxUcastPackets,proto3" json:"rxUcastPackets,omitempty"`
-	TxMcastPackets       uint64   `protobuf:"varint,11,opt,name=txMcastPackets,proto3" json:"txMcastPackets,omitempty"`
-	RxMcastPackets       uint64   `protobuf:"varint,12,opt,name=rxMcastPackets,proto3" json:"rxMcastPackets,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state          protoimpl.MessageState `protogen:"open.v1"`
+	TxBytes        uint64                 `protobuf:"varint,1,opt,name=txBytes,proto3" json:"txBytes,omitempty"`
+	RxBytes        uint64                 `protobuf:"varint,2,opt,name=rxBytes,proto3" json:"rxBytes,omitempty"`
+	TxPackets      uint64                 `protobuf:"varint,3,opt,name=txPackets,proto3" json:"txPackets,omitempty"`
+	RxPackets      uint64                 `protobuf:"varint,4,opt,name=rxPackets,proto3" json:"rxPackets,omitempty"`
+	TxErrorPackets uint64                 `protobuf:"varint,5,opt,name=txErrorPackets,proto3" json:"txErrorPackets,omitempty"`
+	RxErrorPackets uint64                 `protobuf:"varint,6,opt,name=rxErrorPackets,proto3" json:"rxErrorPackets,omitempty"`
+	TxBcastPackets uint64                 `protobuf:"varint,7,opt,name=txBcastPackets,proto3" json:"txBcastPackets,omitempty"`
+	RxBcastPackets uint64                 `protobuf:"varint,8,opt,name=rxBcastPackets,proto3" json:"rxBcastPackets,omitempty"`
+	TxUcastPackets uint64                 `protobuf:"varint,9,opt,name=txUcastPackets,proto3" json:"txUcastPackets,omitempty"`
+	RxUcastPackets uint64                 `protobuf:"varint,10,opt,name=rxUcastPackets,proto3" json:"rxUcastPackets,omitempty"`
+	TxMcastPackets uint64                 `protobuf:"varint,11,opt,name=txMcastPackets,proto3" json:"txMcastPackets,omitempty"`
+	RxMcastPackets uint64                 `protobuf:"varint,12,opt,name=rxMcastPackets,proto3" json:"rxMcastPackets,omitempty"`
+	unknownFields  protoimpl.UnknownFields
+	sizeCache      protoimpl.SizeCache
 }
 
-func (m *GetOltPortCountersResponse) Reset()         { *m = GetOltPortCountersResponse{} }
-func (m *GetOltPortCountersResponse) String() string { return proto.CompactTextString(m) }
-func (*GetOltPortCountersResponse) ProtoMessage()    {}
+func (x *GetOltPortCountersResponse) Reset() {
+	*x = GetOltPortCountersResponse{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[9]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GetOltPortCountersResponse) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetOltPortCountersResponse) ProtoMessage() {}
+
+func (x *GetOltPortCountersResponse) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[9]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetOltPortCountersResponse.ProtoReflect.Descriptor instead.
 func (*GetOltPortCountersResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{9}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{9}
 }
 
-func (m *GetOltPortCountersResponse) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_GetOltPortCountersResponse.Unmarshal(m, b)
-}
-func (m *GetOltPortCountersResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_GetOltPortCountersResponse.Marshal(b, m, deterministic)
-}
-func (m *GetOltPortCountersResponse) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_GetOltPortCountersResponse.Merge(m, src)
-}
-func (m *GetOltPortCountersResponse) XXX_Size() int {
-	return xxx_messageInfo_GetOltPortCountersResponse.Size(m)
-}
-func (m *GetOltPortCountersResponse) XXX_DiscardUnknown() {
-	xxx_messageInfo_GetOltPortCountersResponse.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_GetOltPortCountersResponse proto.InternalMessageInfo
-
-func (m *GetOltPortCountersResponse) GetTxBytes() uint64 {
-	if m != nil {
-		return m.TxBytes
+func (x *GetOltPortCountersResponse) GetTxBytes() uint64 {
+	if x != nil {
+		return x.TxBytes
 	}
 	return 0
 }
 
-func (m *GetOltPortCountersResponse) GetRxBytes() uint64 {
-	if m != nil {
-		return m.RxBytes
+func (x *GetOltPortCountersResponse) GetRxBytes() uint64 {
+	if x != nil {
+		return x.RxBytes
 	}
 	return 0
 }
 
-func (m *GetOltPortCountersResponse) GetTxPackets() uint64 {
-	if m != nil {
-		return m.TxPackets
+func (x *GetOltPortCountersResponse) GetTxPackets() uint64 {
+	if x != nil {
+		return x.TxPackets
 	}
 	return 0
 }
 
-func (m *GetOltPortCountersResponse) GetRxPackets() uint64 {
-	if m != nil {
-		return m.RxPackets
+func (x *GetOltPortCountersResponse) GetRxPackets() uint64 {
+	if x != nil {
+		return x.RxPackets
 	}
 	return 0
 }
 
-func (m *GetOltPortCountersResponse) GetTxErrorPackets() uint64 {
-	if m != nil {
-		return m.TxErrorPackets
+func (x *GetOltPortCountersResponse) GetTxErrorPackets() uint64 {
+	if x != nil {
+		return x.TxErrorPackets
 	}
 	return 0
 }
 
-func (m *GetOltPortCountersResponse) GetRxErrorPackets() uint64 {
-	if m != nil {
-		return m.RxErrorPackets
+func (x *GetOltPortCountersResponse) GetRxErrorPackets() uint64 {
+	if x != nil {
+		return x.RxErrorPackets
 	}
 	return 0
 }
 
-func (m *GetOltPortCountersResponse) GetTxBcastPackets() uint64 {
-	if m != nil {
-		return m.TxBcastPackets
+func (x *GetOltPortCountersResponse) GetTxBcastPackets() uint64 {
+	if x != nil {
+		return x.TxBcastPackets
 	}
 	return 0
 }
 
-func (m *GetOltPortCountersResponse) GetRxBcastPackets() uint64 {
-	if m != nil {
-		return m.RxBcastPackets
+func (x *GetOltPortCountersResponse) GetRxBcastPackets() uint64 {
+	if x != nil {
+		return x.RxBcastPackets
 	}
 	return 0
 }
 
-func (m *GetOltPortCountersResponse) GetTxUcastPackets() uint64 {
-	if m != nil {
-		return m.TxUcastPackets
+func (x *GetOltPortCountersResponse) GetTxUcastPackets() uint64 {
+	if x != nil {
+		return x.TxUcastPackets
 	}
 	return 0
 }
 
-func (m *GetOltPortCountersResponse) GetRxUcastPackets() uint64 {
-	if m != nil {
-		return m.RxUcastPackets
+func (x *GetOltPortCountersResponse) GetRxUcastPackets() uint64 {
+	if x != nil {
+		return x.RxUcastPackets
 	}
 	return 0
 }
 
-func (m *GetOltPortCountersResponse) GetTxMcastPackets() uint64 {
-	if m != nil {
-		return m.TxMcastPackets
+func (x *GetOltPortCountersResponse) GetTxMcastPackets() uint64 {
+	if x != nil {
+		return x.TxMcastPackets
 	}
 	return 0
 }
 
-func (m *GetOltPortCountersResponse) GetRxMcastPackets() uint64 {
-	if m != nil {
-		return m.RxMcastPackets
+func (x *GetOltPortCountersResponse) GetRxMcastPackets() uint64 {
+	if x != nil {
+		return x.RxMcastPackets
 	}
 	return 0
 }
 
 type GetOnuPonOpticalInfo struct {
-	Empty                *empty.Empty `protobuf:"bytes,1,opt,name=empty,proto3" json:"empty,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
-	XXX_unrecognized     []byte       `json:"-"`
-	XXX_sizecache        int32        `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Empty         *emptypb.Empty         `protobuf:"bytes,1,opt,name=empty,proto3" json:"empty,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *GetOnuPonOpticalInfo) Reset()         { *m = GetOnuPonOpticalInfo{} }
-func (m *GetOnuPonOpticalInfo) String() string { return proto.CompactTextString(m) }
-func (*GetOnuPonOpticalInfo) ProtoMessage()    {}
+func (x *GetOnuPonOpticalInfo) Reset() {
+	*x = GetOnuPonOpticalInfo{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[10]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GetOnuPonOpticalInfo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetOnuPonOpticalInfo) ProtoMessage() {}
+
+func (x *GetOnuPonOpticalInfo) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[10]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetOnuPonOpticalInfo.ProtoReflect.Descriptor instead.
 func (*GetOnuPonOpticalInfo) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{10}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{10}
 }
 
-func (m *GetOnuPonOpticalInfo) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_GetOnuPonOpticalInfo.Unmarshal(m, b)
-}
-func (m *GetOnuPonOpticalInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_GetOnuPonOpticalInfo.Marshal(b, m, deterministic)
-}
-func (m *GetOnuPonOpticalInfo) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_GetOnuPonOpticalInfo.Merge(m, src)
-}
-func (m *GetOnuPonOpticalInfo) XXX_Size() int {
-	return xxx_messageInfo_GetOnuPonOpticalInfo.Size(m)
-}
-func (m *GetOnuPonOpticalInfo) XXX_DiscardUnknown() {
-	xxx_messageInfo_GetOnuPonOpticalInfo.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_GetOnuPonOpticalInfo proto.InternalMessageInfo
-
-func (m *GetOnuPonOpticalInfo) GetEmpty() *empty.Empty {
-	if m != nil {
-		return m.Empty
+func (x *GetOnuPonOpticalInfo) GetEmpty() *emptypb.Empty {
+	if x != nil {
+		return x.Empty
 	}
 	return nil
 }
@@ -998,950 +1312,1057 @@
 // These values correspond to the Optical Line Supervision Test results
 // described in section A3.39.5 of ITU-T G.988 (11/2017) specification.
 type GetOnuPonOpticalInfoResponse struct {
-	PowerFeedVoltage       float32  `protobuf:"fixed32,1,opt,name=powerFeedVoltage,proto3" json:"powerFeedVoltage,omitempty"`
-	ReceivedOpticalPower   float32  `protobuf:"fixed32,2,opt,name=receivedOpticalPower,proto3" json:"receivedOpticalPower,omitempty"`
-	MeanOpticalLaunchPower float32  `protobuf:"fixed32,3,opt,name=meanOpticalLaunchPower,proto3" json:"meanOpticalLaunchPower,omitempty"`
-	LaserBiasCurrent       float32  `protobuf:"fixed32,4,opt,name=laserBiasCurrent,proto3" json:"laserBiasCurrent,omitempty"`
-	Temperature            float32  `protobuf:"fixed32,5,opt,name=temperature,proto3" json:"temperature,omitempty"`
-	XXX_NoUnkeyedLiteral   struct{} `json:"-"`
-	XXX_unrecognized       []byte   `json:"-"`
-	XXX_sizecache          int32    `json:"-"`
+	state                  protoimpl.MessageState `protogen:"open.v1"`
+	PowerFeedVoltage       float32                `protobuf:"fixed32,1,opt,name=powerFeedVoltage,proto3" json:"powerFeedVoltage,omitempty"`             // unit of value is voltage
+	ReceivedOpticalPower   float32                `protobuf:"fixed32,2,opt,name=receivedOpticalPower,proto3" json:"receivedOpticalPower,omitempty"`     // unit of value is dBm
+	MeanOpticalLaunchPower float32                `protobuf:"fixed32,3,opt,name=meanOpticalLaunchPower,proto3" json:"meanOpticalLaunchPower,omitempty"` // unit of value is dBm
+	LaserBiasCurrent       float32                `protobuf:"fixed32,4,opt,name=laserBiasCurrent,proto3" json:"laserBiasCurrent,omitempty"`             // unit of value is milli-amphere (mA)
+	Temperature            float32                `protobuf:"fixed32,5,opt,name=temperature,proto3" json:"temperature,omitempty"`                       // unit of value is degree celsius
+	unknownFields          protoimpl.UnknownFields
+	sizeCache              protoimpl.SizeCache
 }
 
-func (m *GetOnuPonOpticalInfoResponse) Reset()         { *m = GetOnuPonOpticalInfoResponse{} }
-func (m *GetOnuPonOpticalInfoResponse) String() string { return proto.CompactTextString(m) }
-func (*GetOnuPonOpticalInfoResponse) ProtoMessage()    {}
+func (x *GetOnuPonOpticalInfoResponse) Reset() {
+	*x = GetOnuPonOpticalInfoResponse{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[11]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GetOnuPonOpticalInfoResponse) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetOnuPonOpticalInfoResponse) ProtoMessage() {}
+
+func (x *GetOnuPonOpticalInfoResponse) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[11]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetOnuPonOpticalInfoResponse.ProtoReflect.Descriptor instead.
 func (*GetOnuPonOpticalInfoResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{11}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{11}
 }
 
-func (m *GetOnuPonOpticalInfoResponse) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_GetOnuPonOpticalInfoResponse.Unmarshal(m, b)
-}
-func (m *GetOnuPonOpticalInfoResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_GetOnuPonOpticalInfoResponse.Marshal(b, m, deterministic)
-}
-func (m *GetOnuPonOpticalInfoResponse) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_GetOnuPonOpticalInfoResponse.Merge(m, src)
-}
-func (m *GetOnuPonOpticalInfoResponse) XXX_Size() int {
-	return xxx_messageInfo_GetOnuPonOpticalInfoResponse.Size(m)
-}
-func (m *GetOnuPonOpticalInfoResponse) XXX_DiscardUnknown() {
-	xxx_messageInfo_GetOnuPonOpticalInfoResponse.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_GetOnuPonOpticalInfoResponse proto.InternalMessageInfo
-
-func (m *GetOnuPonOpticalInfoResponse) GetPowerFeedVoltage() float32 {
-	if m != nil {
-		return m.PowerFeedVoltage
+func (x *GetOnuPonOpticalInfoResponse) GetPowerFeedVoltage() float32 {
+	if x != nil {
+		return x.PowerFeedVoltage
 	}
 	return 0
 }
 
-func (m *GetOnuPonOpticalInfoResponse) GetReceivedOpticalPower() float32 {
-	if m != nil {
-		return m.ReceivedOpticalPower
+func (x *GetOnuPonOpticalInfoResponse) GetReceivedOpticalPower() float32 {
+	if x != nil {
+		return x.ReceivedOpticalPower
 	}
 	return 0
 }
 
-func (m *GetOnuPonOpticalInfoResponse) GetMeanOpticalLaunchPower() float32 {
-	if m != nil {
-		return m.MeanOpticalLaunchPower
+func (x *GetOnuPonOpticalInfoResponse) GetMeanOpticalLaunchPower() float32 {
+	if x != nil {
+		return x.MeanOpticalLaunchPower
 	}
 	return 0
 }
 
-func (m *GetOnuPonOpticalInfoResponse) GetLaserBiasCurrent() float32 {
-	if m != nil {
-		return m.LaserBiasCurrent
+func (x *GetOnuPonOpticalInfoResponse) GetLaserBiasCurrent() float32 {
+	if x != nil {
+		return x.LaserBiasCurrent
 	}
 	return 0
 }
 
-func (m *GetOnuPonOpticalInfoResponse) GetTemperature() float32 {
-	if m != nil {
-		return m.Temperature
+func (x *GetOnuPonOpticalInfoResponse) GetTemperature() float32 {
+	if x != nil {
+		return x.Temperature
 	}
 	return 0
 }
 
 type GetOnuEthernetBridgePortHistory struct {
-	Direction            GetOnuEthernetBridgePortHistory_Direction `protobuf:"varint,1,opt,name=direction,proto3,enum=extension.GetOnuEthernetBridgePortHistory_Direction" json:"direction,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                                  `json:"-"`
-	XXX_unrecognized     []byte                                    `json:"-"`
-	XXX_sizecache        int32                                     `json:"-"`
+	state         protoimpl.MessageState                    `protogen:"open.v1"`
+	Direction     GetOnuEthernetBridgePortHistory_Direction `protobuf:"varint,1,opt,name=direction,proto3,enum=extension.GetOnuEthernetBridgePortHistory_Direction" json:"direction,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *GetOnuEthernetBridgePortHistory) Reset()         { *m = GetOnuEthernetBridgePortHistory{} }
-func (m *GetOnuEthernetBridgePortHistory) String() string { return proto.CompactTextString(m) }
-func (*GetOnuEthernetBridgePortHistory) ProtoMessage()    {}
+func (x *GetOnuEthernetBridgePortHistory) Reset() {
+	*x = GetOnuEthernetBridgePortHistory{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[12]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GetOnuEthernetBridgePortHistory) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetOnuEthernetBridgePortHistory) ProtoMessage() {}
+
+func (x *GetOnuEthernetBridgePortHistory) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[12]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetOnuEthernetBridgePortHistory.ProtoReflect.Descriptor instead.
 func (*GetOnuEthernetBridgePortHistory) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{12}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{12}
 }
 
-func (m *GetOnuEthernetBridgePortHistory) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_GetOnuEthernetBridgePortHistory.Unmarshal(m, b)
-}
-func (m *GetOnuEthernetBridgePortHistory) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_GetOnuEthernetBridgePortHistory.Marshal(b, m, deterministic)
-}
-func (m *GetOnuEthernetBridgePortHistory) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_GetOnuEthernetBridgePortHistory.Merge(m, src)
-}
-func (m *GetOnuEthernetBridgePortHistory) XXX_Size() int {
-	return xxx_messageInfo_GetOnuEthernetBridgePortHistory.Size(m)
-}
-func (m *GetOnuEthernetBridgePortHistory) XXX_DiscardUnknown() {
-	xxx_messageInfo_GetOnuEthernetBridgePortHistory.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_GetOnuEthernetBridgePortHistory proto.InternalMessageInfo
-
-func (m *GetOnuEthernetBridgePortHistory) GetDirection() GetOnuEthernetBridgePortHistory_Direction {
-	if m != nil {
-		return m.Direction
+func (x *GetOnuEthernetBridgePortHistory) GetDirection() GetOnuEthernetBridgePortHistory_Direction {
+	if x != nil {
+		return x.Direction
 	}
 	return GetOnuEthernetBridgePortHistory_UNDEFINED
 }
 
 type GetOnuEthernetBridgePortHistoryResponse struct {
-	DropEvents              uint32   `protobuf:"varint,1,opt,name=dropEvents,proto3" json:"dropEvents,omitempty"`
-	Octets                  uint32   `protobuf:"varint,2,opt,name=octets,proto3" json:"octets,omitempty"`
-	Packets                 uint32   `protobuf:"varint,3,opt,name=packets,proto3" json:"packets,omitempty"`
-	BroadcastPackets        uint32   `protobuf:"varint,4,opt,name=broadcastPackets,proto3" json:"broadcastPackets,omitempty"`
-	MulticastPackets        uint32   `protobuf:"varint,5,opt,name=multicastPackets,proto3" json:"multicastPackets,omitempty"`
-	CrcErroredPackets       uint32   `protobuf:"varint,6,opt,name=crcErroredPackets,proto3" json:"crcErroredPackets,omitempty"`
-	UndersizePackets        uint32   `protobuf:"varint,7,opt,name=undersizePackets,proto3" json:"undersizePackets,omitempty"`
-	OversizePackets         uint32   `protobuf:"varint,8,opt,name=oversizePackets,proto3" json:"oversizePackets,omitempty"`
-	Packets64Octets         uint32   `protobuf:"varint,9,opt,name=packets64octets,proto3" json:"packets64octets,omitempty"`
-	Packets65To127Octets    uint32   `protobuf:"varint,10,opt,name=packets65To127octets,proto3" json:"packets65To127octets,omitempty"`
-	Packets128To255Octets   uint32   `protobuf:"varint,11,opt,name=packets128To255Octets,proto3" json:"packets128To255Octets,omitempty"`
-	Packets256To511Octets   uint32   `protobuf:"varint,12,opt,name=packets256To511octets,proto3" json:"packets256To511octets,omitempty"`
-	Packets512To1023Octets  uint32   `protobuf:"varint,13,opt,name=packets512To1023octets,proto3" json:"packets512To1023octets,omitempty"`
-	Packets1024To1518Octets uint32   `protobuf:"varint,14,opt,name=packets1024To1518octets,proto3" json:"packets1024To1518octets,omitempty"`
-	XXX_NoUnkeyedLiteral    struct{} `json:"-"`
-	XXX_unrecognized        []byte   `json:"-"`
-	XXX_sizecache           int32    `json:"-"`
+	state                   protoimpl.MessageState `protogen:"open.v1"`
+	DropEvents              uint32                 `protobuf:"varint,1,opt,name=dropEvents,proto3" json:"dropEvents,omitempty"`
+	Octets                  uint32                 `protobuf:"varint,2,opt,name=octets,proto3" json:"octets,omitempty"`
+	Packets                 uint32                 `protobuf:"varint,3,opt,name=packets,proto3" json:"packets,omitempty"`
+	BroadcastPackets        uint32                 `protobuf:"varint,4,opt,name=broadcastPackets,proto3" json:"broadcastPackets,omitempty"`
+	MulticastPackets        uint32                 `protobuf:"varint,5,opt,name=multicastPackets,proto3" json:"multicastPackets,omitempty"`
+	CrcErroredPackets       uint32                 `protobuf:"varint,6,opt,name=crcErroredPackets,proto3" json:"crcErroredPackets,omitempty"`
+	UndersizePackets        uint32                 `protobuf:"varint,7,opt,name=undersizePackets,proto3" json:"undersizePackets,omitempty"`
+	OversizePackets         uint32                 `protobuf:"varint,8,opt,name=oversizePackets,proto3" json:"oversizePackets,omitempty"`
+	Packets64Octets         uint32                 `protobuf:"varint,9,opt,name=packets64octets,proto3" json:"packets64octets,omitempty"`
+	Packets65To127Octets    uint32                 `protobuf:"varint,10,opt,name=packets65To127octets,proto3" json:"packets65To127octets,omitempty"`
+	Packets128To255Octets   uint32                 `protobuf:"varint,11,opt,name=packets128To255Octets,proto3" json:"packets128To255Octets,omitempty"`
+	Packets256To511Octets   uint32                 `protobuf:"varint,12,opt,name=packets256To511octets,proto3" json:"packets256To511octets,omitempty"`
+	Packets512To1023Octets  uint32                 `protobuf:"varint,13,opt,name=packets512To1023octets,proto3" json:"packets512To1023octets,omitempty"`
+	Packets1024To1518Octets uint32                 `protobuf:"varint,14,opt,name=packets1024To1518octets,proto3" json:"packets1024To1518octets,omitempty"`
+	unknownFields           protoimpl.UnknownFields
+	sizeCache               protoimpl.SizeCache
 }
 
-func (m *GetOnuEthernetBridgePortHistoryResponse) Reset() {
-	*m = GetOnuEthernetBridgePortHistoryResponse{}
+func (x *GetOnuEthernetBridgePortHistoryResponse) Reset() {
+	*x = GetOnuEthernetBridgePortHistoryResponse{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[13]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
-func (m *GetOnuEthernetBridgePortHistoryResponse) String() string { return proto.CompactTextString(m) }
-func (*GetOnuEthernetBridgePortHistoryResponse) ProtoMessage()    {}
+
+func (x *GetOnuEthernetBridgePortHistoryResponse) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetOnuEthernetBridgePortHistoryResponse) ProtoMessage() {}
+
+func (x *GetOnuEthernetBridgePortHistoryResponse) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[13]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetOnuEthernetBridgePortHistoryResponse.ProtoReflect.Descriptor instead.
 func (*GetOnuEthernetBridgePortHistoryResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{13}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{13}
 }
 
-func (m *GetOnuEthernetBridgePortHistoryResponse) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_GetOnuEthernetBridgePortHistoryResponse.Unmarshal(m, b)
-}
-func (m *GetOnuEthernetBridgePortHistoryResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_GetOnuEthernetBridgePortHistoryResponse.Marshal(b, m, deterministic)
-}
-func (m *GetOnuEthernetBridgePortHistoryResponse) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_GetOnuEthernetBridgePortHistoryResponse.Merge(m, src)
-}
-func (m *GetOnuEthernetBridgePortHistoryResponse) XXX_Size() int {
-	return xxx_messageInfo_GetOnuEthernetBridgePortHistoryResponse.Size(m)
-}
-func (m *GetOnuEthernetBridgePortHistoryResponse) XXX_DiscardUnknown() {
-	xxx_messageInfo_GetOnuEthernetBridgePortHistoryResponse.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_GetOnuEthernetBridgePortHistoryResponse proto.InternalMessageInfo
-
-func (m *GetOnuEthernetBridgePortHistoryResponse) GetDropEvents() uint32 {
-	if m != nil {
-		return m.DropEvents
+func (x *GetOnuEthernetBridgePortHistoryResponse) GetDropEvents() uint32 {
+	if x != nil {
+		return x.DropEvents
 	}
 	return 0
 }
 
-func (m *GetOnuEthernetBridgePortHistoryResponse) GetOctets() uint32 {
-	if m != nil {
-		return m.Octets
+func (x *GetOnuEthernetBridgePortHistoryResponse) GetOctets() uint32 {
+	if x != nil {
+		return x.Octets
 	}
 	return 0
 }
 
-func (m *GetOnuEthernetBridgePortHistoryResponse) GetPackets() uint32 {
-	if m != nil {
-		return m.Packets
+func (x *GetOnuEthernetBridgePortHistoryResponse) GetPackets() uint32 {
+	if x != nil {
+		return x.Packets
 	}
 	return 0
 }
 
-func (m *GetOnuEthernetBridgePortHistoryResponse) GetBroadcastPackets() uint32 {
-	if m != nil {
-		return m.BroadcastPackets
+func (x *GetOnuEthernetBridgePortHistoryResponse) GetBroadcastPackets() uint32 {
+	if x != nil {
+		return x.BroadcastPackets
 	}
 	return 0
 }
 
-func (m *GetOnuEthernetBridgePortHistoryResponse) GetMulticastPackets() uint32 {
-	if m != nil {
-		return m.MulticastPackets
+func (x *GetOnuEthernetBridgePortHistoryResponse) GetMulticastPackets() uint32 {
+	if x != nil {
+		return x.MulticastPackets
 	}
 	return 0
 }
 
-func (m *GetOnuEthernetBridgePortHistoryResponse) GetCrcErroredPackets() uint32 {
-	if m != nil {
-		return m.CrcErroredPackets
+func (x *GetOnuEthernetBridgePortHistoryResponse) GetCrcErroredPackets() uint32 {
+	if x != nil {
+		return x.CrcErroredPackets
 	}
 	return 0
 }
 
-func (m *GetOnuEthernetBridgePortHistoryResponse) GetUndersizePackets() uint32 {
-	if m != nil {
-		return m.UndersizePackets
+func (x *GetOnuEthernetBridgePortHistoryResponse) GetUndersizePackets() uint32 {
+	if x != nil {
+		return x.UndersizePackets
 	}
 	return 0
 }
 
-func (m *GetOnuEthernetBridgePortHistoryResponse) GetOversizePackets() uint32 {
-	if m != nil {
-		return m.OversizePackets
+func (x *GetOnuEthernetBridgePortHistoryResponse) GetOversizePackets() uint32 {
+	if x != nil {
+		return x.OversizePackets
 	}
 	return 0
 }
 
-func (m *GetOnuEthernetBridgePortHistoryResponse) GetPackets64Octets() uint32 {
-	if m != nil {
-		return m.Packets64Octets
+func (x *GetOnuEthernetBridgePortHistoryResponse) GetPackets64Octets() uint32 {
+	if x != nil {
+		return x.Packets64Octets
 	}
 	return 0
 }
 
-func (m *GetOnuEthernetBridgePortHistoryResponse) GetPackets65To127Octets() uint32 {
-	if m != nil {
-		return m.Packets65To127Octets
+func (x *GetOnuEthernetBridgePortHistoryResponse) GetPackets65To127Octets() uint32 {
+	if x != nil {
+		return x.Packets65To127Octets
 	}
 	return 0
 }
 
-func (m *GetOnuEthernetBridgePortHistoryResponse) GetPackets128To255Octets() uint32 {
-	if m != nil {
-		return m.Packets128To255Octets
+func (x *GetOnuEthernetBridgePortHistoryResponse) GetPackets128To255Octets() uint32 {
+	if x != nil {
+		return x.Packets128To255Octets
 	}
 	return 0
 }
 
-func (m *GetOnuEthernetBridgePortHistoryResponse) GetPackets256To511Octets() uint32 {
-	if m != nil {
-		return m.Packets256To511Octets
+func (x *GetOnuEthernetBridgePortHistoryResponse) GetPackets256To511Octets() uint32 {
+	if x != nil {
+		return x.Packets256To511Octets
 	}
 	return 0
 }
 
-func (m *GetOnuEthernetBridgePortHistoryResponse) GetPackets512To1023Octets() uint32 {
-	if m != nil {
-		return m.Packets512To1023Octets
+func (x *GetOnuEthernetBridgePortHistoryResponse) GetPackets512To1023Octets() uint32 {
+	if x != nil {
+		return x.Packets512To1023Octets
 	}
 	return 0
 }
 
-func (m *GetOnuEthernetBridgePortHistoryResponse) GetPackets1024To1518Octets() uint32 {
-	if m != nil {
-		return m.Packets1024To1518Octets
+func (x *GetOnuEthernetBridgePortHistoryResponse) GetPackets1024To1518Octets() uint32 {
+	if x != nil {
+		return x.Packets1024To1518Octets
 	}
 	return 0
 }
 
 // GetOnuAllocGemHistoryRequest collects GEM and AllocId stats from ONU
 type GetOnuAllocGemHistoryRequest struct {
-	Empty                *empty.Empty `protobuf:"bytes,1,opt,name=empty,proto3" json:"empty,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
-	XXX_unrecognized     []byte       `json:"-"`
-	XXX_sizecache        int32        `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Empty         *emptypb.Empty         `protobuf:"bytes,1,opt,name=empty,proto3" json:"empty,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *GetOnuAllocGemHistoryRequest) Reset()         { *m = GetOnuAllocGemHistoryRequest{} }
-func (m *GetOnuAllocGemHistoryRequest) String() string { return proto.CompactTextString(m) }
-func (*GetOnuAllocGemHistoryRequest) ProtoMessage()    {}
+func (x *GetOnuAllocGemHistoryRequest) Reset() {
+	*x = GetOnuAllocGemHistoryRequest{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[14]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GetOnuAllocGemHistoryRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetOnuAllocGemHistoryRequest) ProtoMessage() {}
+
+func (x *GetOnuAllocGemHistoryRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[14]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetOnuAllocGemHistoryRequest.ProtoReflect.Descriptor instead.
 func (*GetOnuAllocGemHistoryRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{14}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{14}
 }
 
-func (m *GetOnuAllocGemHistoryRequest) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_GetOnuAllocGemHistoryRequest.Unmarshal(m, b)
-}
-func (m *GetOnuAllocGemHistoryRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_GetOnuAllocGemHistoryRequest.Marshal(b, m, deterministic)
-}
-func (m *GetOnuAllocGemHistoryRequest) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_GetOnuAllocGemHistoryRequest.Merge(m, src)
-}
-func (m *GetOnuAllocGemHistoryRequest) XXX_Size() int {
-	return xxx_messageInfo_GetOnuAllocGemHistoryRequest.Size(m)
-}
-func (m *GetOnuAllocGemHistoryRequest) XXX_DiscardUnknown() {
-	xxx_messageInfo_GetOnuAllocGemHistoryRequest.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_GetOnuAllocGemHistoryRequest proto.InternalMessageInfo
-
-func (m *GetOnuAllocGemHistoryRequest) GetEmpty() *empty.Empty {
-	if m != nil {
-		return m.Empty
+func (x *GetOnuAllocGemHistoryRequest) GetEmpty() *emptypb.Empty {
+	if x != nil {
+		return x.Empty
 	}
 	return nil
 }
 
 type OnuGemPortHistoryData struct {
-	GemId                uint32 `protobuf:"varint,1,opt,name=gemId,proto3" json:"gemId,omitempty"`
-	TransmittedGEMFrames uint32 `protobuf:"varint,2,opt,name=transmittedGEMFrames,proto3" json:"transmittedGEMFrames,omitempty"`
-	ReceivedGEMFrames    uint32 `protobuf:"varint,3,opt,name=receivedGEMFrames,proto3" json:"receivedGEMFrames,omitempty"`
+	state                protoimpl.MessageState `protogen:"open.v1"`
+	GemId                uint32                 `protobuf:"varint,1,opt,name=gemId,proto3" json:"gemId,omitempty"`
+	TransmittedGEMFrames uint32                 `protobuf:"varint,2,opt,name=transmittedGEMFrames,proto3" json:"transmittedGEMFrames,omitempty"`
+	ReceivedGEMFrames    uint32                 `protobuf:"varint,3,opt,name=receivedGEMFrames,proto3" json:"receivedGEMFrames,omitempty"`
 	// Deprecated: uint32 cannot handle large byte counters and will overflow after ~4GB.
 	// Use received_payload_bytes_64 instead for full 64-bit precision.
-	ReceivedPayloadBytes uint32 `protobuf:"varint,4,opt,name=receivedPayloadBytes,proto3" json:"receivedPayloadBytes,omitempty"` // Deprecated: Do not use.
+	//
+	// Deprecated: Marked as deprecated in voltha_protos/extensions.proto.
+	ReceivedPayloadBytes uint32 `protobuf:"varint,4,opt,name=receivedPayloadBytes,proto3" json:"receivedPayloadBytes,omitempty"`
 	// Deprecated: uint32 cannot handle large byte counters and will overflow after ~4GB.
 	// Use transmitted_payload_bytes_64 instead for full 64-bit precision.
-	TransmittedPayloadBytes    uint32   `protobuf:"varint,5,opt,name=transmittedPayloadBytes,proto3" json:"transmittedPayloadBytes,omitempty"` // Deprecated: Do not use.
-	EncryptionKeyErrors        uint32   `protobuf:"varint,6,opt,name=encryptionKeyErrors,proto3" json:"encryptionKeyErrors,omitempty"`
-	ReceivedPayloadBytes_64    uint64   `protobuf:"fixed64,7,opt,name=received_payload_bytes_64,json=receivedPayloadBytes64,proto3" json:"received_payload_bytes_64,omitempty"`
-	TransmittedPayloadBytes_64 uint64   `protobuf:"fixed64,8,opt,name=transmitted_payload_bytes_64,json=transmittedPayloadBytes64,proto3" json:"transmitted_payload_bytes_64,omitempty"`
-	XXX_NoUnkeyedLiteral       struct{} `json:"-"`
-	XXX_unrecognized           []byte   `json:"-"`
-	XXX_sizecache              int32    `json:"-"`
+	//
+	// Deprecated: Marked as deprecated in voltha_protos/extensions.proto.
+	TransmittedPayloadBytes    uint32 `protobuf:"varint,5,opt,name=transmittedPayloadBytes,proto3" json:"transmittedPayloadBytes,omitempty"`
+	EncryptionKeyErrors        uint32 `protobuf:"varint,6,opt,name=encryptionKeyErrors,proto3" json:"encryptionKeyErrors,omitempty"`
+	ReceivedPayloadBytes_64    uint64 `protobuf:"fixed64,7,opt,name=received_payload_bytes_64,json=receivedPayloadBytes64,proto3" json:"received_payload_bytes_64,omitempty"`
+	TransmittedPayloadBytes_64 uint64 `protobuf:"fixed64,8,opt,name=transmitted_payload_bytes_64,json=transmittedPayloadBytes64,proto3" json:"transmitted_payload_bytes_64,omitempty"`
+	unknownFields              protoimpl.UnknownFields
+	sizeCache                  protoimpl.SizeCache
 }
 
-func (m *OnuGemPortHistoryData) Reset()         { *m = OnuGemPortHistoryData{} }
-func (m *OnuGemPortHistoryData) String() string { return proto.CompactTextString(m) }
-func (*OnuGemPortHistoryData) ProtoMessage()    {}
+func (x *OnuGemPortHistoryData) Reset() {
+	*x = OnuGemPortHistoryData{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[15]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OnuGemPortHistoryData) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OnuGemPortHistoryData) ProtoMessage() {}
+
+func (x *OnuGemPortHistoryData) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[15]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OnuGemPortHistoryData.ProtoReflect.Descriptor instead.
 func (*OnuGemPortHistoryData) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{15}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{15}
 }
 
-func (m *OnuGemPortHistoryData) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OnuGemPortHistoryData.Unmarshal(m, b)
-}
-func (m *OnuGemPortHistoryData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OnuGemPortHistoryData.Marshal(b, m, deterministic)
-}
-func (m *OnuGemPortHistoryData) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OnuGemPortHistoryData.Merge(m, src)
-}
-func (m *OnuGemPortHistoryData) XXX_Size() int {
-	return xxx_messageInfo_OnuGemPortHistoryData.Size(m)
-}
-func (m *OnuGemPortHistoryData) XXX_DiscardUnknown() {
-	xxx_messageInfo_OnuGemPortHistoryData.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OnuGemPortHistoryData proto.InternalMessageInfo
-
-func (m *OnuGemPortHistoryData) GetGemId() uint32 {
-	if m != nil {
-		return m.GemId
+func (x *OnuGemPortHistoryData) GetGemId() uint32 {
+	if x != nil {
+		return x.GemId
 	}
 	return 0
 }
 
-func (m *OnuGemPortHistoryData) GetTransmittedGEMFrames() uint32 {
-	if m != nil {
-		return m.TransmittedGEMFrames
+func (x *OnuGemPortHistoryData) GetTransmittedGEMFrames() uint32 {
+	if x != nil {
+		return x.TransmittedGEMFrames
 	}
 	return 0
 }
 
-func (m *OnuGemPortHistoryData) GetReceivedGEMFrames() uint32 {
-	if m != nil {
-		return m.ReceivedGEMFrames
+func (x *OnuGemPortHistoryData) GetReceivedGEMFrames() uint32 {
+	if x != nil {
+		return x.ReceivedGEMFrames
 	}
 	return 0
 }
 
-// Deprecated: Do not use.
-func (m *OnuGemPortHistoryData) GetReceivedPayloadBytes() uint32 {
-	if m != nil {
-		return m.ReceivedPayloadBytes
+// Deprecated: Marked as deprecated in voltha_protos/extensions.proto.
+func (x *OnuGemPortHistoryData) GetReceivedPayloadBytes() uint32 {
+	if x != nil {
+		return x.ReceivedPayloadBytes
 	}
 	return 0
 }
 
-// Deprecated: Do not use.
-func (m *OnuGemPortHistoryData) GetTransmittedPayloadBytes() uint32 {
-	if m != nil {
-		return m.TransmittedPayloadBytes
+// Deprecated: Marked as deprecated in voltha_protos/extensions.proto.
+func (x *OnuGemPortHistoryData) GetTransmittedPayloadBytes() uint32 {
+	if x != nil {
+		return x.TransmittedPayloadBytes
 	}
 	return 0
 }
 
-func (m *OnuGemPortHistoryData) GetEncryptionKeyErrors() uint32 {
-	if m != nil {
-		return m.EncryptionKeyErrors
+func (x *OnuGemPortHistoryData) GetEncryptionKeyErrors() uint32 {
+	if x != nil {
+		return x.EncryptionKeyErrors
 	}
 	return 0
 }
 
-func (m *OnuGemPortHistoryData) GetReceivedPayloadBytes_64() uint64 {
-	if m != nil {
-		return m.ReceivedPayloadBytes_64
+func (x *OnuGemPortHistoryData) GetReceivedPayloadBytes_64() uint64 {
+	if x != nil {
+		return x.ReceivedPayloadBytes_64
 	}
 	return 0
 }
 
-func (m *OnuGemPortHistoryData) GetTransmittedPayloadBytes_64() uint64 {
-	if m != nil {
-		return m.TransmittedPayloadBytes_64
+func (x *OnuGemPortHistoryData) GetTransmittedPayloadBytes_64() uint64 {
+	if x != nil {
+		return x.TransmittedPayloadBytes_64
 	}
 	return 0
 }
 
 type OnuAllocHistoryData struct {
-	AllocId              uint32   `protobuf:"varint,1,opt,name=allocId,proto3" json:"allocId,omitempty"`
-	RxBytes              uint32   `protobuf:"varint,2,opt,name=rxBytes,proto3" json:"rxBytes,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	AllocId       uint32                 `protobuf:"varint,1,opt,name=allocId,proto3" json:"allocId,omitempty"`
+	RxBytes       uint32                 `protobuf:"varint,2,opt,name=rxBytes,proto3" json:"rxBytes,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *OnuAllocHistoryData) Reset()         { *m = OnuAllocHistoryData{} }
-func (m *OnuAllocHistoryData) String() string { return proto.CompactTextString(m) }
-func (*OnuAllocHistoryData) ProtoMessage()    {}
+func (x *OnuAllocHistoryData) Reset() {
+	*x = OnuAllocHistoryData{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[16]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OnuAllocHistoryData) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OnuAllocHistoryData) ProtoMessage() {}
+
+func (x *OnuAllocHistoryData) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[16]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OnuAllocHistoryData.ProtoReflect.Descriptor instead.
 func (*OnuAllocHistoryData) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{16}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{16}
 }
 
-func (m *OnuAllocHistoryData) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OnuAllocHistoryData.Unmarshal(m, b)
-}
-func (m *OnuAllocHistoryData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OnuAllocHistoryData.Marshal(b, m, deterministic)
-}
-func (m *OnuAllocHistoryData) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OnuAllocHistoryData.Merge(m, src)
-}
-func (m *OnuAllocHistoryData) XXX_Size() int {
-	return xxx_messageInfo_OnuAllocHistoryData.Size(m)
-}
-func (m *OnuAllocHistoryData) XXX_DiscardUnknown() {
-	xxx_messageInfo_OnuAllocHistoryData.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OnuAllocHistoryData proto.InternalMessageInfo
-
-func (m *OnuAllocHistoryData) GetAllocId() uint32 {
-	if m != nil {
-		return m.AllocId
+func (x *OnuAllocHistoryData) GetAllocId() uint32 {
+	if x != nil {
+		return x.AllocId
 	}
 	return 0
 }
 
-func (m *OnuAllocHistoryData) GetRxBytes() uint32 {
-	if m != nil {
-		return m.RxBytes
+func (x *OnuAllocHistoryData) GetRxBytes() uint32 {
+	if x != nil {
+		return x.RxBytes
 	}
 	return 0
 }
 
 type OnuAllocGemHistoryData struct {
-	OnuAllocIdInfo       *OnuAllocHistoryData     `protobuf:"bytes,1,opt,name=onuAllocIdInfo,proto3" json:"onuAllocIdInfo,omitempty"`
-	GemPortInfo          []*OnuGemPortHistoryData `protobuf:"bytes,2,rep,name=gemPortInfo,proto3" json:"gemPortInfo,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                 `json:"-"`
-	XXX_unrecognized     []byte                   `json:"-"`
-	XXX_sizecache        int32                    `json:"-"`
+	state          protoimpl.MessageState   `protogen:"open.v1"`
+	OnuAllocIdInfo *OnuAllocHistoryData     `protobuf:"bytes,1,opt,name=onuAllocIdInfo,proto3" json:"onuAllocIdInfo,omitempty"`
+	GemPortInfo    []*OnuGemPortHistoryData `protobuf:"bytes,2,rep,name=gemPortInfo,proto3" json:"gemPortInfo,omitempty"`
+	unknownFields  protoimpl.UnknownFields
+	sizeCache      protoimpl.SizeCache
 }
 
-func (m *OnuAllocGemHistoryData) Reset()         { *m = OnuAllocGemHistoryData{} }
-func (m *OnuAllocGemHistoryData) String() string { return proto.CompactTextString(m) }
-func (*OnuAllocGemHistoryData) ProtoMessage()    {}
+func (x *OnuAllocGemHistoryData) Reset() {
+	*x = OnuAllocGemHistoryData{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[17]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OnuAllocGemHistoryData) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OnuAllocGemHistoryData) ProtoMessage() {}
+
+func (x *OnuAllocGemHistoryData) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[17]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OnuAllocGemHistoryData.ProtoReflect.Descriptor instead.
 func (*OnuAllocGemHistoryData) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{17}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{17}
 }
 
-func (m *OnuAllocGemHistoryData) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OnuAllocGemHistoryData.Unmarshal(m, b)
-}
-func (m *OnuAllocGemHistoryData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OnuAllocGemHistoryData.Marshal(b, m, deterministic)
-}
-func (m *OnuAllocGemHistoryData) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OnuAllocGemHistoryData.Merge(m, src)
-}
-func (m *OnuAllocGemHistoryData) XXX_Size() int {
-	return xxx_messageInfo_OnuAllocGemHistoryData.Size(m)
-}
-func (m *OnuAllocGemHistoryData) XXX_DiscardUnknown() {
-	xxx_messageInfo_OnuAllocGemHistoryData.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OnuAllocGemHistoryData proto.InternalMessageInfo
-
-func (m *OnuAllocGemHistoryData) GetOnuAllocIdInfo() *OnuAllocHistoryData {
-	if m != nil {
-		return m.OnuAllocIdInfo
+func (x *OnuAllocGemHistoryData) GetOnuAllocIdInfo() *OnuAllocHistoryData {
+	if x != nil {
+		return x.OnuAllocIdInfo
 	}
 	return nil
 }
 
-func (m *OnuAllocGemHistoryData) GetGemPortInfo() []*OnuGemPortHistoryData {
-	if m != nil {
-		return m.GemPortInfo
+func (x *OnuAllocGemHistoryData) GetGemPortInfo() []*OnuGemPortHistoryData {
+	if x != nil {
+		return x.GemPortInfo
 	}
 	return nil
 }
 
 type GetOnuAllocGemHistoryResponse struct {
+	state                  protoimpl.MessageState    `protogen:"open.v1"`
 	OnuAllocGemHistoryData []*OnuAllocGemHistoryData `protobuf:"bytes,1,rep,name=onuAllocGemHistoryData,proto3" json:"onuAllocGemHistoryData,omitempty"`
-	XXX_NoUnkeyedLiteral   struct{}                  `json:"-"`
-	XXX_unrecognized       []byte                    `json:"-"`
-	XXX_sizecache          int32                     `json:"-"`
+	unknownFields          protoimpl.UnknownFields
+	sizeCache              protoimpl.SizeCache
 }
 
-func (m *GetOnuAllocGemHistoryResponse) Reset()         { *m = GetOnuAllocGemHistoryResponse{} }
-func (m *GetOnuAllocGemHistoryResponse) String() string { return proto.CompactTextString(m) }
-func (*GetOnuAllocGemHistoryResponse) ProtoMessage()    {}
+func (x *GetOnuAllocGemHistoryResponse) Reset() {
+	*x = GetOnuAllocGemHistoryResponse{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[18]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GetOnuAllocGemHistoryResponse) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetOnuAllocGemHistoryResponse) ProtoMessage() {}
+
+func (x *GetOnuAllocGemHistoryResponse) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[18]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetOnuAllocGemHistoryResponse.ProtoReflect.Descriptor instead.
 func (*GetOnuAllocGemHistoryResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{18}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{18}
 }
 
-func (m *GetOnuAllocGemHistoryResponse) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_GetOnuAllocGemHistoryResponse.Unmarshal(m, b)
-}
-func (m *GetOnuAllocGemHistoryResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_GetOnuAllocGemHistoryResponse.Marshal(b, m, deterministic)
-}
-func (m *GetOnuAllocGemHistoryResponse) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_GetOnuAllocGemHistoryResponse.Merge(m, src)
-}
-func (m *GetOnuAllocGemHistoryResponse) XXX_Size() int {
-	return xxx_messageInfo_GetOnuAllocGemHistoryResponse.Size(m)
-}
-func (m *GetOnuAllocGemHistoryResponse) XXX_DiscardUnknown() {
-	xxx_messageInfo_GetOnuAllocGemHistoryResponse.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_GetOnuAllocGemHistoryResponse proto.InternalMessageInfo
-
-func (m *GetOnuAllocGemHistoryResponse) GetOnuAllocGemHistoryData() []*OnuAllocGemHistoryData {
-	if m != nil {
-		return m.OnuAllocGemHistoryData
+func (x *GetOnuAllocGemHistoryResponse) GetOnuAllocGemHistoryData() []*OnuAllocGemHistoryData {
+	if x != nil {
+		return x.OnuAllocGemHistoryData
 	}
 	return nil
 }
 
 type GetOnuFecHistory struct {
-	Empty                *empty.Empty `protobuf:"bytes,1,opt,name=empty,proto3" json:"empty,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
-	XXX_unrecognized     []byte       `json:"-"`
-	XXX_sizecache        int32        `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Empty         *emptypb.Empty         `protobuf:"bytes,1,opt,name=empty,proto3" json:"empty,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *GetOnuFecHistory) Reset()         { *m = GetOnuFecHistory{} }
-func (m *GetOnuFecHistory) String() string { return proto.CompactTextString(m) }
-func (*GetOnuFecHistory) ProtoMessage()    {}
+func (x *GetOnuFecHistory) Reset() {
+	*x = GetOnuFecHistory{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[19]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GetOnuFecHistory) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetOnuFecHistory) ProtoMessage() {}
+
+func (x *GetOnuFecHistory) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[19]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetOnuFecHistory.ProtoReflect.Descriptor instead.
 func (*GetOnuFecHistory) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{19}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{19}
 }
 
-func (m *GetOnuFecHistory) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_GetOnuFecHistory.Unmarshal(m, b)
-}
-func (m *GetOnuFecHistory) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_GetOnuFecHistory.Marshal(b, m, deterministic)
-}
-func (m *GetOnuFecHistory) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_GetOnuFecHistory.Merge(m, src)
-}
-func (m *GetOnuFecHistory) XXX_Size() int {
-	return xxx_messageInfo_GetOnuFecHistory.Size(m)
-}
-func (m *GetOnuFecHistory) XXX_DiscardUnknown() {
-	xxx_messageInfo_GetOnuFecHistory.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_GetOnuFecHistory proto.InternalMessageInfo
-
-func (m *GetOnuFecHistory) GetEmpty() *empty.Empty {
-	if m != nil {
-		return m.Empty
+func (x *GetOnuFecHistory) GetEmpty() *emptypb.Empty {
+	if x != nil {
+		return x.Empty
 	}
 	return nil
 }
 
 type GetOnuFecHistoryResponse struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
 	// Deprecated: uint32 cannot handle large counter values and will overflow.
 	// Use fec_corrected_bytes_64 instead for full 64-bit precision.
-	CorrectedBytes uint32 `protobuf:"varint,1,opt,name=correctedBytes,proto3" json:"correctedBytes,omitempty"` // Deprecated: Do not use.
+	//
+	// Deprecated: Marked as deprecated in voltha_protos/extensions.proto.
+	CorrectedBytes uint32 `protobuf:"varint,1,opt,name=correctedBytes,proto3" json:"correctedBytes,omitempty"`
 	// Deprecated: uint32 cannot handle large counter values and will overflow.
 	// Use fec_corrected_code_words_64 instead for full 64-bit precision.
-	CorrectedCodeWords uint32 `protobuf:"varint,2,opt,name=correctedCodeWords,proto3" json:"correctedCodeWords,omitempty"` // Deprecated: Do not use.
+	//
+	// Deprecated: Marked as deprecated in voltha_protos/extensions.proto.
+	CorrectedCodeWords uint32 `protobuf:"varint,2,opt,name=correctedCodeWords,proto3" json:"correctedCodeWords,omitempty"`
 	FecSeconds         uint32 `protobuf:"varint,3,opt,name=fecSeconds,proto3" json:"fecSeconds,omitempty"`
 	// Deprecated: uint32 cannot handle large counter values and will overflow.
 	// Use total_code_words_64 instead for full 64-bit precision.
-	TotalCodeWords uint32 `protobuf:"varint,4,opt,name=totalCodeWords,proto3" json:"totalCodeWords,omitempty"` // Deprecated: Do not use.
+	//
+	// Deprecated: Marked as deprecated in voltha_protos/extensions.proto.
+	TotalCodeWords uint32 `protobuf:"varint,4,opt,name=totalCodeWords,proto3" json:"totalCodeWords,omitempty"`
 	// Deprecated: uint32 cannot handle large counter values and will overflow.
 	// Use uncorrectable_code_words_64 instead for full 64-bit precision.
-	UncorrectableCodeWords    uint32   `protobuf:"varint,5,opt,name=uncorrectableCodeWords,proto3" json:"uncorrectableCodeWords,omitempty"` // Deprecated: Do not use.
-	FecCorrectedBytes_64      uint64   `protobuf:"fixed64,6,opt,name=fec_corrected_bytes_64,json=fecCorrectedBytes64,proto3" json:"fec_corrected_bytes_64,omitempty"`
-	FecCorrectedCodeWords_64  uint64   `protobuf:"fixed64,7,opt,name=fec_corrected_code_words_64,json=fecCorrectedCodeWords64,proto3" json:"fec_corrected_code_words_64,omitempty"`
-	TotalCodeWords_64         uint64   `protobuf:"fixed64,8,opt,name=total_code_words_64,json=totalCodeWords64,proto3" json:"total_code_words_64,omitempty"`
-	UncorrectableCodeWords_64 uint64   `protobuf:"fixed64,9,opt,name=uncorrectable_code_words_64,json=uncorrectableCodeWords64,proto3" json:"uncorrectable_code_words_64,omitempty"`
-	XXX_NoUnkeyedLiteral      struct{} `json:"-"`
-	XXX_unrecognized          []byte   `json:"-"`
-	XXX_sizecache             int32    `json:"-"`
+	//
+	// Deprecated: Marked as deprecated in voltha_protos/extensions.proto.
+	UncorrectableCodeWords    uint32 `protobuf:"varint,5,opt,name=uncorrectableCodeWords,proto3" json:"uncorrectableCodeWords,omitempty"`
+	FecCorrectedBytes_64      uint64 `protobuf:"fixed64,6,opt,name=fec_corrected_bytes_64,json=fecCorrectedBytes64,proto3" json:"fec_corrected_bytes_64,omitempty"`
+	FecCorrectedCodeWords_64  uint64 `protobuf:"fixed64,7,opt,name=fec_corrected_code_words_64,json=fecCorrectedCodeWords64,proto3" json:"fec_corrected_code_words_64,omitempty"`
+	TotalCodeWords_64         uint64 `protobuf:"fixed64,8,opt,name=total_code_words_64,json=totalCodeWords64,proto3" json:"total_code_words_64,omitempty"`
+	UncorrectableCodeWords_64 uint64 `protobuf:"fixed64,9,opt,name=uncorrectable_code_words_64,json=uncorrectableCodeWords64,proto3" json:"uncorrectable_code_words_64,omitempty"`
+	unknownFields             protoimpl.UnknownFields
+	sizeCache                 protoimpl.SizeCache
 }
 
-func (m *GetOnuFecHistoryResponse) Reset()         { *m = GetOnuFecHistoryResponse{} }
-func (m *GetOnuFecHistoryResponse) String() string { return proto.CompactTextString(m) }
-func (*GetOnuFecHistoryResponse) ProtoMessage()    {}
+func (x *GetOnuFecHistoryResponse) Reset() {
+	*x = GetOnuFecHistoryResponse{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[20]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GetOnuFecHistoryResponse) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetOnuFecHistoryResponse) ProtoMessage() {}
+
+func (x *GetOnuFecHistoryResponse) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[20]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetOnuFecHistoryResponse.ProtoReflect.Descriptor instead.
 func (*GetOnuFecHistoryResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{20}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{20}
 }
 
-func (m *GetOnuFecHistoryResponse) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_GetOnuFecHistoryResponse.Unmarshal(m, b)
-}
-func (m *GetOnuFecHistoryResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_GetOnuFecHistoryResponse.Marshal(b, m, deterministic)
-}
-func (m *GetOnuFecHistoryResponse) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_GetOnuFecHistoryResponse.Merge(m, src)
-}
-func (m *GetOnuFecHistoryResponse) XXX_Size() int {
-	return xxx_messageInfo_GetOnuFecHistoryResponse.Size(m)
-}
-func (m *GetOnuFecHistoryResponse) XXX_DiscardUnknown() {
-	xxx_messageInfo_GetOnuFecHistoryResponse.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_GetOnuFecHistoryResponse proto.InternalMessageInfo
-
-// Deprecated: Do not use.
-func (m *GetOnuFecHistoryResponse) GetCorrectedBytes() uint32 {
-	if m != nil {
-		return m.CorrectedBytes
+// Deprecated: Marked as deprecated in voltha_protos/extensions.proto.
+func (x *GetOnuFecHistoryResponse) GetCorrectedBytes() uint32 {
+	if x != nil {
+		return x.CorrectedBytes
 	}
 	return 0
 }
 
-// Deprecated: Do not use.
-func (m *GetOnuFecHistoryResponse) GetCorrectedCodeWords() uint32 {
-	if m != nil {
-		return m.CorrectedCodeWords
+// Deprecated: Marked as deprecated in voltha_protos/extensions.proto.
+func (x *GetOnuFecHistoryResponse) GetCorrectedCodeWords() uint32 {
+	if x != nil {
+		return x.CorrectedCodeWords
 	}
 	return 0
 }
 
-func (m *GetOnuFecHistoryResponse) GetFecSeconds() uint32 {
-	if m != nil {
-		return m.FecSeconds
+func (x *GetOnuFecHistoryResponse) GetFecSeconds() uint32 {
+	if x != nil {
+		return x.FecSeconds
 	}
 	return 0
 }
 
-// Deprecated: Do not use.
-func (m *GetOnuFecHistoryResponse) GetTotalCodeWords() uint32 {
-	if m != nil {
-		return m.TotalCodeWords
+// Deprecated: Marked as deprecated in voltha_protos/extensions.proto.
+func (x *GetOnuFecHistoryResponse) GetTotalCodeWords() uint32 {
+	if x != nil {
+		return x.TotalCodeWords
 	}
 	return 0
 }
 
-// Deprecated: Do not use.
-func (m *GetOnuFecHistoryResponse) GetUncorrectableCodeWords() uint32 {
-	if m != nil {
-		return m.UncorrectableCodeWords
+// Deprecated: Marked as deprecated in voltha_protos/extensions.proto.
+func (x *GetOnuFecHistoryResponse) GetUncorrectableCodeWords() uint32 {
+	if x != nil {
+		return x.UncorrectableCodeWords
 	}
 	return 0
 }
 
-func (m *GetOnuFecHistoryResponse) GetFecCorrectedBytes_64() uint64 {
-	if m != nil {
-		return m.FecCorrectedBytes_64
+func (x *GetOnuFecHistoryResponse) GetFecCorrectedBytes_64() uint64 {
+	if x != nil {
+		return x.FecCorrectedBytes_64
 	}
 	return 0
 }
 
-func (m *GetOnuFecHistoryResponse) GetFecCorrectedCodeWords_64() uint64 {
-	if m != nil {
-		return m.FecCorrectedCodeWords_64
+func (x *GetOnuFecHistoryResponse) GetFecCorrectedCodeWords_64() uint64 {
+	if x != nil {
+		return x.FecCorrectedCodeWords_64
 	}
 	return 0
 }
 
-func (m *GetOnuFecHistoryResponse) GetTotalCodeWords_64() uint64 {
-	if m != nil {
-		return m.TotalCodeWords_64
+func (x *GetOnuFecHistoryResponse) GetTotalCodeWords_64() uint64 {
+	if x != nil {
+		return x.TotalCodeWords_64
 	}
 	return 0
 }
 
-func (m *GetOnuFecHistoryResponse) GetUncorrectableCodeWords_64() uint64 {
-	if m != nil {
-		return m.UncorrectableCodeWords_64
+func (x *GetOnuFecHistoryResponse) GetUncorrectableCodeWords_64() uint64 {
+	if x != nil {
+		return x.UncorrectableCodeWords_64
 	}
 	return 0
 }
 
 type GetOnuCountersRequest struct {
-	IntfId               uint32   `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
-	OnuId                uint32   `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	IntfId        uint32                 `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
+	OnuId         uint32                 `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *GetOnuCountersRequest) Reset()         { *m = GetOnuCountersRequest{} }
-func (m *GetOnuCountersRequest) String() string { return proto.CompactTextString(m) }
-func (*GetOnuCountersRequest) ProtoMessage()    {}
+func (x *GetOnuCountersRequest) Reset() {
+	*x = GetOnuCountersRequest{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[21]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GetOnuCountersRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetOnuCountersRequest) ProtoMessage() {}
+
+func (x *GetOnuCountersRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[21]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetOnuCountersRequest.ProtoReflect.Descriptor instead.
 func (*GetOnuCountersRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{21}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{21}
 }
 
-func (m *GetOnuCountersRequest) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_GetOnuCountersRequest.Unmarshal(m, b)
-}
-func (m *GetOnuCountersRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_GetOnuCountersRequest.Marshal(b, m, deterministic)
-}
-func (m *GetOnuCountersRequest) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_GetOnuCountersRequest.Merge(m, src)
-}
-func (m *GetOnuCountersRequest) XXX_Size() int {
-	return xxx_messageInfo_GetOnuCountersRequest.Size(m)
-}
-func (m *GetOnuCountersRequest) XXX_DiscardUnknown() {
-	xxx_messageInfo_GetOnuCountersRequest.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_GetOnuCountersRequest proto.InternalMessageInfo
-
-func (m *GetOnuCountersRequest) GetIntfId() uint32 {
-	if m != nil {
-		return m.IntfId
+func (x *GetOnuCountersRequest) GetIntfId() uint32 {
+	if x != nil {
+		return x.IntfId
 	}
 	return 0
 }
 
-func (m *GetOnuCountersRequest) GetOnuId() uint32 {
-	if m != nil {
-		return m.OnuId
+func (x *GetOnuCountersRequest) GetOnuId() uint32 {
+	if x != nil {
+		return x.OnuId
 	}
 	return 0
 }
 
 type GetOmciEthernetFrameExtendedPmRequest struct {
-	OnuDeviceId string `protobuf:"bytes,1,opt,name=onuDeviceId,proto3" json:"onuDeviceId,omitempty"`
+	state       protoimpl.MessageState `protogen:"open.v1"`
+	OnuDeviceId string                 `protobuf:"bytes,1,opt,name=onuDeviceId,proto3" json:"onuDeviceId,omitempty"`
 	// Types that are valid to be assigned to IsUniIndex:
+	//
 	//	*GetOmciEthernetFrameExtendedPmRequest_UniIndex
-	IsUniIndex           isGetOmciEthernetFrameExtendedPmRequest_IsUniIndex `protobuf_oneof:"is_uni_index"`
-	Reset_               bool                                               `protobuf:"varint,3,opt,name=reset,proto3" json:"reset,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                                           `json:"-"`
-	XXX_unrecognized     []byte                                             `json:"-"`
-	XXX_sizecache        int32                                              `json:"-"`
+	IsUniIndex    isGetOmciEthernetFrameExtendedPmRequest_IsUniIndex `protobuf_oneof:"is_uni_index"`
+	Reset_        bool                                               `protobuf:"varint,3,opt,name=reset,proto3" json:"reset,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *GetOmciEthernetFrameExtendedPmRequest) Reset()         { *m = GetOmciEthernetFrameExtendedPmRequest{} }
-func (m *GetOmciEthernetFrameExtendedPmRequest) String() string { return proto.CompactTextString(m) }
-func (*GetOmciEthernetFrameExtendedPmRequest) ProtoMessage()    {}
+func (x *GetOmciEthernetFrameExtendedPmRequest) Reset() {
+	*x = GetOmciEthernetFrameExtendedPmRequest{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[22]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GetOmciEthernetFrameExtendedPmRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetOmciEthernetFrameExtendedPmRequest) ProtoMessage() {}
+
+func (x *GetOmciEthernetFrameExtendedPmRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[22]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetOmciEthernetFrameExtendedPmRequest.ProtoReflect.Descriptor instead.
 func (*GetOmciEthernetFrameExtendedPmRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{22}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{22}
 }
 
-func (m *GetOmciEthernetFrameExtendedPmRequest) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_GetOmciEthernetFrameExtendedPmRequest.Unmarshal(m, b)
-}
-func (m *GetOmciEthernetFrameExtendedPmRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_GetOmciEthernetFrameExtendedPmRequest.Marshal(b, m, deterministic)
-}
-func (m *GetOmciEthernetFrameExtendedPmRequest) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_GetOmciEthernetFrameExtendedPmRequest.Merge(m, src)
-}
-func (m *GetOmciEthernetFrameExtendedPmRequest) XXX_Size() int {
-	return xxx_messageInfo_GetOmciEthernetFrameExtendedPmRequest.Size(m)
-}
-func (m *GetOmciEthernetFrameExtendedPmRequest) XXX_DiscardUnknown() {
-	xxx_messageInfo_GetOmciEthernetFrameExtendedPmRequest.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_GetOmciEthernetFrameExtendedPmRequest proto.InternalMessageInfo
-
-func (m *GetOmciEthernetFrameExtendedPmRequest) GetOnuDeviceId() string {
-	if m != nil {
-		return m.OnuDeviceId
+func (x *GetOmciEthernetFrameExtendedPmRequest) GetOnuDeviceId() string {
+	if x != nil {
+		return x.OnuDeviceId
 	}
 	return ""
 }
 
+func (x *GetOmciEthernetFrameExtendedPmRequest) GetIsUniIndex() isGetOmciEthernetFrameExtendedPmRequest_IsUniIndex {
+	if x != nil {
+		return x.IsUniIndex
+	}
+	return nil
+}
+
+func (x *GetOmciEthernetFrameExtendedPmRequest) GetUniIndex() uint32 {
+	if x != nil {
+		if x, ok := x.IsUniIndex.(*GetOmciEthernetFrameExtendedPmRequest_UniIndex); ok {
+			return x.UniIndex
+		}
+	}
+	return 0
+}
+
+func (x *GetOmciEthernetFrameExtendedPmRequest) GetReset_() bool {
+	if x != nil {
+		return x.Reset_
+	}
+	return false
+}
+
 type isGetOmciEthernetFrameExtendedPmRequest_IsUniIndex interface {
 	isGetOmciEthernetFrameExtendedPmRequest_IsUniIndex()
 }
 
 type GetOmciEthernetFrameExtendedPmRequest_UniIndex struct {
-	UniIndex uint32 `protobuf:"varint,2,opt,name=uniIndex,proto3,oneof"`
+	UniIndex uint32 `protobuf:"varint,2,opt,name=uniIndex,proto3,oneof"` // Index of the uni starting from 0
 }
 
 func (*GetOmciEthernetFrameExtendedPmRequest_UniIndex) isGetOmciEthernetFrameExtendedPmRequest_IsUniIndex() {
 }
 
-func (m *GetOmciEthernetFrameExtendedPmRequest) GetIsUniIndex() isGetOmciEthernetFrameExtendedPmRequest_IsUniIndex {
-	if m != nil {
-		return m.IsUniIndex
-	}
-	return nil
-}
-
-func (m *GetOmciEthernetFrameExtendedPmRequest) GetUniIndex() uint32 {
-	if x, ok := m.GetIsUniIndex().(*GetOmciEthernetFrameExtendedPmRequest_UniIndex); ok {
-		return x.UniIndex
-	}
-	return 0
-}
-
-func (m *GetOmciEthernetFrameExtendedPmRequest) GetReset_() bool {
-	if m != nil {
-		return m.Reset_
-	}
-	return false
-}
-
-// XXX_OneofWrappers is for the internal use of the proto package.
-func (*GetOmciEthernetFrameExtendedPmRequest) XXX_OneofWrappers() []interface{} {
-	return []interface{}{
-		(*GetOmciEthernetFrameExtendedPmRequest_UniIndex)(nil),
-	}
-}
-
 // DEPRECATED
 type GetRxPowerRequest struct {
-	IntfId               uint32   `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
-	OnuId                uint32   `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	IntfId        uint32                 `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
+	OnuId         uint32                 `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *GetRxPowerRequest) Reset()         { *m = GetRxPowerRequest{} }
-func (m *GetRxPowerRequest) String() string { return proto.CompactTextString(m) }
-func (*GetRxPowerRequest) ProtoMessage()    {}
+func (x *GetRxPowerRequest) Reset() {
+	*x = GetRxPowerRequest{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[23]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GetRxPowerRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetRxPowerRequest) ProtoMessage() {}
+
+func (x *GetRxPowerRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[23]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetRxPowerRequest.ProtoReflect.Descriptor instead.
 func (*GetRxPowerRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{23}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{23}
 }
 
-func (m *GetRxPowerRequest) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_GetRxPowerRequest.Unmarshal(m, b)
-}
-func (m *GetRxPowerRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_GetRxPowerRequest.Marshal(b, m, deterministic)
-}
-func (m *GetRxPowerRequest) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_GetRxPowerRequest.Merge(m, src)
-}
-func (m *GetRxPowerRequest) XXX_Size() int {
-	return xxx_messageInfo_GetRxPowerRequest.Size(m)
-}
-func (m *GetRxPowerRequest) XXX_DiscardUnknown() {
-	xxx_messageInfo_GetRxPowerRequest.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_GetRxPowerRequest proto.InternalMessageInfo
-
-func (m *GetRxPowerRequest) GetIntfId() uint32 {
-	if m != nil {
-		return m.IntfId
+func (x *GetRxPowerRequest) GetIntfId() uint32 {
+	if x != nil {
+		return x.IntfId
 	}
 	return 0
 }
 
-func (m *GetRxPowerRequest) GetOnuId() uint32 {
-	if m != nil {
-		return m.OnuId
+func (x *GetRxPowerRequest) GetOnuId() uint32 {
+	if x != nil {
+		return x.OnuId
 	}
 	return 0
 }
 
 type GetOltRxPowerRequest struct {
-	PortLabel string `protobuf:"bytes,1,opt,name=port_label,json=portLabel,proto3" json:"port_label,omitempty"`
+	state     protoimpl.MessageState `protogen:"open.v1"`
+	PortLabel string                 `protobuf:"bytes,1,opt,name=port_label,json=portLabel,proto3" json:"port_label,omitempty"`
 	// onu_sn is optional and if onu_sn is an empty string and the label is
 	// of a PON port then it means that the Rx Power corresponding to all
 	// the ONUs on that PON port is requested. In case the port_label is not
 	// of a PON port, the onu_sn does not have any significance
-	OnuSn                string   `protobuf:"bytes,2,opt,name=onu_sn,json=onuSn,proto3" json:"onu_sn,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	OnuSn         string `protobuf:"bytes,2,opt,name=onu_sn,json=onuSn,proto3" json:"onu_sn,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *GetOltRxPowerRequest) Reset()         { *m = GetOltRxPowerRequest{} }
-func (m *GetOltRxPowerRequest) String() string { return proto.CompactTextString(m) }
-func (*GetOltRxPowerRequest) ProtoMessage()    {}
+func (x *GetOltRxPowerRequest) Reset() {
+	*x = GetOltRxPowerRequest{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[24]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GetOltRxPowerRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetOltRxPowerRequest) ProtoMessage() {}
+
+func (x *GetOltRxPowerRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[24]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetOltRxPowerRequest.ProtoReflect.Descriptor instead.
 func (*GetOltRxPowerRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{24}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{24}
 }
 
-func (m *GetOltRxPowerRequest) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_GetOltRxPowerRequest.Unmarshal(m, b)
-}
-func (m *GetOltRxPowerRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_GetOltRxPowerRequest.Marshal(b, m, deterministic)
-}
-func (m *GetOltRxPowerRequest) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_GetOltRxPowerRequest.Merge(m, src)
-}
-func (m *GetOltRxPowerRequest) XXX_Size() int {
-	return xxx_messageInfo_GetOltRxPowerRequest.Size(m)
-}
-func (m *GetOltRxPowerRequest) XXX_DiscardUnknown() {
-	xxx_messageInfo_GetOltRxPowerRequest.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_GetOltRxPowerRequest proto.InternalMessageInfo
-
-func (m *GetOltRxPowerRequest) GetPortLabel() string {
-	if m != nil {
-		return m.PortLabel
+func (x *GetOltRxPowerRequest) GetPortLabel() string {
+	if x != nil {
+		return x.PortLabel
 	}
 	return ""
 }
 
-func (m *GetOltRxPowerRequest) GetOnuSn() string {
-	if m != nil {
-		return m.OnuSn
+func (x *GetOltRxPowerRequest) GetOnuSn() string {
+	if x != nil {
+		return x.OnuSn
 	}
 	return ""
 }
 
 type GetPonStatsRequest struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
 	// Types that are valid to be assigned to PortInfo:
+	//
 	//	*GetPonStatsRequest_PortLabel
 	//	*GetPonStatsRequest_PortId
-	PortInfo             isGetPonStatsRequest_PortInfo `protobuf_oneof:"portInfo"`
-	XXX_NoUnkeyedLiteral struct{}                      `json:"-"`
-	XXX_unrecognized     []byte                        `json:"-"`
-	XXX_sizecache        int32                         `json:"-"`
+	PortInfo      isGetPonStatsRequest_PortInfo `protobuf_oneof:"portInfo"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *GetPonStatsRequest) Reset()         { *m = GetPonStatsRequest{} }
-func (m *GetPonStatsRequest) String() string { return proto.CompactTextString(m) }
-func (*GetPonStatsRequest) ProtoMessage()    {}
+func (x *GetPonStatsRequest) Reset() {
+	*x = GetPonStatsRequest{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[25]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GetPonStatsRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetPonStatsRequest) ProtoMessage() {}
+
+func (x *GetPonStatsRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[25]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetPonStatsRequest.ProtoReflect.Descriptor instead.
 func (*GetPonStatsRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{25}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{25}
 }
 
-func (m *GetPonStatsRequest) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_GetPonStatsRequest.Unmarshal(m, b)
-}
-func (m *GetPonStatsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_GetPonStatsRequest.Marshal(b, m, deterministic)
-}
-func (m *GetPonStatsRequest) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_GetPonStatsRequest.Merge(m, src)
-}
-func (m *GetPonStatsRequest) XXX_Size() int {
-	return xxx_messageInfo_GetPonStatsRequest.Size(m)
-}
-func (m *GetPonStatsRequest) XXX_DiscardUnknown() {
-	xxx_messageInfo_GetPonStatsRequest.DiscardUnknown(m)
+func (x *GetPonStatsRequest) GetPortInfo() isGetPonStatsRequest_PortInfo {
+	if x != nil {
+		return x.PortInfo
+	}
+	return nil
 }
 
-var xxx_messageInfo_GetPonStatsRequest proto.InternalMessageInfo
+func (x *GetPonStatsRequest) GetPortLabel() string {
+	if x != nil {
+		if x, ok := x.PortInfo.(*GetPonStatsRequest_PortLabel); ok {
+			return x.PortLabel
+		}
+	}
+	return ""
+}
+
+func (x *GetPonStatsRequest) GetPortId() uint32 {
+	if x != nil {
+		if x, ok := x.PortInfo.(*GetPonStatsRequest_PortId); ok {
+			return x.PortId
+		}
+	}
+	return 0
+}
 
 type isGetPonStatsRequest_PortInfo interface {
 	isGetPonStatsRequest_PortInfo()
@@ -1959,116 +2380,123 @@
 
 func (*GetPonStatsRequest_PortId) isGetPonStatsRequest_PortInfo() {}
 
-func (m *GetPonStatsRequest) GetPortInfo() isGetPonStatsRequest_PortInfo {
-	if m != nil {
-		return m.PortInfo
-	}
-	return nil
-}
-
-func (m *GetPonStatsRequest) GetPortLabel() string {
-	if x, ok := m.GetPortInfo().(*GetPonStatsRequest_PortLabel); ok {
-		return x.PortLabel
-	}
-	return ""
-}
-
-func (m *GetPonStatsRequest) GetPortId() uint32 {
-	if x, ok := m.GetPortInfo().(*GetPonStatsRequest_PortId); ok {
-		return x.PortId
-	}
-	return 0
-}
-
-// XXX_OneofWrappers is for the internal use of the proto package.
-func (*GetPonStatsRequest) XXX_OneofWrappers() []interface{} {
-	return []interface{}{
-		(*GetPonStatsRequest_PortLabel)(nil),
-		(*GetPonStatsRequest_PortId)(nil),
-	}
-}
-
 type GetPonStatsResponse struct {
-	PonPort              uint32                 `protobuf:"varint,1,opt,name=ponPort,proto3" json:"ponPort,omitempty"`
-	PortStatistics       *common.PortStatistics `protobuf:"bytes,2,opt,name=portStatistics,proto3" json:"portStatistics,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}               `json:"-"`
-	XXX_unrecognized     []byte                 `json:"-"`
-	XXX_sizecache        int32                  `json:"-"`
+	state          protoimpl.MessageState `protogen:"open.v1"`
+	PonPort        uint32                 `protobuf:"varint,1,opt,name=ponPort,proto3" json:"ponPort,omitempty"`
+	PortStatistics *common.PortStatistics `protobuf:"bytes,2,opt,name=portStatistics,proto3" json:"portStatistics,omitempty"`
+	unknownFields  protoimpl.UnknownFields
+	sizeCache      protoimpl.SizeCache
 }
 
-func (m *GetPonStatsResponse) Reset()         { *m = GetPonStatsResponse{} }
-func (m *GetPonStatsResponse) String() string { return proto.CompactTextString(m) }
-func (*GetPonStatsResponse) ProtoMessage()    {}
+func (x *GetPonStatsResponse) Reset() {
+	*x = GetPonStatsResponse{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[26]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GetPonStatsResponse) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetPonStatsResponse) ProtoMessage() {}
+
+func (x *GetPonStatsResponse) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[26]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetPonStatsResponse.ProtoReflect.Descriptor instead.
 func (*GetPonStatsResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{26}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{26}
 }
 
-func (m *GetPonStatsResponse) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_GetPonStatsResponse.Unmarshal(m, b)
-}
-func (m *GetPonStatsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_GetPonStatsResponse.Marshal(b, m, deterministic)
-}
-func (m *GetPonStatsResponse) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_GetPonStatsResponse.Merge(m, src)
-}
-func (m *GetPonStatsResponse) XXX_Size() int {
-	return xxx_messageInfo_GetPonStatsResponse.Size(m)
-}
-func (m *GetPonStatsResponse) XXX_DiscardUnknown() {
-	xxx_messageInfo_GetPonStatsResponse.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_GetPonStatsResponse proto.InternalMessageInfo
-
-func (m *GetPonStatsResponse) GetPonPort() uint32 {
-	if m != nil {
-		return m.PonPort
+func (x *GetPonStatsResponse) GetPonPort() uint32 {
+	if x != nil {
+		return x.PonPort
 	}
 	return 0
 }
 
-func (m *GetPonStatsResponse) GetPortStatistics() *common.PortStatistics {
-	if m != nil {
-		return m.PortStatistics
+func (x *GetPonStatsResponse) GetPortStatistics() *common.PortStatistics {
+	if x != nil {
+		return x.PortStatistics
 	}
 	return nil
 }
 
 type GetNNIStatsRequest struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
 	// Types that are valid to be assigned to PortInfo:
+	//
 	//	*GetNNIStatsRequest_PortLabel
 	//	*GetNNIStatsRequest_PortId
-	PortInfo             isGetNNIStatsRequest_PortInfo `protobuf_oneof:"portInfo"`
-	XXX_NoUnkeyedLiteral struct{}                      `json:"-"`
-	XXX_unrecognized     []byte                        `json:"-"`
-	XXX_sizecache        int32                         `json:"-"`
+	PortInfo      isGetNNIStatsRequest_PortInfo `protobuf_oneof:"portInfo"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *GetNNIStatsRequest) Reset()         { *m = GetNNIStatsRequest{} }
-func (m *GetNNIStatsRequest) String() string { return proto.CompactTextString(m) }
-func (*GetNNIStatsRequest) ProtoMessage()    {}
+func (x *GetNNIStatsRequest) Reset() {
+	*x = GetNNIStatsRequest{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[27]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GetNNIStatsRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetNNIStatsRequest) ProtoMessage() {}
+
+func (x *GetNNIStatsRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[27]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetNNIStatsRequest.ProtoReflect.Descriptor instead.
 func (*GetNNIStatsRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{27}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{27}
 }
 
-func (m *GetNNIStatsRequest) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_GetNNIStatsRequest.Unmarshal(m, b)
-}
-func (m *GetNNIStatsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_GetNNIStatsRequest.Marshal(b, m, deterministic)
-}
-func (m *GetNNIStatsRequest) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_GetNNIStatsRequest.Merge(m, src)
-}
-func (m *GetNNIStatsRequest) XXX_Size() int {
-	return xxx_messageInfo_GetNNIStatsRequest.Size(m)
-}
-func (m *GetNNIStatsRequest) XXX_DiscardUnknown() {
-	xxx_messageInfo_GetNNIStatsRequest.DiscardUnknown(m)
+func (x *GetNNIStatsRequest) GetPortInfo() isGetNNIStatsRequest_PortInfo {
+	if x != nil {
+		return x.PortInfo
+	}
+	return nil
 }
 
-var xxx_messageInfo_GetNNIStatsRequest proto.InternalMessageInfo
+func (x *GetNNIStatsRequest) GetPortLabel() string {
+	if x != nil {
+		if x, ok := x.PortInfo.(*GetNNIStatsRequest_PortLabel); ok {
+			return x.PortLabel
+		}
+	}
+	return ""
+}
+
+func (x *GetNNIStatsRequest) GetPortId() uint32 {
+	if x != nil {
+		if x, ok := x.PortInfo.(*GetNNIStatsRequest_PortId); ok {
+			return x.PortId
+		}
+	}
+	return 0
+}
 
 type isGetNNIStatsRequest_PortInfo interface {
 	isGetNNIStatsRequest_PortInfo()
@@ -2086,448 +2514,930 @@
 
 func (*GetNNIStatsRequest_PortId) isGetNNIStatsRequest_PortInfo() {}
 
-func (m *GetNNIStatsRequest) GetPortInfo() isGetNNIStatsRequest_PortInfo {
-	if m != nil {
-		return m.PortInfo
-	}
-	return nil
-}
-
-func (m *GetNNIStatsRequest) GetPortLabel() string {
-	if x, ok := m.GetPortInfo().(*GetNNIStatsRequest_PortLabel); ok {
-		return x.PortLabel
-	}
-	return ""
-}
-
-func (m *GetNNIStatsRequest) GetPortId() uint32 {
-	if x, ok := m.GetPortInfo().(*GetNNIStatsRequest_PortId); ok {
-		return x.PortId
-	}
-	return 0
-}
-
-// XXX_OneofWrappers is for the internal use of the proto package.
-func (*GetNNIStatsRequest) XXX_OneofWrappers() []interface{} {
-	return []interface{}{
-		(*GetNNIStatsRequest_PortLabel)(nil),
-		(*GetNNIStatsRequest_PortId)(nil),
-	}
-}
-
 type GetNNIStatsResponse struct {
-	NniPort              uint32                 `protobuf:"varint,1,opt,name=nniPort,proto3" json:"nniPort,omitempty"`
-	PortStatistics       *common.PortStatistics `protobuf:"bytes,2,opt,name=portStatistics,proto3" json:"portStatistics,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}               `json:"-"`
-	XXX_unrecognized     []byte                 `json:"-"`
-	XXX_sizecache        int32                  `json:"-"`
+	state          protoimpl.MessageState `protogen:"open.v1"`
+	NniPort        uint32                 `protobuf:"varint,1,opt,name=nniPort,proto3" json:"nniPort,omitempty"`
+	PortStatistics *common.PortStatistics `protobuf:"bytes,2,opt,name=portStatistics,proto3" json:"portStatistics,omitempty"`
+	unknownFields  protoimpl.UnknownFields
+	sizeCache      protoimpl.SizeCache
 }
 
-func (m *GetNNIStatsResponse) Reset()         { *m = GetNNIStatsResponse{} }
-func (m *GetNNIStatsResponse) String() string { return proto.CompactTextString(m) }
-func (*GetNNIStatsResponse) ProtoMessage()    {}
+func (x *GetNNIStatsResponse) Reset() {
+	*x = GetNNIStatsResponse{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[28]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GetNNIStatsResponse) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetNNIStatsResponse) ProtoMessage() {}
+
+func (x *GetNNIStatsResponse) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[28]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetNNIStatsResponse.ProtoReflect.Descriptor instead.
 func (*GetNNIStatsResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{28}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{28}
 }
 
-func (m *GetNNIStatsResponse) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_GetNNIStatsResponse.Unmarshal(m, b)
-}
-func (m *GetNNIStatsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_GetNNIStatsResponse.Marshal(b, m, deterministic)
-}
-func (m *GetNNIStatsResponse) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_GetNNIStatsResponse.Merge(m, src)
-}
-func (m *GetNNIStatsResponse) XXX_Size() int {
-	return xxx_messageInfo_GetNNIStatsResponse.Size(m)
-}
-func (m *GetNNIStatsResponse) XXX_DiscardUnknown() {
-	xxx_messageInfo_GetNNIStatsResponse.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_GetNNIStatsResponse proto.InternalMessageInfo
-
-func (m *GetNNIStatsResponse) GetNniPort() uint32 {
-	if m != nil {
-		return m.NniPort
+func (x *GetNNIStatsResponse) GetNniPort() uint32 {
+	if x != nil {
+		return x.NniPort
 	}
 	return 0
 }
 
-func (m *GetNNIStatsResponse) GetPortStatistics() *common.PortStatistics {
-	if m != nil {
-		return m.PortStatistics
+func (x *GetNNIStatsResponse) GetPortStatistics() *common.PortStatistics {
+	if x != nil {
+		return x.PortStatistics
 	}
 	return nil
 }
 
 // GetOnuStatsFromOltRequest collects GEM and AllocId stats from the OLT for a particular ONU.
 type GetOnuStatsFromOltRequest struct {
-	IntfId               uint32   `protobuf:"fixed32,1,opt,name=intfId,proto3" json:"intfId,omitempty"`
-	OnuId                uint32   `protobuf:"fixed32,2,opt,name=onuId,proto3" json:"onuId,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	IntfId        uint32                 `protobuf:"fixed32,1,opt,name=intfId,proto3" json:"intfId,omitempty"`
+	OnuId         uint32                 `protobuf:"fixed32,2,opt,name=onuId,proto3" json:"onuId,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *GetOnuStatsFromOltRequest) Reset()         { *m = GetOnuStatsFromOltRequest{} }
-func (m *GetOnuStatsFromOltRequest) String() string { return proto.CompactTextString(m) }
-func (*GetOnuStatsFromOltRequest) ProtoMessage()    {}
+func (x *GetOnuStatsFromOltRequest) Reset() {
+	*x = GetOnuStatsFromOltRequest{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[29]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GetOnuStatsFromOltRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetOnuStatsFromOltRequest) ProtoMessage() {}
+
+func (x *GetOnuStatsFromOltRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[29]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetOnuStatsFromOltRequest.ProtoReflect.Descriptor instead.
 func (*GetOnuStatsFromOltRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{29}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{29}
 }
 
-func (m *GetOnuStatsFromOltRequest) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_GetOnuStatsFromOltRequest.Unmarshal(m, b)
-}
-func (m *GetOnuStatsFromOltRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_GetOnuStatsFromOltRequest.Marshal(b, m, deterministic)
-}
-func (m *GetOnuStatsFromOltRequest) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_GetOnuStatsFromOltRequest.Merge(m, src)
-}
-func (m *GetOnuStatsFromOltRequest) XXX_Size() int {
-	return xxx_messageInfo_GetOnuStatsFromOltRequest.Size(m)
-}
-func (m *GetOnuStatsFromOltRequest) XXX_DiscardUnknown() {
-	xxx_messageInfo_GetOnuStatsFromOltRequest.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_GetOnuStatsFromOltRequest proto.InternalMessageInfo
-
-func (m *GetOnuStatsFromOltRequest) GetIntfId() uint32 {
-	if m != nil {
-		return m.IntfId
+func (x *GetOnuStatsFromOltRequest) GetIntfId() uint32 {
+	if x != nil {
+		return x.IntfId
 	}
 	return 0
 }
 
-func (m *GetOnuStatsFromOltRequest) GetOnuId() uint32 {
-	if m != nil {
-		return m.OnuId
+func (x *GetOnuStatsFromOltRequest) GetOnuId() uint32 {
+	if x != nil {
+		return x.OnuId
 	}
 	return 0
 }
 
 type OnuGemPortInfoFromOlt struct {
-	GemId                uint32   `protobuf:"varint,1,opt,name=gemId,proto3" json:"gemId,omitempty"`
-	RxPackets            uint64   `protobuf:"varint,2,opt,name=rxPackets,proto3" json:"rxPackets,omitempty"`
-	RxBytes              uint64   `protobuf:"varint,3,opt,name=rxBytes,proto3" json:"rxBytes,omitempty"`
-	TxPackets            uint64   `protobuf:"varint,4,opt,name=txPackets,proto3" json:"txPackets,omitempty"`
-	TxBytes              uint64   `protobuf:"varint,5,opt,name=txBytes,proto3" json:"txBytes,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	GemId         uint32                 `protobuf:"varint,1,opt,name=gemId,proto3" json:"gemId,omitempty"`
+	RxPackets     uint64                 `protobuf:"varint,2,opt,name=rxPackets,proto3" json:"rxPackets,omitempty"`
+	RxBytes       uint64                 `protobuf:"varint,3,opt,name=rxBytes,proto3" json:"rxBytes,omitempty"`
+	TxPackets     uint64                 `protobuf:"varint,4,opt,name=txPackets,proto3" json:"txPackets,omitempty"`
+	TxBytes       uint64                 `protobuf:"varint,5,opt,name=txBytes,proto3" json:"txBytes,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *OnuGemPortInfoFromOlt) Reset()         { *m = OnuGemPortInfoFromOlt{} }
-func (m *OnuGemPortInfoFromOlt) String() string { return proto.CompactTextString(m) }
-func (*OnuGemPortInfoFromOlt) ProtoMessage()    {}
+func (x *OnuGemPortInfoFromOlt) Reset() {
+	*x = OnuGemPortInfoFromOlt{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[30]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OnuGemPortInfoFromOlt) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OnuGemPortInfoFromOlt) ProtoMessage() {}
+
+func (x *OnuGemPortInfoFromOlt) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[30]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OnuGemPortInfoFromOlt.ProtoReflect.Descriptor instead.
 func (*OnuGemPortInfoFromOlt) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{30}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{30}
 }
 
-func (m *OnuGemPortInfoFromOlt) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OnuGemPortInfoFromOlt.Unmarshal(m, b)
-}
-func (m *OnuGemPortInfoFromOlt) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OnuGemPortInfoFromOlt.Marshal(b, m, deterministic)
-}
-func (m *OnuGemPortInfoFromOlt) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OnuGemPortInfoFromOlt.Merge(m, src)
-}
-func (m *OnuGemPortInfoFromOlt) XXX_Size() int {
-	return xxx_messageInfo_OnuGemPortInfoFromOlt.Size(m)
-}
-func (m *OnuGemPortInfoFromOlt) XXX_DiscardUnknown() {
-	xxx_messageInfo_OnuGemPortInfoFromOlt.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OnuGemPortInfoFromOlt proto.InternalMessageInfo
-
-func (m *OnuGemPortInfoFromOlt) GetGemId() uint32 {
-	if m != nil {
-		return m.GemId
+func (x *OnuGemPortInfoFromOlt) GetGemId() uint32 {
+	if x != nil {
+		return x.GemId
 	}
 	return 0
 }
 
-func (m *OnuGemPortInfoFromOlt) GetRxPackets() uint64 {
-	if m != nil {
-		return m.RxPackets
+func (x *OnuGemPortInfoFromOlt) GetRxPackets() uint64 {
+	if x != nil {
+		return x.RxPackets
 	}
 	return 0
 }
 
-func (m *OnuGemPortInfoFromOlt) GetRxBytes() uint64 {
-	if m != nil {
-		return m.RxBytes
+func (x *OnuGemPortInfoFromOlt) GetRxBytes() uint64 {
+	if x != nil {
+		return x.RxBytes
 	}
 	return 0
 }
 
-func (m *OnuGemPortInfoFromOlt) GetTxPackets() uint64 {
-	if m != nil {
-		return m.TxPackets
+func (x *OnuGemPortInfoFromOlt) GetTxPackets() uint64 {
+	if x != nil {
+		return x.TxPackets
 	}
 	return 0
 }
 
-func (m *OnuGemPortInfoFromOlt) GetTxBytes() uint64 {
-	if m != nil {
-		return m.TxBytes
+func (x *OnuGemPortInfoFromOlt) GetTxBytes() uint64 {
+	if x != nil {
+		return x.TxBytes
 	}
 	return 0
 }
 
 type OnuAllocIdInfoFromOlt struct {
-	AllocId              uint32   `protobuf:"varint,1,opt,name=allocId,proto3" json:"allocId,omitempty"`
-	RxBytes              uint64   `protobuf:"varint,2,opt,name=rxBytes,proto3" json:"rxBytes,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	AllocId       uint32                 `protobuf:"varint,1,opt,name=allocId,proto3" json:"allocId,omitempty"`
+	RxBytes       uint64                 `protobuf:"varint,2,opt,name=rxBytes,proto3" json:"rxBytes,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *OnuAllocIdInfoFromOlt) Reset()         { *m = OnuAllocIdInfoFromOlt{} }
-func (m *OnuAllocIdInfoFromOlt) String() string { return proto.CompactTextString(m) }
-func (*OnuAllocIdInfoFromOlt) ProtoMessage()    {}
+func (x *OnuAllocIdInfoFromOlt) Reset() {
+	*x = OnuAllocIdInfoFromOlt{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[31]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OnuAllocIdInfoFromOlt) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OnuAllocIdInfoFromOlt) ProtoMessage() {}
+
+func (x *OnuAllocIdInfoFromOlt) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[31]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OnuAllocIdInfoFromOlt.ProtoReflect.Descriptor instead.
 func (*OnuAllocIdInfoFromOlt) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{31}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{31}
 }
 
-func (m *OnuAllocIdInfoFromOlt) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OnuAllocIdInfoFromOlt.Unmarshal(m, b)
-}
-func (m *OnuAllocIdInfoFromOlt) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OnuAllocIdInfoFromOlt.Marshal(b, m, deterministic)
-}
-func (m *OnuAllocIdInfoFromOlt) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OnuAllocIdInfoFromOlt.Merge(m, src)
-}
-func (m *OnuAllocIdInfoFromOlt) XXX_Size() int {
-	return xxx_messageInfo_OnuAllocIdInfoFromOlt.Size(m)
-}
-func (m *OnuAllocIdInfoFromOlt) XXX_DiscardUnknown() {
-	xxx_messageInfo_OnuAllocIdInfoFromOlt.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OnuAllocIdInfoFromOlt proto.InternalMessageInfo
-
-func (m *OnuAllocIdInfoFromOlt) GetAllocId() uint32 {
-	if m != nil {
-		return m.AllocId
+func (x *OnuAllocIdInfoFromOlt) GetAllocId() uint32 {
+	if x != nil {
+		return x.AllocId
 	}
 	return 0
 }
 
-func (m *OnuAllocIdInfoFromOlt) GetRxBytes() uint64 {
-	if m != nil {
-		return m.RxBytes
+func (x *OnuAllocIdInfoFromOlt) GetRxBytes() uint64 {
+	if x != nil {
+		return x.RxBytes
 	}
 	return 0
 }
 
 type OnuAllocGemStatsFromOltResponse struct {
-	AllocIdInfo          *OnuAllocIdInfoFromOlt   `protobuf:"bytes,1,opt,name=allocIdInfo,proto3" json:"allocIdInfo,omitempty"`
-	GemPortInfo          []*OnuGemPortInfoFromOlt `protobuf:"bytes,2,rep,name=gemPortInfo,proto3" json:"gemPortInfo,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                 `json:"-"`
-	XXX_unrecognized     []byte                   `json:"-"`
-	XXX_sizecache        int32                    `json:"-"`
+	state         protoimpl.MessageState   `protogen:"open.v1"`
+	AllocIdInfo   *OnuAllocIdInfoFromOlt   `protobuf:"bytes,1,opt,name=allocIdInfo,proto3" json:"allocIdInfo,omitempty"`
+	GemPortInfo   []*OnuGemPortInfoFromOlt `protobuf:"bytes,2,rep,name=gemPortInfo,proto3" json:"gemPortInfo,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *OnuAllocGemStatsFromOltResponse) Reset()         { *m = OnuAllocGemStatsFromOltResponse{} }
-func (m *OnuAllocGemStatsFromOltResponse) String() string { return proto.CompactTextString(m) }
-func (*OnuAllocGemStatsFromOltResponse) ProtoMessage()    {}
+func (x *OnuAllocGemStatsFromOltResponse) Reset() {
+	*x = OnuAllocGemStatsFromOltResponse{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[32]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OnuAllocGemStatsFromOltResponse) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OnuAllocGemStatsFromOltResponse) ProtoMessage() {}
+
+func (x *OnuAllocGemStatsFromOltResponse) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[32]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OnuAllocGemStatsFromOltResponse.ProtoReflect.Descriptor instead.
 func (*OnuAllocGemStatsFromOltResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{32}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{32}
 }
 
-func (m *OnuAllocGemStatsFromOltResponse) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OnuAllocGemStatsFromOltResponse.Unmarshal(m, b)
-}
-func (m *OnuAllocGemStatsFromOltResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OnuAllocGemStatsFromOltResponse.Marshal(b, m, deterministic)
-}
-func (m *OnuAllocGemStatsFromOltResponse) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OnuAllocGemStatsFromOltResponse.Merge(m, src)
-}
-func (m *OnuAllocGemStatsFromOltResponse) XXX_Size() int {
-	return xxx_messageInfo_OnuAllocGemStatsFromOltResponse.Size(m)
-}
-func (m *OnuAllocGemStatsFromOltResponse) XXX_DiscardUnknown() {
-	xxx_messageInfo_OnuAllocGemStatsFromOltResponse.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OnuAllocGemStatsFromOltResponse proto.InternalMessageInfo
-
-func (m *OnuAllocGemStatsFromOltResponse) GetAllocIdInfo() *OnuAllocIdInfoFromOlt {
-	if m != nil {
-		return m.AllocIdInfo
+func (x *OnuAllocGemStatsFromOltResponse) GetAllocIdInfo() *OnuAllocIdInfoFromOlt {
+	if x != nil {
+		return x.AllocIdInfo
 	}
 	return nil
 }
 
-func (m *OnuAllocGemStatsFromOltResponse) GetGemPortInfo() []*OnuGemPortInfoFromOlt {
-	if m != nil {
-		return m.GemPortInfo
+func (x *OnuAllocGemStatsFromOltResponse) GetGemPortInfo() []*OnuGemPortInfoFromOlt {
+	if x != nil {
+		return x.GemPortInfo
 	}
 	return nil
 }
 
 type GetOnuStatsFromOltResponse struct {
-	AllocGemStatsInfo    []*OnuAllocGemStatsFromOltResponse `protobuf:"bytes,1,rep,name=allocGemStatsInfo,proto3" json:"allocGemStatsInfo,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                           `json:"-"`
-	XXX_unrecognized     []byte                             `json:"-"`
-	XXX_sizecache        int32                              `json:"-"`
+	state             protoimpl.MessageState             `protogen:"open.v1"`
+	AllocGemStatsInfo []*OnuAllocGemStatsFromOltResponse `protobuf:"bytes,1,rep,name=allocGemStatsInfo,proto3" json:"allocGemStatsInfo,omitempty"`
+	unknownFields     protoimpl.UnknownFields
+	sizeCache         protoimpl.SizeCache
 }
 
-func (m *GetOnuStatsFromOltResponse) Reset()         { *m = GetOnuStatsFromOltResponse{} }
-func (m *GetOnuStatsFromOltResponse) String() string { return proto.CompactTextString(m) }
-func (*GetOnuStatsFromOltResponse) ProtoMessage()    {}
+func (x *GetOnuStatsFromOltResponse) Reset() {
+	*x = GetOnuStatsFromOltResponse{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[33]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GetOnuStatsFromOltResponse) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetOnuStatsFromOltResponse) ProtoMessage() {}
+
+func (x *GetOnuStatsFromOltResponse) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[33]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetOnuStatsFromOltResponse.ProtoReflect.Descriptor instead.
 func (*GetOnuStatsFromOltResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{33}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{33}
 }
 
-func (m *GetOnuStatsFromOltResponse) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_GetOnuStatsFromOltResponse.Unmarshal(m, b)
-}
-func (m *GetOnuStatsFromOltResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_GetOnuStatsFromOltResponse.Marshal(b, m, deterministic)
-}
-func (m *GetOnuStatsFromOltResponse) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_GetOnuStatsFromOltResponse.Merge(m, src)
-}
-func (m *GetOnuStatsFromOltResponse) XXX_Size() int {
-	return xxx_messageInfo_GetOnuStatsFromOltResponse.Size(m)
-}
-func (m *GetOnuStatsFromOltResponse) XXX_DiscardUnknown() {
-	xxx_messageInfo_GetOnuStatsFromOltResponse.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_GetOnuStatsFromOltResponse proto.InternalMessageInfo
-
-func (m *GetOnuStatsFromOltResponse) GetAllocGemStatsInfo() []*OnuAllocGemStatsFromOltResponse {
-	if m != nil {
-		return m.AllocGemStatsInfo
+func (x *GetOnuStatsFromOltResponse) GetAllocGemStatsInfo() []*OnuAllocGemStatsFromOltResponse {
+	if x != nil {
+		return x.AllocGemStatsInfo
 	}
 	return nil
 }
 
 type GetOnuCountersResponse struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
 	// Types that are valid to be assigned to IsIntfId:
+	//
 	//	*GetOnuCountersResponse_IntfId
 	IsIntfId isGetOnuCountersResponse_IsIntfId `protobuf_oneof:"is_intf_id"`
 	// Types that are valid to be assigned to IsOnuId:
+	//
 	//	*GetOnuCountersResponse_OnuId
 	IsOnuId isGetOnuCountersResponse_IsOnuId `protobuf_oneof:"is_onu_id"`
 	// Types that are valid to be assigned to IsPositiveDrift:
+	//
 	//	*GetOnuCountersResponse_PositiveDrift
 	IsPositiveDrift isGetOnuCountersResponse_IsPositiveDrift `protobuf_oneof:"is_positive_drift"`
 	// Types that are valid to be assigned to IsNegativeDrift:
+	//
 	//	*GetOnuCountersResponse_NegativeDrift
 	IsNegativeDrift isGetOnuCountersResponse_IsNegativeDrift `protobuf_oneof:"is_negative_drift"`
 	// Types that are valid to be assigned to IsDelimiterMissDetection:
+	//
 	//	*GetOnuCountersResponse_DelimiterMissDetection
 	IsDelimiterMissDetection isGetOnuCountersResponse_IsDelimiterMissDetection `protobuf_oneof:"is_delimiter_miss_detection"`
 	// Types that are valid to be assigned to IsBipErrors:
+	//
 	//	*GetOnuCountersResponse_BipErrors
 	IsBipErrors isGetOnuCountersResponse_IsBipErrors `protobuf_oneof:"is_bip_errors"`
 	// Types that are valid to be assigned to IsBipUnits:
+	//
 	//	*GetOnuCountersResponse_BipUnits
 	IsBipUnits isGetOnuCountersResponse_IsBipUnits `protobuf_oneof:"is_bip_units"`
 	// Types that are valid to be assigned to IsFecCorrectedSymbols:
+	//
 	//	*GetOnuCountersResponse_FecCorrectedSymbols
 	IsFecCorrectedSymbols isGetOnuCountersResponse_IsFecCorrectedSymbols `protobuf_oneof:"is_fec_corrected_symbols"`
 	// Types that are valid to be assigned to IsFecCodewordsCorrected:
+	//
 	//	*GetOnuCountersResponse_FecCodewordsCorrected
 	IsFecCodewordsCorrected isGetOnuCountersResponse_IsFecCodewordsCorrected `protobuf_oneof:"is_fec_codewords_corrected"`
 	// Types that are valid to be assigned to IsFecCodewordsUncorrectable:
+	//
 	//	*GetOnuCountersResponse_FecCodewordsUncorrectable
 	IsFecCodewordsUncorrectable isGetOnuCountersResponse_IsFecCodewordsUncorrectable `protobuf_oneof:"is_fec_codewords_uncorrectable"`
 	// Types that are valid to be assigned to IsFecCodewords:
+	//
 	//	*GetOnuCountersResponse_FecCodewords
 	IsFecCodewords isGetOnuCountersResponse_IsFecCodewords `protobuf_oneof:"is_fec_codewords"`
 	// Types that are valid to be assigned to IsFecCorrectedUnits:
+	//
 	//	*GetOnuCountersResponse_FecCorrectedUnits
 	IsFecCorrectedUnits isGetOnuCountersResponse_IsFecCorrectedUnits `protobuf_oneof:"is_fec_corrected_units"`
 	// Types that are valid to be assigned to IsXgemKeyErrors:
+	//
 	//	*GetOnuCountersResponse_XgemKeyErrors
 	IsXgemKeyErrors isGetOnuCountersResponse_IsXgemKeyErrors `protobuf_oneof:"is_xgem_key_errors"`
 	// Types that are valid to be assigned to IsXgemLoss:
+	//
 	//	*GetOnuCountersResponse_XgemLoss
 	IsXgemLoss isGetOnuCountersResponse_IsXgemLoss `protobuf_oneof:"is_xgem_loss"`
 	// Types that are valid to be assigned to IsRxPloamsError:
+	//
 	//	*GetOnuCountersResponse_RxPloamsError
 	IsRxPloamsError isGetOnuCountersResponse_IsRxPloamsError `protobuf_oneof:"is_rx_ploams_error"`
 	// Types that are valid to be assigned to IsRxPloamsNonIdle:
+	//
 	//	*GetOnuCountersResponse_RxPloamsNonIdle
 	IsRxPloamsNonIdle isGetOnuCountersResponse_IsRxPloamsNonIdle `protobuf_oneof:"is_rx_ploams_non_idle"`
 	// Types that are valid to be assigned to IsRxOmci:
+	//
 	//	*GetOnuCountersResponse_RxOmci
 	IsRxOmci isGetOnuCountersResponse_IsRxOmci `protobuf_oneof:"is_rx_omci"`
 	// Types that are valid to be assigned to IsTxOmci:
+	//
 	//	*GetOnuCountersResponse_TxOmci
 	IsTxOmci isGetOnuCountersResponse_IsTxOmci `protobuf_oneof:"is_tx_omci"`
 	// Types that are valid to be assigned to IsRxOmciPacketsCrcError:
+	//
 	//	*GetOnuCountersResponse_RxOmciPacketsCrcError
 	IsRxOmciPacketsCrcError isGetOnuCountersResponse_IsRxOmciPacketsCrcError `protobuf_oneof:"is_rx_omci_packets_crc_error"`
 	// Types that are valid to be assigned to IsRxBytes:
+	//
 	//	*GetOnuCountersResponse_RxBytes
 	IsRxBytes isGetOnuCountersResponse_IsRxBytes `protobuf_oneof:"is_rx_bytes"`
 	// Types that are valid to be assigned to IsRxPackets:
+	//
 	//	*GetOnuCountersResponse_RxPackets
 	IsRxPackets isGetOnuCountersResponse_IsRxPackets `protobuf_oneof:"is_rx_packets"`
 	// Types that are valid to be assigned to IsTxBytes:
+	//
 	//	*GetOnuCountersResponse_TxBytes
 	IsTxBytes isGetOnuCountersResponse_IsTxBytes `protobuf_oneof:"is_tx_bytes"`
 	// Types that are valid to be assigned to IsTxPackets:
+	//
 	//	*GetOnuCountersResponse_TxPackets
 	IsTxPackets isGetOnuCountersResponse_IsTxPackets `protobuf_oneof:"is_tx_packets"`
 	// Types that are valid to be assigned to IsBerReported:
+	//
 	//	*GetOnuCountersResponse_BerReported
 	IsBerReported isGetOnuCountersResponse_IsBerReported `protobuf_oneof:"is_ber_reported"`
 	// Types that are valid to be assigned to IsLcdgErrors:
+	//
 	//	*GetOnuCountersResponse_LcdgErrors
 	IsLcdgErrors isGetOnuCountersResponse_IsLcdgErrors `protobuf_oneof:"is_lcdg_errors"`
 	// Types that are valid to be assigned to IsRdiErrors:
+	//
 	//	*GetOnuCountersResponse_RdiErrors
 	IsRdiErrors isGetOnuCountersResponse_IsRdiErrors `protobuf_oneof:"is_rdi_errors"`
 	// Types that are valid to be assigned to IsTimestamp:
+	//
 	//	*GetOnuCountersResponse_Timestamp
 	IsTimestamp isGetOnuCountersResponse_IsTimestamp `protobuf_oneof:"is_timestamp"`
 	// Types that are valid to be assigned to IsHecErrors:
+	//
 	//	*GetOnuCountersResponse_HecErrors
-	IsHecErrors          isGetOnuCountersResponse_IsHecErrors `protobuf_oneof:"is_hec_errors"`
-	XXX_NoUnkeyedLiteral struct{}                             `json:"-"`
-	XXX_unrecognized     []byte                               `json:"-"`
-	XXX_sizecache        int32                                `json:"-"`
+	IsHecErrors   isGetOnuCountersResponse_IsHecErrors `protobuf_oneof:"is_hec_errors"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *GetOnuCountersResponse) Reset()         { *m = GetOnuCountersResponse{} }
-func (m *GetOnuCountersResponse) String() string { return proto.CompactTextString(m) }
-func (*GetOnuCountersResponse) ProtoMessage()    {}
+func (x *GetOnuCountersResponse) Reset() {
+	*x = GetOnuCountersResponse{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[34]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GetOnuCountersResponse) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetOnuCountersResponse) ProtoMessage() {}
+
+func (x *GetOnuCountersResponse) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[34]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetOnuCountersResponse.ProtoReflect.Descriptor instead.
 func (*GetOnuCountersResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{34}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{34}
 }
 
-func (m *GetOnuCountersResponse) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_GetOnuCountersResponse.Unmarshal(m, b)
-}
-func (m *GetOnuCountersResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_GetOnuCountersResponse.Marshal(b, m, deterministic)
-}
-func (m *GetOnuCountersResponse) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_GetOnuCountersResponse.Merge(m, src)
-}
-func (m *GetOnuCountersResponse) XXX_Size() int {
-	return xxx_messageInfo_GetOnuCountersResponse.Size(m)
-}
-func (m *GetOnuCountersResponse) XXX_DiscardUnknown() {
-	xxx_messageInfo_GetOnuCountersResponse.DiscardUnknown(m)
+func (x *GetOnuCountersResponse) GetIsIntfId() isGetOnuCountersResponse_IsIntfId {
+	if x != nil {
+		return x.IsIntfId
+	}
+	return nil
 }
 
-var xxx_messageInfo_GetOnuCountersResponse proto.InternalMessageInfo
+func (x *GetOnuCountersResponse) GetIntfId() uint32 {
+	if x != nil {
+		if x, ok := x.IsIntfId.(*GetOnuCountersResponse_IntfId); ok {
+			return x.IntfId
+		}
+	}
+	return 0
+}
+
+func (x *GetOnuCountersResponse) GetIsOnuId() isGetOnuCountersResponse_IsOnuId {
+	if x != nil {
+		return x.IsOnuId
+	}
+	return nil
+}
+
+func (x *GetOnuCountersResponse) GetOnuId() uint32 {
+	if x != nil {
+		if x, ok := x.IsOnuId.(*GetOnuCountersResponse_OnuId); ok {
+			return x.OnuId
+		}
+	}
+	return 0
+}
+
+func (x *GetOnuCountersResponse) GetIsPositiveDrift() isGetOnuCountersResponse_IsPositiveDrift {
+	if x != nil {
+		return x.IsPositiveDrift
+	}
+	return nil
+}
+
+func (x *GetOnuCountersResponse) GetPositiveDrift() uint64 {
+	if x != nil {
+		if x, ok := x.IsPositiveDrift.(*GetOnuCountersResponse_PositiveDrift); ok {
+			return x.PositiveDrift
+		}
+	}
+	return 0
+}
+
+func (x *GetOnuCountersResponse) GetIsNegativeDrift() isGetOnuCountersResponse_IsNegativeDrift {
+	if x != nil {
+		return x.IsNegativeDrift
+	}
+	return nil
+}
+
+func (x *GetOnuCountersResponse) GetNegativeDrift() uint64 {
+	if x != nil {
+		if x, ok := x.IsNegativeDrift.(*GetOnuCountersResponse_NegativeDrift); ok {
+			return x.NegativeDrift
+		}
+	}
+	return 0
+}
+
+func (x *GetOnuCountersResponse) GetIsDelimiterMissDetection() isGetOnuCountersResponse_IsDelimiterMissDetection {
+	if x != nil {
+		return x.IsDelimiterMissDetection
+	}
+	return nil
+}
+
+func (x *GetOnuCountersResponse) GetDelimiterMissDetection() uint64 {
+	if x != nil {
+		if x, ok := x.IsDelimiterMissDetection.(*GetOnuCountersResponse_DelimiterMissDetection); ok {
+			return x.DelimiterMissDetection
+		}
+	}
+	return 0
+}
+
+func (x *GetOnuCountersResponse) GetIsBipErrors() isGetOnuCountersResponse_IsBipErrors {
+	if x != nil {
+		return x.IsBipErrors
+	}
+	return nil
+}
+
+func (x *GetOnuCountersResponse) GetBipErrors() uint64 {
+	if x != nil {
+		if x, ok := x.IsBipErrors.(*GetOnuCountersResponse_BipErrors); ok {
+			return x.BipErrors
+		}
+	}
+	return 0
+}
+
+func (x *GetOnuCountersResponse) GetIsBipUnits() isGetOnuCountersResponse_IsBipUnits {
+	if x != nil {
+		return x.IsBipUnits
+	}
+	return nil
+}
+
+func (x *GetOnuCountersResponse) GetBipUnits() uint64 {
+	if x != nil {
+		if x, ok := x.IsBipUnits.(*GetOnuCountersResponse_BipUnits); ok {
+			return x.BipUnits
+		}
+	}
+	return 0
+}
+
+func (x *GetOnuCountersResponse) GetIsFecCorrectedSymbols() isGetOnuCountersResponse_IsFecCorrectedSymbols {
+	if x != nil {
+		return x.IsFecCorrectedSymbols
+	}
+	return nil
+}
+
+func (x *GetOnuCountersResponse) GetFecCorrectedSymbols() uint64 {
+	if x != nil {
+		if x, ok := x.IsFecCorrectedSymbols.(*GetOnuCountersResponse_FecCorrectedSymbols); ok {
+			return x.FecCorrectedSymbols
+		}
+	}
+	return 0
+}
+
+func (x *GetOnuCountersResponse) GetIsFecCodewordsCorrected() isGetOnuCountersResponse_IsFecCodewordsCorrected {
+	if x != nil {
+		return x.IsFecCodewordsCorrected
+	}
+	return nil
+}
+
+func (x *GetOnuCountersResponse) GetFecCodewordsCorrected() uint64 {
+	if x != nil {
+		if x, ok := x.IsFecCodewordsCorrected.(*GetOnuCountersResponse_FecCodewordsCorrected); ok {
+			return x.FecCodewordsCorrected
+		}
+	}
+	return 0
+}
+
+func (x *GetOnuCountersResponse) GetIsFecCodewordsUncorrectable() isGetOnuCountersResponse_IsFecCodewordsUncorrectable {
+	if x != nil {
+		return x.IsFecCodewordsUncorrectable
+	}
+	return nil
+}
+
+func (x *GetOnuCountersResponse) GetFecCodewordsUncorrectable() uint64 {
+	if x != nil {
+		if x, ok := x.IsFecCodewordsUncorrectable.(*GetOnuCountersResponse_FecCodewordsUncorrectable); ok {
+			return x.FecCodewordsUncorrectable
+		}
+	}
+	return 0
+}
+
+func (x *GetOnuCountersResponse) GetIsFecCodewords() isGetOnuCountersResponse_IsFecCodewords {
+	if x != nil {
+		return x.IsFecCodewords
+	}
+	return nil
+}
+
+func (x *GetOnuCountersResponse) GetFecCodewords() uint64 {
+	if x != nil {
+		if x, ok := x.IsFecCodewords.(*GetOnuCountersResponse_FecCodewords); ok {
+			return x.FecCodewords
+		}
+	}
+	return 0
+}
+
+func (x *GetOnuCountersResponse) GetIsFecCorrectedUnits() isGetOnuCountersResponse_IsFecCorrectedUnits {
+	if x != nil {
+		return x.IsFecCorrectedUnits
+	}
+	return nil
+}
+
+func (x *GetOnuCountersResponse) GetFecCorrectedUnits() uint64 {
+	if x != nil {
+		if x, ok := x.IsFecCorrectedUnits.(*GetOnuCountersResponse_FecCorrectedUnits); ok {
+			return x.FecCorrectedUnits
+		}
+	}
+	return 0
+}
+
+func (x *GetOnuCountersResponse) GetIsXgemKeyErrors() isGetOnuCountersResponse_IsXgemKeyErrors {
+	if x != nil {
+		return x.IsXgemKeyErrors
+	}
+	return nil
+}
+
+func (x *GetOnuCountersResponse) GetXgemKeyErrors() uint64 {
+	if x != nil {
+		if x, ok := x.IsXgemKeyErrors.(*GetOnuCountersResponse_XgemKeyErrors); ok {
+			return x.XgemKeyErrors
+		}
+	}
+	return 0
+}
+
+func (x *GetOnuCountersResponse) GetIsXgemLoss() isGetOnuCountersResponse_IsXgemLoss {
+	if x != nil {
+		return x.IsXgemLoss
+	}
+	return nil
+}
+
+func (x *GetOnuCountersResponse) GetXgemLoss() uint64 {
+	if x != nil {
+		if x, ok := x.IsXgemLoss.(*GetOnuCountersResponse_XgemLoss); ok {
+			return x.XgemLoss
+		}
+	}
+	return 0
+}
+
+func (x *GetOnuCountersResponse) GetIsRxPloamsError() isGetOnuCountersResponse_IsRxPloamsError {
+	if x != nil {
+		return x.IsRxPloamsError
+	}
+	return nil
+}
+
+func (x *GetOnuCountersResponse) GetRxPloamsError() uint64 {
+	if x != nil {
+		if x, ok := x.IsRxPloamsError.(*GetOnuCountersResponse_RxPloamsError); ok {
+			return x.RxPloamsError
+		}
+	}
+	return 0
+}
+
+func (x *GetOnuCountersResponse) GetIsRxPloamsNonIdle() isGetOnuCountersResponse_IsRxPloamsNonIdle {
+	if x != nil {
+		return x.IsRxPloamsNonIdle
+	}
+	return nil
+}
+
+func (x *GetOnuCountersResponse) GetRxPloamsNonIdle() uint64 {
+	if x != nil {
+		if x, ok := x.IsRxPloamsNonIdle.(*GetOnuCountersResponse_RxPloamsNonIdle); ok {
+			return x.RxPloamsNonIdle
+		}
+	}
+	return 0
+}
+
+func (x *GetOnuCountersResponse) GetIsRxOmci() isGetOnuCountersResponse_IsRxOmci {
+	if x != nil {
+		return x.IsRxOmci
+	}
+	return nil
+}
+
+func (x *GetOnuCountersResponse) GetRxOmci() uint64 {
+	if x != nil {
+		if x, ok := x.IsRxOmci.(*GetOnuCountersResponse_RxOmci); ok {
+			return x.RxOmci
+		}
+	}
+	return 0
+}
+
+func (x *GetOnuCountersResponse) GetIsTxOmci() isGetOnuCountersResponse_IsTxOmci {
+	if x != nil {
+		return x.IsTxOmci
+	}
+	return nil
+}
+
+func (x *GetOnuCountersResponse) GetTxOmci() uint64 {
+	if x != nil {
+		if x, ok := x.IsTxOmci.(*GetOnuCountersResponse_TxOmci); ok {
+			return x.TxOmci
+		}
+	}
+	return 0
+}
+
+func (x *GetOnuCountersResponse) GetIsRxOmciPacketsCrcError() isGetOnuCountersResponse_IsRxOmciPacketsCrcError {
+	if x != nil {
+		return x.IsRxOmciPacketsCrcError
+	}
+	return nil
+}
+
+func (x *GetOnuCountersResponse) GetRxOmciPacketsCrcError() uint64 {
+	if x != nil {
+		if x, ok := x.IsRxOmciPacketsCrcError.(*GetOnuCountersResponse_RxOmciPacketsCrcError); ok {
+			return x.RxOmciPacketsCrcError
+		}
+	}
+	return 0
+}
+
+func (x *GetOnuCountersResponse) GetIsRxBytes() isGetOnuCountersResponse_IsRxBytes {
+	if x != nil {
+		return x.IsRxBytes
+	}
+	return nil
+}
+
+func (x *GetOnuCountersResponse) GetRxBytes() uint64 {
+	if x != nil {
+		if x, ok := x.IsRxBytes.(*GetOnuCountersResponse_RxBytes); ok {
+			return x.RxBytes
+		}
+	}
+	return 0
+}
+
+func (x *GetOnuCountersResponse) GetIsRxPackets() isGetOnuCountersResponse_IsRxPackets {
+	if x != nil {
+		return x.IsRxPackets
+	}
+	return nil
+}
+
+func (x *GetOnuCountersResponse) GetRxPackets() uint64 {
+	if x != nil {
+		if x, ok := x.IsRxPackets.(*GetOnuCountersResponse_RxPackets); ok {
+			return x.RxPackets
+		}
+	}
+	return 0
+}
+
+func (x *GetOnuCountersResponse) GetIsTxBytes() isGetOnuCountersResponse_IsTxBytes {
+	if x != nil {
+		return x.IsTxBytes
+	}
+	return nil
+}
+
+func (x *GetOnuCountersResponse) GetTxBytes() uint64 {
+	if x != nil {
+		if x, ok := x.IsTxBytes.(*GetOnuCountersResponse_TxBytes); ok {
+			return x.TxBytes
+		}
+	}
+	return 0
+}
+
+func (x *GetOnuCountersResponse) GetIsTxPackets() isGetOnuCountersResponse_IsTxPackets {
+	if x != nil {
+		return x.IsTxPackets
+	}
+	return nil
+}
+
+func (x *GetOnuCountersResponse) GetTxPackets() uint64 {
+	if x != nil {
+		if x, ok := x.IsTxPackets.(*GetOnuCountersResponse_TxPackets); ok {
+			return x.TxPackets
+		}
+	}
+	return 0
+}
+
+func (x *GetOnuCountersResponse) GetIsBerReported() isGetOnuCountersResponse_IsBerReported {
+	if x != nil {
+		return x.IsBerReported
+	}
+	return nil
+}
+
+func (x *GetOnuCountersResponse) GetBerReported() uint64 {
+	if x != nil {
+		if x, ok := x.IsBerReported.(*GetOnuCountersResponse_BerReported); ok {
+			return x.BerReported
+		}
+	}
+	return 0
+}
+
+func (x *GetOnuCountersResponse) GetIsLcdgErrors() isGetOnuCountersResponse_IsLcdgErrors {
+	if x != nil {
+		return x.IsLcdgErrors
+	}
+	return nil
+}
+
+func (x *GetOnuCountersResponse) GetLcdgErrors() uint64 {
+	if x != nil {
+		if x, ok := x.IsLcdgErrors.(*GetOnuCountersResponse_LcdgErrors); ok {
+			return x.LcdgErrors
+		}
+	}
+	return 0
+}
+
+func (x *GetOnuCountersResponse) GetIsRdiErrors() isGetOnuCountersResponse_IsRdiErrors {
+	if x != nil {
+		return x.IsRdiErrors
+	}
+	return nil
+}
+
+func (x *GetOnuCountersResponse) GetRdiErrors() uint64 {
+	if x != nil {
+		if x, ok := x.IsRdiErrors.(*GetOnuCountersResponse_RdiErrors); ok {
+			return x.RdiErrors
+		}
+	}
+	return 0
+}
+
+func (x *GetOnuCountersResponse) GetIsTimestamp() isGetOnuCountersResponse_IsTimestamp {
+	if x != nil {
+		return x.IsTimestamp
+	}
+	return nil
+}
+
+func (x *GetOnuCountersResponse) GetTimestamp() uint32 {
+	if x != nil {
+		if x, ok := x.IsTimestamp.(*GetOnuCountersResponse_Timestamp); ok {
+			return x.Timestamp
+		}
+	}
+	return 0
+}
+
+func (x *GetOnuCountersResponse) GetIsHecErrors() isGetOnuCountersResponse_IsHecErrors {
+	if x != nil {
+		return x.IsHecErrors
+	}
+	return nil
+}
+
+func (x *GetOnuCountersResponse) GetHecErrors() uint64 {
+	if x != nil {
+		if x, ok := x.IsHecErrors.(*GetOnuCountersResponse_HecErrors); ok {
+			return x.HecErrors
+		}
+	}
+	return 0
+}
 
 type isGetOnuCountersResponse_IsIntfId interface {
 	isGetOnuCountersResponse_IsIntfId()
@@ -2539,20 +3449,6 @@
 
 func (*GetOnuCountersResponse_IntfId) isGetOnuCountersResponse_IsIntfId() {}
 
-func (m *GetOnuCountersResponse) GetIsIntfId() isGetOnuCountersResponse_IsIntfId {
-	if m != nil {
-		return m.IsIntfId
-	}
-	return nil
-}
-
-func (m *GetOnuCountersResponse) GetIntfId() uint32 {
-	if x, ok := m.GetIsIntfId().(*GetOnuCountersResponse_IntfId); ok {
-		return x.IntfId
-	}
-	return 0
-}
-
 type isGetOnuCountersResponse_IsOnuId interface {
 	isGetOnuCountersResponse_IsOnuId()
 }
@@ -2563,20 +3459,6 @@
 
 func (*GetOnuCountersResponse_OnuId) isGetOnuCountersResponse_IsOnuId() {}
 
-func (m *GetOnuCountersResponse) GetIsOnuId() isGetOnuCountersResponse_IsOnuId {
-	if m != nil {
-		return m.IsOnuId
-	}
-	return nil
-}
-
-func (m *GetOnuCountersResponse) GetOnuId() uint32 {
-	if x, ok := m.GetIsOnuId().(*GetOnuCountersResponse_OnuId); ok {
-		return x.OnuId
-	}
-	return 0
-}
-
 type isGetOnuCountersResponse_IsPositiveDrift interface {
 	isGetOnuCountersResponse_IsPositiveDrift()
 }
@@ -2587,20 +3469,6 @@
 
 func (*GetOnuCountersResponse_PositiveDrift) isGetOnuCountersResponse_IsPositiveDrift() {}
 
-func (m *GetOnuCountersResponse) GetIsPositiveDrift() isGetOnuCountersResponse_IsPositiveDrift {
-	if m != nil {
-		return m.IsPositiveDrift
-	}
-	return nil
-}
-
-func (m *GetOnuCountersResponse) GetPositiveDrift() uint64 {
-	if x, ok := m.GetIsPositiveDrift().(*GetOnuCountersResponse_PositiveDrift); ok {
-		return x.PositiveDrift
-	}
-	return 0
-}
-
 type isGetOnuCountersResponse_IsNegativeDrift interface {
 	isGetOnuCountersResponse_IsNegativeDrift()
 }
@@ -2611,20 +3479,6 @@
 
 func (*GetOnuCountersResponse_NegativeDrift) isGetOnuCountersResponse_IsNegativeDrift() {}
 
-func (m *GetOnuCountersResponse) GetIsNegativeDrift() isGetOnuCountersResponse_IsNegativeDrift {
-	if m != nil {
-		return m.IsNegativeDrift
-	}
-	return nil
-}
-
-func (m *GetOnuCountersResponse) GetNegativeDrift() uint64 {
-	if x, ok := m.GetIsNegativeDrift().(*GetOnuCountersResponse_NegativeDrift); ok {
-		return x.NegativeDrift
-	}
-	return 0
-}
-
 type isGetOnuCountersResponse_IsDelimiterMissDetection interface {
 	isGetOnuCountersResponse_IsDelimiterMissDetection()
 }
@@ -2636,20 +3490,6 @@
 func (*GetOnuCountersResponse_DelimiterMissDetection) isGetOnuCountersResponse_IsDelimiterMissDetection() {
 }
 
-func (m *GetOnuCountersResponse) GetIsDelimiterMissDetection() isGetOnuCountersResponse_IsDelimiterMissDetection {
-	if m != nil {
-		return m.IsDelimiterMissDetection
-	}
-	return nil
-}
-
-func (m *GetOnuCountersResponse) GetDelimiterMissDetection() uint64 {
-	if x, ok := m.GetIsDelimiterMissDetection().(*GetOnuCountersResponse_DelimiterMissDetection); ok {
-		return x.DelimiterMissDetection
-	}
-	return 0
-}
-
 type isGetOnuCountersResponse_IsBipErrors interface {
 	isGetOnuCountersResponse_IsBipErrors()
 }
@@ -2660,20 +3500,6 @@
 
 func (*GetOnuCountersResponse_BipErrors) isGetOnuCountersResponse_IsBipErrors() {}
 
-func (m *GetOnuCountersResponse) GetIsBipErrors() isGetOnuCountersResponse_IsBipErrors {
-	if m != nil {
-		return m.IsBipErrors
-	}
-	return nil
-}
-
-func (m *GetOnuCountersResponse) GetBipErrors() uint64 {
-	if x, ok := m.GetIsBipErrors().(*GetOnuCountersResponse_BipErrors); ok {
-		return x.BipErrors
-	}
-	return 0
-}
-
 type isGetOnuCountersResponse_IsBipUnits interface {
 	isGetOnuCountersResponse_IsBipUnits()
 }
@@ -2684,20 +3510,6 @@
 
 func (*GetOnuCountersResponse_BipUnits) isGetOnuCountersResponse_IsBipUnits() {}
 
-func (m *GetOnuCountersResponse) GetIsBipUnits() isGetOnuCountersResponse_IsBipUnits {
-	if m != nil {
-		return m.IsBipUnits
-	}
-	return nil
-}
-
-func (m *GetOnuCountersResponse) GetBipUnits() uint64 {
-	if x, ok := m.GetIsBipUnits().(*GetOnuCountersResponse_BipUnits); ok {
-		return x.BipUnits
-	}
-	return 0
-}
-
 type isGetOnuCountersResponse_IsFecCorrectedSymbols interface {
 	isGetOnuCountersResponse_IsFecCorrectedSymbols()
 }
@@ -2708,20 +3520,6 @@
 
 func (*GetOnuCountersResponse_FecCorrectedSymbols) isGetOnuCountersResponse_IsFecCorrectedSymbols() {}
 
-func (m *GetOnuCountersResponse) GetIsFecCorrectedSymbols() isGetOnuCountersResponse_IsFecCorrectedSymbols {
-	if m != nil {
-		return m.IsFecCorrectedSymbols
-	}
-	return nil
-}
-
-func (m *GetOnuCountersResponse) GetFecCorrectedSymbols() uint64 {
-	if x, ok := m.GetIsFecCorrectedSymbols().(*GetOnuCountersResponse_FecCorrectedSymbols); ok {
-		return x.FecCorrectedSymbols
-	}
-	return 0
-}
-
 type isGetOnuCountersResponse_IsFecCodewordsCorrected interface {
 	isGetOnuCountersResponse_IsFecCodewordsCorrected()
 }
@@ -2733,20 +3531,6 @@
 func (*GetOnuCountersResponse_FecCodewordsCorrected) isGetOnuCountersResponse_IsFecCodewordsCorrected() {
 }
 
-func (m *GetOnuCountersResponse) GetIsFecCodewordsCorrected() isGetOnuCountersResponse_IsFecCodewordsCorrected {
-	if m != nil {
-		return m.IsFecCodewordsCorrected
-	}
-	return nil
-}
-
-func (m *GetOnuCountersResponse) GetFecCodewordsCorrected() uint64 {
-	if x, ok := m.GetIsFecCodewordsCorrected().(*GetOnuCountersResponse_FecCodewordsCorrected); ok {
-		return x.FecCodewordsCorrected
-	}
-	return 0
-}
-
 type isGetOnuCountersResponse_IsFecCodewordsUncorrectable interface {
 	isGetOnuCountersResponse_IsFecCodewordsUncorrectable()
 }
@@ -2758,20 +3542,6 @@
 func (*GetOnuCountersResponse_FecCodewordsUncorrectable) isGetOnuCountersResponse_IsFecCodewordsUncorrectable() {
 }
 
-func (m *GetOnuCountersResponse) GetIsFecCodewordsUncorrectable() isGetOnuCountersResponse_IsFecCodewordsUncorrectable {
-	if m != nil {
-		return m.IsFecCodewordsUncorrectable
-	}
-	return nil
-}
-
-func (m *GetOnuCountersResponse) GetFecCodewordsUncorrectable() uint64 {
-	if x, ok := m.GetIsFecCodewordsUncorrectable().(*GetOnuCountersResponse_FecCodewordsUncorrectable); ok {
-		return x.FecCodewordsUncorrectable
-	}
-	return 0
-}
-
 type isGetOnuCountersResponse_IsFecCodewords interface {
 	isGetOnuCountersResponse_IsFecCodewords()
 }
@@ -2782,20 +3552,6 @@
 
 func (*GetOnuCountersResponse_FecCodewords) isGetOnuCountersResponse_IsFecCodewords() {}
 
-func (m *GetOnuCountersResponse) GetIsFecCodewords() isGetOnuCountersResponse_IsFecCodewords {
-	if m != nil {
-		return m.IsFecCodewords
-	}
-	return nil
-}
-
-func (m *GetOnuCountersResponse) GetFecCodewords() uint64 {
-	if x, ok := m.GetIsFecCodewords().(*GetOnuCountersResponse_FecCodewords); ok {
-		return x.FecCodewords
-	}
-	return 0
-}
-
 type isGetOnuCountersResponse_IsFecCorrectedUnits interface {
 	isGetOnuCountersResponse_IsFecCorrectedUnits()
 }
@@ -2806,20 +3562,6 @@
 
 func (*GetOnuCountersResponse_FecCorrectedUnits) isGetOnuCountersResponse_IsFecCorrectedUnits() {}
 
-func (m *GetOnuCountersResponse) GetIsFecCorrectedUnits() isGetOnuCountersResponse_IsFecCorrectedUnits {
-	if m != nil {
-		return m.IsFecCorrectedUnits
-	}
-	return nil
-}
-
-func (m *GetOnuCountersResponse) GetFecCorrectedUnits() uint64 {
-	if x, ok := m.GetIsFecCorrectedUnits().(*GetOnuCountersResponse_FecCorrectedUnits); ok {
-		return x.FecCorrectedUnits
-	}
-	return 0
-}
-
 type isGetOnuCountersResponse_IsXgemKeyErrors interface {
 	isGetOnuCountersResponse_IsXgemKeyErrors()
 }
@@ -2830,20 +3572,6 @@
 
 func (*GetOnuCountersResponse_XgemKeyErrors) isGetOnuCountersResponse_IsXgemKeyErrors() {}
 
-func (m *GetOnuCountersResponse) GetIsXgemKeyErrors() isGetOnuCountersResponse_IsXgemKeyErrors {
-	if m != nil {
-		return m.IsXgemKeyErrors
-	}
-	return nil
-}
-
-func (m *GetOnuCountersResponse) GetXgemKeyErrors() uint64 {
-	if x, ok := m.GetIsXgemKeyErrors().(*GetOnuCountersResponse_XgemKeyErrors); ok {
-		return x.XgemKeyErrors
-	}
-	return 0
-}
-
 type isGetOnuCountersResponse_IsXgemLoss interface {
 	isGetOnuCountersResponse_IsXgemLoss()
 }
@@ -2854,20 +3582,6 @@
 
 func (*GetOnuCountersResponse_XgemLoss) isGetOnuCountersResponse_IsXgemLoss() {}
 
-func (m *GetOnuCountersResponse) GetIsXgemLoss() isGetOnuCountersResponse_IsXgemLoss {
-	if m != nil {
-		return m.IsXgemLoss
-	}
-	return nil
-}
-
-func (m *GetOnuCountersResponse) GetXgemLoss() uint64 {
-	if x, ok := m.GetIsXgemLoss().(*GetOnuCountersResponse_XgemLoss); ok {
-		return x.XgemLoss
-	}
-	return 0
-}
-
 type isGetOnuCountersResponse_IsRxPloamsError interface {
 	isGetOnuCountersResponse_IsRxPloamsError()
 }
@@ -2878,20 +3592,6 @@
 
 func (*GetOnuCountersResponse_RxPloamsError) isGetOnuCountersResponse_IsRxPloamsError() {}
 
-func (m *GetOnuCountersResponse) GetIsRxPloamsError() isGetOnuCountersResponse_IsRxPloamsError {
-	if m != nil {
-		return m.IsRxPloamsError
-	}
-	return nil
-}
-
-func (m *GetOnuCountersResponse) GetRxPloamsError() uint64 {
-	if x, ok := m.GetIsRxPloamsError().(*GetOnuCountersResponse_RxPloamsError); ok {
-		return x.RxPloamsError
-	}
-	return 0
-}
-
 type isGetOnuCountersResponse_IsRxPloamsNonIdle interface {
 	isGetOnuCountersResponse_IsRxPloamsNonIdle()
 }
@@ -2902,20 +3602,6 @@
 
 func (*GetOnuCountersResponse_RxPloamsNonIdle) isGetOnuCountersResponse_IsRxPloamsNonIdle() {}
 
-func (m *GetOnuCountersResponse) GetIsRxPloamsNonIdle() isGetOnuCountersResponse_IsRxPloamsNonIdle {
-	if m != nil {
-		return m.IsRxPloamsNonIdle
-	}
-	return nil
-}
-
-func (m *GetOnuCountersResponse) GetRxPloamsNonIdle() uint64 {
-	if x, ok := m.GetIsRxPloamsNonIdle().(*GetOnuCountersResponse_RxPloamsNonIdle); ok {
-		return x.RxPloamsNonIdle
-	}
-	return 0
-}
-
 type isGetOnuCountersResponse_IsRxOmci interface {
 	isGetOnuCountersResponse_IsRxOmci()
 }
@@ -2926,20 +3612,6 @@
 
 func (*GetOnuCountersResponse_RxOmci) isGetOnuCountersResponse_IsRxOmci() {}
 
-func (m *GetOnuCountersResponse) GetIsRxOmci() isGetOnuCountersResponse_IsRxOmci {
-	if m != nil {
-		return m.IsRxOmci
-	}
-	return nil
-}
-
-func (m *GetOnuCountersResponse) GetRxOmci() uint64 {
-	if x, ok := m.GetIsRxOmci().(*GetOnuCountersResponse_RxOmci); ok {
-		return x.RxOmci
-	}
-	return 0
-}
-
 type isGetOnuCountersResponse_IsTxOmci interface {
 	isGetOnuCountersResponse_IsTxOmci()
 }
@@ -2950,20 +3622,6 @@
 
 func (*GetOnuCountersResponse_TxOmci) isGetOnuCountersResponse_IsTxOmci() {}
 
-func (m *GetOnuCountersResponse) GetIsTxOmci() isGetOnuCountersResponse_IsTxOmci {
-	if m != nil {
-		return m.IsTxOmci
-	}
-	return nil
-}
-
-func (m *GetOnuCountersResponse) GetTxOmci() uint64 {
-	if x, ok := m.GetIsTxOmci().(*GetOnuCountersResponse_TxOmci); ok {
-		return x.TxOmci
-	}
-	return 0
-}
-
 type isGetOnuCountersResponse_IsRxOmciPacketsCrcError interface {
 	isGetOnuCountersResponse_IsRxOmciPacketsCrcError()
 }
@@ -2975,20 +3633,6 @@
 func (*GetOnuCountersResponse_RxOmciPacketsCrcError) isGetOnuCountersResponse_IsRxOmciPacketsCrcError() {
 }
 
-func (m *GetOnuCountersResponse) GetIsRxOmciPacketsCrcError() isGetOnuCountersResponse_IsRxOmciPacketsCrcError {
-	if m != nil {
-		return m.IsRxOmciPacketsCrcError
-	}
-	return nil
-}
-
-func (m *GetOnuCountersResponse) GetRxOmciPacketsCrcError() uint64 {
-	if x, ok := m.GetIsRxOmciPacketsCrcError().(*GetOnuCountersResponse_RxOmciPacketsCrcError); ok {
-		return x.RxOmciPacketsCrcError
-	}
-	return 0
-}
-
 type isGetOnuCountersResponse_IsRxBytes interface {
 	isGetOnuCountersResponse_IsRxBytes()
 }
@@ -2999,20 +3643,6 @@
 
 func (*GetOnuCountersResponse_RxBytes) isGetOnuCountersResponse_IsRxBytes() {}
 
-func (m *GetOnuCountersResponse) GetIsRxBytes() isGetOnuCountersResponse_IsRxBytes {
-	if m != nil {
-		return m.IsRxBytes
-	}
-	return nil
-}
-
-func (m *GetOnuCountersResponse) GetRxBytes() uint64 {
-	if x, ok := m.GetIsRxBytes().(*GetOnuCountersResponse_RxBytes); ok {
-		return x.RxBytes
-	}
-	return 0
-}
-
 type isGetOnuCountersResponse_IsRxPackets interface {
 	isGetOnuCountersResponse_IsRxPackets()
 }
@@ -3023,20 +3653,6 @@
 
 func (*GetOnuCountersResponse_RxPackets) isGetOnuCountersResponse_IsRxPackets() {}
 
-func (m *GetOnuCountersResponse) GetIsRxPackets() isGetOnuCountersResponse_IsRxPackets {
-	if m != nil {
-		return m.IsRxPackets
-	}
-	return nil
-}
-
-func (m *GetOnuCountersResponse) GetRxPackets() uint64 {
-	if x, ok := m.GetIsRxPackets().(*GetOnuCountersResponse_RxPackets); ok {
-		return x.RxPackets
-	}
-	return 0
-}
-
 type isGetOnuCountersResponse_IsTxBytes interface {
 	isGetOnuCountersResponse_IsTxBytes()
 }
@@ -3047,20 +3663,6 @@
 
 func (*GetOnuCountersResponse_TxBytes) isGetOnuCountersResponse_IsTxBytes() {}
 
-func (m *GetOnuCountersResponse) GetIsTxBytes() isGetOnuCountersResponse_IsTxBytes {
-	if m != nil {
-		return m.IsTxBytes
-	}
-	return nil
-}
-
-func (m *GetOnuCountersResponse) GetTxBytes() uint64 {
-	if x, ok := m.GetIsTxBytes().(*GetOnuCountersResponse_TxBytes); ok {
-		return x.TxBytes
-	}
-	return 0
-}
-
 type isGetOnuCountersResponse_IsTxPackets interface {
 	isGetOnuCountersResponse_IsTxPackets()
 }
@@ -3071,20 +3673,6 @@
 
 func (*GetOnuCountersResponse_TxPackets) isGetOnuCountersResponse_IsTxPackets() {}
 
-func (m *GetOnuCountersResponse) GetIsTxPackets() isGetOnuCountersResponse_IsTxPackets {
-	if m != nil {
-		return m.IsTxPackets
-	}
-	return nil
-}
-
-func (m *GetOnuCountersResponse) GetTxPackets() uint64 {
-	if x, ok := m.GetIsTxPackets().(*GetOnuCountersResponse_TxPackets); ok {
-		return x.TxPackets
-	}
-	return 0
-}
-
 type isGetOnuCountersResponse_IsBerReported interface {
 	isGetOnuCountersResponse_IsBerReported()
 }
@@ -3095,20 +3683,6 @@
 
 func (*GetOnuCountersResponse_BerReported) isGetOnuCountersResponse_IsBerReported() {}
 
-func (m *GetOnuCountersResponse) GetIsBerReported() isGetOnuCountersResponse_IsBerReported {
-	if m != nil {
-		return m.IsBerReported
-	}
-	return nil
-}
-
-func (m *GetOnuCountersResponse) GetBerReported() uint64 {
-	if x, ok := m.GetIsBerReported().(*GetOnuCountersResponse_BerReported); ok {
-		return x.BerReported
-	}
-	return 0
-}
-
 type isGetOnuCountersResponse_IsLcdgErrors interface {
 	isGetOnuCountersResponse_IsLcdgErrors()
 }
@@ -3119,20 +3693,6 @@
 
 func (*GetOnuCountersResponse_LcdgErrors) isGetOnuCountersResponse_IsLcdgErrors() {}
 
-func (m *GetOnuCountersResponse) GetIsLcdgErrors() isGetOnuCountersResponse_IsLcdgErrors {
-	if m != nil {
-		return m.IsLcdgErrors
-	}
-	return nil
-}
-
-func (m *GetOnuCountersResponse) GetLcdgErrors() uint64 {
-	if x, ok := m.GetIsLcdgErrors().(*GetOnuCountersResponse_LcdgErrors); ok {
-		return x.LcdgErrors
-	}
-	return 0
-}
-
 type isGetOnuCountersResponse_IsRdiErrors interface {
 	isGetOnuCountersResponse_IsRdiErrors()
 }
@@ -3143,44 +3703,17 @@
 
 func (*GetOnuCountersResponse_RdiErrors) isGetOnuCountersResponse_IsRdiErrors() {}
 
-func (m *GetOnuCountersResponse) GetIsRdiErrors() isGetOnuCountersResponse_IsRdiErrors {
-	if m != nil {
-		return m.IsRdiErrors
-	}
-	return nil
-}
-
-func (m *GetOnuCountersResponse) GetRdiErrors() uint64 {
-	if x, ok := m.GetIsRdiErrors().(*GetOnuCountersResponse_RdiErrors); ok {
-		return x.RdiErrors
-	}
-	return 0
-}
-
 type isGetOnuCountersResponse_IsTimestamp interface {
 	isGetOnuCountersResponse_IsTimestamp()
 }
 
 type GetOnuCountersResponse_Timestamp struct {
+	// reported timestamp in seconds since epoch
 	Timestamp uint32 `protobuf:"fixed32,27,opt,name=timestamp,proto3,oneof"`
 }
 
 func (*GetOnuCountersResponse_Timestamp) isGetOnuCountersResponse_IsTimestamp() {}
 
-func (m *GetOnuCountersResponse) GetIsTimestamp() isGetOnuCountersResponse_IsTimestamp {
-	if m != nil {
-		return m.IsTimestamp
-	}
-	return nil
-}
-
-func (m *GetOnuCountersResponse) GetTimestamp() uint32 {
-	if x, ok := m.GetIsTimestamp().(*GetOnuCountersResponse_Timestamp); ok {
-		return x.Timestamp
-	}
-	return 0
-}
-
 type isGetOnuCountersResponse_IsHecErrors interface {
 	isGetOnuCountersResponse_IsHecErrors()
 }
@@ -3191,477 +3724,458 @@
 
 func (*GetOnuCountersResponse_HecErrors) isGetOnuCountersResponse_IsHecErrors() {}
 
-func (m *GetOnuCountersResponse) GetIsHecErrors() isGetOnuCountersResponse_IsHecErrors {
-	if m != nil {
-		return m.IsHecErrors
-	}
-	return nil
-}
-
-func (m *GetOnuCountersResponse) GetHecErrors() uint64 {
-	if x, ok := m.GetIsHecErrors().(*GetOnuCountersResponse_HecErrors); ok {
-		return x.HecErrors
-	}
-	return 0
-}
-
-// XXX_OneofWrappers is for the internal use of the proto package.
-func (*GetOnuCountersResponse) XXX_OneofWrappers() []interface{} {
-	return []interface{}{
-		(*GetOnuCountersResponse_IntfId)(nil),
-		(*GetOnuCountersResponse_OnuId)(nil),
-		(*GetOnuCountersResponse_PositiveDrift)(nil),
-		(*GetOnuCountersResponse_NegativeDrift)(nil),
-		(*GetOnuCountersResponse_DelimiterMissDetection)(nil),
-		(*GetOnuCountersResponse_BipErrors)(nil),
-		(*GetOnuCountersResponse_BipUnits)(nil),
-		(*GetOnuCountersResponse_FecCorrectedSymbols)(nil),
-		(*GetOnuCountersResponse_FecCodewordsCorrected)(nil),
-		(*GetOnuCountersResponse_FecCodewordsUncorrectable)(nil),
-		(*GetOnuCountersResponse_FecCodewords)(nil),
-		(*GetOnuCountersResponse_FecCorrectedUnits)(nil),
-		(*GetOnuCountersResponse_XgemKeyErrors)(nil),
-		(*GetOnuCountersResponse_XgemLoss)(nil),
-		(*GetOnuCountersResponse_RxPloamsError)(nil),
-		(*GetOnuCountersResponse_RxPloamsNonIdle)(nil),
-		(*GetOnuCountersResponse_RxOmci)(nil),
-		(*GetOnuCountersResponse_TxOmci)(nil),
-		(*GetOnuCountersResponse_RxOmciPacketsCrcError)(nil),
-		(*GetOnuCountersResponse_RxBytes)(nil),
-		(*GetOnuCountersResponse_RxPackets)(nil),
-		(*GetOnuCountersResponse_TxBytes)(nil),
-		(*GetOnuCountersResponse_TxPackets)(nil),
-		(*GetOnuCountersResponse_BerReported)(nil),
-		(*GetOnuCountersResponse_LcdgErrors)(nil),
-		(*GetOnuCountersResponse_RdiErrors)(nil),
-		(*GetOnuCountersResponse_Timestamp)(nil),
-		(*GetOnuCountersResponse_HecErrors)(nil),
-	}
-}
-
 type OmciEthernetFrameExtendedPm struct {
-	DropEvents               uint64   `protobuf:"fixed64,1,opt,name=drop_events,json=dropEvents,proto3" json:"drop_events,omitempty"`
-	Octets                   uint64   `protobuf:"fixed64,2,opt,name=octets,proto3" json:"octets,omitempty"`
-	Frames                   uint64   `protobuf:"fixed64,3,opt,name=frames,proto3" json:"frames,omitempty"`
-	BroadcastFrames          uint64   `protobuf:"fixed64,4,opt,name=broadcast_frames,json=broadcastFrames,proto3" json:"broadcast_frames,omitempty"`
-	MulticastFrames          uint64   `protobuf:"fixed64,5,opt,name=multicast_frames,json=multicastFrames,proto3" json:"multicast_frames,omitempty"`
-	CrcErroredFrames         uint64   `protobuf:"fixed64,6,opt,name=crc_errored_frames,json=crcErroredFrames,proto3" json:"crc_errored_frames,omitempty"`
-	UndersizeFrames          uint64   `protobuf:"fixed64,7,opt,name=undersize_frames,json=undersizeFrames,proto3" json:"undersize_frames,omitempty"`
-	OversizeFrames           uint64   `protobuf:"fixed64,8,opt,name=oversize_frames,json=oversizeFrames,proto3" json:"oversize_frames,omitempty"`
-	Frames_64Octets          uint64   `protobuf:"fixed64,9,opt,name=frames_64_octets,json=frames64Octets,proto3" json:"frames_64_octets,omitempty"`
-	Frames_65To_127Octets    uint64   `protobuf:"fixed64,10,opt,name=frames_65_to_127_octets,json=frames65To127Octets,proto3" json:"frames_65_to_127_octets,omitempty"`
-	Frames_128To_255Octets   uint64   `protobuf:"fixed64,11,opt,name=frames_128_to_255_octets,json=frames128To255Octets,proto3" json:"frames_128_to_255_octets,omitempty"`
-	Frames_256To_511Octets   uint64   `protobuf:"fixed64,12,opt,name=frames_256_to_511_octets,json=frames256To511Octets,proto3" json:"frames_256_to_511_octets,omitempty"`
-	Frames_512To_1023Octets  uint64   `protobuf:"fixed64,13,opt,name=frames_512_to_1023_octets,json=frames512To1023Octets,proto3" json:"frames_512_to_1023_octets,omitempty"`
-	Frames_1024To_1518Octets uint64   `protobuf:"fixed64,14,opt,name=frames_1024_to_1518_octets,json=frames1024To1518Octets,proto3" json:"frames_1024_to_1518_octets,omitempty"`
-	XXX_NoUnkeyedLiteral     struct{} `json:"-"`
-	XXX_unrecognized         []byte   `json:"-"`
-	XXX_sizecache            int32    `json:"-"`
+	state                    protoimpl.MessageState `protogen:"open.v1"`
+	DropEvents               uint64                 `protobuf:"fixed64,1,opt,name=drop_events,json=dropEvents,proto3" json:"drop_events,omitempty"`
+	Octets                   uint64                 `protobuf:"fixed64,2,opt,name=octets,proto3" json:"octets,omitempty"`
+	Frames                   uint64                 `protobuf:"fixed64,3,opt,name=frames,proto3" json:"frames,omitempty"`
+	BroadcastFrames          uint64                 `protobuf:"fixed64,4,opt,name=broadcast_frames,json=broadcastFrames,proto3" json:"broadcast_frames,omitempty"`
+	MulticastFrames          uint64                 `protobuf:"fixed64,5,opt,name=multicast_frames,json=multicastFrames,proto3" json:"multicast_frames,omitempty"`
+	CrcErroredFrames         uint64                 `protobuf:"fixed64,6,opt,name=crc_errored_frames,json=crcErroredFrames,proto3" json:"crc_errored_frames,omitempty"`
+	UndersizeFrames          uint64                 `protobuf:"fixed64,7,opt,name=undersize_frames,json=undersizeFrames,proto3" json:"undersize_frames,omitempty"`
+	OversizeFrames           uint64                 `protobuf:"fixed64,8,opt,name=oversize_frames,json=oversizeFrames,proto3" json:"oversize_frames,omitempty"`
+	Frames_64Octets          uint64                 `protobuf:"fixed64,9,opt,name=frames_64_octets,json=frames64Octets,proto3" json:"frames_64_octets,omitempty"`
+	Frames_65To_127Octets    uint64                 `protobuf:"fixed64,10,opt,name=frames_65_to_127_octets,json=frames65To127Octets,proto3" json:"frames_65_to_127_octets,omitempty"`
+	Frames_128To_255Octets   uint64                 `protobuf:"fixed64,11,opt,name=frames_128_to_255_octets,json=frames128To255Octets,proto3" json:"frames_128_to_255_octets,omitempty"`
+	Frames_256To_511Octets   uint64                 `protobuf:"fixed64,12,opt,name=frames_256_to_511_octets,json=frames256To511Octets,proto3" json:"frames_256_to_511_octets,omitempty"`
+	Frames_512To_1023Octets  uint64                 `protobuf:"fixed64,13,opt,name=frames_512_to_1023_octets,json=frames512To1023Octets,proto3" json:"frames_512_to_1023_octets,omitempty"`
+	Frames_1024To_1518Octets uint64                 `protobuf:"fixed64,14,opt,name=frames_1024_to_1518_octets,json=frames1024To1518Octets,proto3" json:"frames_1024_to_1518_octets,omitempty"`
+	unknownFields            protoimpl.UnknownFields
+	sizeCache                protoimpl.SizeCache
 }
 
-func (m *OmciEthernetFrameExtendedPm) Reset()         { *m = OmciEthernetFrameExtendedPm{} }
-func (m *OmciEthernetFrameExtendedPm) String() string { return proto.CompactTextString(m) }
-func (*OmciEthernetFrameExtendedPm) ProtoMessage()    {}
+func (x *OmciEthernetFrameExtendedPm) Reset() {
+	*x = OmciEthernetFrameExtendedPm{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[35]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OmciEthernetFrameExtendedPm) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OmciEthernetFrameExtendedPm) ProtoMessage() {}
+
+func (x *OmciEthernetFrameExtendedPm) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[35]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OmciEthernetFrameExtendedPm.ProtoReflect.Descriptor instead.
 func (*OmciEthernetFrameExtendedPm) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{35}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{35}
 }
 
-func (m *OmciEthernetFrameExtendedPm) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OmciEthernetFrameExtendedPm.Unmarshal(m, b)
-}
-func (m *OmciEthernetFrameExtendedPm) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OmciEthernetFrameExtendedPm.Marshal(b, m, deterministic)
-}
-func (m *OmciEthernetFrameExtendedPm) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OmciEthernetFrameExtendedPm.Merge(m, src)
-}
-func (m *OmciEthernetFrameExtendedPm) XXX_Size() int {
-	return xxx_messageInfo_OmciEthernetFrameExtendedPm.Size(m)
-}
-func (m *OmciEthernetFrameExtendedPm) XXX_DiscardUnknown() {
-	xxx_messageInfo_OmciEthernetFrameExtendedPm.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OmciEthernetFrameExtendedPm proto.InternalMessageInfo
-
-func (m *OmciEthernetFrameExtendedPm) GetDropEvents() uint64 {
-	if m != nil {
-		return m.DropEvents
+func (x *OmciEthernetFrameExtendedPm) GetDropEvents() uint64 {
+	if x != nil {
+		return x.DropEvents
 	}
 	return 0
 }
 
-func (m *OmciEthernetFrameExtendedPm) GetOctets() uint64 {
-	if m != nil {
-		return m.Octets
+func (x *OmciEthernetFrameExtendedPm) GetOctets() uint64 {
+	if x != nil {
+		return x.Octets
 	}
 	return 0
 }
 
-func (m *OmciEthernetFrameExtendedPm) GetFrames() uint64 {
-	if m != nil {
-		return m.Frames
+func (x *OmciEthernetFrameExtendedPm) GetFrames() uint64 {
+	if x != nil {
+		return x.Frames
 	}
 	return 0
 }
 
-func (m *OmciEthernetFrameExtendedPm) GetBroadcastFrames() uint64 {
-	if m != nil {
-		return m.BroadcastFrames
+func (x *OmciEthernetFrameExtendedPm) GetBroadcastFrames() uint64 {
+	if x != nil {
+		return x.BroadcastFrames
 	}
 	return 0
 }
 
-func (m *OmciEthernetFrameExtendedPm) GetMulticastFrames() uint64 {
-	if m != nil {
-		return m.MulticastFrames
+func (x *OmciEthernetFrameExtendedPm) GetMulticastFrames() uint64 {
+	if x != nil {
+		return x.MulticastFrames
 	}
 	return 0
 }
 
-func (m *OmciEthernetFrameExtendedPm) GetCrcErroredFrames() uint64 {
-	if m != nil {
-		return m.CrcErroredFrames
+func (x *OmciEthernetFrameExtendedPm) GetCrcErroredFrames() uint64 {
+	if x != nil {
+		return x.CrcErroredFrames
 	}
 	return 0
 }
 
-func (m *OmciEthernetFrameExtendedPm) GetUndersizeFrames() uint64 {
-	if m != nil {
-		return m.UndersizeFrames
+func (x *OmciEthernetFrameExtendedPm) GetUndersizeFrames() uint64 {
+	if x != nil {
+		return x.UndersizeFrames
 	}
 	return 0
 }
 
-func (m *OmciEthernetFrameExtendedPm) GetOversizeFrames() uint64 {
-	if m != nil {
-		return m.OversizeFrames
+func (x *OmciEthernetFrameExtendedPm) GetOversizeFrames() uint64 {
+	if x != nil {
+		return x.OversizeFrames
 	}
 	return 0
 }
 
-func (m *OmciEthernetFrameExtendedPm) GetFrames_64Octets() uint64 {
-	if m != nil {
-		return m.Frames_64Octets
+func (x *OmciEthernetFrameExtendedPm) GetFrames_64Octets() uint64 {
+	if x != nil {
+		return x.Frames_64Octets
 	}
 	return 0
 }
 
-func (m *OmciEthernetFrameExtendedPm) GetFrames_65To_127Octets() uint64 {
-	if m != nil {
-		return m.Frames_65To_127Octets
+func (x *OmciEthernetFrameExtendedPm) GetFrames_65To_127Octets() uint64 {
+	if x != nil {
+		return x.Frames_65To_127Octets
 	}
 	return 0
 }
 
-func (m *OmciEthernetFrameExtendedPm) GetFrames_128To_255Octets() uint64 {
-	if m != nil {
-		return m.Frames_128To_255Octets
+func (x *OmciEthernetFrameExtendedPm) GetFrames_128To_255Octets() uint64 {
+	if x != nil {
+		return x.Frames_128To_255Octets
 	}
 	return 0
 }
 
-func (m *OmciEthernetFrameExtendedPm) GetFrames_256To_511Octets() uint64 {
-	if m != nil {
-		return m.Frames_256To_511Octets
+func (x *OmciEthernetFrameExtendedPm) GetFrames_256To_511Octets() uint64 {
+	if x != nil {
+		return x.Frames_256To_511Octets
 	}
 	return 0
 }
 
-func (m *OmciEthernetFrameExtendedPm) GetFrames_512To_1023Octets() uint64 {
-	if m != nil {
-		return m.Frames_512To_1023Octets
+func (x *OmciEthernetFrameExtendedPm) GetFrames_512To_1023Octets() uint64 {
+	if x != nil {
+		return x.Frames_512To_1023Octets
 	}
 	return 0
 }
 
-func (m *OmciEthernetFrameExtendedPm) GetFrames_1024To_1518Octets() uint64 {
-	if m != nil {
-		return m.Frames_1024To_1518Octets
+func (x *OmciEthernetFrameExtendedPm) GetFrames_1024To_1518Octets() uint64 {
+	if x != nil {
+		return x.Frames_1024To_1518Octets
 	}
 	return 0
 }
 
 type GetOmciEthernetFrameExtendedPmResponse struct {
+	state                             protoimpl.MessageState                        `protogen:"open.v1"`
 	Upstream                          *OmciEthernetFrameExtendedPm                  `protobuf:"bytes,1,opt,name=upstream,proto3" json:"upstream,omitempty"`
 	Downstream                        *OmciEthernetFrameExtendedPm                  `protobuf:"bytes,2,opt,name=downstream,proto3" json:"downstream,omitempty"`
 	OmciEthernetFrameExtendedPmFormat GetOmciEthernetFrameExtendedPmResponse_Format `protobuf:"varint,3,opt,name=omci_ethernet_frame_extended_pm_format,json=omciEthernetFrameExtendedPmFormat,proto3,enum=extension.GetOmciEthernetFrameExtendedPmResponse_Format" json:"omci_ethernet_frame_extended_pm_format,omitempty"`
-	XXX_NoUnkeyedLiteral              struct{}                                      `json:"-"`
-	XXX_unrecognized                  []byte                                        `json:"-"`
-	XXX_sizecache                     int32                                         `json:"-"`
+	unknownFields                     protoimpl.UnknownFields
+	sizeCache                         protoimpl.SizeCache
 }
 
-func (m *GetOmciEthernetFrameExtendedPmResponse) Reset() {
-	*m = GetOmciEthernetFrameExtendedPmResponse{}
+func (x *GetOmciEthernetFrameExtendedPmResponse) Reset() {
+	*x = GetOmciEthernetFrameExtendedPmResponse{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[36]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
-func (m *GetOmciEthernetFrameExtendedPmResponse) String() string { return proto.CompactTextString(m) }
-func (*GetOmciEthernetFrameExtendedPmResponse) ProtoMessage()    {}
+
+func (x *GetOmciEthernetFrameExtendedPmResponse) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetOmciEthernetFrameExtendedPmResponse) ProtoMessage() {}
+
+func (x *GetOmciEthernetFrameExtendedPmResponse) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[36]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetOmciEthernetFrameExtendedPmResponse.ProtoReflect.Descriptor instead.
 func (*GetOmciEthernetFrameExtendedPmResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{36}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{36}
 }
 
-func (m *GetOmciEthernetFrameExtendedPmResponse) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_GetOmciEthernetFrameExtendedPmResponse.Unmarshal(m, b)
-}
-func (m *GetOmciEthernetFrameExtendedPmResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_GetOmciEthernetFrameExtendedPmResponse.Marshal(b, m, deterministic)
-}
-func (m *GetOmciEthernetFrameExtendedPmResponse) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_GetOmciEthernetFrameExtendedPmResponse.Merge(m, src)
-}
-func (m *GetOmciEthernetFrameExtendedPmResponse) XXX_Size() int {
-	return xxx_messageInfo_GetOmciEthernetFrameExtendedPmResponse.Size(m)
-}
-func (m *GetOmciEthernetFrameExtendedPmResponse) XXX_DiscardUnknown() {
-	xxx_messageInfo_GetOmciEthernetFrameExtendedPmResponse.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_GetOmciEthernetFrameExtendedPmResponse proto.InternalMessageInfo
-
-func (m *GetOmciEthernetFrameExtendedPmResponse) GetUpstream() *OmciEthernetFrameExtendedPm {
-	if m != nil {
-		return m.Upstream
+func (x *GetOmciEthernetFrameExtendedPmResponse) GetUpstream() *OmciEthernetFrameExtendedPm {
+	if x != nil {
+		return x.Upstream
 	}
 	return nil
 }
 
-func (m *GetOmciEthernetFrameExtendedPmResponse) GetDownstream() *OmciEthernetFrameExtendedPm {
-	if m != nil {
-		return m.Downstream
+func (x *GetOmciEthernetFrameExtendedPmResponse) GetDownstream() *OmciEthernetFrameExtendedPm {
+	if x != nil {
+		return x.Downstream
 	}
 	return nil
 }
 
-func (m *GetOmciEthernetFrameExtendedPmResponse) GetOmciEthernetFrameExtendedPmFormat() GetOmciEthernetFrameExtendedPmResponse_Format {
-	if m != nil {
-		return m.OmciEthernetFrameExtendedPmFormat
+func (x *GetOmciEthernetFrameExtendedPmResponse) GetOmciEthernetFrameExtendedPmFormat() GetOmciEthernetFrameExtendedPmResponse_Format {
+	if x != nil {
+		return x.OmciEthernetFrameExtendedPmFormat
 	}
 	return GetOmciEthernetFrameExtendedPmResponse_THIRTY_TWO_BIT
 }
 
 type RxPower struct {
-	OnuSn                string   `protobuf:"bytes,1,opt,name=onu_sn,json=onuSn,proto3" json:"onu_sn,omitempty"`
-	Status               string   `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"`
-	FailReason           string   `protobuf:"bytes,3,opt,name=fail_reason,json=failReason,proto3" json:"fail_reason,omitempty"`
-	RxPower              float64  `protobuf:"fixed64,4,opt,name=rx_power,json=rxPower,proto3" json:"rx_power,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	OnuSn         string                 `protobuf:"bytes,1,opt,name=onu_sn,json=onuSn,proto3" json:"onu_sn,omitempty"` // if the port on which RxPower is measured is not a PON port this will be empty ("") string
+	Status        string                 `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"`
+	FailReason    string                 `protobuf:"bytes,3,opt,name=fail_reason,json=failReason,proto3" json:"fail_reason,omitempty"`
+	RxPower       float64                `protobuf:"fixed64,4,opt,name=rx_power,json=rxPower,proto3" json:"rx_power,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *RxPower) Reset()         { *m = RxPower{} }
-func (m *RxPower) String() string { return proto.CompactTextString(m) }
-func (*RxPower) ProtoMessage()    {}
+func (x *RxPower) Reset() {
+	*x = RxPower{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[37]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *RxPower) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*RxPower) ProtoMessage() {}
+
+func (x *RxPower) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[37]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use RxPower.ProtoReflect.Descriptor instead.
 func (*RxPower) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{37}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{37}
 }
 
-func (m *RxPower) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_RxPower.Unmarshal(m, b)
-}
-func (m *RxPower) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_RxPower.Marshal(b, m, deterministic)
-}
-func (m *RxPower) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_RxPower.Merge(m, src)
-}
-func (m *RxPower) XXX_Size() int {
-	return xxx_messageInfo_RxPower.Size(m)
-}
-func (m *RxPower) XXX_DiscardUnknown() {
-	xxx_messageInfo_RxPower.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_RxPower proto.InternalMessageInfo
-
-func (m *RxPower) GetOnuSn() string {
-	if m != nil {
-		return m.OnuSn
+func (x *RxPower) GetOnuSn() string {
+	if x != nil {
+		return x.OnuSn
 	}
 	return ""
 }
 
-func (m *RxPower) GetStatus() string {
-	if m != nil {
-		return m.Status
+func (x *RxPower) GetStatus() string {
+	if x != nil {
+		return x.Status
 	}
 	return ""
 }
 
-func (m *RxPower) GetFailReason() string {
-	if m != nil {
-		return m.FailReason
+func (x *RxPower) GetFailReason() string {
+	if x != nil {
+		return x.FailReason
 	}
 	return ""
 }
 
-func (m *RxPower) GetRxPower() float64 {
-	if m != nil {
-		return m.RxPower
+func (x *RxPower) GetRxPower() float64 {
+	if x != nil {
+		return x.RxPower
 	}
 	return 0
 }
 
 type GetOltRxPowerResponse struct {
-	PortLabel            string     `protobuf:"bytes,1,opt,name=port_label,json=portLabel,proto3" json:"port_label,omitempty"`
-	RxPower              []*RxPower `protobuf:"bytes,2,rep,name=rx_power,json=rxPower,proto3" json:"rx_power,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
-	XXX_unrecognized     []byte     `json:"-"`
-	XXX_sizecache        int32      `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	PortLabel     string                 `protobuf:"bytes,1,opt,name=port_label,json=portLabel,proto3" json:"port_label,omitempty"`
+	RxPower       []*RxPower             `protobuf:"bytes,2,rep,name=rx_power,json=rxPower,proto3" json:"rx_power,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *GetOltRxPowerResponse) Reset()         { *m = GetOltRxPowerResponse{} }
-func (m *GetOltRxPowerResponse) String() string { return proto.CompactTextString(m) }
-func (*GetOltRxPowerResponse) ProtoMessage()    {}
+func (x *GetOltRxPowerResponse) Reset() {
+	*x = GetOltRxPowerResponse{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[38]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GetOltRxPowerResponse) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetOltRxPowerResponse) ProtoMessage() {}
+
+func (x *GetOltRxPowerResponse) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[38]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetOltRxPowerResponse.ProtoReflect.Descriptor instead.
 func (*GetOltRxPowerResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{38}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{38}
 }
 
-func (m *GetOltRxPowerResponse) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_GetOltRxPowerResponse.Unmarshal(m, b)
-}
-func (m *GetOltRxPowerResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_GetOltRxPowerResponse.Marshal(b, m, deterministic)
-}
-func (m *GetOltRxPowerResponse) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_GetOltRxPowerResponse.Merge(m, src)
-}
-func (m *GetOltRxPowerResponse) XXX_Size() int {
-	return xxx_messageInfo_GetOltRxPowerResponse.Size(m)
-}
-func (m *GetOltRxPowerResponse) XXX_DiscardUnknown() {
-	xxx_messageInfo_GetOltRxPowerResponse.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_GetOltRxPowerResponse proto.InternalMessageInfo
-
-func (m *GetOltRxPowerResponse) GetPortLabel() string {
-	if m != nil {
-		return m.PortLabel
+func (x *GetOltRxPowerResponse) GetPortLabel() string {
+	if x != nil {
+		return x.PortLabel
 	}
 	return ""
 }
 
-func (m *GetOltRxPowerResponse) GetRxPower() []*RxPower {
-	if m != nil {
-		return m.RxPower
+func (x *GetOltRxPowerResponse) GetRxPower() []*RxPower {
+	if x != nil {
+		return x.RxPower
 	}
 	return nil
 }
 
 // DEPRECATED
 type GetRxPowerResponse struct {
-	IntfId               uint32   `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
-	OnuId                uint32   `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
-	Status               string   `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"`
-	FailReason           string   `protobuf:"bytes,4,opt,name=fail_reason,json=failReason,proto3" json:"fail_reason,omitempty"`
-	RxPower              float64  `protobuf:"fixed64,5,opt,name=rx_power,json=rxPower,proto3" json:"rx_power,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	IntfId        uint32                 `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
+	OnuId         uint32                 `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
+	Status        string                 `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"`
+	FailReason    string                 `protobuf:"bytes,4,opt,name=fail_reason,json=failReason,proto3" json:"fail_reason,omitempty"`
+	RxPower       float64                `protobuf:"fixed64,5,opt,name=rx_power,json=rxPower,proto3" json:"rx_power,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *GetRxPowerResponse) Reset()         { *m = GetRxPowerResponse{} }
-func (m *GetRxPowerResponse) String() string { return proto.CompactTextString(m) }
-func (*GetRxPowerResponse) ProtoMessage()    {}
+func (x *GetRxPowerResponse) Reset() {
+	*x = GetRxPowerResponse{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[39]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GetRxPowerResponse) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetRxPowerResponse) ProtoMessage() {}
+
+func (x *GetRxPowerResponse) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[39]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetRxPowerResponse.ProtoReflect.Descriptor instead.
 func (*GetRxPowerResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{39}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{39}
 }
 
-func (m *GetRxPowerResponse) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_GetRxPowerResponse.Unmarshal(m, b)
-}
-func (m *GetRxPowerResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_GetRxPowerResponse.Marshal(b, m, deterministic)
-}
-func (m *GetRxPowerResponse) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_GetRxPowerResponse.Merge(m, src)
-}
-func (m *GetRxPowerResponse) XXX_Size() int {
-	return xxx_messageInfo_GetRxPowerResponse.Size(m)
-}
-func (m *GetRxPowerResponse) XXX_DiscardUnknown() {
-	xxx_messageInfo_GetRxPowerResponse.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_GetRxPowerResponse proto.InternalMessageInfo
-
-func (m *GetRxPowerResponse) GetIntfId() uint32 {
-	if m != nil {
-		return m.IntfId
+func (x *GetRxPowerResponse) GetIntfId() uint32 {
+	if x != nil {
+		return x.IntfId
 	}
 	return 0
 }
 
-func (m *GetRxPowerResponse) GetOnuId() uint32 {
-	if m != nil {
-		return m.OnuId
+func (x *GetRxPowerResponse) GetOnuId() uint32 {
+	if x != nil {
+		return x.OnuId
 	}
 	return 0
 }
 
-func (m *GetRxPowerResponse) GetStatus() string {
-	if m != nil {
-		return m.Status
+func (x *GetRxPowerResponse) GetStatus() string {
+	if x != nil {
+		return x.Status
 	}
 	return ""
 }
 
-func (m *GetRxPowerResponse) GetFailReason() string {
-	if m != nil {
-		return m.FailReason
+func (x *GetRxPowerResponse) GetFailReason() string {
+	if x != nil {
+		return x.FailReason
 	}
 	return ""
 }
 
-func (m *GetRxPowerResponse) GetRxPower() float64 {
-	if m != nil {
-		return m.RxPower
+func (x *GetRxPowerResponse) GetRxPower() float64 {
+	if x != nil {
+		return x.RxPower
 	}
 	return 0
 }
 
 type GetOnuOmciTxRxStatsRequest struct {
-	Empty                *empty.Empty `protobuf:"bytes,1,opt,name=empty,proto3" json:"empty,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
-	XXX_unrecognized     []byte       `json:"-"`
-	XXX_sizecache        int32        `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Empty         *emptypb.Empty         `protobuf:"bytes,1,opt,name=empty,proto3" json:"empty,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *GetOnuOmciTxRxStatsRequest) Reset()         { *m = GetOnuOmciTxRxStatsRequest{} }
-func (m *GetOnuOmciTxRxStatsRequest) String() string { return proto.CompactTextString(m) }
-func (*GetOnuOmciTxRxStatsRequest) ProtoMessage()    {}
+func (x *GetOnuOmciTxRxStatsRequest) Reset() {
+	*x = GetOnuOmciTxRxStatsRequest{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[40]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GetOnuOmciTxRxStatsRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetOnuOmciTxRxStatsRequest) ProtoMessage() {}
+
+func (x *GetOnuOmciTxRxStatsRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[40]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetOnuOmciTxRxStatsRequest.ProtoReflect.Descriptor instead.
 func (*GetOnuOmciTxRxStatsRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{40}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{40}
 }
 
-func (m *GetOnuOmciTxRxStatsRequest) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_GetOnuOmciTxRxStatsRequest.Unmarshal(m, b)
-}
-func (m *GetOnuOmciTxRxStatsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_GetOnuOmciTxRxStatsRequest.Marshal(b, m, deterministic)
-}
-func (m *GetOnuOmciTxRxStatsRequest) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_GetOnuOmciTxRxStatsRequest.Merge(m, src)
-}
-func (m *GetOnuOmciTxRxStatsRequest) XXX_Size() int {
-	return xxx_messageInfo_GetOnuOmciTxRxStatsRequest.Size(m)
-}
-func (m *GetOnuOmciTxRxStatsRequest) XXX_DiscardUnknown() {
-	xxx_messageInfo_GetOnuOmciTxRxStatsRequest.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_GetOnuOmciTxRxStatsRequest proto.InternalMessageInfo
-
-func (m *GetOnuOmciTxRxStatsRequest) GetEmpty() *empty.Empty {
-	if m != nil {
-		return m.Empty
+func (x *GetOnuOmciTxRxStatsRequest) GetEmpty() *emptypb.Empty {
+	if x != nil {
+		return x.Empty
 	}
 	return nil
 }
 
 // see ITU-T G.988 clause 11.2.2
 type GetOnuOmciTxRxStatsResponse struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
 	// OMCI baseline Tx frames with AR bit set
 	BaseTxArFrames uint32 `protobuf:"varint,1,opt,name=base_tx_ar_frames,json=baseTxArFrames,proto3" json:"base_tx_ar_frames,omitempty"`
 	// OMCI baseline Rx frames with AK bit set
@@ -3681,323 +4195,387 @@
 	// Number of retries of requests (tx) due to not received responses (Rx)
 	TxOmciCounterRetries uint32 `protobuf:"varint,9,opt,name=tx_omci_counter_retries,json=txOmciCounterRetries,proto3" json:"tx_omci_counter_retries,omitempty"`
 	// Number of timeouts of requests (tx) due to not received responses (Rx) after configured number of retries
-	TxOmciCounterTimeouts uint32   `protobuf:"varint,10,opt,name=tx_omci_counter_timeouts,json=txOmciCounterTimeouts,proto3" json:"tx_omci_counter_timeouts,omitempty"`
-	XXX_NoUnkeyedLiteral  struct{} `json:"-"`
-	XXX_unrecognized      []byte   `json:"-"`
-	XXX_sizecache         int32    `json:"-"`
+	TxOmciCounterTimeouts uint32 `protobuf:"varint,10,opt,name=tx_omci_counter_timeouts,json=txOmciCounterTimeouts,proto3" json:"tx_omci_counter_timeouts,omitempty"`
+	unknownFields         protoimpl.UnknownFields
+	sizeCache             protoimpl.SizeCache
 }
 
-func (m *GetOnuOmciTxRxStatsResponse) Reset()         { *m = GetOnuOmciTxRxStatsResponse{} }
-func (m *GetOnuOmciTxRxStatsResponse) String() string { return proto.CompactTextString(m) }
-func (*GetOnuOmciTxRxStatsResponse) ProtoMessage()    {}
+func (x *GetOnuOmciTxRxStatsResponse) Reset() {
+	*x = GetOnuOmciTxRxStatsResponse{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[41]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GetOnuOmciTxRxStatsResponse) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetOnuOmciTxRxStatsResponse) ProtoMessage() {}
+
+func (x *GetOnuOmciTxRxStatsResponse) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[41]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetOnuOmciTxRxStatsResponse.ProtoReflect.Descriptor instead.
 func (*GetOnuOmciTxRxStatsResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{41}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{41}
 }
 
-func (m *GetOnuOmciTxRxStatsResponse) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_GetOnuOmciTxRxStatsResponse.Unmarshal(m, b)
-}
-func (m *GetOnuOmciTxRxStatsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_GetOnuOmciTxRxStatsResponse.Marshal(b, m, deterministic)
-}
-func (m *GetOnuOmciTxRxStatsResponse) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_GetOnuOmciTxRxStatsResponse.Merge(m, src)
-}
-func (m *GetOnuOmciTxRxStatsResponse) XXX_Size() int {
-	return xxx_messageInfo_GetOnuOmciTxRxStatsResponse.Size(m)
-}
-func (m *GetOnuOmciTxRxStatsResponse) XXX_DiscardUnknown() {
-	xxx_messageInfo_GetOnuOmciTxRxStatsResponse.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_GetOnuOmciTxRxStatsResponse proto.InternalMessageInfo
-
-func (m *GetOnuOmciTxRxStatsResponse) GetBaseTxArFrames() uint32 {
-	if m != nil {
-		return m.BaseTxArFrames
+func (x *GetOnuOmciTxRxStatsResponse) GetBaseTxArFrames() uint32 {
+	if x != nil {
+		return x.BaseTxArFrames
 	}
 	return 0
 }
 
-func (m *GetOnuOmciTxRxStatsResponse) GetBaseRxAkFrames() uint32 {
-	if m != nil {
-		return m.BaseRxAkFrames
+func (x *GetOnuOmciTxRxStatsResponse) GetBaseRxAkFrames() uint32 {
+	if x != nil {
+		return x.BaseRxAkFrames
 	}
 	return 0
 }
 
-func (m *GetOnuOmciTxRxStatsResponse) GetBaseTxNoArFrames() uint32 {
-	if m != nil {
-		return m.BaseTxNoArFrames
+func (x *GetOnuOmciTxRxStatsResponse) GetBaseTxNoArFrames() uint32 {
+	if x != nil {
+		return x.BaseTxNoArFrames
 	}
 	return 0
 }
 
-func (m *GetOnuOmciTxRxStatsResponse) GetBaseRxNoAkFrames() uint32 {
-	if m != nil {
-		return m.BaseRxNoAkFrames
+func (x *GetOnuOmciTxRxStatsResponse) GetBaseRxNoAkFrames() uint32 {
+	if x != nil {
+		return x.BaseRxNoAkFrames
 	}
 	return 0
 }
 
-func (m *GetOnuOmciTxRxStatsResponse) GetExtTxArFrames() uint32 {
-	if m != nil {
-		return m.ExtTxArFrames
+func (x *GetOnuOmciTxRxStatsResponse) GetExtTxArFrames() uint32 {
+	if x != nil {
+		return x.ExtTxArFrames
 	}
 	return 0
 }
 
-func (m *GetOnuOmciTxRxStatsResponse) GetExtRxAkFrames() uint32 {
-	if m != nil {
-		return m.ExtRxAkFrames
+func (x *GetOnuOmciTxRxStatsResponse) GetExtRxAkFrames() uint32 {
+	if x != nil {
+		return x.ExtRxAkFrames
 	}
 	return 0
 }
 
-func (m *GetOnuOmciTxRxStatsResponse) GetExtTxNoArFrames() uint32 {
-	if m != nil {
-		return m.ExtTxNoArFrames
+func (x *GetOnuOmciTxRxStatsResponse) GetExtTxNoArFrames() uint32 {
+	if x != nil {
+		return x.ExtTxNoArFrames
 	}
 	return 0
 }
 
-func (m *GetOnuOmciTxRxStatsResponse) GetExtRxNoAkFrames() uint32 {
-	if m != nil {
-		return m.ExtRxNoAkFrames
+func (x *GetOnuOmciTxRxStatsResponse) GetExtRxNoAkFrames() uint32 {
+	if x != nil {
+		return x.ExtRxNoAkFrames
 	}
 	return 0
 }
 
-func (m *GetOnuOmciTxRxStatsResponse) GetTxOmciCounterRetries() uint32 {
-	if m != nil {
-		return m.TxOmciCounterRetries
+func (x *GetOnuOmciTxRxStatsResponse) GetTxOmciCounterRetries() uint32 {
+	if x != nil {
+		return x.TxOmciCounterRetries
 	}
 	return 0
 }
 
-func (m *GetOnuOmciTxRxStatsResponse) GetTxOmciCounterTimeouts() uint32 {
-	if m != nil {
-		return m.TxOmciCounterTimeouts
+func (x *GetOnuOmciTxRxStatsResponse) GetTxOmciCounterTimeouts() uint32 {
+	if x != nil {
+		return x.TxOmciCounterTimeouts
 	}
 	return 0
 }
 
 type GetOnuOmciActiveAlarmsRequest struct {
-	Empty                *empty.Empty `protobuf:"bytes,1,opt,name=empty,proto3" json:"empty,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
-	XXX_unrecognized     []byte       `json:"-"`
-	XXX_sizecache        int32        `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Empty         *emptypb.Empty         `protobuf:"bytes,1,opt,name=empty,proto3" json:"empty,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *GetOnuOmciActiveAlarmsRequest) Reset()         { *m = GetOnuOmciActiveAlarmsRequest{} }
-func (m *GetOnuOmciActiveAlarmsRequest) String() string { return proto.CompactTextString(m) }
-func (*GetOnuOmciActiveAlarmsRequest) ProtoMessage()    {}
+func (x *GetOnuOmciActiveAlarmsRequest) Reset() {
+	*x = GetOnuOmciActiveAlarmsRequest{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[42]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GetOnuOmciActiveAlarmsRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetOnuOmciActiveAlarmsRequest) ProtoMessage() {}
+
+func (x *GetOnuOmciActiveAlarmsRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[42]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetOnuOmciActiveAlarmsRequest.ProtoReflect.Descriptor instead.
 func (*GetOnuOmciActiveAlarmsRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{42}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{42}
 }
 
-func (m *GetOnuOmciActiveAlarmsRequest) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_GetOnuOmciActiveAlarmsRequest.Unmarshal(m, b)
-}
-func (m *GetOnuOmciActiveAlarmsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_GetOnuOmciActiveAlarmsRequest.Marshal(b, m, deterministic)
-}
-func (m *GetOnuOmciActiveAlarmsRequest) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_GetOnuOmciActiveAlarmsRequest.Merge(m, src)
-}
-func (m *GetOnuOmciActiveAlarmsRequest) XXX_Size() int {
-	return xxx_messageInfo_GetOnuOmciActiveAlarmsRequest.Size(m)
-}
-func (m *GetOnuOmciActiveAlarmsRequest) XXX_DiscardUnknown() {
-	xxx_messageInfo_GetOnuOmciActiveAlarmsRequest.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_GetOnuOmciActiveAlarmsRequest proto.InternalMessageInfo
-
-func (m *GetOnuOmciActiveAlarmsRequest) GetEmpty() *empty.Empty {
-	if m != nil {
-		return m.Empty
+func (x *GetOnuOmciActiveAlarmsRequest) GetEmpty() *emptypb.Empty {
+	if x != nil {
+		return x.Empty
 	}
 	return nil
 }
 
 type AlarmData struct {
-	ClassId              uint32   `protobuf:"varint,1,opt,name=class_id,json=classId,proto3" json:"class_id,omitempty"`
-	InstanceId           uint32   `protobuf:"varint,2,opt,name=instance_id,json=instanceId,proto3" json:"instance_id,omitempty"`
-	Name                 string   `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
-	Description          string   `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	ClassId       uint32                 `protobuf:"varint,1,opt,name=class_id,json=classId,proto3" json:"class_id,omitempty"`
+	InstanceId    uint32                 `protobuf:"varint,2,opt,name=instance_id,json=instanceId,proto3" json:"instance_id,omitempty"`
+	Name          string                 `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
+	Description   string                 `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *AlarmData) Reset()         { *m = AlarmData{} }
-func (m *AlarmData) String() string { return proto.CompactTextString(m) }
-func (*AlarmData) ProtoMessage()    {}
+func (x *AlarmData) Reset() {
+	*x = AlarmData{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[43]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *AlarmData) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AlarmData) ProtoMessage() {}
+
+func (x *AlarmData) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[43]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use AlarmData.ProtoReflect.Descriptor instead.
 func (*AlarmData) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{43}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{43}
 }
 
-func (m *AlarmData) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_AlarmData.Unmarshal(m, b)
-}
-func (m *AlarmData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_AlarmData.Marshal(b, m, deterministic)
-}
-func (m *AlarmData) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_AlarmData.Merge(m, src)
-}
-func (m *AlarmData) XXX_Size() int {
-	return xxx_messageInfo_AlarmData.Size(m)
-}
-func (m *AlarmData) XXX_DiscardUnknown() {
-	xxx_messageInfo_AlarmData.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_AlarmData proto.InternalMessageInfo
-
-func (m *AlarmData) GetClassId() uint32 {
-	if m != nil {
-		return m.ClassId
+func (x *AlarmData) GetClassId() uint32 {
+	if x != nil {
+		return x.ClassId
 	}
 	return 0
 }
 
-func (m *AlarmData) GetInstanceId() uint32 {
-	if m != nil {
-		return m.InstanceId
+func (x *AlarmData) GetInstanceId() uint32 {
+	if x != nil {
+		return x.InstanceId
 	}
 	return 0
 }
 
-func (m *AlarmData) GetName() string {
-	if m != nil {
-		return m.Name
+func (x *AlarmData) GetName() string {
+	if x != nil {
+		return x.Name
 	}
 	return ""
 }
 
-func (m *AlarmData) GetDescription() string {
-	if m != nil {
-		return m.Description
+func (x *AlarmData) GetDescription() string {
+	if x != nil {
+		return x.Description
 	}
 	return ""
 }
 
 type GetOnuOmciActiveAlarmsResponse struct {
-	ActiveAlarms         []*AlarmData `protobuf:"bytes,1,rep,name=active_alarms,json=activeAlarms,proto3" json:"active_alarms,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
-	XXX_unrecognized     []byte       `json:"-"`
-	XXX_sizecache        int32        `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	ActiveAlarms  []*AlarmData           `protobuf:"bytes,1,rep,name=active_alarms,json=activeAlarms,proto3" json:"active_alarms,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *GetOnuOmciActiveAlarmsResponse) Reset()         { *m = GetOnuOmciActiveAlarmsResponse{} }
-func (m *GetOnuOmciActiveAlarmsResponse) String() string { return proto.CompactTextString(m) }
-func (*GetOnuOmciActiveAlarmsResponse) ProtoMessage()    {}
+func (x *GetOnuOmciActiveAlarmsResponse) Reset() {
+	*x = GetOnuOmciActiveAlarmsResponse{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[44]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GetOnuOmciActiveAlarmsResponse) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetOnuOmciActiveAlarmsResponse) ProtoMessage() {}
+
+func (x *GetOnuOmciActiveAlarmsResponse) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[44]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetOnuOmciActiveAlarmsResponse.ProtoReflect.Descriptor instead.
 func (*GetOnuOmciActiveAlarmsResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{44}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{44}
 }
 
-func (m *GetOnuOmciActiveAlarmsResponse) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_GetOnuOmciActiveAlarmsResponse.Unmarshal(m, b)
-}
-func (m *GetOnuOmciActiveAlarmsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_GetOnuOmciActiveAlarmsResponse.Marshal(b, m, deterministic)
-}
-func (m *GetOnuOmciActiveAlarmsResponse) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_GetOnuOmciActiveAlarmsResponse.Merge(m, src)
-}
-func (m *GetOnuOmciActiveAlarmsResponse) XXX_Size() int {
-	return xxx_messageInfo_GetOnuOmciActiveAlarmsResponse.Size(m)
-}
-func (m *GetOnuOmciActiveAlarmsResponse) XXX_DiscardUnknown() {
-	xxx_messageInfo_GetOnuOmciActiveAlarmsResponse.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_GetOnuOmciActiveAlarmsResponse proto.InternalMessageInfo
-
-func (m *GetOnuOmciActiveAlarmsResponse) GetActiveAlarms() []*AlarmData {
-	if m != nil {
-		return m.ActiveAlarms
+func (x *GetOnuOmciActiveAlarmsResponse) GetActiveAlarms() []*AlarmData {
+	if x != nil {
+		return x.ActiveAlarms
 	}
 	return nil
 }
 
 type GetOffloadedAppsStatisticsRequest struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
 	// The offloaded application whose statistics are requested
-	StatsFor             GetOffloadedAppsStatisticsRequest_OffloadedApp `protobuf:"varint,1,opt,name=statsFor,proto3,enum=extension.GetOffloadedAppsStatisticsRequest_OffloadedApp" json:"statsFor,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                                       `json:"-"`
-	XXX_unrecognized     []byte                                         `json:"-"`
-	XXX_sizecache        int32                                          `json:"-"`
+	StatsFor      GetOffloadedAppsStatisticsRequest_OffloadedApp `protobuf:"varint,1,opt,name=statsFor,proto3,enum=extension.GetOffloadedAppsStatisticsRequest_OffloadedApp" json:"statsFor,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *GetOffloadedAppsStatisticsRequest) Reset()         { *m = GetOffloadedAppsStatisticsRequest{} }
-func (m *GetOffloadedAppsStatisticsRequest) String() string { return proto.CompactTextString(m) }
-func (*GetOffloadedAppsStatisticsRequest) ProtoMessage()    {}
+func (x *GetOffloadedAppsStatisticsRequest) Reset() {
+	*x = GetOffloadedAppsStatisticsRequest{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[45]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GetOffloadedAppsStatisticsRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetOffloadedAppsStatisticsRequest) ProtoMessage() {}
+
+func (x *GetOffloadedAppsStatisticsRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[45]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetOffloadedAppsStatisticsRequest.ProtoReflect.Descriptor instead.
 func (*GetOffloadedAppsStatisticsRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{45}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{45}
 }
 
-func (m *GetOffloadedAppsStatisticsRequest) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_GetOffloadedAppsStatisticsRequest.Unmarshal(m, b)
-}
-func (m *GetOffloadedAppsStatisticsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_GetOffloadedAppsStatisticsRequest.Marshal(b, m, deterministic)
-}
-func (m *GetOffloadedAppsStatisticsRequest) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_GetOffloadedAppsStatisticsRequest.Merge(m, src)
-}
-func (m *GetOffloadedAppsStatisticsRequest) XXX_Size() int {
-	return xxx_messageInfo_GetOffloadedAppsStatisticsRequest.Size(m)
-}
-func (m *GetOffloadedAppsStatisticsRequest) XXX_DiscardUnknown() {
-	xxx_messageInfo_GetOffloadedAppsStatisticsRequest.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_GetOffloadedAppsStatisticsRequest proto.InternalMessageInfo
-
-func (m *GetOffloadedAppsStatisticsRequest) GetStatsFor() GetOffloadedAppsStatisticsRequest_OffloadedApp {
-	if m != nil {
-		return m.StatsFor
+func (x *GetOffloadedAppsStatisticsRequest) GetStatsFor() GetOffloadedAppsStatisticsRequest_OffloadedApp {
+	if x != nil {
+		return x.StatsFor
 	}
 	return GetOffloadedAppsStatisticsRequest_UNDEFINED
 }
 
 type GetOffloadedAppsStatisticsResponse struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
 	// Types that are valid to be assigned to Stats:
+	//
 	//	*GetOffloadedAppsStatisticsResponse_Dhcpv4RaStats
 	//	*GetOffloadedAppsStatisticsResponse_Dhcpv6RaStats
 	//	*GetOffloadedAppsStatisticsResponse_PppoeIaStats
-	Stats                isGetOffloadedAppsStatisticsResponse_Stats `protobuf_oneof:"stats"`
-	XXX_NoUnkeyedLiteral struct{}                                   `json:"-"`
-	XXX_unrecognized     []byte                                     `json:"-"`
-	XXX_sizecache        int32                                      `json:"-"`
+	Stats         isGetOffloadedAppsStatisticsResponse_Stats `protobuf_oneof:"stats"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *GetOffloadedAppsStatisticsResponse) Reset()         { *m = GetOffloadedAppsStatisticsResponse{} }
-func (m *GetOffloadedAppsStatisticsResponse) String() string { return proto.CompactTextString(m) }
-func (*GetOffloadedAppsStatisticsResponse) ProtoMessage()    {}
+func (x *GetOffloadedAppsStatisticsResponse) Reset() {
+	*x = GetOffloadedAppsStatisticsResponse{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[46]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GetOffloadedAppsStatisticsResponse) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetOffloadedAppsStatisticsResponse) ProtoMessage() {}
+
+func (x *GetOffloadedAppsStatisticsResponse) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[46]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetOffloadedAppsStatisticsResponse.ProtoReflect.Descriptor instead.
 func (*GetOffloadedAppsStatisticsResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{46}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{46}
 }
 
-func (m *GetOffloadedAppsStatisticsResponse) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_GetOffloadedAppsStatisticsResponse.Unmarshal(m, b)
-}
-func (m *GetOffloadedAppsStatisticsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_GetOffloadedAppsStatisticsResponse.Marshal(b, m, deterministic)
-}
-func (m *GetOffloadedAppsStatisticsResponse) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_GetOffloadedAppsStatisticsResponse.Merge(m, src)
-}
-func (m *GetOffloadedAppsStatisticsResponse) XXX_Size() int {
-	return xxx_messageInfo_GetOffloadedAppsStatisticsResponse.Size(m)
-}
-func (m *GetOffloadedAppsStatisticsResponse) XXX_DiscardUnknown() {
-	xxx_messageInfo_GetOffloadedAppsStatisticsResponse.DiscardUnknown(m)
+func (x *GetOffloadedAppsStatisticsResponse) GetStats() isGetOffloadedAppsStatisticsResponse_Stats {
+	if x != nil {
+		return x.Stats
+	}
+	return nil
 }
 
-var xxx_messageInfo_GetOffloadedAppsStatisticsResponse proto.InternalMessageInfo
+func (x *GetOffloadedAppsStatisticsResponse) GetDhcpv4RaStats() *GetOffloadedAppsStatisticsResponse_DHCPv4RAStats {
+	if x != nil {
+		if x, ok := x.Stats.(*GetOffloadedAppsStatisticsResponse_Dhcpv4RaStats); ok {
+			return x.Dhcpv4RaStats
+		}
+	}
+	return nil
+}
+
+func (x *GetOffloadedAppsStatisticsResponse) GetDhcpv6RaStats() *GetOffloadedAppsStatisticsResponse_DHCPv6RAStats {
+	if x != nil {
+		if x, ok := x.Stats.(*GetOffloadedAppsStatisticsResponse_Dhcpv6RaStats); ok {
+			return x.Dhcpv6RaStats
+		}
+	}
+	return nil
+}
+
+func (x *GetOffloadedAppsStatisticsResponse) GetPppoeIaStats() *GetOffloadedAppsStatisticsResponse_PPPoeIAStats {
+	if x != nil {
+		if x, ok := x.Stats.(*GetOffloadedAppsStatisticsResponse_PppoeIaStats); ok {
+			return x.PppoeIaStats
+		}
+	}
+	return nil
+}
 
 type isGetOffloadedAppsStatisticsResponse_Stats interface {
 	isGetOffloadedAppsStatisticsResponse_Stats()
@@ -4024,396 +4602,10 @@
 func (*GetOffloadedAppsStatisticsResponse_PppoeIaStats) isGetOffloadedAppsStatisticsResponse_Stats() {
 }
 
-func (m *GetOffloadedAppsStatisticsResponse) GetStats() isGetOffloadedAppsStatisticsResponse_Stats {
-	if m != nil {
-		return m.Stats
-	}
-	return nil
-}
-
-func (m *GetOffloadedAppsStatisticsResponse) GetDhcpv4RaStats() *GetOffloadedAppsStatisticsResponse_DHCPv4RAStats {
-	if x, ok := m.GetStats().(*GetOffloadedAppsStatisticsResponse_Dhcpv4RaStats); ok {
-		return x.Dhcpv4RaStats
-	}
-	return nil
-}
-
-func (m *GetOffloadedAppsStatisticsResponse) GetDhcpv6RaStats() *GetOffloadedAppsStatisticsResponse_DHCPv6RAStats {
-	if x, ok := m.GetStats().(*GetOffloadedAppsStatisticsResponse_Dhcpv6RaStats); ok {
-		return x.Dhcpv6RaStats
-	}
-	return nil
-}
-
-func (m *GetOffloadedAppsStatisticsResponse) GetPppoeIaStats() *GetOffloadedAppsStatisticsResponse_PPPoeIAStats {
-	if x, ok := m.GetStats().(*GetOffloadedAppsStatisticsResponse_PppoeIaStats); ok {
-		return x.PppoeIaStats
-	}
-	return nil
-}
-
-// XXX_OneofWrappers is for the internal use of the proto package.
-func (*GetOffloadedAppsStatisticsResponse) XXX_OneofWrappers() []interface{} {
-	return []interface{}{
-		(*GetOffloadedAppsStatisticsResponse_Dhcpv4RaStats)(nil),
-		(*GetOffloadedAppsStatisticsResponse_Dhcpv6RaStats)(nil),
-		(*GetOffloadedAppsStatisticsResponse_PppoeIaStats)(nil),
-	}
-}
-
-type GetOffloadedAppsStatisticsResponse_DHCPv4RAStats struct {
-	// From https://github.com/BroadbandForum/yang/blob/master/standard/networking/bbf-l2-dhcpv4-relay.yang
-	InBadPacketsFromClient           uint32 `protobuf:"varint,1,opt,name=in_bad_packets_from_client,json=inBadPacketsFromClient,proto3" json:"in_bad_packets_from_client,omitempty"`
-	InBadPacketsFromServer           uint32 `protobuf:"varint,2,opt,name=in_bad_packets_from_server,json=inBadPacketsFromServer,proto3" json:"in_bad_packets_from_server,omitempty"`
-	InPacketsFromClient              uint32 `protobuf:"varint,3,opt,name=in_packets_from_client,json=inPacketsFromClient,proto3" json:"in_packets_from_client,omitempty"`
-	InPacketsFromServer              uint32 `protobuf:"varint,4,opt,name=in_packets_from_server,json=inPacketsFromServer,proto3" json:"in_packets_from_server,omitempty"`
-	OutPacketsToServer               uint32 `protobuf:"varint,5,opt,name=out_packets_to_server,json=outPacketsToServer,proto3" json:"out_packets_to_server,omitempty"`
-	OutPacketsToClient               uint32 `protobuf:"varint,6,opt,name=out_packets_to_client,json=outPacketsToClient,proto3" json:"out_packets_to_client,omitempty"`
-	Option_82InsertedPacketsToServer uint32 `protobuf:"varint,7,opt,name=option_82_inserted_packets_to_server,json=option82InsertedPacketsToServer,proto3" json:"option_82_inserted_packets_to_server,omitempty"`
-	Option_82RemovedPacketsToClient  uint32 `protobuf:"varint,8,opt,name=option_82_removed_packets_to_client,json=option82RemovedPacketsToClient,proto3" json:"option_82_removed_packets_to_client,omitempty"`
-	Option_82NotInsertedToServer     uint32 `protobuf:"varint,9,opt,name=option_82_not_inserted_to_server,json=option82NotInsertedToServer,proto3" json:"option_82_not_inserted_to_server,omitempty"`
-	// Name value pairs that gives the flexibility to report different statistics that implementations may choose
-	AdditionalStats      map[string]string `protobuf:"bytes,10,rep,name=additional_stats,json=additionalStats,proto3" json:"additional_stats,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
-	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
-	XXX_unrecognized     []byte            `json:"-"`
-	XXX_sizecache        int32             `json:"-"`
-}
-
-func (m *GetOffloadedAppsStatisticsResponse_DHCPv4RAStats) Reset() {
-	*m = GetOffloadedAppsStatisticsResponse_DHCPv4RAStats{}
-}
-func (m *GetOffloadedAppsStatisticsResponse_DHCPv4RAStats) String() string {
-	return proto.CompactTextString(m)
-}
-func (*GetOffloadedAppsStatisticsResponse_DHCPv4RAStats) ProtoMessage() {}
-func (*GetOffloadedAppsStatisticsResponse_DHCPv4RAStats) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{46, 0}
-}
-
-func (m *GetOffloadedAppsStatisticsResponse_DHCPv4RAStats) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_GetOffloadedAppsStatisticsResponse_DHCPv4RAStats.Unmarshal(m, b)
-}
-func (m *GetOffloadedAppsStatisticsResponse_DHCPv4RAStats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_GetOffloadedAppsStatisticsResponse_DHCPv4RAStats.Marshal(b, m, deterministic)
-}
-func (m *GetOffloadedAppsStatisticsResponse_DHCPv4RAStats) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_GetOffloadedAppsStatisticsResponse_DHCPv4RAStats.Merge(m, src)
-}
-func (m *GetOffloadedAppsStatisticsResponse_DHCPv4RAStats) XXX_Size() int {
-	return xxx_messageInfo_GetOffloadedAppsStatisticsResponse_DHCPv4RAStats.Size(m)
-}
-func (m *GetOffloadedAppsStatisticsResponse_DHCPv4RAStats) XXX_DiscardUnknown() {
-	xxx_messageInfo_GetOffloadedAppsStatisticsResponse_DHCPv4RAStats.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_GetOffloadedAppsStatisticsResponse_DHCPv4RAStats proto.InternalMessageInfo
-
-func (m *GetOffloadedAppsStatisticsResponse_DHCPv4RAStats) GetInBadPacketsFromClient() uint32 {
-	if m != nil {
-		return m.InBadPacketsFromClient
-	}
-	return 0
-}
-
-func (m *GetOffloadedAppsStatisticsResponse_DHCPv4RAStats) GetInBadPacketsFromServer() uint32 {
-	if m != nil {
-		return m.InBadPacketsFromServer
-	}
-	return 0
-}
-
-func (m *GetOffloadedAppsStatisticsResponse_DHCPv4RAStats) GetInPacketsFromClient() uint32 {
-	if m != nil {
-		return m.InPacketsFromClient
-	}
-	return 0
-}
-
-func (m *GetOffloadedAppsStatisticsResponse_DHCPv4RAStats) GetInPacketsFromServer() uint32 {
-	if m != nil {
-		return m.InPacketsFromServer
-	}
-	return 0
-}
-
-func (m *GetOffloadedAppsStatisticsResponse_DHCPv4RAStats) GetOutPacketsToServer() uint32 {
-	if m != nil {
-		return m.OutPacketsToServer
-	}
-	return 0
-}
-
-func (m *GetOffloadedAppsStatisticsResponse_DHCPv4RAStats) GetOutPacketsToClient() uint32 {
-	if m != nil {
-		return m.OutPacketsToClient
-	}
-	return 0
-}
-
-func (m *GetOffloadedAppsStatisticsResponse_DHCPv4RAStats) GetOption_82InsertedPacketsToServer() uint32 {
-	if m != nil {
-		return m.Option_82InsertedPacketsToServer
-	}
-	return 0
-}
-
-func (m *GetOffloadedAppsStatisticsResponse_DHCPv4RAStats) GetOption_82RemovedPacketsToClient() uint32 {
-	if m != nil {
-		return m.Option_82RemovedPacketsToClient
-	}
-	return 0
-}
-
-func (m *GetOffloadedAppsStatisticsResponse_DHCPv4RAStats) GetOption_82NotInsertedToServer() uint32 {
-	if m != nil {
-		return m.Option_82NotInsertedToServer
-	}
-	return 0
-}
-
-func (m *GetOffloadedAppsStatisticsResponse_DHCPv4RAStats) GetAdditionalStats() map[string]string {
-	if m != nil {
-		return m.AdditionalStats
-	}
-	return nil
-}
-
-type GetOffloadedAppsStatisticsResponse_DHCPv6RAStats struct {
-	// From https://github.com/BroadbandForum/yang/blob/master/standard/networking/bbf-ldra.yang
-	InBadPacketsFromClient               uint32 `protobuf:"varint,1,opt,name=in_bad_packets_from_client,json=inBadPacketsFromClient,proto3" json:"in_bad_packets_from_client,omitempty"`
-	InBadPacketsFromServer               uint32 `protobuf:"varint,2,opt,name=in_bad_packets_from_server,json=inBadPacketsFromServer,proto3" json:"in_bad_packets_from_server,omitempty"`
-	Option_17InsertedPacketsToServer     uint32 `protobuf:"varint,3,opt,name=option_17_inserted_packets_to_server,json=option17InsertedPacketsToServer,proto3" json:"option_17_inserted_packets_to_server,omitempty"`
-	Option_17RemovedPacketsToClient      uint32 `protobuf:"varint,4,opt,name=option_17_removed_packets_to_client,json=option17RemovedPacketsToClient,proto3" json:"option_17_removed_packets_to_client,omitempty"`
-	Option_18InsertedPacketsToServer     uint32 `protobuf:"varint,5,opt,name=option_18_inserted_packets_to_server,json=option18InsertedPacketsToServer,proto3" json:"option_18_inserted_packets_to_server,omitempty"`
-	Option_18RemovedPacketsToClient      uint32 `protobuf:"varint,6,opt,name=option_18_removed_packets_to_client,json=option18RemovedPacketsToClient,proto3" json:"option_18_removed_packets_to_client,omitempty"`
-	Option_37InsertedPacketsToServer     uint32 `protobuf:"varint,7,opt,name=option_37_inserted_packets_to_server,json=option37InsertedPacketsToServer,proto3" json:"option_37_inserted_packets_to_server,omitempty"`
-	Option_37RemovedPacketsToClient      uint32 `protobuf:"varint,8,opt,name=option_37_removed_packets_to_client,json=option37RemovedPacketsToClient,proto3" json:"option_37_removed_packets_to_client,omitempty"`
-	OutgoingMtuExceededPacketsFromClient uint32 `protobuf:"varint,9,opt,name=outgoing_mtu_exceeded_packets_from_client,json=outgoingMtuExceededPacketsFromClient,proto3" json:"outgoing_mtu_exceeded_packets_from_client,omitempty"`
-	// Name value pairs that gives the flexibility to report different statistics that implementations may choose
-	AdditionalStats      map[string]string `protobuf:"bytes,10,rep,name=additional_stats,json=additionalStats,proto3" json:"additional_stats,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
-	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
-	XXX_unrecognized     []byte            `json:"-"`
-	XXX_sizecache        int32             `json:"-"`
-}
-
-func (m *GetOffloadedAppsStatisticsResponse_DHCPv6RAStats) Reset() {
-	*m = GetOffloadedAppsStatisticsResponse_DHCPv6RAStats{}
-}
-func (m *GetOffloadedAppsStatisticsResponse_DHCPv6RAStats) String() string {
-	return proto.CompactTextString(m)
-}
-func (*GetOffloadedAppsStatisticsResponse_DHCPv6RAStats) ProtoMessage() {}
-func (*GetOffloadedAppsStatisticsResponse_DHCPv6RAStats) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{46, 1}
-}
-
-func (m *GetOffloadedAppsStatisticsResponse_DHCPv6RAStats) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_GetOffloadedAppsStatisticsResponse_DHCPv6RAStats.Unmarshal(m, b)
-}
-func (m *GetOffloadedAppsStatisticsResponse_DHCPv6RAStats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_GetOffloadedAppsStatisticsResponse_DHCPv6RAStats.Marshal(b, m, deterministic)
-}
-func (m *GetOffloadedAppsStatisticsResponse_DHCPv6RAStats) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_GetOffloadedAppsStatisticsResponse_DHCPv6RAStats.Merge(m, src)
-}
-func (m *GetOffloadedAppsStatisticsResponse_DHCPv6RAStats) XXX_Size() int {
-	return xxx_messageInfo_GetOffloadedAppsStatisticsResponse_DHCPv6RAStats.Size(m)
-}
-func (m *GetOffloadedAppsStatisticsResponse_DHCPv6RAStats) XXX_DiscardUnknown() {
-	xxx_messageInfo_GetOffloadedAppsStatisticsResponse_DHCPv6RAStats.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_GetOffloadedAppsStatisticsResponse_DHCPv6RAStats proto.InternalMessageInfo
-
-func (m *GetOffloadedAppsStatisticsResponse_DHCPv6RAStats) GetInBadPacketsFromClient() uint32 {
-	if m != nil {
-		return m.InBadPacketsFromClient
-	}
-	return 0
-}
-
-func (m *GetOffloadedAppsStatisticsResponse_DHCPv6RAStats) GetInBadPacketsFromServer() uint32 {
-	if m != nil {
-		return m.InBadPacketsFromServer
-	}
-	return 0
-}
-
-func (m *GetOffloadedAppsStatisticsResponse_DHCPv6RAStats) GetOption_17InsertedPacketsToServer() uint32 {
-	if m != nil {
-		return m.Option_17InsertedPacketsToServer
-	}
-	return 0
-}
-
-func (m *GetOffloadedAppsStatisticsResponse_DHCPv6RAStats) GetOption_17RemovedPacketsToClient() uint32 {
-	if m != nil {
-		return m.Option_17RemovedPacketsToClient
-	}
-	return 0
-}
-
-func (m *GetOffloadedAppsStatisticsResponse_DHCPv6RAStats) GetOption_18InsertedPacketsToServer() uint32 {
-	if m != nil {
-		return m.Option_18InsertedPacketsToServer
-	}
-	return 0
-}
-
-func (m *GetOffloadedAppsStatisticsResponse_DHCPv6RAStats) GetOption_18RemovedPacketsToClient() uint32 {
-	if m != nil {
-		return m.Option_18RemovedPacketsToClient
-	}
-	return 0
-}
-
-func (m *GetOffloadedAppsStatisticsResponse_DHCPv6RAStats) GetOption_37InsertedPacketsToServer() uint32 {
-	if m != nil {
-		return m.Option_37InsertedPacketsToServer
-	}
-	return 0
-}
-
-func (m *GetOffloadedAppsStatisticsResponse_DHCPv6RAStats) GetOption_37RemovedPacketsToClient() uint32 {
-	if m != nil {
-		return m.Option_37RemovedPacketsToClient
-	}
-	return 0
-}
-
-func (m *GetOffloadedAppsStatisticsResponse_DHCPv6RAStats) GetOutgoingMtuExceededPacketsFromClient() uint32 {
-	if m != nil {
-		return m.OutgoingMtuExceededPacketsFromClient
-	}
-	return 0
-}
-
-func (m *GetOffloadedAppsStatisticsResponse_DHCPv6RAStats) GetAdditionalStats() map[string]string {
-	if m != nil {
-		return m.AdditionalStats
-	}
-	return nil
-}
-
-type GetOffloadedAppsStatisticsResponse_PPPoeIAStats struct {
-	// From https://github.com/BroadbandForum/yang/blob/master/standard/networking/bbf-pppoe-intermediate-agent.yang
-	InErrorPacketsFromClient                 uint32 `protobuf:"varint,1,opt,name=in_error_packets_from_client,json=inErrorPacketsFromClient,proto3" json:"in_error_packets_from_client,omitempty"`
-	InErrorPacketsFromServer                 uint32 `protobuf:"varint,2,opt,name=in_error_packets_from_server,json=inErrorPacketsFromServer,proto3" json:"in_error_packets_from_server,omitempty"`
-	InPacketsFromClient                      uint32 `protobuf:"varint,3,opt,name=in_packets_from_client,json=inPacketsFromClient,proto3" json:"in_packets_from_client,omitempty"`
-	InPacketsFromServer                      uint32 `protobuf:"varint,4,opt,name=in_packets_from_server,json=inPacketsFromServer,proto3" json:"in_packets_from_server,omitempty"`
-	OutPacketsToServer                       uint32 `protobuf:"varint,5,opt,name=out_packets_to_server,json=outPacketsToServer,proto3" json:"out_packets_to_server,omitempty"`
-	OutPacketsToClient                       uint32 `protobuf:"varint,6,opt,name=out_packets_to_client,json=outPacketsToClient,proto3" json:"out_packets_to_client,omitempty"`
-	VendorSpecificTagInsertedPacketsToServer uint32 `protobuf:"varint,7,opt,name=vendor_specific_tag_inserted_packets_to_server,json=vendorSpecificTagInsertedPacketsToServer,proto3" json:"vendor_specific_tag_inserted_packets_to_server,omitempty"`
-	VendorSpecificTagRemovedPacketsToClient  uint32 `protobuf:"varint,8,opt,name=vendor_specific_tag_removed_packets_to_client,json=vendorSpecificTagRemovedPacketsToClient,proto3" json:"vendor_specific_tag_removed_packets_to_client,omitempty"`
-	OutgoingMtuExceededPacketsFromClient     uint32 `protobuf:"varint,9,opt,name=outgoing_mtu_exceeded_packets_from_client,json=outgoingMtuExceededPacketsFromClient,proto3" json:"outgoing_mtu_exceeded_packets_from_client,omitempty"`
-	// Name value pairs that gives the flexibility to report different statistics that implementations may choose
-	AdditionalStats      map[string]string `protobuf:"bytes,10,rep,name=additional_stats,json=additionalStats,proto3" json:"additional_stats,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
-	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
-	XXX_unrecognized     []byte            `json:"-"`
-	XXX_sizecache        int32             `json:"-"`
-}
-
-func (m *GetOffloadedAppsStatisticsResponse_PPPoeIAStats) Reset() {
-	*m = GetOffloadedAppsStatisticsResponse_PPPoeIAStats{}
-}
-func (m *GetOffloadedAppsStatisticsResponse_PPPoeIAStats) String() string {
-	return proto.CompactTextString(m)
-}
-func (*GetOffloadedAppsStatisticsResponse_PPPoeIAStats) ProtoMessage() {}
-func (*GetOffloadedAppsStatisticsResponse_PPPoeIAStats) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{46, 2}
-}
-
-func (m *GetOffloadedAppsStatisticsResponse_PPPoeIAStats) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_GetOffloadedAppsStatisticsResponse_PPPoeIAStats.Unmarshal(m, b)
-}
-func (m *GetOffloadedAppsStatisticsResponse_PPPoeIAStats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_GetOffloadedAppsStatisticsResponse_PPPoeIAStats.Marshal(b, m, deterministic)
-}
-func (m *GetOffloadedAppsStatisticsResponse_PPPoeIAStats) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_GetOffloadedAppsStatisticsResponse_PPPoeIAStats.Merge(m, src)
-}
-func (m *GetOffloadedAppsStatisticsResponse_PPPoeIAStats) XXX_Size() int {
-	return xxx_messageInfo_GetOffloadedAppsStatisticsResponse_PPPoeIAStats.Size(m)
-}
-func (m *GetOffloadedAppsStatisticsResponse_PPPoeIAStats) XXX_DiscardUnknown() {
-	xxx_messageInfo_GetOffloadedAppsStatisticsResponse_PPPoeIAStats.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_GetOffloadedAppsStatisticsResponse_PPPoeIAStats proto.InternalMessageInfo
-
-func (m *GetOffloadedAppsStatisticsResponse_PPPoeIAStats) GetInErrorPacketsFromClient() uint32 {
-	if m != nil {
-		return m.InErrorPacketsFromClient
-	}
-	return 0
-}
-
-func (m *GetOffloadedAppsStatisticsResponse_PPPoeIAStats) GetInErrorPacketsFromServer() uint32 {
-	if m != nil {
-		return m.InErrorPacketsFromServer
-	}
-	return 0
-}
-
-func (m *GetOffloadedAppsStatisticsResponse_PPPoeIAStats) GetInPacketsFromClient() uint32 {
-	if m != nil {
-		return m.InPacketsFromClient
-	}
-	return 0
-}
-
-func (m *GetOffloadedAppsStatisticsResponse_PPPoeIAStats) GetInPacketsFromServer() uint32 {
-	if m != nil {
-		return m.InPacketsFromServer
-	}
-	return 0
-}
-
-func (m *GetOffloadedAppsStatisticsResponse_PPPoeIAStats) GetOutPacketsToServer() uint32 {
-	if m != nil {
-		return m.OutPacketsToServer
-	}
-	return 0
-}
-
-func (m *GetOffloadedAppsStatisticsResponse_PPPoeIAStats) GetOutPacketsToClient() uint32 {
-	if m != nil {
-		return m.OutPacketsToClient
-	}
-	return 0
-}
-
-func (m *GetOffloadedAppsStatisticsResponse_PPPoeIAStats) GetVendorSpecificTagInsertedPacketsToServer() uint32 {
-	if m != nil {
-		return m.VendorSpecificTagInsertedPacketsToServer
-	}
-	return 0
-}
-
-func (m *GetOffloadedAppsStatisticsResponse_PPPoeIAStats) GetVendorSpecificTagRemovedPacketsToClient() uint32 {
-	if m != nil {
-		return m.VendorSpecificTagRemovedPacketsToClient
-	}
-	return 0
-}
-
-func (m *GetOffloadedAppsStatisticsResponse_PPPoeIAStats) GetOutgoingMtuExceededPacketsFromClient() uint32 {
-	if m != nil {
-		return m.OutgoingMtuExceededPacketsFromClient
-	}
-	return 0
-}
-
-func (m *GetOffloadedAppsStatisticsResponse_PPPoeIAStats) GetAdditionalStats() map[string]string {
-	if m != nil {
-		return m.AdditionalStats
-	}
-	return nil
-}
-
 type GetValueRequest struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
 	// Types that are valid to be assigned to Request:
+	//
 	//	*GetValueRequest_Distance
 	//	*GetValueRequest_UniInfo
 	//	*GetValueRequest_OltPortInfo
@@ -4431,36 +4623,200 @@
 	//	*GetValueRequest_OnuStatsFromOlt
 	//	*GetValueRequest_OltPonStats
 	//	*GetValueRequest_OltNniStats
-	Request              isGetValueRequest_Request `protobuf_oneof:"request"`
-	XXX_NoUnkeyedLiteral struct{}                  `json:"-"`
-	XXX_unrecognized     []byte                    `json:"-"`
-	XXX_sizecache        int32                     `json:"-"`
+	Request       isGetValueRequest_Request `protobuf_oneof:"request"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *GetValueRequest) Reset()         { *m = GetValueRequest{} }
-func (m *GetValueRequest) String() string { return proto.CompactTextString(m) }
-func (*GetValueRequest) ProtoMessage()    {}
+func (x *GetValueRequest) Reset() {
+	*x = GetValueRequest{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[47]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GetValueRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetValueRequest) ProtoMessage() {}
+
+func (x *GetValueRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[47]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetValueRequest.ProtoReflect.Descriptor instead.
 func (*GetValueRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{47}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{47}
 }
 
-func (m *GetValueRequest) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_GetValueRequest.Unmarshal(m, b)
-}
-func (m *GetValueRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_GetValueRequest.Marshal(b, m, deterministic)
-}
-func (m *GetValueRequest) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_GetValueRequest.Merge(m, src)
-}
-func (m *GetValueRequest) XXX_Size() int {
-	return xxx_messageInfo_GetValueRequest.Size(m)
-}
-func (m *GetValueRequest) XXX_DiscardUnknown() {
-	xxx_messageInfo_GetValueRequest.DiscardUnknown(m)
+func (x *GetValueRequest) GetRequest() isGetValueRequest_Request {
+	if x != nil {
+		return x.Request
+	}
+	return nil
 }
 
-var xxx_messageInfo_GetValueRequest proto.InternalMessageInfo
+func (x *GetValueRequest) GetDistance() *GetDistanceRequest {
+	if x != nil {
+		if x, ok := x.Request.(*GetValueRequest_Distance); ok {
+			return x.Distance
+		}
+	}
+	return nil
+}
+
+func (x *GetValueRequest) GetUniInfo() *GetOnuUniInfoRequest {
+	if x != nil {
+		if x, ok := x.Request.(*GetValueRequest_UniInfo); ok {
+			return x.UniInfo
+		}
+	}
+	return nil
+}
+
+func (x *GetValueRequest) GetOltPortInfo() *GetOltPortCounters {
+	if x != nil {
+		if x, ok := x.Request.(*GetValueRequest_OltPortInfo); ok {
+			return x.OltPortInfo
+		}
+	}
+	return nil
+}
+
+func (x *GetValueRequest) GetOnuOpticalInfo() *GetOnuPonOpticalInfo {
+	if x != nil {
+		if x, ok := x.Request.(*GetValueRequest_OnuOpticalInfo); ok {
+			return x.OnuOpticalInfo
+		}
+	}
+	return nil
+}
+
+func (x *GetValueRequest) GetEthBridgePort() *GetOnuEthernetBridgePortHistory {
+	if x != nil {
+		if x, ok := x.Request.(*GetValueRequest_EthBridgePort); ok {
+			return x.EthBridgePort
+		}
+	}
+	return nil
+}
+
+func (x *GetValueRequest) GetFecHistory() *GetOnuFecHistory {
+	if x != nil {
+		if x, ok := x.Request.(*GetValueRequest_FecHistory); ok {
+			return x.FecHistory
+		}
+	}
+	return nil
+}
+
+func (x *GetValueRequest) GetOnuPonInfo() *GetOnuCountersRequest {
+	if x != nil {
+		if x, ok := x.Request.(*GetValueRequest_OnuPonInfo); ok {
+			return x.OnuPonInfo
+		}
+	}
+	return nil
+}
+
+func (x *GetValueRequest) GetOnuInfo() *GetOmciEthernetFrameExtendedPmRequest {
+	if x != nil {
+		if x, ok := x.Request.(*GetValueRequest_OnuInfo); ok {
+			return x.OnuInfo
+		}
+	}
+	return nil
+}
+
+func (x *GetValueRequest) GetRxPower() *GetRxPowerRequest {
+	if x != nil {
+		if x, ok := x.Request.(*GetValueRequest_RxPower); ok {
+			return x.RxPower
+		}
+	}
+	return nil
+}
+
+func (x *GetValueRequest) GetOnuOmciStats() *GetOnuOmciTxRxStatsRequest {
+	if x != nil {
+		if x, ok := x.Request.(*GetValueRequest_OnuOmciStats); ok {
+			return x.OnuOmciStats
+		}
+	}
+	return nil
+}
+
+func (x *GetValueRequest) GetOltRxPower() *GetOltRxPowerRequest {
+	if x != nil {
+		if x, ok := x.Request.(*GetValueRequest_OltRxPower); ok {
+			return x.OltRxPower
+		}
+	}
+	return nil
+}
+
+func (x *GetValueRequest) GetOnuActiveAlarms() *GetOnuOmciActiveAlarmsRequest {
+	if x != nil {
+		if x, ok := x.Request.(*GetValueRequest_OnuActiveAlarms); ok {
+			return x.OnuActiveAlarms
+		}
+	}
+	return nil
+}
+
+func (x *GetValueRequest) GetOffloadedAppsStats() *GetOffloadedAppsStatisticsRequest {
+	if x != nil {
+		if x, ok := x.Request.(*GetValueRequest_OffloadedAppsStats); ok {
+			return x.OffloadedAppsStats
+		}
+	}
+	return nil
+}
+
+func (x *GetValueRequest) GetOnuAllocGemStats() *GetOnuAllocGemHistoryRequest {
+	if x != nil {
+		if x, ok := x.Request.(*GetValueRequest_OnuAllocGemStats); ok {
+			return x.OnuAllocGemStats
+		}
+	}
+	return nil
+}
+
+func (x *GetValueRequest) GetOnuStatsFromOlt() *GetOnuStatsFromOltRequest {
+	if x != nil {
+		if x, ok := x.Request.(*GetValueRequest_OnuStatsFromOlt); ok {
+			return x.OnuStatsFromOlt
+		}
+	}
+	return nil
+}
+
+func (x *GetValueRequest) GetOltPonStats() *GetPonStatsRequest {
+	if x != nil {
+		if x, ok := x.Request.(*GetValueRequest_OltPonStats); ok {
+			return x.OltPonStats
+		}
+	}
+	return nil
+}
+
+func (x *GetValueRequest) GetOltNniStats() *GetNNIStatsRequest {
+	if x != nil {
+		if x, ok := x.Request.(*GetValueRequest_OltNniStats); ok {
+			return x.OltNniStats
+		}
+	}
+	return nil
+}
 
 type isGetValueRequest_Request interface {
 	isGetValueRequest_Request()
@@ -4475,18 +4831,22 @@
 }
 
 type GetValueRequest_OltPortInfo struct {
+	// Corresponds to PmMetricId.PON_PORT_COUNTERS, PmMetricId.NNI_PORT_COUNTERS
 	OltPortInfo *GetOltPortCounters `protobuf:"bytes,3,opt,name=oltPortInfo,proto3,oneof"`
 }
 
 type GetValueRequest_OnuOpticalInfo struct {
+	// Corresponds to PmMetricId.PON_OPTICAL
 	OnuOpticalInfo *GetOnuPonOpticalInfo `protobuf:"bytes,4,opt,name=onuOpticalInfo,proto3,oneof"`
 }
 
 type GetValueRequest_EthBridgePort struct {
+	// Corresponds to PmMetricId.ETHERNET_BRIDGE_PORT_HISTORY
 	EthBridgePort *GetOnuEthernetBridgePortHistory `protobuf:"bytes,5,opt,name=ethBridgePort,proto3,oneof"`
 }
 
 type GetValueRequest_FecHistory struct {
+	// Corresponds to PmMetricId.FEC_HISTORY
 	FecHistory *GetOnuFecHistory `protobuf:"bytes,6,opt,name=fecHistory,proto3,oneof"`
 }
 
@@ -4499,7 +4859,7 @@
 }
 
 type GetValueRequest_RxPower struct {
-	RxPower *GetRxPowerRequest `protobuf:"bytes,9,opt,name=rxPower,proto3,oneof"`
+	RxPower *GetRxPowerRequest `protobuf:"bytes,9,opt,name=rxPower,proto3,oneof"` // This is deprecated
 }
 
 type GetValueRequest_OnuOmciStats struct {
@@ -4568,159 +4928,12 @@
 
 func (*GetValueRequest_OltNniStats) isGetValueRequest_Request() {}
 
-func (m *GetValueRequest) GetRequest() isGetValueRequest_Request {
-	if m != nil {
-		return m.Request
-	}
-	return nil
-}
-
-func (m *GetValueRequest) GetDistance() *GetDistanceRequest {
-	if x, ok := m.GetRequest().(*GetValueRequest_Distance); ok {
-		return x.Distance
-	}
-	return nil
-}
-
-func (m *GetValueRequest) GetUniInfo() *GetOnuUniInfoRequest {
-	if x, ok := m.GetRequest().(*GetValueRequest_UniInfo); ok {
-		return x.UniInfo
-	}
-	return nil
-}
-
-func (m *GetValueRequest) GetOltPortInfo() *GetOltPortCounters {
-	if x, ok := m.GetRequest().(*GetValueRequest_OltPortInfo); ok {
-		return x.OltPortInfo
-	}
-	return nil
-}
-
-func (m *GetValueRequest) GetOnuOpticalInfo() *GetOnuPonOpticalInfo {
-	if x, ok := m.GetRequest().(*GetValueRequest_OnuOpticalInfo); ok {
-		return x.OnuOpticalInfo
-	}
-	return nil
-}
-
-func (m *GetValueRequest) GetEthBridgePort() *GetOnuEthernetBridgePortHistory {
-	if x, ok := m.GetRequest().(*GetValueRequest_EthBridgePort); ok {
-		return x.EthBridgePort
-	}
-	return nil
-}
-
-func (m *GetValueRequest) GetFecHistory() *GetOnuFecHistory {
-	if x, ok := m.GetRequest().(*GetValueRequest_FecHistory); ok {
-		return x.FecHistory
-	}
-	return nil
-}
-
-func (m *GetValueRequest) GetOnuPonInfo() *GetOnuCountersRequest {
-	if x, ok := m.GetRequest().(*GetValueRequest_OnuPonInfo); ok {
-		return x.OnuPonInfo
-	}
-	return nil
-}
-
-func (m *GetValueRequest) GetOnuInfo() *GetOmciEthernetFrameExtendedPmRequest {
-	if x, ok := m.GetRequest().(*GetValueRequest_OnuInfo); ok {
-		return x.OnuInfo
-	}
-	return nil
-}
-
-func (m *GetValueRequest) GetRxPower() *GetRxPowerRequest {
-	if x, ok := m.GetRequest().(*GetValueRequest_RxPower); ok {
-		return x.RxPower
-	}
-	return nil
-}
-
-func (m *GetValueRequest) GetOnuOmciStats() *GetOnuOmciTxRxStatsRequest {
-	if x, ok := m.GetRequest().(*GetValueRequest_OnuOmciStats); ok {
-		return x.OnuOmciStats
-	}
-	return nil
-}
-
-func (m *GetValueRequest) GetOltRxPower() *GetOltRxPowerRequest {
-	if x, ok := m.GetRequest().(*GetValueRequest_OltRxPower); ok {
-		return x.OltRxPower
-	}
-	return nil
-}
-
-func (m *GetValueRequest) GetOnuActiveAlarms() *GetOnuOmciActiveAlarmsRequest {
-	if x, ok := m.GetRequest().(*GetValueRequest_OnuActiveAlarms); ok {
-		return x.OnuActiveAlarms
-	}
-	return nil
-}
-
-func (m *GetValueRequest) GetOffloadedAppsStats() *GetOffloadedAppsStatisticsRequest {
-	if x, ok := m.GetRequest().(*GetValueRequest_OffloadedAppsStats); ok {
-		return x.OffloadedAppsStats
-	}
-	return nil
-}
-
-func (m *GetValueRequest) GetOnuAllocGemStats() *GetOnuAllocGemHistoryRequest {
-	if x, ok := m.GetRequest().(*GetValueRequest_OnuAllocGemStats); ok {
-		return x.OnuAllocGemStats
-	}
-	return nil
-}
-
-func (m *GetValueRequest) GetOnuStatsFromOlt() *GetOnuStatsFromOltRequest {
-	if x, ok := m.GetRequest().(*GetValueRequest_OnuStatsFromOlt); ok {
-		return x.OnuStatsFromOlt
-	}
-	return nil
-}
-
-func (m *GetValueRequest) GetOltPonStats() *GetPonStatsRequest {
-	if x, ok := m.GetRequest().(*GetValueRequest_OltPonStats); ok {
-		return x.OltPonStats
-	}
-	return nil
-}
-
-func (m *GetValueRequest) GetOltNniStats() *GetNNIStatsRequest {
-	if x, ok := m.GetRequest().(*GetValueRequest_OltNniStats); ok {
-		return x.OltNniStats
-	}
-	return nil
-}
-
-// XXX_OneofWrappers is for the internal use of the proto package.
-func (*GetValueRequest) XXX_OneofWrappers() []interface{} {
-	return []interface{}{
-		(*GetValueRequest_Distance)(nil),
-		(*GetValueRequest_UniInfo)(nil),
-		(*GetValueRequest_OltPortInfo)(nil),
-		(*GetValueRequest_OnuOpticalInfo)(nil),
-		(*GetValueRequest_EthBridgePort)(nil),
-		(*GetValueRequest_FecHistory)(nil),
-		(*GetValueRequest_OnuPonInfo)(nil),
-		(*GetValueRequest_OnuInfo)(nil),
-		(*GetValueRequest_RxPower)(nil),
-		(*GetValueRequest_OnuOmciStats)(nil),
-		(*GetValueRequest_OltRxPower)(nil),
-		(*GetValueRequest_OnuActiveAlarms)(nil),
-		(*GetValueRequest_OffloadedAppsStats)(nil),
-		(*GetValueRequest_OnuAllocGemStats)(nil),
-		(*GetValueRequest_OnuStatsFromOlt)(nil),
-		(*GetValueRequest_OltPonStats)(nil),
-		(*GetValueRequest_OltNniStats)(nil),
-	}
-}
-
 type GetValueResponse struct {
+	state     protoimpl.MessageState       `protogen:"open.v1"`
 	Status    GetValueResponse_Status      `protobuf:"varint,1,opt,name=status,proto3,enum=extension.GetValueResponse_Status" json:"status,omitempty"`
 	ErrReason GetValueResponse_ErrorReason `protobuf:"varint,2,opt,name=errReason,proto3,enum=extension.GetValueResponse_ErrorReason" json:"errReason,omitempty"`
 	// Types that are valid to be assigned to Response:
+	//
 	//	*GetValueResponse_Distance
 	//	*GetValueResponse_UniInfo
 	//	*GetValueResponse_PortCoutners
@@ -4738,51 +4951,215 @@
 	//	*GetValueResponse_OnuStatsFromOltResponse
 	//	*GetValueResponse_OltPonStatsResponse
 	//	*GetValueResponse_OltNniStatsResponse
-	Response             isGetValueResponse_Response `protobuf_oneof:"response"`
-	XXX_NoUnkeyedLiteral struct{}                    `json:"-"`
-	XXX_unrecognized     []byte                      `json:"-"`
-	XXX_sizecache        int32                       `json:"-"`
+	Response      isGetValueResponse_Response `protobuf_oneof:"response"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *GetValueResponse) Reset()         { *m = GetValueResponse{} }
-func (m *GetValueResponse) String() string { return proto.CompactTextString(m) }
-func (*GetValueResponse) ProtoMessage()    {}
+func (x *GetValueResponse) Reset() {
+	*x = GetValueResponse{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[48]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GetValueResponse) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetValueResponse) ProtoMessage() {}
+
+func (x *GetValueResponse) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[48]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetValueResponse.ProtoReflect.Descriptor instead.
 func (*GetValueResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{48}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{48}
 }
 
-func (m *GetValueResponse) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_GetValueResponse.Unmarshal(m, b)
-}
-func (m *GetValueResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_GetValueResponse.Marshal(b, m, deterministic)
-}
-func (m *GetValueResponse) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_GetValueResponse.Merge(m, src)
-}
-func (m *GetValueResponse) XXX_Size() int {
-	return xxx_messageInfo_GetValueResponse.Size(m)
-}
-func (m *GetValueResponse) XXX_DiscardUnknown() {
-	xxx_messageInfo_GetValueResponse.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_GetValueResponse proto.InternalMessageInfo
-
-func (m *GetValueResponse) GetStatus() GetValueResponse_Status {
-	if m != nil {
-		return m.Status
+func (x *GetValueResponse) GetStatus() GetValueResponse_Status {
+	if x != nil {
+		return x.Status
 	}
 	return GetValueResponse_STATUS_UNDEFINED
 }
 
-func (m *GetValueResponse) GetErrReason() GetValueResponse_ErrorReason {
-	if m != nil {
-		return m.ErrReason
+func (x *GetValueResponse) GetErrReason() GetValueResponse_ErrorReason {
+	if x != nil {
+		return x.ErrReason
 	}
 	return GetValueResponse_REASON_UNDEFINED
 }
 
+func (x *GetValueResponse) GetResponse() isGetValueResponse_Response {
+	if x != nil {
+		return x.Response
+	}
+	return nil
+}
+
+func (x *GetValueResponse) GetDistance() *GetDistanceResponse {
+	if x != nil {
+		if x, ok := x.Response.(*GetValueResponse_Distance); ok {
+			return x.Distance
+		}
+	}
+	return nil
+}
+
+func (x *GetValueResponse) GetUniInfo() *GetOnuUniInfoResponse {
+	if x != nil {
+		if x, ok := x.Response.(*GetValueResponse_UniInfo); ok {
+			return x.UniInfo
+		}
+	}
+	return nil
+}
+
+func (x *GetValueResponse) GetPortCoutners() *GetOltPortCountersResponse {
+	if x != nil {
+		if x, ok := x.Response.(*GetValueResponse_PortCoutners); ok {
+			return x.PortCoutners
+		}
+	}
+	return nil
+}
+
+func (x *GetValueResponse) GetOnuOpticalInfo() *GetOnuPonOpticalInfoResponse {
+	if x != nil {
+		if x, ok := x.Response.(*GetValueResponse_OnuOpticalInfo); ok {
+			return x.OnuOpticalInfo
+		}
+	}
+	return nil
+}
+
+func (x *GetValueResponse) GetEthBridgePortInfo() *GetOnuEthernetBridgePortHistoryResponse {
+	if x != nil {
+		if x, ok := x.Response.(*GetValueResponse_EthBridgePortInfo); ok {
+			return x.EthBridgePortInfo
+		}
+	}
+	return nil
+}
+
+func (x *GetValueResponse) GetFecHistory() *GetOnuFecHistoryResponse {
+	if x != nil {
+		if x, ok := x.Response.(*GetValueResponse_FecHistory); ok {
+			return x.FecHistory
+		}
+	}
+	return nil
+}
+
+func (x *GetValueResponse) GetOnuPonCounters() *GetOnuCountersResponse {
+	if x != nil {
+		if x, ok := x.Response.(*GetValueResponse_OnuPonCounters); ok {
+			return x.OnuPonCounters
+		}
+	}
+	return nil
+}
+
+func (x *GetValueResponse) GetOnuCounters() *GetOmciEthernetFrameExtendedPmResponse {
+	if x != nil {
+		if x, ok := x.Response.(*GetValueResponse_OnuCounters); ok {
+			return x.OnuCounters
+		}
+	}
+	return nil
+}
+
+func (x *GetValueResponse) GetRxPower() *GetRxPowerResponse {
+	if x != nil {
+		if x, ok := x.Response.(*GetValueResponse_RxPower); ok {
+			return x.RxPower
+		}
+	}
+	return nil
+}
+
+func (x *GetValueResponse) GetOnuOmciStats() *GetOnuOmciTxRxStatsResponse {
+	if x != nil {
+		if x, ok := x.Response.(*GetValueResponse_OnuOmciStats); ok {
+			return x.OnuOmciStats
+		}
+	}
+	return nil
+}
+
+func (x *GetValueResponse) GetOltRxPower() *GetOltRxPowerResponse {
+	if x != nil {
+		if x, ok := x.Response.(*GetValueResponse_OltRxPower); ok {
+			return x.OltRxPower
+		}
+	}
+	return nil
+}
+
+func (x *GetValueResponse) GetOnuActiveAlarms() *GetOnuOmciActiveAlarmsResponse {
+	if x != nil {
+		if x, ok := x.Response.(*GetValueResponse_OnuActiveAlarms); ok {
+			return x.OnuActiveAlarms
+		}
+	}
+	return nil
+}
+
+func (x *GetValueResponse) GetOffloadedAppsStats() *GetOffloadedAppsStatisticsResponse {
+	if x != nil {
+		if x, ok := x.Response.(*GetValueResponse_OffloadedAppsStats); ok {
+			return x.OffloadedAppsStats
+		}
+	}
+	return nil
+}
+
+func (x *GetValueResponse) GetOnuAllocGemStatsResponse() *GetOnuAllocGemHistoryResponse {
+	if x != nil {
+		if x, ok := x.Response.(*GetValueResponse_OnuAllocGemStatsResponse); ok {
+			return x.OnuAllocGemStatsResponse
+		}
+	}
+	return nil
+}
+
+func (x *GetValueResponse) GetOnuStatsFromOltResponse() *GetOnuStatsFromOltResponse {
+	if x != nil {
+		if x, ok := x.Response.(*GetValueResponse_OnuStatsFromOltResponse); ok {
+			return x.OnuStatsFromOltResponse
+		}
+	}
+	return nil
+}
+
+func (x *GetValueResponse) GetOltPonStatsResponse() *GetPonStatsResponse {
+	if x != nil {
+		if x, ok := x.Response.(*GetValueResponse_OltPonStatsResponse); ok {
+			return x.OltPonStatsResponse
+		}
+	}
+	return nil
+}
+
+func (x *GetValueResponse) GetOltNniStatsResponse() *GetNNIStatsResponse {
+	if x != nil {
+		if x, ok := x.Response.(*GetValueResponse_OltNniStatsResponse); ok {
+			return x.OltNniStatsResponse
+		}
+	}
+	return nil
+}
+
 type isGetValueResponse_Response interface {
 	isGetValueResponse_Response()
 }
@@ -4820,7 +5197,7 @@
 }
 
 type GetValueResponse_RxPower struct {
-	RxPower *GetRxPowerResponse `protobuf:"bytes,11,opt,name=rxPower,proto3,oneof"`
+	RxPower *GetRxPowerResponse `protobuf:"bytes,11,opt,name=rxPower,proto3,oneof"` // This is DEPRECATED
 }
 
 type GetValueResponse_OnuOmciStats struct {
@@ -4889,361 +5266,204 @@
 
 func (*GetValueResponse_OltNniStatsResponse) isGetValueResponse_Response() {}
 
-func (m *GetValueResponse) GetResponse() isGetValueResponse_Response {
-	if m != nil {
-		return m.Response
-	}
-	return nil
-}
-
-func (m *GetValueResponse) GetDistance() *GetDistanceResponse {
-	if x, ok := m.GetResponse().(*GetValueResponse_Distance); ok {
-		return x.Distance
-	}
-	return nil
-}
-
-func (m *GetValueResponse) GetUniInfo() *GetOnuUniInfoResponse {
-	if x, ok := m.GetResponse().(*GetValueResponse_UniInfo); ok {
-		return x.UniInfo
-	}
-	return nil
-}
-
-func (m *GetValueResponse) GetPortCoutners() *GetOltPortCountersResponse {
-	if x, ok := m.GetResponse().(*GetValueResponse_PortCoutners); ok {
-		return x.PortCoutners
-	}
-	return nil
-}
-
-func (m *GetValueResponse) GetOnuOpticalInfo() *GetOnuPonOpticalInfoResponse {
-	if x, ok := m.GetResponse().(*GetValueResponse_OnuOpticalInfo); ok {
-		return x.OnuOpticalInfo
-	}
-	return nil
-}
-
-func (m *GetValueResponse) GetEthBridgePortInfo() *GetOnuEthernetBridgePortHistoryResponse {
-	if x, ok := m.GetResponse().(*GetValueResponse_EthBridgePortInfo); ok {
-		return x.EthBridgePortInfo
-	}
-	return nil
-}
-
-func (m *GetValueResponse) GetFecHistory() *GetOnuFecHistoryResponse {
-	if x, ok := m.GetResponse().(*GetValueResponse_FecHistory); ok {
-		return x.FecHistory
-	}
-	return nil
-}
-
-func (m *GetValueResponse) GetOnuPonCounters() *GetOnuCountersResponse {
-	if x, ok := m.GetResponse().(*GetValueResponse_OnuPonCounters); ok {
-		return x.OnuPonCounters
-	}
-	return nil
-}
-
-func (m *GetValueResponse) GetOnuCounters() *GetOmciEthernetFrameExtendedPmResponse {
-	if x, ok := m.GetResponse().(*GetValueResponse_OnuCounters); ok {
-		return x.OnuCounters
-	}
-	return nil
-}
-
-func (m *GetValueResponse) GetRxPower() *GetRxPowerResponse {
-	if x, ok := m.GetResponse().(*GetValueResponse_RxPower); ok {
-		return x.RxPower
-	}
-	return nil
-}
-
-func (m *GetValueResponse) GetOnuOmciStats() *GetOnuOmciTxRxStatsResponse {
-	if x, ok := m.GetResponse().(*GetValueResponse_OnuOmciStats); ok {
-		return x.OnuOmciStats
-	}
-	return nil
-}
-
-func (m *GetValueResponse) GetOltRxPower() *GetOltRxPowerResponse {
-	if x, ok := m.GetResponse().(*GetValueResponse_OltRxPower); ok {
-		return x.OltRxPower
-	}
-	return nil
-}
-
-func (m *GetValueResponse) GetOnuActiveAlarms() *GetOnuOmciActiveAlarmsResponse {
-	if x, ok := m.GetResponse().(*GetValueResponse_OnuActiveAlarms); ok {
-		return x.OnuActiveAlarms
-	}
-	return nil
-}
-
-func (m *GetValueResponse) GetOffloadedAppsStats() *GetOffloadedAppsStatisticsResponse {
-	if x, ok := m.GetResponse().(*GetValueResponse_OffloadedAppsStats); ok {
-		return x.OffloadedAppsStats
-	}
-	return nil
-}
-
-func (m *GetValueResponse) GetOnuAllocGemStatsResponse() *GetOnuAllocGemHistoryResponse {
-	if x, ok := m.GetResponse().(*GetValueResponse_OnuAllocGemStatsResponse); ok {
-		return x.OnuAllocGemStatsResponse
-	}
-	return nil
-}
-
-func (m *GetValueResponse) GetOnuStatsFromOltResponse() *GetOnuStatsFromOltResponse {
-	if x, ok := m.GetResponse().(*GetValueResponse_OnuStatsFromOltResponse); ok {
-		return x.OnuStatsFromOltResponse
-	}
-	return nil
-}
-
-func (m *GetValueResponse) GetOltPonStatsResponse() *GetPonStatsResponse {
-	if x, ok := m.GetResponse().(*GetValueResponse_OltPonStatsResponse); ok {
-		return x.OltPonStatsResponse
-	}
-	return nil
-}
-
-func (m *GetValueResponse) GetOltNniStatsResponse() *GetNNIStatsResponse {
-	if x, ok := m.GetResponse().(*GetValueResponse_OltNniStatsResponse); ok {
-		return x.OltNniStatsResponse
-	}
-	return nil
-}
-
-// XXX_OneofWrappers is for the internal use of the proto package.
-func (*GetValueResponse) XXX_OneofWrappers() []interface{} {
-	return []interface{}{
-		(*GetValueResponse_Distance)(nil),
-		(*GetValueResponse_UniInfo)(nil),
-		(*GetValueResponse_PortCoutners)(nil),
-		(*GetValueResponse_OnuOpticalInfo)(nil),
-		(*GetValueResponse_EthBridgePortInfo)(nil),
-		(*GetValueResponse_FecHistory)(nil),
-		(*GetValueResponse_OnuPonCounters)(nil),
-		(*GetValueResponse_OnuCounters)(nil),
-		(*GetValueResponse_RxPower)(nil),
-		(*GetValueResponse_OnuOmciStats)(nil),
-		(*GetValueResponse_OltRxPower)(nil),
-		(*GetValueResponse_OnuActiveAlarms)(nil),
-		(*GetValueResponse_OffloadedAppsStats)(nil),
-		(*GetValueResponse_OnuAllocGemStatsResponse)(nil),
-		(*GetValueResponse_OnuStatsFromOltResponse)(nil),
-		(*GetValueResponse_OltPonStatsResponse)(nil),
-		(*GetValueResponse_OltNniStatsResponse)(nil),
-	}
-}
-
 // AppOffloadConfig is the configuration for offloading applications to the OLT and has OLT wide configuration.
 type AppOffloadConfig struct {
-	EnableDHCPv4RA bool `protobuf:"varint,1,opt,name=enableDHCPv4RA,proto3" json:"enableDHCPv4RA,omitempty"`
-	EnableDHCPv6RA bool `protobuf:"varint,2,opt,name=enableDHCPv6RA,proto3" json:"enableDHCPv6RA,omitempty"`
-	EnablePPPoEIA  bool `protobuf:"varint,3,opt,name=enablePPPoEIA,proto3" json:"enablePPPoEIA,omitempty"`
+	state          protoimpl.MessageState `protogen:"open.v1"`
+	EnableDHCPv4RA bool                   `protobuf:"varint,1,opt,name=enableDHCPv4RA,proto3" json:"enableDHCPv4RA,omitempty"`
+	EnableDHCPv6RA bool                   `protobuf:"varint,2,opt,name=enableDHCPv6RA,proto3" json:"enableDHCPv6RA,omitempty"`
+	EnablePPPoEIA  bool                   `protobuf:"varint,3,opt,name=enablePPPoEIA,proto3" json:"enablePPPoEIA,omitempty"`
 	// Follows the same as the BBF Access Node Id defined in https://github.com/BroadbandForum/yang/blob/master/standard/networking/bbf-subscriber-profiles.yang
-	AccessNodeID         string   `protobuf:"bytes,4,opt,name=accessNodeID,proto3" json:"accessNodeID,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	AccessNodeID  string `protobuf:"bytes,4,opt,name=accessNodeID,proto3" json:"accessNodeID,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *AppOffloadConfig) Reset()         { *m = AppOffloadConfig{} }
-func (m *AppOffloadConfig) String() string { return proto.CompactTextString(m) }
-func (*AppOffloadConfig) ProtoMessage()    {}
+func (x *AppOffloadConfig) Reset() {
+	*x = AppOffloadConfig{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[49]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *AppOffloadConfig) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AppOffloadConfig) ProtoMessage() {}
+
+func (x *AppOffloadConfig) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[49]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use AppOffloadConfig.ProtoReflect.Descriptor instead.
 func (*AppOffloadConfig) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{49}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{49}
 }
 
-func (m *AppOffloadConfig) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_AppOffloadConfig.Unmarshal(m, b)
-}
-func (m *AppOffloadConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_AppOffloadConfig.Marshal(b, m, deterministic)
-}
-func (m *AppOffloadConfig) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_AppOffloadConfig.Merge(m, src)
-}
-func (m *AppOffloadConfig) XXX_Size() int {
-	return xxx_messageInfo_AppOffloadConfig.Size(m)
-}
-func (m *AppOffloadConfig) XXX_DiscardUnknown() {
-	xxx_messageInfo_AppOffloadConfig.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_AppOffloadConfig proto.InternalMessageInfo
-
-func (m *AppOffloadConfig) GetEnableDHCPv4RA() bool {
-	if m != nil {
-		return m.EnableDHCPv4RA
+func (x *AppOffloadConfig) GetEnableDHCPv4RA() bool {
+	if x != nil {
+		return x.EnableDHCPv4RA
 	}
 	return false
 }
 
-func (m *AppOffloadConfig) GetEnableDHCPv6RA() bool {
-	if m != nil {
-		return m.EnableDHCPv6RA
+func (x *AppOffloadConfig) GetEnableDHCPv6RA() bool {
+	if x != nil {
+		return x.EnableDHCPv6RA
 	}
 	return false
 }
 
-func (m *AppOffloadConfig) GetEnablePPPoEIA() bool {
-	if m != nil {
-		return m.EnablePPPoEIA
+func (x *AppOffloadConfig) GetEnablePPPoEIA() bool {
+	if x != nil {
+		return x.EnablePPPoEIA
 	}
 	return false
 }
 
-func (m *AppOffloadConfig) GetAccessNodeID() string {
-	if m != nil {
-		return m.AccessNodeID
+func (x *AppOffloadConfig) GetAccessNodeID() string {
+	if x != nil {
+		return x.AccessNodeID
 	}
 	return ""
 }
 
 // AppOffloadOnuConfig has Onu specfic configuration which the OLT runs applications which have been offloaded.
 type AppOffloadOnuConfig struct {
-	OnuDeviceId          string                              `protobuf:"bytes,1,opt,name=onuDeviceId,proto3" json:"onuDeviceId,omitempty"`
-	PerUniInfo           []*AppOffloadOnuConfig_PerUniConfig `protobuf:"bytes,5,rep,name=perUniInfo,proto3" json:"perUniInfo,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                            `json:"-"`
-	XXX_unrecognized     []byte                              `json:"-"`
-	XXX_sizecache        int32                               `json:"-"`
+	state         protoimpl.MessageState              `protogen:"open.v1"`
+	OnuDeviceId   string                              `protobuf:"bytes,1,opt,name=onuDeviceId,proto3" json:"onuDeviceId,omitempty"`
+	PerUniInfo    []*AppOffloadOnuConfig_PerUniConfig `protobuf:"bytes,5,rep,name=perUniInfo,proto3" json:"perUniInfo,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *AppOffloadOnuConfig) Reset()         { *m = AppOffloadOnuConfig{} }
-func (m *AppOffloadOnuConfig) String() string { return proto.CompactTextString(m) }
-func (*AppOffloadOnuConfig) ProtoMessage()    {}
+func (x *AppOffloadOnuConfig) Reset() {
+	*x = AppOffloadOnuConfig{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[50]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *AppOffloadOnuConfig) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AppOffloadOnuConfig) ProtoMessage() {}
+
+func (x *AppOffloadOnuConfig) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[50]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use AppOffloadOnuConfig.ProtoReflect.Descriptor instead.
 func (*AppOffloadOnuConfig) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{50}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{50}
 }
 
-func (m *AppOffloadOnuConfig) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_AppOffloadOnuConfig.Unmarshal(m, b)
-}
-func (m *AppOffloadOnuConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_AppOffloadOnuConfig.Marshal(b, m, deterministic)
-}
-func (m *AppOffloadOnuConfig) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_AppOffloadOnuConfig.Merge(m, src)
-}
-func (m *AppOffloadOnuConfig) XXX_Size() int {
-	return xxx_messageInfo_AppOffloadOnuConfig.Size(m)
-}
-func (m *AppOffloadOnuConfig) XXX_DiscardUnknown() {
-	xxx_messageInfo_AppOffloadOnuConfig.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_AppOffloadOnuConfig proto.InternalMessageInfo
-
-func (m *AppOffloadOnuConfig) GetOnuDeviceId() string {
-	if m != nil {
-		return m.OnuDeviceId
+func (x *AppOffloadOnuConfig) GetOnuDeviceId() string {
+	if x != nil {
+		return x.OnuDeviceId
 	}
 	return ""
 }
 
-func (m *AppOffloadOnuConfig) GetPerUniInfo() []*AppOffloadOnuConfig_PerUniConfig {
-	if m != nil {
-		return m.PerUniInfo
+func (x *AppOffloadOnuConfig) GetPerUniInfo() []*AppOffloadOnuConfig_PerUniConfig {
+	if x != nil {
+		return x.PerUniInfo
 	}
 	return nil
 }
 
-type AppOffloadOnuConfig_PerUniConfig struct {
-	// As per the BBF Agent Remote Id defined in https://github.com/BroadbandForum/yang/blob/master/standard/networking/bbf-pppoe-intermediate-agent-profile-common.yang
-	AgentRemoteID string `protobuf:"bytes,2,opt,name=agentRemoteID,proto3" json:"agentRemoteID,omitempty"`
-	// As per the BBF Agent Circuit Id defined in https://github.com/BroadbandForum/yang/blob/master/standard/networking/bbf-pppoe-intermediate-agent-profile-common.yang
-	AgentCircuitID string `protobuf:"bytes,3,opt,name=agentCircuitID,proto3" json:"agentCircuitID,omitempty"`
-	// The id of the UNI on the Onu for which this configuration is relevant. The UNI ids are numbered from 0 to n depending on the number of UNI ports on the ONU.
-	OnuUniId             uint32   `protobuf:"varint,4,opt,name=onuUniId,proto3" json:"onuUniId,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *AppOffloadOnuConfig_PerUniConfig) Reset()         { *m = AppOffloadOnuConfig_PerUniConfig{} }
-func (m *AppOffloadOnuConfig_PerUniConfig) String() string { return proto.CompactTextString(m) }
-func (*AppOffloadOnuConfig_PerUniConfig) ProtoMessage()    {}
-func (*AppOffloadOnuConfig_PerUniConfig) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{50, 0}
-}
-
-func (m *AppOffloadOnuConfig_PerUniConfig) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_AppOffloadOnuConfig_PerUniConfig.Unmarshal(m, b)
-}
-func (m *AppOffloadOnuConfig_PerUniConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_AppOffloadOnuConfig_PerUniConfig.Marshal(b, m, deterministic)
-}
-func (m *AppOffloadOnuConfig_PerUniConfig) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_AppOffloadOnuConfig_PerUniConfig.Merge(m, src)
-}
-func (m *AppOffloadOnuConfig_PerUniConfig) XXX_Size() int {
-	return xxx_messageInfo_AppOffloadOnuConfig_PerUniConfig.Size(m)
-}
-func (m *AppOffloadOnuConfig_PerUniConfig) XXX_DiscardUnknown() {
-	xxx_messageInfo_AppOffloadOnuConfig_PerUniConfig.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_AppOffloadOnuConfig_PerUniConfig proto.InternalMessageInfo
-
-func (m *AppOffloadOnuConfig_PerUniConfig) GetAgentRemoteID() string {
-	if m != nil {
-		return m.AgentRemoteID
-	}
-	return ""
-}
-
-func (m *AppOffloadOnuConfig_PerUniConfig) GetAgentCircuitID() string {
-	if m != nil {
-		return m.AgentCircuitID
-	}
-	return ""
-}
-
-func (m *AppOffloadOnuConfig_PerUniConfig) GetOnuUniId() uint32 {
-	if m != nil {
-		return m.OnuUniId
-	}
-	return 0
-}
-
 type SetValueRequest struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
 	// Types that are valid to be assigned to Request:
+	//
 	//	*SetValueRequest_AlarmConfig
 	//	*SetValueRequest_AppOffloadConfig
 	//	*SetValueRequest_AppOffloadOnuConfig
-	Request              isSetValueRequest_Request `protobuf_oneof:"request"`
-	XXX_NoUnkeyedLiteral struct{}                  `json:"-"`
-	XXX_unrecognized     []byte                    `json:"-"`
-	XXX_sizecache        int32                     `json:"-"`
+	Request       isSetValueRequest_Request `protobuf_oneof:"request"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *SetValueRequest) Reset()         { *m = SetValueRequest{} }
-func (m *SetValueRequest) String() string { return proto.CompactTextString(m) }
-func (*SetValueRequest) ProtoMessage()    {}
+func (x *SetValueRequest) Reset() {
+	*x = SetValueRequest{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[51]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *SetValueRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SetValueRequest) ProtoMessage() {}
+
+func (x *SetValueRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[51]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SetValueRequest.ProtoReflect.Descriptor instead.
 func (*SetValueRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{51}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{51}
 }
 
-func (m *SetValueRequest) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_SetValueRequest.Unmarshal(m, b)
-}
-func (m *SetValueRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_SetValueRequest.Marshal(b, m, deterministic)
-}
-func (m *SetValueRequest) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_SetValueRequest.Merge(m, src)
-}
-func (m *SetValueRequest) XXX_Size() int {
-	return xxx_messageInfo_SetValueRequest.Size(m)
-}
-func (m *SetValueRequest) XXX_DiscardUnknown() {
-	xxx_messageInfo_SetValueRequest.DiscardUnknown(m)
+func (x *SetValueRequest) GetRequest() isSetValueRequest_Request {
+	if x != nil {
+		return x.Request
+	}
+	return nil
 }
 
-var xxx_messageInfo_SetValueRequest proto.InternalMessageInfo
+func (x *SetValueRequest) GetAlarmConfig() *config.AlarmConfig {
+	if x != nil {
+		if x, ok := x.Request.(*SetValueRequest_AlarmConfig); ok {
+			return x.AlarmConfig
+		}
+	}
+	return nil
+}
+
+func (x *SetValueRequest) GetAppOffloadConfig() *AppOffloadConfig {
+	if x != nil {
+		if x, ok := x.Request.(*SetValueRequest_AppOffloadConfig); ok {
+			return x.AppOffloadConfig
+		}
+	}
+	return nil
+}
+
+func (x *SetValueRequest) GetAppOffloadOnuConfig() *AppOffloadOnuConfig {
+	if x != nil {
+		if x, ok := x.Request.(*SetValueRequest_AppOffloadOnuConfig); ok {
+			return x.AppOffloadOnuConfig
+		}
+	}
+	return nil
+}
 
 type isSetValueRequest_Request interface {
 	isSetValueRequest_Request()
@@ -5267,796 +5487,1455 @@
 
 func (*SetValueRequest_AppOffloadOnuConfig) isSetValueRequest_Request() {}
 
-func (m *SetValueRequest) GetRequest() isSetValueRequest_Request {
-	if m != nil {
-		return m.Request
-	}
-	return nil
-}
-
-func (m *SetValueRequest) GetAlarmConfig() *config.AlarmConfig {
-	if x, ok := m.GetRequest().(*SetValueRequest_AlarmConfig); ok {
-		return x.AlarmConfig
-	}
-	return nil
-}
-
-func (m *SetValueRequest) GetAppOffloadConfig() *AppOffloadConfig {
-	if x, ok := m.GetRequest().(*SetValueRequest_AppOffloadConfig); ok {
-		return x.AppOffloadConfig
-	}
-	return nil
-}
-
-func (m *SetValueRequest) GetAppOffloadOnuConfig() *AppOffloadOnuConfig {
-	if x, ok := m.GetRequest().(*SetValueRequest_AppOffloadOnuConfig); ok {
-		return x.AppOffloadOnuConfig
-	}
-	return nil
-}
-
-// XXX_OneofWrappers is for the internal use of the proto package.
-func (*SetValueRequest) XXX_OneofWrappers() []interface{} {
-	return []interface{}{
-		(*SetValueRequest_AlarmConfig)(nil),
-		(*SetValueRequest_AppOffloadConfig)(nil),
-		(*SetValueRequest_AppOffloadOnuConfig)(nil),
-	}
-}
-
 type SetValueResponse struct {
-	Status               SetValueResponse_Status      `protobuf:"varint,1,opt,name=status,proto3,enum=extension.SetValueResponse_Status" json:"status,omitempty"`
-	ErrReason            SetValueResponse_ErrorReason `protobuf:"varint,2,opt,name=errReason,proto3,enum=extension.SetValueResponse_ErrorReason" json:"errReason,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                     `json:"-"`
-	XXX_unrecognized     []byte                       `json:"-"`
-	XXX_sizecache        int32                        `json:"-"`
+	state         protoimpl.MessageState       `protogen:"open.v1"`
+	Status        SetValueResponse_Status      `protobuf:"varint,1,opt,name=status,proto3,enum=extension.SetValueResponse_Status" json:"status,omitempty"`
+	ErrReason     SetValueResponse_ErrorReason `protobuf:"varint,2,opt,name=errReason,proto3,enum=extension.SetValueResponse_ErrorReason" json:"errReason,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *SetValueResponse) Reset()         { *m = SetValueResponse{} }
-func (m *SetValueResponse) String() string { return proto.CompactTextString(m) }
-func (*SetValueResponse) ProtoMessage()    {}
+func (x *SetValueResponse) Reset() {
+	*x = SetValueResponse{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[52]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *SetValueResponse) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SetValueResponse) ProtoMessage() {}
+
+func (x *SetValueResponse) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[52]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SetValueResponse.ProtoReflect.Descriptor instead.
 func (*SetValueResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{52}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{52}
 }
 
-func (m *SetValueResponse) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_SetValueResponse.Unmarshal(m, b)
-}
-func (m *SetValueResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_SetValueResponse.Marshal(b, m, deterministic)
-}
-func (m *SetValueResponse) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_SetValueResponse.Merge(m, src)
-}
-func (m *SetValueResponse) XXX_Size() int {
-	return xxx_messageInfo_SetValueResponse.Size(m)
-}
-func (m *SetValueResponse) XXX_DiscardUnknown() {
-	xxx_messageInfo_SetValueResponse.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_SetValueResponse proto.InternalMessageInfo
-
-func (m *SetValueResponse) GetStatus() SetValueResponse_Status {
-	if m != nil {
-		return m.Status
+func (x *SetValueResponse) GetStatus() SetValueResponse_Status {
+	if x != nil {
+		return x.Status
 	}
 	return SetValueResponse_STATUS_UNDEFINED
 }
 
-func (m *SetValueResponse) GetErrReason() SetValueResponse_ErrorReason {
-	if m != nil {
-		return m.ErrReason
+func (x *SetValueResponse) GetErrReason() SetValueResponse_ErrorReason {
+	if x != nil {
+		return x.ErrReason
 	}
 	return SetValueResponse_REASON_UNDEFINED
 }
 
 type SingleGetValueRequest struct {
-	TargetId             string           `protobuf:"bytes,1,opt,name=targetId,proto3" json:"targetId,omitempty"`
-	Request              *GetValueRequest `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
-	XXX_unrecognized     []byte           `json:"-"`
-	XXX_sizecache        int32            `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	TargetId      string                 `protobuf:"bytes,1,opt,name=targetId,proto3" json:"targetId,omitempty"`
+	Request       *GetValueRequest       `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *SingleGetValueRequest) Reset()         { *m = SingleGetValueRequest{} }
-func (m *SingleGetValueRequest) String() string { return proto.CompactTextString(m) }
-func (*SingleGetValueRequest) ProtoMessage()    {}
+func (x *SingleGetValueRequest) Reset() {
+	*x = SingleGetValueRequest{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[53]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *SingleGetValueRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SingleGetValueRequest) ProtoMessage() {}
+
+func (x *SingleGetValueRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[53]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SingleGetValueRequest.ProtoReflect.Descriptor instead.
 func (*SingleGetValueRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{53}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{53}
 }
 
-func (m *SingleGetValueRequest) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_SingleGetValueRequest.Unmarshal(m, b)
-}
-func (m *SingleGetValueRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_SingleGetValueRequest.Marshal(b, m, deterministic)
-}
-func (m *SingleGetValueRequest) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_SingleGetValueRequest.Merge(m, src)
-}
-func (m *SingleGetValueRequest) XXX_Size() int {
-	return xxx_messageInfo_SingleGetValueRequest.Size(m)
-}
-func (m *SingleGetValueRequest) XXX_DiscardUnknown() {
-	xxx_messageInfo_SingleGetValueRequest.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_SingleGetValueRequest proto.InternalMessageInfo
-
-func (m *SingleGetValueRequest) GetTargetId() string {
-	if m != nil {
-		return m.TargetId
+func (x *SingleGetValueRequest) GetTargetId() string {
+	if x != nil {
+		return x.TargetId
 	}
 	return ""
 }
 
-func (m *SingleGetValueRequest) GetRequest() *GetValueRequest {
-	if m != nil {
-		return m.Request
+func (x *SingleGetValueRequest) GetRequest() *GetValueRequest {
+	if x != nil {
+		return x.Request
 	}
 	return nil
 }
 
 type SingleGetValueResponse struct {
-	Response             *GetValueResponse `protobuf:"bytes,1,opt,name=response,proto3" json:"response,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
-	XXX_unrecognized     []byte            `json:"-"`
-	XXX_sizecache        int32             `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Response      *GetValueResponse      `protobuf:"bytes,1,opt,name=response,proto3" json:"response,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *SingleGetValueResponse) Reset()         { *m = SingleGetValueResponse{} }
-func (m *SingleGetValueResponse) String() string { return proto.CompactTextString(m) }
-func (*SingleGetValueResponse) ProtoMessage()    {}
+func (x *SingleGetValueResponse) Reset() {
+	*x = SingleGetValueResponse{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[54]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *SingleGetValueResponse) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SingleGetValueResponse) ProtoMessage() {}
+
+func (x *SingleGetValueResponse) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[54]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SingleGetValueResponse.ProtoReflect.Descriptor instead.
 func (*SingleGetValueResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{54}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{54}
 }
 
-func (m *SingleGetValueResponse) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_SingleGetValueResponse.Unmarshal(m, b)
-}
-func (m *SingleGetValueResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_SingleGetValueResponse.Marshal(b, m, deterministic)
-}
-func (m *SingleGetValueResponse) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_SingleGetValueResponse.Merge(m, src)
-}
-func (m *SingleGetValueResponse) XXX_Size() int {
-	return xxx_messageInfo_SingleGetValueResponse.Size(m)
-}
-func (m *SingleGetValueResponse) XXX_DiscardUnknown() {
-	xxx_messageInfo_SingleGetValueResponse.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_SingleGetValueResponse proto.InternalMessageInfo
-
-func (m *SingleGetValueResponse) GetResponse() *GetValueResponse {
-	if m != nil {
-		return m.Response
+func (x *SingleGetValueResponse) GetResponse() *GetValueResponse {
+	if x != nil {
+		return x.Response
 	}
 	return nil
 }
 
 type SingleSetValueRequest struct {
-	TargetId             string           `protobuf:"bytes,1,opt,name=targetId,proto3" json:"targetId,omitempty"`
-	Request              *SetValueRequest `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
-	XXX_unrecognized     []byte           `json:"-"`
-	XXX_sizecache        int32            `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	TargetId      string                 `protobuf:"bytes,1,opt,name=targetId,proto3" json:"targetId,omitempty"`
+	Request       *SetValueRequest       `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *SingleSetValueRequest) Reset()         { *m = SingleSetValueRequest{} }
-func (m *SingleSetValueRequest) String() string { return proto.CompactTextString(m) }
-func (*SingleSetValueRequest) ProtoMessage()    {}
+func (x *SingleSetValueRequest) Reset() {
+	*x = SingleSetValueRequest{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[55]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *SingleSetValueRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SingleSetValueRequest) ProtoMessage() {}
+
+func (x *SingleSetValueRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[55]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SingleSetValueRequest.ProtoReflect.Descriptor instead.
 func (*SingleSetValueRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{55}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{55}
 }
 
-func (m *SingleSetValueRequest) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_SingleSetValueRequest.Unmarshal(m, b)
-}
-func (m *SingleSetValueRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_SingleSetValueRequest.Marshal(b, m, deterministic)
-}
-func (m *SingleSetValueRequest) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_SingleSetValueRequest.Merge(m, src)
-}
-func (m *SingleSetValueRequest) XXX_Size() int {
-	return xxx_messageInfo_SingleSetValueRequest.Size(m)
-}
-func (m *SingleSetValueRequest) XXX_DiscardUnknown() {
-	xxx_messageInfo_SingleSetValueRequest.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_SingleSetValueRequest proto.InternalMessageInfo
-
-func (m *SingleSetValueRequest) GetTargetId() string {
-	if m != nil {
-		return m.TargetId
+func (x *SingleSetValueRequest) GetTargetId() string {
+	if x != nil {
+		return x.TargetId
 	}
 	return ""
 }
 
-func (m *SingleSetValueRequest) GetRequest() *SetValueRequest {
-	if m != nil {
-		return m.Request
+func (x *SingleSetValueRequest) GetRequest() *SetValueRequest {
+	if x != nil {
+		return x.Request
 	}
 	return nil
 }
 
 type SingleSetValueResponse struct {
-	Response             *SetValueResponse `protobuf:"bytes,1,opt,name=response,proto3" json:"response,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
-	XXX_unrecognized     []byte            `json:"-"`
-	XXX_sizecache        int32             `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Response      *SetValueResponse      `protobuf:"bytes,1,opt,name=response,proto3" json:"response,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *SingleSetValueResponse) Reset()         { *m = SingleSetValueResponse{} }
-func (m *SingleSetValueResponse) String() string { return proto.CompactTextString(m) }
-func (*SingleSetValueResponse) ProtoMessage()    {}
+func (x *SingleSetValueResponse) Reset() {
+	*x = SingleSetValueResponse{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[56]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *SingleSetValueResponse) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SingleSetValueResponse) ProtoMessage() {}
+
+func (x *SingleSetValueResponse) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[56]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SingleSetValueResponse.ProtoReflect.Descriptor instead.
 func (*SingleSetValueResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7ecf6e9799a9202d, []int{56}
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{56}
 }
 
-func (m *SingleSetValueResponse) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_SingleSetValueResponse.Unmarshal(m, b)
-}
-func (m *SingleSetValueResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_SingleSetValueResponse.Marshal(b, m, deterministic)
-}
-func (m *SingleSetValueResponse) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_SingleSetValueResponse.Merge(m, src)
-}
-func (m *SingleSetValueResponse) XXX_Size() int {
-	return xxx_messageInfo_SingleSetValueResponse.Size(m)
-}
-func (m *SingleSetValueResponse) XXX_DiscardUnknown() {
-	xxx_messageInfo_SingleSetValueResponse.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_SingleSetValueResponse proto.InternalMessageInfo
-
-func (m *SingleSetValueResponse) GetResponse() *SetValueResponse {
-	if m != nil {
-		return m.Response
+func (x *SingleSetValueResponse) GetResponse() *SetValueResponse {
+	if x != nil {
+		return x.Response
 	}
 	return nil
 }
 
-func init() {
-	proto.RegisterEnum("extension.ValueType_Type", ValueType_Type_name, ValueType_Type_value)
-	proto.RegisterEnum("extension.GetOnuUniInfoResponse_ConfigurationInd", GetOnuUniInfoResponse_ConfigurationInd_name, GetOnuUniInfoResponse_ConfigurationInd_value)
-	proto.RegisterEnum("extension.GetOnuUniInfoResponse_AdministrativeState", GetOnuUniInfoResponse_AdministrativeState_name, GetOnuUniInfoResponse_AdministrativeState_value)
-	proto.RegisterEnum("extension.GetOnuUniInfoResponse_OperationalState", GetOnuUniInfoResponse_OperationalState_name, GetOnuUniInfoResponse_OperationalState_value)
-	proto.RegisterEnum("extension.GetOltPortCounters_PortType", GetOltPortCounters_PortType_name, GetOltPortCounters_PortType_value)
-	proto.RegisterEnum("extension.GetOnuEthernetBridgePortHistory_Direction", GetOnuEthernetBridgePortHistory_Direction_name, GetOnuEthernetBridgePortHistory_Direction_value)
-	proto.RegisterEnum("extension.GetOmciEthernetFrameExtendedPmResponse_Format", GetOmciEthernetFrameExtendedPmResponse_Format_name, GetOmciEthernetFrameExtendedPmResponse_Format_value)
-	proto.RegisterEnum("extension.GetOffloadedAppsStatisticsRequest_OffloadedApp", GetOffloadedAppsStatisticsRequest_OffloadedApp_name, GetOffloadedAppsStatisticsRequest_OffloadedApp_value)
-	proto.RegisterEnum("extension.GetValueResponse_Status", GetValueResponse_Status_name, GetValueResponse_Status_value)
-	proto.RegisterEnum("extension.GetValueResponse_ErrorReason", GetValueResponse_ErrorReason_name, GetValueResponse_ErrorReason_value)
-	proto.RegisterEnum("extension.SetValueResponse_Status", SetValueResponse_Status_name, SetValueResponse_Status_value)
-	proto.RegisterEnum("extension.SetValueResponse_ErrorReason", SetValueResponse_ErrorReason_name, SetValueResponse_ErrorReason_value)
-	proto.RegisterType((*ValueSet)(nil), "extension.ValueSet")
-	proto.RegisterType((*ValueType)(nil), "extension.ValueType")
-	proto.RegisterType((*ValueSpecifier)(nil), "extension.ValueSpecifier")
-	proto.RegisterType((*ReturnValues)(nil), "extension.ReturnValues")
-	proto.RegisterType((*GetDistanceRequest)(nil), "extension.GetDistanceRequest")
-	proto.RegisterType((*GetDistanceResponse)(nil), "extension.GetDistanceResponse")
-	proto.RegisterType((*GetOnuUniInfoRequest)(nil), "extension.GetOnuUniInfoRequest")
-	proto.RegisterType((*GetOnuUniInfoResponse)(nil), "extension.GetOnuUniInfoResponse")
-	proto.RegisterType((*GetOltPortCounters)(nil), "extension.GetOltPortCounters")
-	proto.RegisterType((*GetOltPortCountersResponse)(nil), "extension.GetOltPortCountersResponse")
-	proto.RegisterType((*GetOnuPonOpticalInfo)(nil), "extension.GetOnuPonOpticalInfo")
-	proto.RegisterType((*GetOnuPonOpticalInfoResponse)(nil), "extension.GetOnuPonOpticalInfoResponse")
-	proto.RegisterType((*GetOnuEthernetBridgePortHistory)(nil), "extension.GetOnuEthernetBridgePortHistory")
-	proto.RegisterType((*GetOnuEthernetBridgePortHistoryResponse)(nil), "extension.GetOnuEthernetBridgePortHistoryResponse")
-	proto.RegisterType((*GetOnuAllocGemHistoryRequest)(nil), "extension.GetOnuAllocGemHistoryRequest")
-	proto.RegisterType((*OnuGemPortHistoryData)(nil), "extension.OnuGemPortHistoryData")
-	proto.RegisterType((*OnuAllocHistoryData)(nil), "extension.OnuAllocHistoryData")
-	proto.RegisterType((*OnuAllocGemHistoryData)(nil), "extension.OnuAllocGemHistoryData")
-	proto.RegisterType((*GetOnuAllocGemHistoryResponse)(nil), "extension.GetOnuAllocGemHistoryResponse")
-	proto.RegisterType((*GetOnuFecHistory)(nil), "extension.GetOnuFecHistory")
-	proto.RegisterType((*GetOnuFecHistoryResponse)(nil), "extension.GetOnuFecHistoryResponse")
-	proto.RegisterType((*GetOnuCountersRequest)(nil), "extension.GetOnuCountersRequest")
-	proto.RegisterType((*GetOmciEthernetFrameExtendedPmRequest)(nil), "extension.GetOmciEthernetFrameExtendedPmRequest")
-	proto.RegisterType((*GetRxPowerRequest)(nil), "extension.GetRxPowerRequest")
-	proto.RegisterType((*GetOltRxPowerRequest)(nil), "extension.GetOltRxPowerRequest")
-	proto.RegisterType((*GetPonStatsRequest)(nil), "extension.GetPonStatsRequest")
-	proto.RegisterType((*GetPonStatsResponse)(nil), "extension.GetPonStatsResponse")
-	proto.RegisterType((*GetNNIStatsRequest)(nil), "extension.GetNNIStatsRequest")
-	proto.RegisterType((*GetNNIStatsResponse)(nil), "extension.GetNNIStatsResponse")
-	proto.RegisterType((*GetOnuStatsFromOltRequest)(nil), "extension.GetOnuStatsFromOltRequest")
-	proto.RegisterType((*OnuGemPortInfoFromOlt)(nil), "extension.OnuGemPortInfoFromOlt")
-	proto.RegisterType((*OnuAllocIdInfoFromOlt)(nil), "extension.OnuAllocIdInfoFromOlt")
-	proto.RegisterType((*OnuAllocGemStatsFromOltResponse)(nil), "extension.OnuAllocGemStatsFromOltResponse")
-	proto.RegisterType((*GetOnuStatsFromOltResponse)(nil), "extension.GetOnuStatsFromOltResponse")
-	proto.RegisterType((*GetOnuCountersResponse)(nil), "extension.GetOnuCountersResponse")
-	proto.RegisterType((*OmciEthernetFrameExtendedPm)(nil), "extension.OmciEthernetFrameExtendedPm")
-	proto.RegisterType((*GetOmciEthernetFrameExtendedPmResponse)(nil), "extension.GetOmciEthernetFrameExtendedPmResponse")
-	proto.RegisterType((*RxPower)(nil), "extension.RxPower")
-	proto.RegisterType((*GetOltRxPowerResponse)(nil), "extension.GetOltRxPowerResponse")
-	proto.RegisterType((*GetRxPowerResponse)(nil), "extension.GetRxPowerResponse")
-	proto.RegisterType((*GetOnuOmciTxRxStatsRequest)(nil), "extension.GetOnuOmciTxRxStatsRequest")
-	proto.RegisterType((*GetOnuOmciTxRxStatsResponse)(nil), "extension.GetOnuOmciTxRxStatsResponse")
-	proto.RegisterType((*GetOnuOmciActiveAlarmsRequest)(nil), "extension.GetOnuOmciActiveAlarmsRequest")
-	proto.RegisterType((*AlarmData)(nil), "extension.AlarmData")
-	proto.RegisterType((*GetOnuOmciActiveAlarmsResponse)(nil), "extension.GetOnuOmciActiveAlarmsResponse")
-	proto.RegisterType((*GetOffloadedAppsStatisticsRequest)(nil), "extension.GetOffloadedAppsStatisticsRequest")
-	proto.RegisterType((*GetOffloadedAppsStatisticsResponse)(nil), "extension.GetOffloadedAppsStatisticsResponse")
-	proto.RegisterType((*GetOffloadedAppsStatisticsResponse_DHCPv4RAStats)(nil), "extension.GetOffloadedAppsStatisticsResponse.DHCPv4RAStats")
-	proto.RegisterMapType((map[string]string)(nil), "extension.GetOffloadedAppsStatisticsResponse.DHCPv4RAStats.AdditionalStatsEntry")
-	proto.RegisterType((*GetOffloadedAppsStatisticsResponse_DHCPv6RAStats)(nil), "extension.GetOffloadedAppsStatisticsResponse.DHCPv6RAStats")
-	proto.RegisterMapType((map[string]string)(nil), "extension.GetOffloadedAppsStatisticsResponse.DHCPv6RAStats.AdditionalStatsEntry")
-	proto.RegisterType((*GetOffloadedAppsStatisticsResponse_PPPoeIAStats)(nil), "extension.GetOffloadedAppsStatisticsResponse.PPPoeIAStats")
-	proto.RegisterMapType((map[string]string)(nil), "extension.GetOffloadedAppsStatisticsResponse.PPPoeIAStats.AdditionalStatsEntry")
-	proto.RegisterType((*GetValueRequest)(nil), "extension.GetValueRequest")
-	proto.RegisterType((*GetValueResponse)(nil), "extension.GetValueResponse")
-	proto.RegisterType((*AppOffloadConfig)(nil), "extension.AppOffloadConfig")
-	proto.RegisterType((*AppOffloadOnuConfig)(nil), "extension.AppOffloadOnuConfig")
-	proto.RegisterType((*AppOffloadOnuConfig_PerUniConfig)(nil), "extension.AppOffloadOnuConfig.PerUniConfig")
-	proto.RegisterType((*SetValueRequest)(nil), "extension.SetValueRequest")
-	proto.RegisterType((*SetValueResponse)(nil), "extension.SetValueResponse")
-	proto.RegisterType((*SingleGetValueRequest)(nil), "extension.SingleGetValueRequest")
-	proto.RegisterType((*SingleGetValueResponse)(nil), "extension.SingleGetValueResponse")
-	proto.RegisterType((*SingleSetValueRequest)(nil), "extension.SingleSetValueRequest")
-	proto.RegisterType((*SingleSetValueResponse)(nil), "extension.SingleSetValueResponse")
+type GetOffloadedAppsStatisticsResponse_DHCPv4RAStats struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// From https://github.com/BroadbandForum/yang/blob/master/standard/networking/bbf-l2-dhcpv4-relay.yang
+	InBadPacketsFromClient           uint32 `protobuf:"varint,1,opt,name=in_bad_packets_from_client,json=inBadPacketsFromClient,proto3" json:"in_bad_packets_from_client,omitempty"`
+	InBadPacketsFromServer           uint32 `protobuf:"varint,2,opt,name=in_bad_packets_from_server,json=inBadPacketsFromServer,proto3" json:"in_bad_packets_from_server,omitempty"`
+	InPacketsFromClient              uint32 `protobuf:"varint,3,opt,name=in_packets_from_client,json=inPacketsFromClient,proto3" json:"in_packets_from_client,omitempty"`
+	InPacketsFromServer              uint32 `protobuf:"varint,4,opt,name=in_packets_from_server,json=inPacketsFromServer,proto3" json:"in_packets_from_server,omitempty"`
+	OutPacketsToServer               uint32 `protobuf:"varint,5,opt,name=out_packets_to_server,json=outPacketsToServer,proto3" json:"out_packets_to_server,omitempty"`
+	OutPacketsToClient               uint32 `protobuf:"varint,6,opt,name=out_packets_to_client,json=outPacketsToClient,proto3" json:"out_packets_to_client,omitempty"`
+	Option_82InsertedPacketsToServer uint32 `protobuf:"varint,7,opt,name=option_82_inserted_packets_to_server,json=option82InsertedPacketsToServer,proto3" json:"option_82_inserted_packets_to_server,omitempty"`
+	Option_82RemovedPacketsToClient  uint32 `protobuf:"varint,8,opt,name=option_82_removed_packets_to_client,json=option82RemovedPacketsToClient,proto3" json:"option_82_removed_packets_to_client,omitempty"`
+	Option_82NotInsertedToServer     uint32 `protobuf:"varint,9,opt,name=option_82_not_inserted_to_server,json=option82NotInsertedToServer,proto3" json:"option_82_not_inserted_to_server,omitempty"`
+	// Name value pairs that gives the flexibility to report different statistics that implementations may choose
+	AdditionalStats map[string]string `protobuf:"bytes,10,rep,name=additional_stats,json=additionalStats,proto3" json:"additional_stats,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	unknownFields   protoimpl.UnknownFields
+	sizeCache       protoimpl.SizeCache
 }
 
-func init() { proto.RegisterFile("voltha_protos/extensions.proto", fileDescriptor_7ecf6e9799a9202d) }
-
-var fileDescriptor_7ecf6e9799a9202d = []byte{
-	// 5317 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x7c, 0xcb, 0x6f, 0x23, 0x49,
-	0x72, 0xb7, 0x48, 0x49, 0x14, 0x19, 0x14, 0x25, 0x2a, 0xf5, 0x68, 0x4a, 0xea, 0xd7, 0x70, 0xe7,
-	0xd1, 0xb3, 0xdf, 0x8c, 0xba, 0xc5, 0x96, 0xd4, 0x9a, 0xde, 0xd9, 0xfd, 0x96, 0x94, 0x28, 0x91,
-	0x5f, 0x77, 0x53, 0x9c, 0x24, 0x35, 0x8f, 0xfd, 0xe0, 0xad, 0x2d, 0xb1, 0x52, 0xea, 0x42, 0x93,
-	0x95, 0x74, 0x55, 0x51, 0xab, 0x1e, 0xc3, 0x37, 0xdf, 0xd6, 0x3e, 0x19, 0x30, 0x7c, 0xf1, 0xcd,
-	0x17, 0x03, 0x36, 0x7c, 0xd8, 0x83, 0xe1, 0xeb, 0xc2, 0x47, 0xff, 0x13, 0x86, 0x0f, 0x3e, 0x1b,
-	0xb0, 0x01, 0xc3, 0x06, 0x0c, 0x23, 0x5f, 0x55, 0x59, 0xc5, 0xa2, 0xd4, 0x9a, 0x5d, 0xaf, 0x01,
-	0x5f, 0x66, 0x94, 0xf1, 0xf8, 0x65, 0x64, 0x56, 0x44, 0x64, 0x46, 0x66, 0xb2, 0xe1, 0xfe, 0x25,
-	0xed, 0xfb, 0xaf, 0x4d, 0x63, 0xe8, 0x52, 0x9f, 0x7a, 0x8f, 0xc9, 0x95, 0x4f, 0x1c, 0xcf, 0xa6,
-	0x8e, 0xb7, 0xc5, 0x29, 0x28, 0x17, 0x50, 0x36, 0xc6, 0x45, 0x8d, 0x1e, 0x75, 0xce, 0xed, 0x0b,
-	0x21, 0xba, 0xb1, 0x79, 0x41, 0xe9, 0x45, 0x9f, 0x3c, 0xe6, 0xad, 0xb3, 0xd1, 0xf9, 0x63, 0x32,
-	0x18, 0xfa, 0x6f, 0x25, 0x73, 0x23, 0xaa, 0xdc, 0xa3, 0x83, 0x01, 0x75, 0x04, 0xaf, 0xfc, 0x3b,
-	0x90, 0xfd, 0xd2, 0xec, 0x8f, 0x48, 0x87, 0xf8, 0x68, 0x01, 0xd2, 0xb6, 0x55, 0x4a, 0x3d, 0x4c,
-	0x3d, 0xca, 0xe1, 0xb4, 0x6d, 0xa1, 0x7d, 0x98, 0x37, 0xfb, 0xa6, 0x3b, 0x90, 0x5d, 0x95, 0xd2,
-	0x0f, 0x53, 0x8f, 0xf2, 0x95, 0xe5, 0x2d, 0xd9, 0x73, 0x95, 0xf1, 0x0e, 0xf8, 0xdf, 0x8d, 0x29,
-	0x9c, 0x37, 0xc3, 0x66, 0x6d, 0x0e, 0x66, 0x2f, 0x19, 0x6a, 0xf9, 0x13, 0xc8, 0x71, 0xf8, 0xee,
-	0xdb, 0x21, 0x29, 0x3f, 0x80, 0x19, 0xf6, 0x7f, 0x94, 0x83, 0xd9, 0xfa, 0xab, 0x76, 0xf7, 0x9b,
-	0xe2, 0x14, 0x9a, 0x87, 0xec, 0x61, 0xb3, 0xd3, 0xad, 0xb6, 0x0e, 0xea, 0xc5, 0x54, 0xf9, 0x0b,
-	0x58, 0x10, 0xc6, 0x0c, 0x49, 0xcf, 0x3e, 0xb7, 0x89, 0x3b, 0x66, 0xd2, 0x63, 0x09, 0xcc, 0x6d,
-	0x59, 0xa8, 0xac, 0x6f, 0x05, 0x53, 0xb4, 0x15, 0xf4, 0xb3, 0xc5, 0xfe, 0x83, 0xa5, 0x01, 0x3e,
-	0xcc, 0x63, 0xe2, 0x8f, 0x5c, 0x87, 0xb3, 0x3d, 0x54, 0x84, 0xe9, 0x0e, 0xf1, 0x39, 0x62, 0x01,
-	0xb3, 0x3f, 0xd1, 0x43, 0xc8, 0x9f, 0x3a, 0xde, 0x68, 0x38, 0xa4, 0xae, 0x4f, 0x2c, 0x0e, 0x5c,
-	0xc0, 0x3a, 0x09, 0xad, 0xc0, 0x6c, 0xdd, 0x75, 0xa9, 0x5b, 0x9a, 0xe6, 0x3c, 0xd1, 0x40, 0x1b,
-	0x90, 0x3d, 0xb4, 0x3d, 0xdf, 0x74, 0x7a, 0xa4, 0x34, 0xc3, 0x19, 0x41, 0xbb, 0xbc, 0x07, 0xe8,
-	0x98, 0xf8, 0xaa, 0x89, 0xc9, 0xef, 0x8e, 0x88, 0xc7, 0x7b, 0xa2, 0xce, 0xe8, 0x90, 0x5c, 0xda,
-	0x3d, 0xd2, 0x54, 0xa3, 0xd2, 0x49, 0xe5, 0x6d, 0x58, 0x8e, 0xe8, 0x79, 0x43, 0xea, 0x78, 0x84,
-	0x75, 0x65, 0xa9, 0xae, 0x84, 0xe5, 0x41, 0xbb, 0x5c, 0x81, 0x95, 0x63, 0xe2, 0x9f, 0x38, 0xa3,
-	0x53, 0xc7, 0x6e, 0x3a, 0xe7, 0x54, 0x75, 0xb6, 0x01, 0xd9, 0x11, 0xa3, 0x58, 0xe4, 0x4a, 0xe9,
-	0xa8, 0x76, 0xf9, 0x1f, 0x66, 0x60, 0x35, 0xa6, 0x24, 0x7b, 0x6a, 0x43, 0xd6, 0xb4, 0x06, 0x1d,
-	0xdf, 0xf4, 0x45, 0x4f, 0x0b, 0x95, 0x1d, 0x6d, 0x8a, 0x13, 0x75, 0xb6, 0xaa, 0xd6, 0xc0, 0x76,
-	0x6c, 0xcf, 0x77, 0x4d, 0xdf, 0xbe, 0x24, 0x5c, 0x17, 0x07, 0x28, 0xe8, 0x04, 0x72, 0x74, 0x48,
-	0x5c, 0x01, 0x29, 0xbe, 0xda, 0xf6, 0x8d, 0x90, 0x27, 0x43, 0xc2, 0xd0, 0xa8, 0x63, 0xf6, 0x05,
-	0x5e, 0x88, 0xc1, 0x00, 0x85, 0x03, 0x36, 0x1d, 0x8b, 0x7f, 0x91, 0x77, 0x01, 0x14, 0x7e, 0x39,
-	0x12, 0xa0, 0x4d, 0xc7, 0xc2, 0x21, 0x46, 0xf9, 0x57, 0x29, 0x28, 0xc6, 0xf9, 0x08, 0x20, 0x73,
-	0xda, 0x7a, 0x71, 0xf2, 0x55, 0xab, 0x38, 0x85, 0x10, 0x2c, 0x74, 0xeb, 0x2d, 0xa3, 0x56, 0xed,
-	0xd4, 0x8d, 0xae, 0x71, 0x74, 0xf8, 0x75, 0x31, 0x85, 0xd6, 0x00, 0x35, 0x4e, 0x5b, 0x87, 0xb8,
-	0x7e, 0xa8, 0xd3, 0xd3, 0xa8, 0x04, 0x2b, 0xc7, 0xcd, 0xe3, 0x6a, 0xad, 0xd9, 0x35, 0xea, 0xdd,
-	0x46, 0x1d, 0xb7, 0xea, 0x82, 0x33, 0xcd, 0x34, 0x18, 0xca, 0x71, 0x94, 0x3e, 0x13, 0x43, 0x6f,
-	0x1c, 0x7e, 0x5d, 0x9c, 0x4d, 0x40, 0x67, 0xf4, 0x4c, 0x22, 0x3a, 0xe3, 0xcc, 0x95, 0x8f, 0x61,
-	0x39, 0xe1, 0x3b, 0x30, 0xa0, 0xea, 0xe1, 0xab, 0x4e, 0xb7, 0xda, 0xad, 0x1b, 0xa7, 0xad, 0xc3,
-	0xfa, 0x51, 0xb3, 0x55, 0x3f, 0x2c, 0x4e, 0xb1, 0xe1, 0xbd, 0x3c, 0x39, 0x78, 0x51, 0x3f, 0x2c,
-	0xa6, 0x58, 0x0c, 0x9e, 0xb6, 0x64, 0x2b, 0x5d, 0x3e, 0x82, 0x62, 0x7c, 0xf6, 0xd1, 0x1d, 0x58,
-	0x3e, 0x69, 0xd7, 0xf1, 0x38, 0x4c, 0x1e, 0xe6, 0xea, 0xad, 0x6a, 0xed, 0xa5, 0xc2, 0x39, 0x6c,
-	0x76, 0x44, 0x2b, 0x5d, 0xfe, 0x9b, 0x14, 0x8f, 0x81, 0x93, 0xbe, 0xdf, 0xa6, 0xae, 0x7f, 0x40,
-	0x47, 0x8e, 0x4f, 0x5c, 0x0f, 0xad, 0x41, 0x86, 0x45, 0x55, 0x8b, 0x4a, 0xa7, 0x94, 0x2d, 0x54,
-	0x83, 0x2c, 0xfb, 0x8b, 0x85, 0xae, 0xf4, 0x92, 0x0f, 0x63, 0x1f, 0x35, 0x0a, 0xb4, 0xd5, 0x96,
-	0xd2, 0x38, 0xd0, 0x2b, 0xd7, 0x21, 0xab, 0xa8, 0xa8, 0x08, 0xf3, 0xec, 0x6f, 0xe3, 0xb4, 0xf5,
-	0xa2, 0x25, 0xbe, 0xe2, 0x2a, 0x2c, 0x71, 0x4a, 0x30, 0x71, 0xad, 0x56, 0xb3, 0x98, 0x0a, 0x04,
-	0xdb, 0x27, 0x2d, 0xe3, 0xe4, 0x65, 0xb7, 0x98, 0x2e, 0xff, 0xfd, 0x34, 0x6c, 0x8c, 0x77, 0x18,
-	0x84, 0x48, 0x09, 0xe6, 0xfc, 0xab, 0xda, 0x5b, 0x9f, 0x78, 0x7c, 0x08, 0x33, 0x58, 0x35, 0x19,
-	0xc7, 0x95, 0x9c, 0xb4, 0xe0, 0xc8, 0x26, 0xba, 0x0b, 0x39, 0xff, 0xaa, 0x6d, 0xf6, 0xde, 0x10,
-	0xdf, 0xe3, 0x3e, 0x3b, 0x83, 0x43, 0x02, 0xe3, 0xba, 0x01, 0x77, 0x46, 0x70, 0x03, 0x02, 0xfa,
-	0x10, 0x16, 0xfc, 0x2b, 0x9e, 0x72, 0x94, 0xc8, 0x2c, 0x17, 0x89, 0x51, 0x99, 0x9c, 0x1b, 0x95,
-	0xcb, 0x08, 0x39, 0x77, 0x4c, 0xce, 0xbf, 0xaa, 0xf5, 0x4c, 0xcf, 0x57, 0x72, 0x73, 0x0a, 0x4f,
-	0xa7, 0x0a, 0xbc, 0x88, 0x5c, 0x56, 0xe1, 0xc5, 0xe5, 0xfc, 0xab, 0x53, 0x5d, 0x2e, 0xa7, 0xf0,
-	0x4e, 0xc7, 0xf0, 0x22, 0x72, 0xa0, 0xf0, 0x4e, 0xc7, 0xf0, 0x5e, 0xe9, 0x72, 0x79, 0x85, 0xf7,
-	0x6a, 0x0c, 0x2f, 0x22, 0x37, 0xaf, 0xf0, 0x74, 0x6a, 0xf9, 0x50, 0x25, 0xc8, 0x36, 0x75, 0x4e,
-	0x86, 0xbe, 0xdd, 0x33, 0xfb, 0x2c, 0x35, 0xa0, 0x4f, 0x60, 0x96, 0x2f, 0x92, 0xfc, 0x2b, 0xe6,
-	0x2b, 0x6b, 0x5b, 0x62, 0x09, 0xdd, 0x52, 0x4b, 0xe8, 0x56, 0x9d, 0x71, 0xb1, 0x10, 0x2a, 0xff,
-	0x41, 0x1a, 0xee, 0x26, 0xc1, 0x04, 0x6e, 0xf1, 0x7d, 0x28, 0x0e, 0xe9, 0xcf, 0x89, 0x7b, 0x44,
-	0x88, 0xf5, 0x25, 0xed, 0xfb, 0xe6, 0x85, 0xc8, 0xa0, 0x69, 0x3c, 0x46, 0x47, 0x15, 0x58, 0x71,
-	0x49, 0x8f, 0xd8, 0x97, 0xc4, 0x92, 0x50, 0x6d, 0x26, 0xc2, 0xbd, 0x26, 0x8d, 0x13, 0x79, 0x68,
-	0x0f, 0xd6, 0x06, 0xc4, 0x54, 0x5d, 0xbf, 0x34, 0x47, 0x4e, 0xef, 0xb5, 0xd0, 0x9a, 0xe6, 0x5a,
-	0x13, 0xb8, 0xcc, 0xae, 0xbe, 0xe9, 0x11, 0xb7, 0x66, 0x9b, 0xde, 0xc1, 0xc8, 0x75, 0x89, 0xe3,
-	0x73, 0x1f, 0x4b, 0xe3, 0x31, 0x3a, 0x5b, 0xa0, 0x7c, 0x32, 0xe0, 0xd1, 0x3f, 0x72, 0x09, 0xf7,
-	0xb3, 0x34, 0xd6, 0x49, 0xe5, 0xbf, 0x4e, 0xc1, 0x03, 0x31, 0x0d, 0x75, 0xff, 0x35, 0x71, 0x1d,
-	0xe2, 0xd7, 0x5c, 0xdb, 0xba, 0x20, 0x2c, 0x52, 0x1a, 0xb6, 0xe7, 0x53, 0xf7, 0x2d, 0xc2, 0x90,
-	0xb3, 0x6c, 0x97, 0xf4, 0x58, 0x06, 0x99, 0xb8, 0x88, 0x4c, 0x54, 0xdf, 0x3a, 0x54, 0xba, 0x38,
-	0x84, 0x29, 0xef, 0x43, 0x2e, 0xa0, 0xa3, 0x02, 0xe4, 0xf4, 0x24, 0xc4, 0xf2, 0x57, 0xbb, 0xd3,
-	0xc5, 0xf5, 0xea, 0xab, 0x62, 0x0a, 0x2d, 0x00, 0x1c, 0x9e, 0x7c, 0xd5, 0x92, 0xed, 0x74, 0xf9,
-	0x8f, 0x67, 0xe1, 0xa3, 0x1b, 0xba, 0x0c, 0xbe, 0xe1, 0x7d, 0x00, 0xcb, 0xa5, 0xc3, 0xfa, 0x25,
-	0x71, 0x7c, 0x4f, 0x26, 0x28, 0x8d, 0xc2, 0x92, 0x17, 0xed, 0xf9, 0xcc, 0xd5, 0xc4, 0x2e, 0x41,
-	0xb6, 0x58, 0xe0, 0x0f, 0xb5, 0xe0, 0x2e, 0x60, 0xd5, 0x64, 0xb3, 0x7f, 0xe6, 0x52, 0xd3, 0xd2,
-	0xdd, 0x54, 0x6c, 0x16, 0xc6, 0xe8, 0x4c, 0x76, 0x30, 0xea, 0xb3, 0x0f, 0x18, 0xca, 0xce, 0x0a,
-	0xd9, 0x38, 0x1d, 0x7d, 0x02, 0x4b, 0x3d, 0xb7, 0xc7, 0xe3, 0x9a, 0x58, 0x7a, 0xbc, 0x17, 0xf0,
-	0x38, 0x83, 0x21, 0x8f, 0x1c, 0x8b, 0xb8, 0x9e, 0xfd, 0x2d, 0xd1, 0x83, 0xbe, 0x80, 0xc7, 0xe8,
-	0xe8, 0x11, 0x2c, 0xd2, 0xcb, 0xa8, 0x68, 0x96, 0x8b, 0xc6, 0xc9, 0x4c, 0x52, 0x0e, 0x73, 0x6f,
-	0x47, 0x4e, 0x4b, 0x4e, 0x48, 0xc6, 0xc8, 0xcc, 0xdf, 0x15, 0x69, 0xb7, 0x4b, 0xb7, 0x2b, 0xcf,
-	0xa4, 0x38, 0x70, 0xf1, 0x44, 0x1e, 0xda, 0x81, 0x55, 0x49, 0xdf, 0xae, 0xec, 0x77, 0x69, 0x65,
-	0x77, 0xf7, 0x44, 0x28, 0xe5, 0xb9, 0x52, 0x32, 0x53, 0xd3, 0xaa, 0xec, 0xee, 0x75, 0xe9, 0xee,
-	0xf6, 0xb6, 0xec, 0x6a, 0x3e, 0xa2, 0x15, 0x65, 0xb2, 0xd8, 0x92, 0x8c, 0xdd, 0xed, 0x4a, 0x97,
-	0x6e, 0x3f, 0xa9, 0x3c, 0x95, 0x6a, 0x05, 0xae, 0x36, 0x81, 0x8b, 0xf6, 0xe1, 0x8e, 0x32, 0xe3,
-	0x49, 0x65, 0xa7, 0x4b, 0xb7, 0x77, 0xb7, 0xf7, 0xa5, 0xe2, 0x02, 0x57, 0x9c, 0xc4, 0x2e, 0xbf,
-	0x54, 0xd9, 0xa4, 0xda, 0xef, 0xd3, 0xde, 0x31, 0x19, 0x04, 0xae, 0x28, 0x76, 0x6f, 0xb7, 0x4b,
-	0x4e, 0xbf, 0x9c, 0x86, 0xd5, 0x13, 0x67, 0x74, 0x4c, 0x06, 0x9a, 0x57, 0x1f, 0x9a, 0xbe, 0xc9,
-	0xb6, 0xae, 0x17, 0x64, 0x20, 0x37, 0x9b, 0x05, 0x2c, 0x1a, 0xec, 0x7b, 0xf8, 0xae, 0xe9, 0x78,
-	0x03, 0xdb, 0xf7, 0x89, 0x75, 0x5c, 0x7f, 0x75, 0xe4, 0x9a, 0x03, 0xa2, 0xbc, 0x3a, 0x91, 0xc7,
-	0x3c, 0x4e, 0xe5, 0xa5, 0x50, 0x41, 0x78, 0xfb, 0x38, 0x03, 0xed, 0x85, 0x19, 0xae, 0x6d, 0xbe,
-	0xed, 0x53, 0xd3, 0x12, 0xeb, 0x22, 0xf7, 0xfd, 0x5a, 0xba, 0x94, 0xc2, 0x89, 0x7c, 0xf4, 0x39,
-	0xdc, 0xd1, 0x7a, 0x8f, 0xa8, 0xce, 0x06, 0xaa, 0x93, 0x44, 0xd0, 0x13, 0x58, 0x26, 0x4e, 0xcf,
-	0x7d, 0x3b, 0x64, 0x69, 0xe2, 0x05, 0x79, 0xcb, 0xc3, 0x40, 0xc5, 0x45, 0x12, 0x0b, 0x7d, 0x06,
-	0xeb, 0xca, 0x0e, 0x63, 0x28, 0xa0, 0x8c, 0x33, 0x86, 0x65, 0xec, 0xed, 0xf0, 0x10, 0xc9, 0xe0,
-	0xb5, 0x24, 0x43, 0xf7, 0x76, 0xd0, 0xff, 0x85, 0xbb, 0x9a, 0x1d, 0xe3, 0xda, 0x59, 0xae, 0xbd,
-	0x3e, 0xc1, 0xd6, 0xbd, 0x9d, 0x72, 0x13, 0x96, 0x95, 0x03, 0xe8, 0x9f, 0xac, 0x04, 0x73, 0x26,
-	0xa3, 0x05, 0x1f, 0x4d, 0x35, 0xe3, 0xfb, 0x8b, 0x42, 0xb0, 0xbf, 0x28, 0xff, 0x79, 0x0a, 0xd6,
-	0xc6, 0x9d, 0x89, 0xc3, 0x1d, 0xc1, 0x02, 0x95, 0x9c, 0xa6, 0xc5, 0x56, 0x2c, 0xe9, 0x52, 0xf7,
-	0xb5, 0x94, 0x9c, 0x60, 0x06, 0x8e, 0x69, 0xa1, 0x1a, 0xe4, 0x2f, 0x84, 0x7f, 0x71, 0x90, 0xf4,
-	0xc3, 0xe9, 0x47, 0xf9, 0xca, 0xc3, 0x28, 0xc8, 0xb8, 0x03, 0x62, 0x5d, 0xa9, 0xfc, 0x2d, 0xdc,
-	0x9b, 0xe0, 0xf5, 0x32, 0x01, 0x7f, 0x03, 0x6b, 0x34, 0x71, 0x18, 0xa5, 0x14, 0xef, 0xef, 0xbd,
-	0x04, 0xa3, 0xa3, 0x82, 0x78, 0x02, 0x40, 0xf9, 0xc7, 0x50, 0x14, 0x7d, 0x1f, 0x11, 0x35, 0xce,
-	0x5b, 0x46, 0xd9, 0x3f, 0x4e, 0x43, 0x29, 0x0e, 0xa1, 0x2d, 0xff, 0x0b, 0x3d, 0xea, 0xb2, 0x15,
-	0x8a, 0x58, 0xe1, 0xe6, 0x50, 0xf8, 0x6b, 0x8c, 0x83, 0x2a, 0x80, 0x02, 0xca, 0x01, 0xb5, 0xc8,
-	0x57, 0xd4, 0xb5, 0xe4, 0x27, 0xe5, 0xf2, 0x09, 0x5c, 0xb6, 0x34, 0x9d, 0x93, 0x5e, 0x87, 0xf4,
-	0xa8, 0x63, 0xa9, 0xb8, 0xd3, 0x28, 0xac, 0x7f, 0x9f, 0xfa, 0x66, 0x3f, 0xc4, 0x0b, 0x43, 0x2d,
-	0xc6, 0x41, 0xcf, 0x61, 0x6d, 0xe4, 0xc8, 0x3e, 0xcc, 0xb3, 0x3e, 0x09, 0x75, 0xc2, 0x18, 0x9b,
-	0x20, 0x81, 0x9e, 0xc2, 0xda, 0x39, 0xe9, 0x19, 0x81, 0x85, 0xa1, 0xbf, 0x67, 0xb8, 0xbf, 0x2f,
-	0x9f, 0x93, 0xde, 0x41, 0x64, 0xb8, 0x7b, 0x3b, 0xe8, 0x73, 0xd8, 0x8c, 0x2a, 0xf5, 0xa8, 0x45,
-	0x8c, 0x9f, 0x33, 0xc0, 0x30, 0xce, 0xee, 0xe8, 0x9a, 0x41, 0x87, 0x7b, 0x3b, 0xe8, 0x53, 0x58,
-	0xe6, 0x03, 0x88, 0x69, 0x89, 0xf8, 0x2a, 0x46, 0xc7, 0xb6, 0xb7, 0x83, 0x7e, 0x08, 0x9b, 0x11,
-	0xdb, 0x63, 0x6a, 0x39, 0xae, 0x56, 0x4a, 0x1e, 0xde, 0xde, 0x4e, 0xf9, 0x58, 0x95, 0xc6, 0xe1,
-	0xc6, 0x5f, 0xa4, 0xe4, 0x3b, 0x30, 0x67, 0x3b, 0xfe, 0xb9, 0x21, 0xcf, 0x23, 0xe6, 0x70, 0x86,
-	0x35, 0x9b, 0x16, 0x5a, 0x85, 0x0c, 0x75, 0x46, 0x8c, 0x9e, 0xe6, 0xf4, 0x59, 0xea, 0x8c, 0x9a,
-	0x56, 0xf9, 0x8f, 0x52, 0xf0, 0x01, 0x43, 0x1a, 0xf4, 0x6c, 0xb5, 0xf3, 0xe0, 0xc9, 0xb1, 0xce,
-	0x3c, 0xd8, 0x22, 0x56, 0x7b, 0xf0, 0xce, 0xe7, 0x02, 0xe8, 0xae, 0x56, 0xcc, 0x73, 0x3f, 0x69,
-	0x4c, 0x85, 0xe5, 0x3c, 0x4b, 0xf2, 0x2e, 0xf1, 0x88, 0xcf, 0xdd, 0x22, 0x8b, 0x45, 0xa3, 0xb6,
-	0x00, 0xf3, 0xb6, 0x67, 0x8c, 0x1c, 0xdb, 0xb0, 0x79, 0xd1, 0x7f, 0x00, 0x4b, 0xc7, 0xc4, 0xc7,
-	0x57, 0x7c, 0x5b, 0xf8, 0x5d, 0x07, 0xf5, 0x52, 0x6c, 0xa6, 0xfb, 0x71, 0x9c, 0x7b, 0x00, 0xac,
-	0x0c, 0x33, 0xfa, 0xe6, 0x19, 0xe9, 0xcb, 0x11, 0xe4, 0x18, 0xe5, 0x25, 0x23, 0x28, 0x34, 0xcf,
-	0xe1, 0x68, 0x39, 0x8e, 0xd6, 0x71, 0xca, 0x3f, 0xe1, 0x25, 0x62, 0x9b, 0x3a, 0xac, 0xcc, 0x0c,
-	0x26, 0xfa, 0x3e, 0x84, 0x9a, 0x02, 0xaa, 0x31, 0xa5, 0x83, 0x95, 0x44, 0x09, 0xd9, 0x94, 0xa6,
-	0x35, 0xa6, 0xb0, 0x6c, 0xd7, 0x40, 0x14, 0x91, 0x3c, 0xd7, 0x50, 0x7e, 0x94, 0x12, 0x62, 0x87,
-	0xd5, 0xdb, 0x90, 0x3a, 0x2c, 0x23, 0xa9, 0xec, 0x2a, 0x9b, 0xe8, 0x47, 0xb0, 0xc0, 0x94, 0x99,
-	0xb8, 0xed, 0xf9, 0x76, 0xcf, 0x93, 0xe7, 0x5d, 0x6b, 0x5b, 0xf2, 0xc0, 0xac, 0x1d, 0xe1, 0xe2,
-	0x98, 0xb4, 0x1c, 0x4c, 0xab, 0xd5, 0xfc, 0x6f, 0x1b, 0x4c, 0x88, 0x1d, 0x0e, 0xc6, 0x71, 0x6c,
-	0x7d, 0x30, 0xb2, 0xf9, 0x6b, 0x0f, 0xa6, 0x09, 0xeb, 0x22, 0x0a, 0x78, 0x87, 0x47, 0x2e, 0x1d,
-	0xb0, 0x6f, 0x2e, 0xc7, 0xb4, 0x06, 0xd2, 0x4b, 0x62, 0x3e, 0xb3, 0x02, 0xc2, 0x4b, 0xa2, 0x2e,
-	0xf3, 0x67, 0x29, 0x7d, 0x73, 0xc2, 0x86, 0x23, 0xe1, 0x26, 0x6c, 0x4e, 0x22, 0xd5, 0x70, 0x3a,
-	0x5e, 0x0d, 0x6b, 0x6b, 0xe0, 0xf4, 0x35, 0x35, 0xf6, 0x4c, 0xbc, 0xc6, 0xd6, 0xaa, 0xf6, 0xd9,
-	0x48, 0xd5, 0x5e, 0x7e, 0xc1, 0xcd, 0xd3, 0x96, 0x3a, 0x65, 0xde, 0x3b, 0x2f, 0xc4, 0xa1, 0x11,
-	0xe5, 0xbf, 0x48, 0xc1, 0x03, 0x6d, 0x61, 0x8a, 0xce, 0x9e, 0xfc, 0x6a, 0x35, 0xc8, 0x9b, 0x63,
-	0xcb, 0xf1, 0xc3, 0x84, 0x95, 0x2d, 0x62, 0x0e, 0xd6, 0x95, 0x6e, 0xb3, 0x1a, 0x47, 0x30, 0xf4,
-	0xd5, 0xf8, 0x52, 0x1c, 0x73, 0xc4, 0xbf, 0xb1, 0xb4, 0xf2, 0x6b, 0x58, 0x32, 0xf5, 0x51, 0x48,
-	0x5b, 0x59, 0x3f, 0xdf, 0x4f, 0x5e, 0x85, 0x93, 0x60, 0xf0, 0x38, 0x48, 0xf9, 0x4f, 0x0a, 0xb0,
-	0x16, 0x4f, 0xb1, 0xb2, 0xd3, 0xf5, 0x58, 0x3a, 0x62, 0xe1, 0x20, 0x9d, 0xeb, 0x4e, 0x34, 0x21,
-	0x35, 0x52, 0xd2, 0xbf, 0xd0, 0x47, 0xcc, 0xd5, 0x3d, 0xdb, 0xb7, 0x2f, 0x89, 0x61, 0xb9, 0xf6,
-	0xb9, 0x48, 0x83, 0x99, 0x46, 0x1a, 0x17, 0x14, 0xfd, 0x90, 0x91, 0x99, 0xa0, 0x43, 0x2e, 0x4c,
-	0x4d, 0x70, 0x86, 0x0b, 0x4e, 0xe3, 0x82, 0xa2, 0x0b, 0xc1, 0xe7, 0x50, 0xb2, 0x48, 0xdf, 0x1e,
-	0xd8, 0x3e, 0x71, 0x8d, 0x81, 0xed, 0x79, 0x86, 0x45, 0x7c, 0x59, 0xcf, 0xce, 0x72, 0x95, 0x19,
-	0xbc, 0x16, 0x48, 0xbc, 0xb2, 0x3d, 0xef, 0x50, 0xf1, 0xd1, 0x03, 0x80, 0x33, 0x7b, 0x68, 0x90,
-	0x70, 0xe7, 0x99, 0x69, 0xcc, 0xe2, 0xdc, 0x99, 0x3d, 0x94, 0x3b, 0xce, 0x7b, 0xc0, 0x1a, 0x2c,
-	0x2f, 0xcb, 0x22, 0x2c, 0xd3, 0xc8, 0xe0, 0xec, 0x99, 0x3d, 0x3c, 0x65, 0x14, 0x56, 0xc0, 0x44,
-	0x97, 0x4a, 0xef, 0xed, 0xe0, 0x8c, 0xf6, 0x45, 0x11, 0x96, 0x69, 0xcc, 0x45, 0x17, 0xd8, 0x8e,
-	0x60, 0xb2, 0x42, 0x44, 0x68, 0x59, 0x44, 0x2c, 0x74, 0x81, 0xbe, 0x58, 0xef, 0x1a, 0x59, 0xbc,
-	0xca, 0xf5, 0x24, 0x3f, 0x00, 0x40, 0x3f, 0x56, 0x4b, 0xb3, 0xd2, 0x8c, 0x2c, 0x8c, 0xbc, 0x42,
-	0xcb, 0x34, 0x72, 0x78, 0x5d, 0xd7, 0x3e, 0xd5, 0x45, 0xd0, 0x07, 0x50, 0x88, 0x20, 0xf0, 0x02,
-	0x2d, 0xd3, 0x00, 0x3c, 0xaf, 0xeb, 0xb0, 0xbd, 0x79, 0x74, 0x60, 0x62, 0x06, 0xe6, 0xb9, 0x70,
-	0x1e, 0x2f, 0xe9, 0xc3, 0x12, 0x53, 0xf1, 0x08, 0x16, 0xaf, 0x2e, 0xc8, 0xc0, 0x78, 0x43, 0xde,
-	0xaa, 0xf9, 0x2c, 0x70, 0xe9, 0x79, 0x5c, 0x60, 0x8c, 0x70, 0x17, 0x7f, 0x0f, 0x72, 0x5c, 0xb2,
-	0x4f, 0x3d, 0x51, 0x79, 0x65, 0x1a, 0x05, 0x9c, 0x65, 0xa4, 0x97, 0xd4, 0xe3, 0x40, 0xee, 0x95,
-	0x31, 0xec, 0x53, 0x73, 0xe0, 0x09, 0xa4, 0xd2, 0x22, 0x17, 0x5a, 0xc0, 0x05, 0xf7, 0xaa, 0xcd,
-	0xe9, 0xe2, 0x4c, 0xff, 0x53, 0x40, 0xa1, 0xa4, 0x43, 0x1d, 0xc3, 0xb6, 0xfa, 0xa4, 0x54, 0xe4,
-	0xc2, 0x8b, 0x78, 0x51, 0x09, 0xb7, 0xa8, 0xd3, 0xb4, 0xfa, 0xdc, 0x5d, 0xdd, 0x2b, 0x83, 0x0e,
-	0x7a, 0x76, 0x69, 0x89, 0xcb, 0x14, 0x71, 0xc6, 0xbd, 0x62, 0x2b, 0x3e, 0x63, 0xf9, 0x92, 0x85,
-	0x38, 0x6b, 0x09, 0x67, 0x7c, 0xc1, 0x7a, 0x0e, 0xeb, 0x52, 0xcb, 0x90, 0xe5, 0xa1, 0xd1, 0x73,
-	0x7b, 0xd2, 0xb0, 0x65, 0x2e, 0x8c, 0xf0, 0xaa, 0xc0, 0x91, 0xe9, 0xeb, 0x40, 0x96, 0xf4, 0x68,
-	0x13, 0xb2, 0xee, 0x95, 0xd8, 0x73, 0x95, 0x56, 0xb8, 0xe8, 0x72, 0x98, 0x01, 0x1f, 0x00, 0x30,
-	0xeb, 0x65, 0x0a, 0x5c, 0xe5, 0xec, 0x15, 0x3d, 0x79, 0x6e, 0x42, 0xd6, 0x57, 0xda, 0x6b, 0x9c,
-	0xbd, 0x1a, 0x9e, 0x5e, 0x3e, 0x00, 0xf0, 0x43, 0xed, 0x3b, 0x9c, 0xbd, 0xa6, 0xa7, 0xd0, 0xef,
-	0xc1, 0xfc, 0x19, 0x71, 0x0d, 0x97, 0xc8, 0x9b, 0x92, 0x12, 0x17, 0xb9, 0x83, 0xf3, 0x67, 0x6c,
-	0x1f, 0x20, 0xef, 0x4a, 0xde, 0x83, 0x7c, 0xbf, 0x67, 0x5d, 0xa8, 0x0f, 0xb6, 0xce, 0x65, 0x4a,
-	0x18, 0x18, 0x51, 0x7e, 0x2d, 0x66, 0xa6, 0x65, 0x2b, 0x89, 0x0d, 0x2e, 0xb1, 0x8e, 0x73, 0xae,
-	0x65, 0x4b, 0x81, 0xfb, 0x90, 0xf3, 0xed, 0x01, 0xf1, 0x7c, 0x73, 0x30, 0x2c, 0x6d, 0xf2, 0x68,
-	0xdf, 0xc0, 0x21, 0x89, 0x01, 0xbc, 0x26, 0x3d, 0x05, 0x70, 0x97, 0x03, 0x6c, 0xe2, 0xdc, 0x6b,
-	0x22, 0x26, 0xc9, 0xab, 0xcd, 0x03, 0xd8, 0x9e, 0x21, 0x33, 0x49, 0x2d, 0x0f, 0x39, 0xdb, 0x33,
-	0x44, 0xf2, 0xa8, 0x2d, 0xc3, 0x92, 0xed, 0x19, 0xd1, 0x84, 0x21, 0x89, 0xd1, 0xe4, 0x50, 0xbb,
-	0x07, 0x9b, 0x36, 0x8b, 0xfc, 0xe4, 0x44, 0x50, 0x5b, 0x84, 0x82, 0xed, 0x19, 0x61, 0xac, 0xcb,
-	0xfd, 0x56, 0x10, 0xdb, 0xb5, 0x0d, 0x28, 0xd9, 0x9e, 0x91, 0x18, 0xcc, 0xb5, 0xbb, 0xb0, 0x11,
-	0xf0, 0xc6, 0x42, 0xb6, 0xf6, 0x10, 0xee, 0x8f, 0x71, 0x23, 0x61, 0x59, 0x43, 0x50, 0x8c, 0x4b,
-	0xd4, 0x4a, 0xb0, 0x36, 0xd6, 0x9f, 0xb0, 0x64, 0x05, 0x90, 0xed, 0x19, 0xb1, 0x58, 0x92, 0xf6,
-	0x06, 0x71, 0x23, 0xa5, 0x62, 0x81, 0x52, 0xbb, 0x03, 0xab, 0x11, 0xaa, 0x0a, 0x0a, 0x39, 0xc7,
-	0xd2, 0x91, 0x65, 0x4b, 0x7a, 0x7c, 0xed, 0x3e, 0xdc, 0x0d, 0x79, 0xe3, 0x4e, 0x5e, 0x2b, 0x40,
-	0x5e, 0xf0, 0xb9, 0x2b, 0xca, 0xa9, 0x0c, 0x5d, 0x57, 0xf2, 0xfd, 0x28, 0x3f, 0x74, 0xce, 0xda,
-	0x12, 0x2c, 0xb2, 0xa9, 0xd6, 0x9c, 0xb1, 0x56, 0x84, 0x05, 0xdb, 0x33, 0x34, 0xd7, 0x53, 0xa8,
-	0x81, 0xa7, 0xc9, 0x01, 0x07, 0x6e, 0x24, 0x05, 0x42, 0x4f, 0x2a, 0xff, 0xe1, 0x2c, 0x6c, 0x5e,
-	0xb3, 0x5d, 0x47, 0x0f, 0x20, 0x6f, 0xb9, 0x74, 0x68, 0x90, 0xf0, 0x7c, 0x30, 0x73, 0xcd, 0xf9,
-	0x60, 0x26, 0x38, 0x1f, 0x5c, 0x83, 0xcc, 0x79, 0x78, 0x60, 0x92, 0xc1, 0xb2, 0x85, 0x3e, 0xd6,
-	0x4e, 0x07, 0x0d, 0x29, 0xc1, 0xd7, 0x24, 0xbc, 0x18, 0xd0, 0x8f, 0x02, 0xd1, 0xe0, 0x10, 0x50,
-	0x89, 0xce, 0x0a, 0xd1, 0x80, 0x1e, 0x9c, 0xd4, 0xa0, 0x60, 0xaa, 0x89, 0xa5, 0x84, 0x45, 0x79,
-	0x56, 0x0c, 0x0f, 0x07, 0x43, 0xe0, 0xe0, 0x0c, 0x50, 0xc9, 0x8a, 0x82, 0x6c, 0x31, 0xa0, 0x4b,
-	0xd1, 0x8f, 0xc2, 0xa3, 0x41, 0x25, 0x29, 0x8a, 0xb0, 0x05, 0x45, 0x96, 0x82, 0x8f, 0xa0, 0x28,
-	0xf8, 0xc6, 0xde, 0x8e, 0xa1, 0x1d, 0x0d, 0x66, 0xf0, 0x82, 0xa0, 0xef, 0xed, 0x04, 0xe7, 0x75,
-	0x77, 0x94, 0xe4, 0xae, 0xe1, 0x53, 0x63, 0xbb, 0xf2, 0xcc, 0xd0, 0x0e, 0x07, 0x59, 0x3d, 0x29,
-	0x14, 0xc4, 0xd9, 0xe0, 0x89, 0x3a, 0xaf, 0x2b, 0x49, 0xad, 0xed, 0xca, 0x3e, 0x53, 0xab, 0xec,
-	0xee, 0x2a, 0x35, 0xbe, 0xfa, 0xe0, 0x15, 0xc1, 0x8f, 0x9d, 0x0e, 0x86, 0x7a, 0x95, 0xdd, 0x3d,
-	0xa6, 0xb7, 0xbb, 0xbd, 0x6d, 0x68, 0x07, 0x84, 0x81, 0x9e, 0x3a, 0x1f, 0x3c, 0x51, 0xe7, 0x7c,
-	0xeb, 0x52, 0x6f, 0x77, 0xbb, 0xc2, 0xcd, 0x7c, 0x52, 0x79, 0x6a, 0x68, 0x47, 0x84, 0x19, 0xbc,
-	0x2a, 0x04, 0x82, 0x13, 0x42, 0xa9, 0xf9, 0x1c, 0x36, 0x94, 0xa5, 0x4f, 0x2a, 0x3b, 0x5c, 0x75,
-	0x77, 0x7b, 0xdf, 0xd0, 0x0e, 0x09, 0x33, 0x78, 0x4d, 0xda, 0x1a, 0x9c, 0x11, 0x0a, 0xdd, 0xf2,
-	0xbf, 0xa4, 0xe1, 0xc3, 0x9b, 0x0a, 0xc8, 0x60, 0x4b, 0x99, 0x1d, 0x0d, 0x3d, 0xdf, 0x25, 0xe6,
-	0x40, 0xee, 0x27, 0xf5, 0xdb, 0xb3, 0xeb, 0x10, 0x02, 0x3d, 0x74, 0x04, 0x60, 0xd1, 0x9f, 0x3b,
-	0x12, 0x25, 0x7d, 0x2b, 0x14, 0x4d, 0x13, 0xfd, 0x22, 0x05, 0x1f, 0xf2, 0xb8, 0x27, 0x52, 0x58,
-	0xf8, 0x8a, 0x41, 0xa4, 0xb8, 0x31, 0x1c, 0x18, 0xe7, 0xd4, 0x1d, 0x98, 0xbe, 0xbc, 0xbd, 0xdd,
-	0x8f, 0x5d, 0x0e, 0xdc, 0x3c, 0xde, 0xad, 0x23, 0xae, 0x8f, 0xdf, 0xa3, 0x93, 0x65, 0x85, 0x48,
-	0xf9, 0x09, 0x64, 0xc4, 0x5f, 0xfc, 0x9e, 0xb5, 0xd1, 0xc4, 0xdd, 0x6f, 0x8c, 0xee, 0x57, 0x27,
-	0x46, 0xad, 0xd9, 0x15, 0x37, 0xbb, 0x9d, 0xe6, 0xd7, 0xdd, 0x6f, 0x8c, 0xa3, 0x93, 0x53, 0xcc,
-	0x69, 0xa9, 0xb2, 0x0f, 0x73, 0xb2, 0xb8, 0xd5, 0xca, 0xd6, 0x94, 0x56, 0xb6, 0xb2, 0x70, 0xf6,
-	0x7c, 0xd3, 0x1f, 0x79, 0xb2, 0x9a, 0x95, 0x2d, 0x96, 0x1f, 0xce, 0x4d, 0xbb, 0x6f, 0xb8, 0xc4,
-	0xf4, 0xa8, 0xc3, 0x47, 0x97, 0xc3, 0xc0, 0x48, 0x98, 0x53, 0xd0, 0x3a, 0x5f, 0xbd, 0xf9, 0x75,
-	0x10, 0x8f, 0xf3, 0x14, 0x5b, 0xbb, 0x79, 0x57, 0x65, 0x22, 0x8e, 0x1d, 0xb4, 0xc2, 0x5a, 0x7e,
-	0xda, 0x1b, 0x2a, 0xeb, 0x4f, 0x35, 0x48, 0x51, 0x05, 0x20, 0x6d, 0x3a, 0x15, 0x58, 0xd0, 0xcd,
-	0x9f, 0x8a, 0x5b, 0xd9, 0x78, 0x27, 0xb7, 0x3c, 0x06, 0xd0, 0x66, 0x60, 0xfa, 0xba, 0x19, 0x98,
-	0xb9, 0x76, 0x06, 0x66, 0xa3, 0x33, 0xf0, 0xff, 0x54, 0x39, 0xc2, 0x1c, 0xa0, 0x7b, 0x85, 0xaf,
-	0x22, 0x75, 0xf4, 0xed, 0x8e, 0xea, 0xfe, 0x79, 0x1a, 0x36, 0x13, 0xc1, 0xe4, 0x78, 0x3f, 0x86,
-	0xa5, 0x33, 0xd3, 0x23, 0x6c, 0x4d, 0x31, 0x5d, 0x95, 0xcb, 0x44, 0x91, 0xb7, 0xc0, 0x18, 0xdd,
-	0xab, 0xaa, 0x1b, 0xe4, 0x47, 0x21, 0xea, 0x5e, 0x19, 0xe6, 0x1b, 0x25, 0x9a, 0x0e, 0x45, 0xf1,
-	0x55, 0xf5, 0x8d, 0x14, 0xdd, 0x82, 0x15, 0x85, 0xea, 0x50, 0x0d, 0x78, 0x5a, 0x5e, 0xf8, 0x70,
-	0xe0, 0x16, 0x0d, 0xa0, 0x95, 0xbc, 0x2b, 0xe4, 0xdf, 0xe8, 0x4b, 0x80, 0x94, 0xc7, 0x4c, 0xfe,
-	0x4d, 0x90, 0x7f, 0x8b, 0xe4, 0xca, 0x8f, 0x1a, 0x2d, 0x2e, 0x88, 0x0a, 0xe4, 0xca, 0xd7, 0x6c,
-	0x96, 0x82, 0x11, 0x93, 0x33, 0x81, 0xa0, 0x66, 0xf1, 0x27, 0xb0, 0x2c, 0x11, 0x23, 0x06, 0x8b,
-	0xbb, 0xa1, 0x45, 0x0e, 0xaa, 0xd9, 0x2b, 0xa5, 0xe3, 0xe6, 0x66, 0x03, 0xe9, 0x88, 0xb5, 0xbb,
-	0x70, 0x47, 0xee, 0x07, 0x8c, 0x9e, 0xa8, 0xf3, 0x0c, 0x97, 0xf8, 0xae, 0x4d, 0xd4, 0x35, 0xd1,
-	0x8a, 0xd8, 0x0f, 0xcb, 0x22, 0x10, 0x0b, 0x1e, 0x7a, 0x06, 0xa5, 0xb8, 0x1a, 0x5b, 0xb2, 0xe9,
-	0x28, 0xb8, 0x2f, 0x5a, 0x8d, 0xe8, 0x75, 0x25, 0xb3, 0xfc, 0x4a, 0x1d, 0x2e, 0x33, 0x66, 0xb5,
-	0xc7, 0x76, 0x72, 0xfc, 0x85, 0xd2, 0x77, 0x74, 0xa1, 0xdf, 0x87, 0x1c, 0x57, 0xe7, 0x87, 0xe8,
-	0xeb, 0x90, 0xed, 0xf5, 0x4d, 0xcf, 0x53, 0x01, 0x52, 0xc0, 0x73, 0xbc, 0xdd, 0xb4, 0x98, 0xcb,
-	0xdb, 0x8e, 0x78, 0x8b, 0xa3, 0xc2, 0xa4, 0x80, 0x41, 0x91, 0x9a, 0x16, 0x42, 0x30, 0xe3, 0x98,
-	0x03, 0x22, 0x23, 0x85, 0xff, 0x8d, 0x1e, 0x42, 0xde, 0x22, 0x5e, 0xcf, 0xb5, 0xf9, 0x75, 0x84,
-	0x8c, 0x13, 0x9d, 0x54, 0xfe, 0xff, 0x70, 0x7f, 0xd2, 0x68, 0xa4, 0x0f, 0x7f, 0x06, 0x05, 0x93,
-	0xd3, 0x0d, 0xfe, 0xf2, 0xca, 0x93, 0xc5, 0xf9, 0x8a, 0x16, 0xfe, 0xc1, 0x00, 0xf0, 0xbc, 0xa9,
-	0x41, 0x94, 0x7f, 0x95, 0x82, 0xf7, 0x18, 0xfa, 0xf9, 0x79, 0x9f, 0x9a, 0x16, 0xb1, 0xaa, 0xc3,
-	0xa1, 0xa7, 0x1d, 0x06, 0xc9, 0xf9, 0x3a, 0x85, 0xac, 0xc7, 0x4b, 0x7a, 0xea, 0xca, 0x6b, 0xdc,
-	0xcf, 0x62, 0x99, 0xfa, 0x5a, 0xfd, 0x2d, 0x9d, 0x8d, 0x03, 0xa8, 0xf2, 0x11, 0xcc, 0xeb, 0x9c,
-	0xf8, 0x6d, 0x6e, 0x1e, 0xe6, 0xda, 0xed, 0x36, 0x25, 0xcd, 0xaa, 0x7c, 0x52, 0xd2, 0x38, 0x68,
-	0x5f, 0xee, 0xe0, 0x6a, 0x31, 0x1d, 0xb4, 0xf6, 0x70, 0xb5, 0x38, 0x5d, 0xfe, 0xc5, 0x1a, 0x94,
-	0xaf, 0x33, 0x42, 0x4e, 0x53, 0x0f, 0x0a, 0xd6, 0xeb, 0xde, 0xf0, 0x72, 0x07, 0x9b, 0x3c, 0x07,
-	0xc8, 0xaf, 0xff, 0x83, 0x77, 0x1c, 0x8a, 0x5c, 0x70, 0x94, 0x15, 0x1c, 0xa2, 0x31, 0x85, 0xa3,
-	0x98, 0x41, 0x27, 0x7b, 0xaa, 0x93, 0xf4, 0x77, 0xee, 0x64, 0x2f, 0xde, 0x89, 0xc2, 0x44, 0x3f,
-	0x83, 0xf9, 0xe1, 0x70, 0x48, 0x49, 0x53, 0xf6, 0x31, 0xcd, 0xfb, 0x78, 0x7e, 0xbb, 0x3e, 0xe4,
-	0xdc, 0xaa, 0x2e, 0x22, 0x88, 0x1b, 0xff, 0x31, 0x0b, 0x85, 0xc8, 0x48, 0xd9, 0xfe, 0xc5, 0x76,
-	0x8c, 0x33, 0xd3, 0x0a, 0x76, 0xf1, 0xe7, 0x2e, 0x1d, 0x18, 0xbd, 0xbe, 0x4d, 0x1c, 0x75, 0xe8,
-	0xb8, 0x66, 0x3b, 0x35, 0x53, 0xdd, 0x35, 0x1f, 0xb9, 0x74, 0x70, 0xc0, 0xb9, 0x93, 0x74, 0x3d,
-	0xe2, 0x5e, 0xca, 0xb7, 0x0e, 0x09, 0xba, 0x1d, 0xce, 0x45, 0x4f, 0x61, 0xcd, 0x76, 0x12, 0xfb,
-	0x14, 0xc9, 0x74, 0xd9, 0x76, 0xc6, 0x3b, 0x4c, 0x50, 0x92, 0x9d, 0xcd, 0x24, 0x28, 0xc9, 0x9e,
-	0xb6, 0x61, 0x95, 0x8e, 0xfc, 0x40, 0xcb, 0xa7, 0x4a, 0x47, 0x64, 0x56, 0x44, 0x47, 0xea, 0xd2,
-	0xbd, 0x4b, 0x27, 0xaa, 0x48, 0xdb, 0x32, 0xe3, 0x2a, 0xd2, 0xb4, 0x57, 0xf0, 0x3e, 0xe5, 0x81,
-	0x6d, 0xec, 0x57, 0x0c, 0xdb, 0xf1, 0x88, 0x2b, 0xee, 0x0c, 0xe3, 0x9d, 0x8a, 0xcc, 0xfb, 0x40,
-	0xc8, 0xee, 0x57, 0x9a, 0x52, 0x32, 0x6e, 0xc1, 0x0b, 0xf8, 0x5e, 0x08, 0xe7, 0x92, 0x01, 0xbd,
-	0x8c, 0xa2, 0x49, 0x7b, 0x44, 0x66, 0xbe, 0xaf, 0xd0, 0xb0, 0x10, 0x8c, 0xdb, 0x56, 0x87, 0x87,
-	0x21, 0x98, 0x43, 0xfd, 0xd0, 0xbe, 0xd0, 0x2e, 0x91, 0xb1, 0x37, 0x15, 0x52, 0x8b, 0xfa, 0xca,
-	0xb4, 0xc0, 0xa6, 0xdf, 0x83, 0xa2, 0x69, 0x59, 0xb6, 0x78, 0x37, 0x66, 0xf0, 0x70, 0x2f, 0x01,
-	0x4f, 0x49, 0xed, 0x5f, 0x23, 0xd6, 0xb6, 0xaa, 0x01, 0x26, 0x6f, 0xd7, 0x1d, 0xdf, 0x7d, 0x8b,
-	0x17, 0xcd, 0x28, 0x75, 0xa3, 0x06, 0x2b, 0x49, 0x82, 0xa8, 0x08, 0xd3, 0x6f, 0xc8, 0x5b, 0xb9,
-	0x6d, 0x62, 0x7f, 0xa2, 0x15, 0xfd, 0x05, 0x69, 0x4e, 0x3e, 0x13, 0x7d, 0x9e, 0xde, 0x4f, 0x6d,
-	0xfc, 0x6b, 0x46, 0x7a, 0xff, 0xde, 0xff, 0xb4, 0xf7, 0x87, 0xde, 0xb2, 0xfd, 0xec, 0x3a, 0x6f,
-	0x99, 0xd6, 0xbd, 0x65, 0xfb, 0xd9, 0xcd, 0xde, 0xb2, 0xfd, 0xec, 0x1a, 0x6f, 0x99, 0xd1, 0xbd,
-	0x65, 0xfb, 0xd9, 0x04, 0x6f, 0xd1, 0x6c, 0xdb, 0xbf, 0xce, 0xb6, 0xd9, 0x88, 0x6d, 0xfb, 0xef,
-	0x60, 0xdb, 0xfe, 0x35, 0xb6, 0x65, 0x22, 0xb6, 0xed, 0xdf, 0x68, 0xdb, 0xd3, 0x67, 0xef, 0x1c,
-	0x65, 0x4f, 0xdf, 0x61, 0xde, 0x9e, 0x3e, 0x7b, 0xd7, 0x28, 0x7b, 0x3a, 0x69, 0xde, 0xbe, 0x82,
-	0x8f, 0xe9, 0xc8, 0xbf, 0xa0, 0xb6, 0x73, 0x61, 0x0c, 0xfc, 0x91, 0x41, 0xae, 0x7a, 0x84, 0x58,
-	0x24, 0xd9, 0xb5, 0x44, 0xb8, 0xbd, 0xaf, 0x14, 0x5e, 0xf9, 0xa3, 0xba, 0x14, 0x1f, 0x77, 0xb4,
-	0xdf, 0x6c, 0xdc, 0xed, 0xfd, 0xf6, 0xe3, 0xee, 0x6f, 0x33, 0x30, 0xaf, 0x2f, 0x4b, 0xe8, 0x47,
-	0x70, 0xd7, 0x76, 0xc4, 0xf9, 0xc5, 0x35, 0x81, 0x57, 0xb2, 0x1d, 0xfd, 0x5d, 0xa3, 0x36, 0x23,
-	0x13, 0xf5, 0x23, 0xc1, 0x97, 0xa0, 0xff, 0xbf, 0x74, 0xf1, 0xf9, 0x19, 0x6c, 0x5d, 0x12, 0xc7,
-	0xa2, 0xae, 0xe1, 0x89, 0x87, 0xf5, 0x3d, 0xc3, 0x37, 0x2f, 0x6e, 0x0e, 0x90, 0x47, 0x42, 0x4b,
-	0xbe, 0xc6, 0xef, 0x75, 0xcd, 0x8b, 0x49, 0x91, 0xf2, 0x53, 0xf8, 0x34, 0xa9, 0x87, 0x9b, 0x62,
-	0xe6, 0xa3, 0xb1, 0x0e, 0x7e, 0xdb, 0xc1, 0xf3, 0xed, 0xc4, 0xe0, 0x39, 0xf9, 0xee, 0xfb, 0xaa,
-	0xdf, 0x5e, 0xec, 0xd4, 0xe6, 0x60, 0x96, 0x1b, 0x5d, 0xfe, 0xb7, 0x1c, 0x2c, 0x1e, 0x13, 0x9f,
-	0xff, 0xca, 0x41, 0x6d, 0xe0, 0x7f, 0x10, 0xfb, 0xd9, 0x40, 0xbe, 0x72, 0x2f, 0x3a, 0xa8, 0xd8,
-	0x0f, 0x14, 0x1a, 0x53, 0xe1, 0xef, 0x0a, 0xd0, 0x0f, 0x60, 0x6e, 0x24, 0x1e, 0xd1, 0xcb, 0xcd,
-	0xec, 0x83, 0xc9, 0x8f, 0xec, 0x95, 0xb6, 0xd2, 0x40, 0x55, 0xc8, 0x53, 0xf1, 0x7c, 0x9a, 0x03,
-	0x4c, 0x27, 0x75, 0x1e, 0x7b, 0x5f, 0xdd, 0x98, 0xc2, 0xba, 0x0e, 0x6a, 0xf2, 0x77, 0x4b, 0xda,
-	0x4b, 0x5b, 0x1e, 0x47, 0x49, 0x66, 0x44, 0x1f, 0xe4, 0x36, 0xa6, 0x70, 0x4c, 0x11, 0x61, 0x28,
-	0x10, 0xff, 0x75, 0xf8, 0xec, 0x93, 0x47, 0x57, 0xf4, 0x1a, 0xf3, 0x86, 0x17, 0xa2, 0x6c, 0x33,
-	0x1e, 0x81, 0x40, 0x3f, 0xe4, 0xef, 0x71, 0x24, 0x9b, 0xc7, 0x5e, 0xbe, 0xb2, 0x39, 0x06, 0x18,
-	0x3e, 0x14, 0x6a, 0x4c, 0x61, 0x4d, 0x01, 0xd5, 0x00, 0x28, 0xb7, 0x9c, 0x8f, 0x6c, 0x6e, 0xec,
-	0x0a, 0x38, 0xf1, 0x09, 0x0a, 0xc3, 0x08, 0xb5, 0xd0, 0x4b, 0x98, 0xa3, 0xce, 0x88, 0x03, 0x64,
-	0x39, 0xc0, 0x93, 0x5b, 0x1c, 0xa4, 0x05, 0x9f, 0x4c, 0x42, 0xa0, 0x7d, 0x50, 0x27, 0x31, 0x3c,
-	0x80, 0xf2, 0x95, 0xbb, 0x51, 0xb4, 0xe8, 0x83, 0x0f, 0xa6, 0x29, 0xc5, 0xd1, 0x0b, 0x98, 0xa7,
-	0xa2, 0x4e, 0xed, 0xc8, 0xf8, 0x61, 0xea, 0x1f, 0x8c, 0x8d, 0x26, 0xe9, 0x5c, 0x87, 0x95, 0x20,
-	0xba, 0x32, 0xaa, 0x02, 0xd0, 0xe0, 0x10, 0x8c, 0x1f, 0xe6, 0x8e, 0x7f, 0xf2, 0xfe, 0xb8, 0x31,
-	0x9a, 0x12, 0xea, 0xc2, 0x22, 0x75, 0x46, 0x7a, 0xcd, 0xcc, 0x0f, 0x77, 0xf3, 0x95, 0x47, 0x89,
-	0x26, 0x25, 0x1c, 0x15, 0x34, 0xa6, 0x70, 0x1c, 0x02, 0xfd, 0x14, 0x10, 0x8d, 0xe7, 0x00, 0x71,
-	0xf8, 0x9b, 0xaf, 0x7c, 0x72, 0x9b, 0xba, 0xb8, 0x31, 0x85, 0x13, 0x90, 0xd0, 0x29, 0x14, 0x69,
-	0xec, 0x2e, 0x9d, 0x9f, 0x0f, 0xe7, 0x2b, 0x1f, 0x8d, 0x99, 0x9d, 0xfc, 0x68, 0xb4, 0x31, 0x85,
-	0xc7, 0x20, 0x50, 0x9b, 0x4f, 0x86, 0x7e, 0x35, 0xcf, 0xef, 0x3e, 0xf3, 0x95, 0xf7, 0xc7, 0x50,
-	0x13, 0x9e, 0x7a, 0xc8, 0x89, 0xd0, 0x39, 0x41, 0x6c, 0x8b, 0x87, 0x35, 0xfc, 0x72, 0x74, 0x2c,
-	0xb6, 0x63, 0x4f, 0x7a, 0x82, 0xd8, 0x76, 0xd4, 0x47, 0x66, 0xcd, 0x96, 0x23, 0x1d, 0x66, 0x29,
-	0x09, 0x22, 0xf6, 0x90, 0x46, 0x42, 0x28, 0x9d, 0x5a, 0x0e, 0xe6, 0x5c, 0xc1, 0x29, 0xff, 0x53,
-	0x81, 0x3f, 0xed, 0x93, 0xa9, 0x4f, 0x96, 0xfd, 0xcf, 0x83, 0x13, 0x4a, 0x71, 0x74, 0x51, 0x8e,
-	0xa2, 0x47, 0x84, 0xb7, 0x3a, 0x5c, 0x32, 0x38, 0xc5, 0xac, 0x43, 0x8e, 0xb8, 0xae, 0x38, 0xb1,
-	0x94, 0x3f, 0x46, 0xf9, 0xe8, 0x3a, 0x75, 0xbe, 0x8d, 0x10, 0xe2, 0x38, 0xd4, 0x44, 0x9f, 0x6b,
-	0xe9, 0x77, 0x7a, 0xec, 0xcd, 0x65, 0xc2, 0xef, 0xbc, 0x22, 0xf9, 0xf7, 0xf3, 0x30, 0xff, 0xce,
-	0x4c, 0x48, 0x0f, 0xb1, 0x1f, 0x39, 0xe9, 0x09, 0xf8, 0x05, 0xcc, 0x0f, 0x45, 0x72, 0xf5, 0x1d,
-	0xe2, 0x7a, 0x32, 0xe3, 0x7d, 0x70, 0x6d, 0x06, 0xd6, 0x70, 0x22, 0xca, 0xe8, 0x8b, 0xb1, 0x54,
-	0x9c, 0x99, 0xe0, 0x98, 0xc9, 0xbf, 0x8d, 0x48, 0x48, 0xc9, 0x67, 0xb0, 0x14, 0xc9, 0xa7, 0x5a,
-	0x1a, 0xac, 0xbc, 0x7b, 0x5a, 0xd6, 0x3a, 0x18, 0x87, 0x43, 0xf5, 0x48, 0x8a, 0x16, 0x29, 0xf2,
-	0x7b, 0xd7, 0xa4, 0x68, 0x0d, 0x4d, 0x4f, 0xd5, 0x2f, 0xf8, 0xe8, 0xdb, 0xd4, 0x51, 0xf3, 0x24,
-	0xf3, 0xe3, 0x7b, 0xd7, 0xa4, 0xeb, 0xc8, 0xb8, 0x35, 0x55, 0x74, 0xca, 0x9f, 0xfa, 0x05, 0x48,
-	0x22, 0x55, 0x6e, 0xdf, 0xfa, 0x02, 0x84, 0x47, 0x43, 0x88, 0x83, 0x3e, 0x0b, 0x93, 0x77, 0x3e,
-	0x29, 0x98, 0x62, 0xe7, 0xfd, 0x7a, 0xf6, 0x7e, 0x19, 0xcb, 0xde, 0xf3, 0x63, 0x17, 0x3f, 0xd7,
-	0x1c, 0xa4, 0x8f, 0xa5, 0xef, 0x5a, 0x24, 0x7d, 0x17, 0x12, 0x1d, 0xb7, 0x9f, 0x60, 0x8e, 0x9e,
-	0xbf, 0x4f, 0xc7, 0xf3, 0xb7, 0x48, 0x84, 0x1f, 0xbf, 0x43, 0xfe, 0x0e, 0x10, 0xc7, 0x12, 0xb8,
-	0x91, 0x98, 0xc0, 0x45, 0x32, 0xfc, 0xf4, 0x56, 0x9b, 0xbd, 0x09, 0x19, 0xfc, 0x1c, 0x4a, 0xf1,
-	0xf4, 0xab, 0x34, 0x64, 0x96, 0x7c, 0x74, 0x73, 0x26, 0x0f, 0x7a, 0x98, 0x88, 0x85, 0x4c, 0xb8,
-	0x43, 0x93, 0x1f, 0x6d, 0xc9, 0x4c, 0xfa, 0xc1, 0x0d, 0xa9, 0x3d, 0xe8, 0x63, 0x12, 0x0e, 0xc2,
-	0xb0, 0xac, 0xe5, 0xeb, 0x00, 0x1e, 0x25, 0x65, 0xb1, 0xb8, 0x54, 0x63, 0x0a, 0x27, 0x29, 0x4b,
-	0x4c, 0x95, 0xc0, 0x03, 0xcc, 0xe5, 0x24, 0xcc, 0xf8, 0x4b, 0x47, 0x89, 0x19, 0x57, 0x2e, 0x6f,
-	0x43, 0x46, 0xe4, 0x6e, 0xb4, 0x02, 0xc5, 0x4e, 0xb7, 0xda, 0x3d, 0xed, 0x44, 0x7e, 0x9f, 0x98,
-	0x81, 0xf4, 0xc9, 0x8b, 0x62, 0x8a, 0xff, 0xe2, 0x18, 0xe3, 0x13, 0x5c, 0x4c, 0x97, 0xff, 0x2a,
-	0x05, 0x79, 0x2d, 0x61, 0x33, 0x45, 0x5c, 0xaf, 0x76, 0x4e, 0x5a, 0x11, 0xc5, 0x45, 0xc8, 0x9f,
-	0xb6, 0x3a, 0xa7, 0xed, 0xf6, 0x09, 0xee, 0xf2, 0x1f, 0x37, 0xae, 0xc2, 0x52, 0xb3, 0xf5, 0x65,
-	0xf5, 0x65, 0xf3, 0xd0, 0x38, 0xac, 0x7f, 0xd9, 0x3c, 0xa8, 0x1b, 0xcd, 0xc3, 0x62, 0x5a, 0x27,
-	0x33, 0x51, 0xa3, 0xfb, 0x4d, 0xbb, 0x5e, 0x9c, 0x46, 0x79, 0x98, 0xeb, 0x36, 0x5f, 0xd5, 0x4f,
-	0x4e, 0xbb, 0xc5, 0x19, 0xd6, 0x83, 0x92, 0xc1, 0xf5, 0x2f, 0x84, 0xc8, 0x2c, 0x42, 0xb0, 0xd0,
-	0x6c, 0x75, 0xeb, 0xb8, 0x55, 0x7d, 0x69, 0x08, 0xdb, 0x32, 0x82, 0xa6, 0x77, 0x52, 0x9c, 0xab,
-	0x01, 0x64, 0x5d, 0x35, 0xdc, 0xbf, 0x4c, 0x41, 0xb1, 0x3a, 0x1c, 0x4a, 0xf7, 0x14, 0xbf, 0x59,
-	0x45, 0x1f, 0xc2, 0x02, 0x71, 0xcc, 0xb3, 0x3e, 0x51, 0xe7, 0x66, 0x7c, 0xc5, 0xcb, 0xe2, 0x18,
-	0x35, 0x26, 0xb7, 0x87, 0xab, 0x7c, 0x69, 0x8b, 0xca, 0xed, 0xe1, 0x2a, 0x7a, 0x1f, 0x0a, 0x82,
-	0xc2, 0x4a, 0x9a, 0x7a, 0xb3, 0x2a, 0x5f, 0x15, 0x47, 0x89, 0xa8, 0x0c, 0xf3, 0x66, 0xaf, 0x47,
-	0x3c, 0xaf, 0x45, 0x2d, 0xd2, 0x3c, 0x94, 0x57, 0x18, 0x11, 0x5a, 0xf9, 0x3f, 0x53, 0xb0, 0x1c,
-	0x9a, 0xcb, 0x13, 0x24, 0xb7, 0xf8, 0xe6, 0xf7, 0xce, 0x2f, 0x00, 0x86, 0xc4, 0x95, 0xeb, 0x5b,
-	0x69, 0x96, 0x17, 0x64, 0xff, 0x47, 0xbf, 0xd8, 0x18, 0x47, 0xdd, 0x6a, 0x73, 0x05, 0xd1, 0xc0,
-	0x9a, 0xfa, 0xc6, 0x15, 0xcc, 0xeb, 0x3c, 0x36, 0x40, 0xf3, 0x82, 0x38, 0x3e, 0xab, 0x35, 0x7d,
-	0x66, 0xbb, 0xa8, 0xaa, 0xa2, 0x44, 0x36, 0x5d, 0x9c, 0x70, 0x60, 0xbb, 0xbd, 0x91, 0xed, 0x37,
-	0x0f, 0xe5, 0x05, 0x4e, 0x8c, 0x8a, 0x36, 0x20, 0x4b, 0xc5, 0x52, 0x6c, 0xa9, 0x9f, 0x81, 0xab,
-	0x76, 0xf9, 0xdf, 0x53, 0xb0, 0xd8, 0x89, 0x15, 0x65, 0xf1, 0x1f, 0xd5, 0xa7, 0xde, 0xf5, 0x47,
-	0xf5, 0xe8, 0x05, 0x20, 0x73, 0x38, 0x34, 0x64, 0xe6, 0x89, 0xfe, 0x28, 0x7f, 0x33, 0x71, 0x72,
-	0x02, 0x9c, 0xa2, 0x19, 0xf7, 0x9a, 0x53, 0x58, 0xd3, 0xc1, 0xa8, 0x33, 0x52, 0x80, 0xe3, 0x5b,
-	0x95, 0x84, 0xd9, 0x66, 0x01, 0x69, 0x8e, 0x93, 0xf5, 0x6d, 0xd9, 0xdf, 0xa5, 0xa1, 0xd8, 0xb9,
-	0xcd, 0xb6, 0xac, 0xf3, 0xeb, 0x6d, 0xcb, 0x3a, 0xef, 0xb6, 0x2d, 0xfb, 0x2e, 0x39, 0xe3, 0xdb,
-	0xdf, 0x64, 0xca, 0x58, 0x87, 0x55, 0x45, 0x3e, 0x69, 0x9d, 0x6a, 0xac, 0x69, 0x3d, 0xfe, 0x4f,
-	0x5b, 0x4d, 0x46, 0x9b, 0x29, 0xdb, 0xb0, 0xda, 0xb1, 0x9d, 0x8b, 0x3e, 0x89, 0x57, 0xf7, 0x1b,
-	0x90, 0xf5, 0x4d, 0xf7, 0x82, 0xf8, 0x41, 0x08, 0x05, 0x6d, 0xb4, 0x13, 0x7c, 0x06, 0xe9, 0x1f,
-	0x1b, 0x89, 0xfb, 0x57, 0x2e, 0x81, 0x83, 0x2f, 0xf6, 0x05, 0xac, 0xc5, 0xbb, 0x92, 0x9f, 0xed,
-	0x59, 0x98, 0x84, 0xa4, 0xc3, 0x6e, 0x5e, 0xb3, 0x21, 0xc6, 0x61, 0xc6, 0x0a, 0xac, 0xef, 0xfc,
-	0xa6, 0xac, 0xef, 0xdc, 0x68, 0x7d, 0xe7, 0x76, 0xd6, 0x77, 0x26, 0x5a, 0x5f, 0xf9, 0x65, 0x0a,
-	0x72, 0x75, 0x25, 0x88, 0x30, 0xe4, 0x8f, 0x89, 0x5f, 0xbf, 0x12, 0xe2, 0x48, 0xdf, 0xd6, 0x24,
-	0x7e, 0xa1, 0x8d, 0xf7, 0xae, 0x91, 0x08, 0x16, 0xc5, 0x7c, 0xe7, 0x5a, 0xcc, 0xce, 0x8d, 0x98,
-	0x71, 0xfb, 0x6b, 0x18, 0xee, 0x51, 0xf7, 0x62, 0x8b, 0x0e, 0x89, 0xd3, 0xa3, 0xae, 0xb5, 0x25,
-	0xfe, 0xf5, 0x8f, 0x50, 0xef, 0x27, 0xdb, 0x17, 0xb6, 0xff, 0x7a, 0x74, 0xb6, 0xd5, 0xa3, 0x83,
-	0xc7, 0x4a, 0xea, 0xb1, 0x90, 0xfa, 0x54, 0xfe, 0x1b, 0x21, 0x97, 0xbb, 0x8f, 0x2f, 0x68, 0xf8,
-	0x2f, 0x92, 0x9c, 0x65, 0x38, 0xfd, 0xe9, 0x7f, 0x05, 0x00, 0x00, 0xff, 0xff, 0x08, 0x90, 0xb8,
-	0x96, 0xb3, 0x44, 0x00, 0x00,
+func (x *GetOffloadedAppsStatisticsResponse_DHCPv4RAStats) Reset() {
+	*x = GetOffloadedAppsStatisticsResponse_DHCPv4RAStats{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[57]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
-// Reference imports to suppress errors if they are not otherwise used.
-var _ context.Context
-var _ grpc.ClientConn
-
-// This is a compile-time assertion to ensure that this generated file
-// is compatible with the grpc package it is being compiled against.
-const _ = grpc.SupportPackageIsVersion4
-
-// ExtensionClient is the client API for Extension service.
-//
-// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
-type ExtensionClient interface {
-	// Get a single attribute
-	GetExtValue(ctx context.Context, in *SingleGetValueRequest, opts ...grpc.CallOption) (*SingleGetValueResponse, error)
-	// Set a single attribute
-	SetExtValue(ctx context.Context, in *SingleSetValueRequest, opts ...grpc.CallOption) (*SingleSetValueResponse, error)
+func (x *GetOffloadedAppsStatisticsResponse_DHCPv4RAStats) String() string {
+	return protoimpl.X.MessageStringOf(x)
 }
 
-type extensionClient struct {
-	cc *grpc.ClientConn
-}
+func (*GetOffloadedAppsStatisticsResponse_DHCPv4RAStats) ProtoMessage() {}
 
-func NewExtensionClient(cc *grpc.ClientConn) ExtensionClient {
-	return &extensionClient{cc}
-}
-
-func (c *extensionClient) GetExtValue(ctx context.Context, in *SingleGetValueRequest, opts ...grpc.CallOption) (*SingleGetValueResponse, error) {
-	out := new(SingleGetValueResponse)
-	err := c.cc.Invoke(ctx, "/extension.Extension/GetExtValue", in, out, opts...)
-	if err != nil {
-		return nil, err
+func (x *GetOffloadedAppsStatisticsResponse_DHCPv4RAStats) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[57]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
 	}
-	return out, nil
+	return mi.MessageOf(x)
 }
 
-func (c *extensionClient) SetExtValue(ctx context.Context, in *SingleSetValueRequest, opts ...grpc.CallOption) (*SingleSetValueResponse, error) {
-	out := new(SingleSetValueResponse)
-	err := c.cc.Invoke(ctx, "/extension.Extension/SetExtValue", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
+// Deprecated: Use GetOffloadedAppsStatisticsResponse_DHCPv4RAStats.ProtoReflect.Descriptor instead.
+func (*GetOffloadedAppsStatisticsResponse_DHCPv4RAStats) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{46, 0}
 }
 
-// ExtensionServer is the server API for Extension service.
-type ExtensionServer interface {
-	// Get a single attribute
-	GetExtValue(context.Context, *SingleGetValueRequest) (*SingleGetValueResponse, error)
-	// Set a single attribute
-	SetExtValue(context.Context, *SingleSetValueRequest) (*SingleSetValueResponse, error)
+func (x *GetOffloadedAppsStatisticsResponse_DHCPv4RAStats) GetInBadPacketsFromClient() uint32 {
+	if x != nil {
+		return x.InBadPacketsFromClient
+	}
+	return 0
 }
 
-// UnimplementedExtensionServer can be embedded to have forward compatible implementations.
-type UnimplementedExtensionServer struct {
+func (x *GetOffloadedAppsStatisticsResponse_DHCPv4RAStats) GetInBadPacketsFromServer() uint32 {
+	if x != nil {
+		return x.InBadPacketsFromServer
+	}
+	return 0
 }
 
-func (*UnimplementedExtensionServer) GetExtValue(ctx context.Context, req *SingleGetValueRequest) (*SingleGetValueResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetExtValue not implemented")
-}
-func (*UnimplementedExtensionServer) SetExtValue(ctx context.Context, req *SingleSetValueRequest) (*SingleSetValueResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method SetExtValue not implemented")
+func (x *GetOffloadedAppsStatisticsResponse_DHCPv4RAStats) GetInPacketsFromClient() uint32 {
+	if x != nil {
+		return x.InPacketsFromClient
+	}
+	return 0
 }
 
-func RegisterExtensionServer(s *grpc.Server, srv ExtensionServer) {
-	s.RegisterService(&_Extension_serviceDesc, srv)
+func (x *GetOffloadedAppsStatisticsResponse_DHCPv4RAStats) GetInPacketsFromServer() uint32 {
+	if x != nil {
+		return x.InPacketsFromServer
+	}
+	return 0
 }
 
-func _Extension_GetExtValue_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(SingleGetValueRequest)
-	if err := dec(in); err != nil {
-		return nil, err
+func (x *GetOffloadedAppsStatisticsResponse_DHCPv4RAStats) GetOutPacketsToServer() uint32 {
+	if x != nil {
+		return x.OutPacketsToServer
 	}
-	if interceptor == nil {
-		return srv.(ExtensionServer).GetExtValue(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/extension.Extension/GetExtValue",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(ExtensionServer).GetExtValue(ctx, req.(*SingleGetValueRequest))
-	}
-	return interceptor(ctx, in, info, handler)
+	return 0
 }
 
-func _Extension_SetExtValue_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(SingleSetValueRequest)
-	if err := dec(in); err != nil {
-		return nil, err
+func (x *GetOffloadedAppsStatisticsResponse_DHCPv4RAStats) GetOutPacketsToClient() uint32 {
+	if x != nil {
+		return x.OutPacketsToClient
 	}
-	if interceptor == nil {
-		return srv.(ExtensionServer).SetExtValue(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/extension.Extension/SetExtValue",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(ExtensionServer).SetExtValue(ctx, req.(*SingleSetValueRequest))
-	}
-	return interceptor(ctx, in, info, handler)
+	return 0
 }
 
-var _Extension_serviceDesc = grpc.ServiceDesc{
-	ServiceName: "extension.Extension",
-	HandlerType: (*ExtensionServer)(nil),
-	Methods: []grpc.MethodDesc{
-		{
-			MethodName: "GetExtValue",
-			Handler:    _Extension_GetExtValue_Handler,
+func (x *GetOffloadedAppsStatisticsResponse_DHCPv4RAStats) GetOption_82InsertedPacketsToServer() uint32 {
+	if x != nil {
+		return x.Option_82InsertedPacketsToServer
+	}
+	return 0
+}
+
+func (x *GetOffloadedAppsStatisticsResponse_DHCPv4RAStats) GetOption_82RemovedPacketsToClient() uint32 {
+	if x != nil {
+		return x.Option_82RemovedPacketsToClient
+	}
+	return 0
+}
+
+func (x *GetOffloadedAppsStatisticsResponse_DHCPv4RAStats) GetOption_82NotInsertedToServer() uint32 {
+	if x != nil {
+		return x.Option_82NotInsertedToServer
+	}
+	return 0
+}
+
+func (x *GetOffloadedAppsStatisticsResponse_DHCPv4RAStats) GetAdditionalStats() map[string]string {
+	if x != nil {
+		return x.AdditionalStats
+	}
+	return nil
+}
+
+type GetOffloadedAppsStatisticsResponse_DHCPv6RAStats struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// From https://github.com/BroadbandForum/yang/blob/master/standard/networking/bbf-ldra.yang
+	InBadPacketsFromClient               uint32 `protobuf:"varint,1,opt,name=in_bad_packets_from_client,json=inBadPacketsFromClient,proto3" json:"in_bad_packets_from_client,omitempty"`
+	InBadPacketsFromServer               uint32 `protobuf:"varint,2,opt,name=in_bad_packets_from_server,json=inBadPacketsFromServer,proto3" json:"in_bad_packets_from_server,omitempty"`
+	Option_17InsertedPacketsToServer     uint32 `protobuf:"varint,3,opt,name=option_17_inserted_packets_to_server,json=option17InsertedPacketsToServer,proto3" json:"option_17_inserted_packets_to_server,omitempty"`
+	Option_17RemovedPacketsToClient      uint32 `protobuf:"varint,4,opt,name=option_17_removed_packets_to_client,json=option17RemovedPacketsToClient,proto3" json:"option_17_removed_packets_to_client,omitempty"`
+	Option_18InsertedPacketsToServer     uint32 `protobuf:"varint,5,opt,name=option_18_inserted_packets_to_server,json=option18InsertedPacketsToServer,proto3" json:"option_18_inserted_packets_to_server,omitempty"`
+	Option_18RemovedPacketsToClient      uint32 `protobuf:"varint,6,opt,name=option_18_removed_packets_to_client,json=option18RemovedPacketsToClient,proto3" json:"option_18_removed_packets_to_client,omitempty"`
+	Option_37InsertedPacketsToServer     uint32 `protobuf:"varint,7,opt,name=option_37_inserted_packets_to_server,json=option37InsertedPacketsToServer,proto3" json:"option_37_inserted_packets_to_server,omitempty"`
+	Option_37RemovedPacketsToClient      uint32 `protobuf:"varint,8,opt,name=option_37_removed_packets_to_client,json=option37RemovedPacketsToClient,proto3" json:"option_37_removed_packets_to_client,omitempty"`
+	OutgoingMtuExceededPacketsFromClient uint32 `protobuf:"varint,9,opt,name=outgoing_mtu_exceeded_packets_from_client,json=outgoingMtuExceededPacketsFromClient,proto3" json:"outgoing_mtu_exceeded_packets_from_client,omitempty"`
+	// Name value pairs that gives the flexibility to report different statistics that implementations may choose
+	AdditionalStats map[string]string `protobuf:"bytes,10,rep,name=additional_stats,json=additionalStats,proto3" json:"additional_stats,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	unknownFields   protoimpl.UnknownFields
+	sizeCache       protoimpl.SizeCache
+}
+
+func (x *GetOffloadedAppsStatisticsResponse_DHCPv6RAStats) Reset() {
+	*x = GetOffloadedAppsStatisticsResponse_DHCPv6RAStats{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[58]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GetOffloadedAppsStatisticsResponse_DHCPv6RAStats) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetOffloadedAppsStatisticsResponse_DHCPv6RAStats) ProtoMessage() {}
+
+func (x *GetOffloadedAppsStatisticsResponse_DHCPv6RAStats) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[58]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetOffloadedAppsStatisticsResponse_DHCPv6RAStats.ProtoReflect.Descriptor instead.
+func (*GetOffloadedAppsStatisticsResponse_DHCPv6RAStats) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{46, 1}
+}
+
+func (x *GetOffloadedAppsStatisticsResponse_DHCPv6RAStats) GetInBadPacketsFromClient() uint32 {
+	if x != nil {
+		return x.InBadPacketsFromClient
+	}
+	return 0
+}
+
+func (x *GetOffloadedAppsStatisticsResponse_DHCPv6RAStats) GetInBadPacketsFromServer() uint32 {
+	if x != nil {
+		return x.InBadPacketsFromServer
+	}
+	return 0
+}
+
+func (x *GetOffloadedAppsStatisticsResponse_DHCPv6RAStats) GetOption_17InsertedPacketsToServer() uint32 {
+	if x != nil {
+		return x.Option_17InsertedPacketsToServer
+	}
+	return 0
+}
+
+func (x *GetOffloadedAppsStatisticsResponse_DHCPv6RAStats) GetOption_17RemovedPacketsToClient() uint32 {
+	if x != nil {
+		return x.Option_17RemovedPacketsToClient
+	}
+	return 0
+}
+
+func (x *GetOffloadedAppsStatisticsResponse_DHCPv6RAStats) GetOption_18InsertedPacketsToServer() uint32 {
+	if x != nil {
+		return x.Option_18InsertedPacketsToServer
+	}
+	return 0
+}
+
+func (x *GetOffloadedAppsStatisticsResponse_DHCPv6RAStats) GetOption_18RemovedPacketsToClient() uint32 {
+	if x != nil {
+		return x.Option_18RemovedPacketsToClient
+	}
+	return 0
+}
+
+func (x *GetOffloadedAppsStatisticsResponse_DHCPv6RAStats) GetOption_37InsertedPacketsToServer() uint32 {
+	if x != nil {
+		return x.Option_37InsertedPacketsToServer
+	}
+	return 0
+}
+
+func (x *GetOffloadedAppsStatisticsResponse_DHCPv6RAStats) GetOption_37RemovedPacketsToClient() uint32 {
+	if x != nil {
+		return x.Option_37RemovedPacketsToClient
+	}
+	return 0
+}
+
+func (x *GetOffloadedAppsStatisticsResponse_DHCPv6RAStats) GetOutgoingMtuExceededPacketsFromClient() uint32 {
+	if x != nil {
+		return x.OutgoingMtuExceededPacketsFromClient
+	}
+	return 0
+}
+
+func (x *GetOffloadedAppsStatisticsResponse_DHCPv6RAStats) GetAdditionalStats() map[string]string {
+	if x != nil {
+		return x.AdditionalStats
+	}
+	return nil
+}
+
+type GetOffloadedAppsStatisticsResponse_PPPoeIAStats struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// From https://github.com/BroadbandForum/yang/blob/master/standard/networking/bbf-pppoe-intermediate-agent.yang
+	InErrorPacketsFromClient                 uint32 `protobuf:"varint,1,opt,name=in_error_packets_from_client,json=inErrorPacketsFromClient,proto3" json:"in_error_packets_from_client,omitempty"`
+	InErrorPacketsFromServer                 uint32 `protobuf:"varint,2,opt,name=in_error_packets_from_server,json=inErrorPacketsFromServer,proto3" json:"in_error_packets_from_server,omitempty"`
+	InPacketsFromClient                      uint32 `protobuf:"varint,3,opt,name=in_packets_from_client,json=inPacketsFromClient,proto3" json:"in_packets_from_client,omitempty"`
+	InPacketsFromServer                      uint32 `protobuf:"varint,4,opt,name=in_packets_from_server,json=inPacketsFromServer,proto3" json:"in_packets_from_server,omitempty"`
+	OutPacketsToServer                       uint32 `protobuf:"varint,5,opt,name=out_packets_to_server,json=outPacketsToServer,proto3" json:"out_packets_to_server,omitempty"`
+	OutPacketsToClient                       uint32 `protobuf:"varint,6,opt,name=out_packets_to_client,json=outPacketsToClient,proto3" json:"out_packets_to_client,omitempty"`
+	VendorSpecificTagInsertedPacketsToServer uint32 `protobuf:"varint,7,opt,name=vendor_specific_tag_inserted_packets_to_server,json=vendorSpecificTagInsertedPacketsToServer,proto3" json:"vendor_specific_tag_inserted_packets_to_server,omitempty"`
+	VendorSpecificTagRemovedPacketsToClient  uint32 `protobuf:"varint,8,opt,name=vendor_specific_tag_removed_packets_to_client,json=vendorSpecificTagRemovedPacketsToClient,proto3" json:"vendor_specific_tag_removed_packets_to_client,omitempty"`
+	OutgoingMtuExceededPacketsFromClient     uint32 `protobuf:"varint,9,opt,name=outgoing_mtu_exceeded_packets_from_client,json=outgoingMtuExceededPacketsFromClient,proto3" json:"outgoing_mtu_exceeded_packets_from_client,omitempty"`
+	// Name value pairs that gives the flexibility to report different statistics that implementations may choose
+	AdditionalStats map[string]string `protobuf:"bytes,10,rep,name=additional_stats,json=additionalStats,proto3" json:"additional_stats,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	unknownFields   protoimpl.UnknownFields
+	sizeCache       protoimpl.SizeCache
+}
+
+func (x *GetOffloadedAppsStatisticsResponse_PPPoeIAStats) Reset() {
+	*x = GetOffloadedAppsStatisticsResponse_PPPoeIAStats{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[59]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GetOffloadedAppsStatisticsResponse_PPPoeIAStats) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetOffloadedAppsStatisticsResponse_PPPoeIAStats) ProtoMessage() {}
+
+func (x *GetOffloadedAppsStatisticsResponse_PPPoeIAStats) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[59]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetOffloadedAppsStatisticsResponse_PPPoeIAStats.ProtoReflect.Descriptor instead.
+func (*GetOffloadedAppsStatisticsResponse_PPPoeIAStats) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{46, 2}
+}
+
+func (x *GetOffloadedAppsStatisticsResponse_PPPoeIAStats) GetInErrorPacketsFromClient() uint32 {
+	if x != nil {
+		return x.InErrorPacketsFromClient
+	}
+	return 0
+}
+
+func (x *GetOffloadedAppsStatisticsResponse_PPPoeIAStats) GetInErrorPacketsFromServer() uint32 {
+	if x != nil {
+		return x.InErrorPacketsFromServer
+	}
+	return 0
+}
+
+func (x *GetOffloadedAppsStatisticsResponse_PPPoeIAStats) GetInPacketsFromClient() uint32 {
+	if x != nil {
+		return x.InPacketsFromClient
+	}
+	return 0
+}
+
+func (x *GetOffloadedAppsStatisticsResponse_PPPoeIAStats) GetInPacketsFromServer() uint32 {
+	if x != nil {
+		return x.InPacketsFromServer
+	}
+	return 0
+}
+
+func (x *GetOffloadedAppsStatisticsResponse_PPPoeIAStats) GetOutPacketsToServer() uint32 {
+	if x != nil {
+		return x.OutPacketsToServer
+	}
+	return 0
+}
+
+func (x *GetOffloadedAppsStatisticsResponse_PPPoeIAStats) GetOutPacketsToClient() uint32 {
+	if x != nil {
+		return x.OutPacketsToClient
+	}
+	return 0
+}
+
+func (x *GetOffloadedAppsStatisticsResponse_PPPoeIAStats) GetVendorSpecificTagInsertedPacketsToServer() uint32 {
+	if x != nil {
+		return x.VendorSpecificTagInsertedPacketsToServer
+	}
+	return 0
+}
+
+func (x *GetOffloadedAppsStatisticsResponse_PPPoeIAStats) GetVendorSpecificTagRemovedPacketsToClient() uint32 {
+	if x != nil {
+		return x.VendorSpecificTagRemovedPacketsToClient
+	}
+	return 0
+}
+
+func (x *GetOffloadedAppsStatisticsResponse_PPPoeIAStats) GetOutgoingMtuExceededPacketsFromClient() uint32 {
+	if x != nil {
+		return x.OutgoingMtuExceededPacketsFromClient
+	}
+	return 0
+}
+
+func (x *GetOffloadedAppsStatisticsResponse_PPPoeIAStats) GetAdditionalStats() map[string]string {
+	if x != nil {
+		return x.AdditionalStats
+	}
+	return nil
+}
+
+type AppOffloadOnuConfig_PerUniConfig struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// As per the BBF Agent Remote Id defined in https://github.com/BroadbandForum/yang/blob/master/standard/networking/bbf-pppoe-intermediate-agent-profile-common.yang
+	AgentRemoteID string `protobuf:"bytes,2,opt,name=agentRemoteID,proto3" json:"agentRemoteID,omitempty"`
+	// As per the BBF Agent Circuit Id defined in https://github.com/BroadbandForum/yang/blob/master/standard/networking/bbf-pppoe-intermediate-agent-profile-common.yang
+	AgentCircuitID string `protobuf:"bytes,3,opt,name=agentCircuitID,proto3" json:"agentCircuitID,omitempty"`
+	// The id of the UNI on the Onu for which this configuration is relevant. The UNI ids are numbered from 0 to n depending on the number of UNI ports on the ONU.
+	OnuUniId      uint32 `protobuf:"varint,4,opt,name=onuUniId,proto3" json:"onuUniId,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *AppOffloadOnuConfig_PerUniConfig) Reset() {
+	*x = AppOffloadOnuConfig_PerUniConfig{}
+	mi := &file_voltha_protos_extensions_proto_msgTypes[63]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *AppOffloadOnuConfig_PerUniConfig) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AppOffloadOnuConfig_PerUniConfig) ProtoMessage() {}
+
+func (x *AppOffloadOnuConfig_PerUniConfig) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_extensions_proto_msgTypes[63]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use AppOffloadOnuConfig_PerUniConfig.ProtoReflect.Descriptor instead.
+func (*AppOffloadOnuConfig_PerUniConfig) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_extensions_proto_rawDescGZIP(), []int{50, 0}
+}
+
+func (x *AppOffloadOnuConfig_PerUniConfig) GetAgentRemoteID() string {
+	if x != nil {
+		return x.AgentRemoteID
+	}
+	return ""
+}
+
+func (x *AppOffloadOnuConfig_PerUniConfig) GetAgentCircuitID() string {
+	if x != nil {
+		return x.AgentCircuitID
+	}
+	return ""
+}
+
+func (x *AppOffloadOnuConfig_PerUniConfig) GetOnuUniId() uint32 {
+	if x != nil {
+		return x.OnuUniId
+	}
+	return 0
+}
+
+var File_voltha_protos_extensions_proto protoreflect.FileDescriptor
+
+const file_voltha_protos_extensions_proto_rawDesc = "" +
+	"\n" +
+	"\x1evoltha_protos/extensions.proto\x12\textension\x1a\x1evoltha_protos/ext_config.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1avoltha_protos/common.proto\"]\n" +
+	"\bValueSet\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\tR\x02id\x128\n" +
+	"\falarm_config\x18\x02 \x01(\v2\x13.config.AlarmConfigH\x00R\valarmConfigB\a\n" +
+	"\x05value\",\n" +
+	"\tValueType\"\x1f\n" +
+	"\x04Type\x12\t\n" +
+	"\x05EMPTY\x10\x00\x12\f\n" +
+	"\bDISTANCE\x10\x01\"Q\n" +
+	"\x0eValueSpecifier\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\tR\x02id\x12/\n" +
+	"\x05value\x18\x02 \x01(\x0e2\x19.extension.ValueType.TypeR\x05value\"t\n" +
+	"\fReturnValues\x12\x10\n" +
+	"\x03Set\x18\x01 \x01(\rR\x03Set\x12 \n" +
+	"\vUnsupported\x18\x02 \x01(\rR\vUnsupported\x12\x14\n" +
+	"\x05Error\x18\x03 \x01(\rR\x05Error\x12\x1a\n" +
+	"\bDistance\x18\x04 \x01(\rR\bDistance\"6\n" +
+	"\x12GetDistanceRequest\x12 \n" +
+	"\vonuDeviceId\x18\x01 \x01(\tR\vonuDeviceId\"1\n" +
+	"\x13GetDistanceResponse\x12\x1a\n" +
+	"\bdistance\x18\x01 \x01(\rR\bdistance\"2\n" +
+	"\x14GetOnuUniInfoRequest\x12\x1a\n" +
+	"\buniIndex\x18\x01 \x01(\rR\buniIndex\"\xe1\x04\n" +
+	"\x15GetOnuUniInfoResponse\x12P\n" +
+	"\badmState\x18\x01 \x01(\x0e24.extension.GetOnuUniInfoResponse.AdministrativeStateR\badmState\x12O\n" +
+	"\toperState\x18\x02 \x01(\x0e21.extension.GetOnuUniInfoResponse.OperationalStateR\toperState\x12O\n" +
+	"\tconfigInd\x18\x03 \x01(\x0e21.extension.GetOnuUniInfoResponse.ConfigurationIndR\tconfigInd\"\xc2\x01\n" +
+	"\x10ConfigurationInd\x12\n" +
+	"\n" +
+	"\x06UNKOWN\x10\x00\x12\x12\n" +
+	"\x0eTEN_BASE_T_FDX\x10\x01\x12\x16\n" +
+	"\x12HUNDRED_BASE_T_FDX\x10\x02\x12\x18\n" +
+	"\x14GIGABIT_ETHERNET_FDX\x10\x03\x12\x16\n" +
+	"\x12TEN_G_ETHERNET_FDX\x10\x04\x12\x12\n" +
+	"\x0eTEN_BASE_T_HDX\x10\x05\x12\x16\n" +
+	"\x12HUNDRED_BASE_T_HDX\x10\x06\x12\x18\n" +
+	"\x14GIGABIT_ETHERNET_HDX\x10\a\"G\n" +
+	"\x13AdministrativeState\x12\x16\n" +
+	"\x12ADMSTATE_UNDEFINED\x10\x00\x12\n" +
+	"\n" +
+	"\x06LOCKED\x10\x01\x12\f\n" +
+	"\bUNLOCKED\x10\x02\"F\n" +
+	"\x10OperationalState\x12\x17\n" +
+	"\x13OPERSTATE_UNDEFINED\x10\x00\x12\v\n" +
+	"\aENABLED\x10\x01\x12\f\n" +
+	"\bDISABLED\x10\x02\"\xb7\x01\n" +
+	"\x12GetOltPortCounters\x12\x16\n" +
+	"\x06portNo\x18\x01 \x01(\rR\x06portNo\x12B\n" +
+	"\bportType\x18\x02 \x01(\x0e2&.extension.GetOltPortCounters.PortTypeR\bportType\"E\n" +
+	"\bPortType\x12\x10\n" +
+	"\fPort_UNKNOWN\x10\x00\x12\x15\n" +
+	"\x11Port_ETHERNET_NNI\x10\x01\x12\x10\n" +
+	"\fPort_PON_OLT\x10\x02\"\xcc\x03\n" +
+	"\x1aGetOltPortCountersResponse\x12\x18\n" +
+	"\atxBytes\x18\x01 \x01(\x04R\atxBytes\x12\x18\n" +
+	"\arxBytes\x18\x02 \x01(\x04R\arxBytes\x12\x1c\n" +
+	"\ttxPackets\x18\x03 \x01(\x04R\ttxPackets\x12\x1c\n" +
+	"\trxPackets\x18\x04 \x01(\x04R\trxPackets\x12&\n" +
+	"\x0etxErrorPackets\x18\x05 \x01(\x04R\x0etxErrorPackets\x12&\n" +
+	"\x0erxErrorPackets\x18\x06 \x01(\x04R\x0erxErrorPackets\x12&\n" +
+	"\x0etxBcastPackets\x18\a \x01(\x04R\x0etxBcastPackets\x12&\n" +
+	"\x0erxBcastPackets\x18\b \x01(\x04R\x0erxBcastPackets\x12&\n" +
+	"\x0etxUcastPackets\x18\t \x01(\x04R\x0etxUcastPackets\x12&\n" +
+	"\x0erxUcastPackets\x18\n" +
+	" \x01(\x04R\x0erxUcastPackets\x12&\n" +
+	"\x0etxMcastPackets\x18\v \x01(\x04R\x0etxMcastPackets\x12&\n" +
+	"\x0erxMcastPackets\x18\f \x01(\x04R\x0erxMcastPackets\"D\n" +
+	"\x14GetOnuPonOpticalInfo\x12,\n" +
+	"\x05empty\x18\x01 \x01(\v2\x16.google.protobuf.EmptyR\x05empty\"\x84\x02\n" +
+	"\x1cGetOnuPonOpticalInfoResponse\x12*\n" +
+	"\x10powerFeedVoltage\x18\x01 \x01(\x02R\x10powerFeedVoltage\x122\n" +
+	"\x14receivedOpticalPower\x18\x02 \x01(\x02R\x14receivedOpticalPower\x126\n" +
+	"\x16meanOpticalLaunchPower\x18\x03 \x01(\x02R\x16meanOpticalLaunchPower\x12*\n" +
+	"\x10laserBiasCurrent\x18\x04 \x01(\x02R\x10laserBiasCurrent\x12 \n" +
+	"\vtemperature\x18\x05 \x01(\x02R\vtemperature\"\xaf\x01\n" +
+	"\x1fGetOnuEthernetBridgePortHistory\x12R\n" +
+	"\tdirection\x18\x01 \x01(\x0e24.extension.GetOnuEthernetBridgePortHistory.DirectionR\tdirection\"8\n" +
+	"\tDirection\x12\r\n" +
+	"\tUNDEFINED\x10\x00\x12\f\n" +
+	"\bUPSTREAM\x10\x01\x12\x0e\n" +
+	"\n" +
+	"DOWNSTREAM\x10\x02\"\x93\x05\n" +
+	"'GetOnuEthernetBridgePortHistoryResponse\x12\x1e\n" +
+	"\n" +
+	"dropEvents\x18\x01 \x01(\rR\n" +
+	"dropEvents\x12\x16\n" +
+	"\x06octets\x18\x02 \x01(\rR\x06octets\x12\x18\n" +
+	"\apackets\x18\x03 \x01(\rR\apackets\x12*\n" +
+	"\x10broadcastPackets\x18\x04 \x01(\rR\x10broadcastPackets\x12*\n" +
+	"\x10multicastPackets\x18\x05 \x01(\rR\x10multicastPackets\x12,\n" +
+	"\x11crcErroredPackets\x18\x06 \x01(\rR\x11crcErroredPackets\x12*\n" +
+	"\x10undersizePackets\x18\a \x01(\rR\x10undersizePackets\x12(\n" +
+	"\x0foversizePackets\x18\b \x01(\rR\x0foversizePackets\x12(\n" +
+	"\x0fpackets64octets\x18\t \x01(\rR\x0fpackets64octets\x122\n" +
+	"\x14packets65To127octets\x18\n" +
+	" \x01(\rR\x14packets65To127octets\x124\n" +
+	"\x15packets128To255Octets\x18\v \x01(\rR\x15packets128To255Octets\x124\n" +
+	"\x15packets256To511octets\x18\f \x01(\rR\x15packets256To511octets\x126\n" +
+	"\x16packets512To1023octets\x18\r \x01(\rR\x16packets512To1023octets\x128\n" +
+	"\x17packets1024To1518octets\x18\x0e \x01(\rR\x17packets1024To1518octets\"L\n" +
+	"\x1cGetOnuAllocGemHistoryRequest\x12,\n" +
+	"\x05empty\x18\x01 \x01(\v2\x16.google.protobuf.EmptyR\x05empty\"\xb3\x03\n" +
+	"\x15OnuGemPortHistoryData\x12\x14\n" +
+	"\x05gemId\x18\x01 \x01(\rR\x05gemId\x122\n" +
+	"\x14transmittedGEMFrames\x18\x02 \x01(\rR\x14transmittedGEMFrames\x12,\n" +
+	"\x11receivedGEMFrames\x18\x03 \x01(\rR\x11receivedGEMFrames\x126\n" +
+	"\x14receivedPayloadBytes\x18\x04 \x01(\rB\x02\x18\x01R\x14receivedPayloadBytes\x12<\n" +
+	"\x17transmittedPayloadBytes\x18\x05 \x01(\rB\x02\x18\x01R\x17transmittedPayloadBytes\x120\n" +
+	"\x13encryptionKeyErrors\x18\x06 \x01(\rR\x13encryptionKeyErrors\x129\n" +
+	"\x19received_payload_bytes_64\x18\a \x01(\x06R\x16receivedPayloadBytes64\x12?\n" +
+	"\x1ctransmitted_payload_bytes_64\x18\b \x01(\x06R\x19transmittedPayloadBytes64\"I\n" +
+	"\x13OnuAllocHistoryData\x12\x18\n" +
+	"\aallocId\x18\x01 \x01(\rR\aallocId\x12\x18\n" +
+	"\arxBytes\x18\x02 \x01(\rR\arxBytes\"\xa4\x01\n" +
+	"\x16OnuAllocGemHistoryData\x12F\n" +
+	"\x0eonuAllocIdInfo\x18\x01 \x01(\v2\x1e.extension.OnuAllocHistoryDataR\x0eonuAllocIdInfo\x12B\n" +
+	"\vgemPortInfo\x18\x02 \x03(\v2 .extension.OnuGemPortHistoryDataR\vgemPortInfo\"z\n" +
+	"\x1dGetOnuAllocGemHistoryResponse\x12Y\n" +
+	"\x16onuAllocGemHistoryData\x18\x01 \x03(\v2!.extension.OnuAllocGemHistoryDataR\x16onuAllocGemHistoryData\"@\n" +
+	"\x10GetOnuFecHistory\x12,\n" +
+	"\x05empty\x18\x01 \x01(\v2\x16.google.protobuf.EmptyR\x05empty\"\xe3\x03\n" +
+	"\x18GetOnuFecHistoryResponse\x12*\n" +
+	"\x0ecorrectedBytes\x18\x01 \x01(\rB\x02\x18\x01R\x0ecorrectedBytes\x122\n" +
+	"\x12correctedCodeWords\x18\x02 \x01(\rB\x02\x18\x01R\x12correctedCodeWords\x12\x1e\n" +
+	"\n" +
+	"fecSeconds\x18\x03 \x01(\rR\n" +
+	"fecSeconds\x12*\n" +
+	"\x0etotalCodeWords\x18\x04 \x01(\rB\x02\x18\x01R\x0etotalCodeWords\x12:\n" +
+	"\x16uncorrectableCodeWords\x18\x05 \x01(\rB\x02\x18\x01R\x16uncorrectableCodeWords\x123\n" +
+	"\x16fec_corrected_bytes_64\x18\x06 \x01(\x06R\x13fecCorrectedBytes64\x12<\n" +
+	"\x1bfec_corrected_code_words_64\x18\a \x01(\x06R\x17fecCorrectedCodeWords64\x12-\n" +
+	"\x13total_code_words_64\x18\b \x01(\x06R\x10totalCodeWords64\x12=\n" +
+	"\x1buncorrectable_code_words_64\x18\t \x01(\x06R\x18uncorrectableCodeWords64\"G\n" +
+	"\x15GetOnuCountersRequest\x12\x17\n" +
+	"\aintf_id\x18\x01 \x01(\aR\x06intfId\x12\x15\n" +
+	"\x06onu_id\x18\x02 \x01(\aR\x05onuId\"\x8d\x01\n" +
+	"%GetOmciEthernetFrameExtendedPmRequest\x12 \n" +
+	"\vonuDeviceId\x18\x01 \x01(\tR\vonuDeviceId\x12\x1c\n" +
+	"\buniIndex\x18\x02 \x01(\rH\x00R\buniIndex\x12\x14\n" +
+	"\x05reset\x18\x03 \x01(\bR\x05resetB\x0e\n" +
+	"\fis_uni_index\"C\n" +
+	"\x11GetRxPowerRequest\x12\x17\n" +
+	"\aintf_id\x18\x01 \x01(\aR\x06intfId\x12\x15\n" +
+	"\x06onu_id\x18\x02 \x01(\aR\x05onuId\"L\n" +
+	"\x14GetOltRxPowerRequest\x12\x1d\n" +
+	"\n" +
+	"port_label\x18\x01 \x01(\tR\tportLabel\x12\x15\n" +
+	"\x06onu_sn\x18\x02 \x01(\tR\x05onuSn\"Z\n" +
+	"\x12GetPonStatsRequest\x12\x1e\n" +
+	"\tportLabel\x18\x01 \x01(\tH\x00R\tportLabel\x12\x18\n" +
+	"\x06portId\x18\x02 \x01(\aH\x00R\x06portIdB\n" +
+	"\n" +
+	"\bportInfo\"o\n" +
+	"\x13GetPonStatsResponse\x12\x18\n" +
+	"\aponPort\x18\x01 \x01(\rR\aponPort\x12>\n" +
+	"\x0eportStatistics\x18\x02 \x01(\v2\x16.common.PortStatisticsR\x0eportStatistics\"Z\n" +
+	"\x12GetNNIStatsRequest\x12\x1e\n" +
+	"\tportLabel\x18\x01 \x01(\tH\x00R\tportLabel\x12\x18\n" +
+	"\x06portId\x18\x02 \x01(\aH\x00R\x06portIdB\n" +
+	"\n" +
+	"\bportInfo\"o\n" +
+	"\x13GetNNIStatsResponse\x12\x18\n" +
+	"\anniPort\x18\x01 \x01(\rR\anniPort\x12>\n" +
+	"\x0eportStatistics\x18\x02 \x01(\v2\x16.common.PortStatisticsR\x0eportStatistics\"I\n" +
+	"\x19GetOnuStatsFromOltRequest\x12\x16\n" +
+	"\x06intfId\x18\x01 \x01(\aR\x06intfId\x12\x14\n" +
+	"\x05onuId\x18\x02 \x01(\aR\x05onuId\"\x9d\x01\n" +
+	"\x15OnuGemPortInfoFromOlt\x12\x14\n" +
+	"\x05gemId\x18\x01 \x01(\rR\x05gemId\x12\x1c\n" +
+	"\trxPackets\x18\x02 \x01(\x04R\trxPackets\x12\x18\n" +
+	"\arxBytes\x18\x03 \x01(\x04R\arxBytes\x12\x1c\n" +
+	"\ttxPackets\x18\x04 \x01(\x04R\ttxPackets\x12\x18\n" +
+	"\atxBytes\x18\x05 \x01(\x04R\atxBytes\"K\n" +
+	"\x15OnuAllocIdInfoFromOlt\x12\x18\n" +
+	"\aallocId\x18\x01 \x01(\rR\aallocId\x12\x18\n" +
+	"\arxBytes\x18\x02 \x01(\x04R\arxBytes\"\xa9\x01\n" +
+	"\x1fOnuAllocGemStatsFromOltResponse\x12B\n" +
+	"\vallocIdInfo\x18\x01 \x01(\v2 .extension.OnuAllocIdInfoFromOltR\vallocIdInfo\x12B\n" +
+	"\vgemPortInfo\x18\x02 \x03(\v2 .extension.OnuGemPortInfoFromOltR\vgemPortInfo\"v\n" +
+	"\x1aGetOnuStatsFromOltResponse\x12X\n" +
+	"\x11allocGemStatsInfo\x18\x01 \x03(\v2*.extension.OnuAllocGemStatsFromOltResponseR\x11allocGemStatsInfo\"\x96\r\n" +
+	"\x16GetOnuCountersResponse\x12\x19\n" +
+	"\aintf_id\x18\x01 \x01(\aH\x00R\x06intfId\x12\x17\n" +
+	"\x06onu_id\x18\x02 \x01(\aH\x01R\x05onuId\x12'\n" +
+	"\x0epositive_drift\x18\x03 \x01(\x06H\x02R\rpositiveDrift\x12'\n" +
+	"\x0enegative_drift\x18\x04 \x01(\x06H\x03R\rnegativeDrift\x12:\n" +
+	"\x18delimiter_miss_detection\x18\x05 \x01(\x06H\x04R\x16delimiterMissDetection\x12\x1f\n" +
+	"\n" +
+	"bip_errors\x18\x06 \x01(\x06H\x05R\tbipErrors\x12\x1d\n" +
+	"\tbip_units\x18\a \x01(\x06H\x06R\bbipUnits\x124\n" +
+	"\x15fec_corrected_symbols\x18\b \x01(\x06H\aR\x13fecCorrectedSymbols\x128\n" +
+	"\x17fec_codewords_corrected\x18\t \x01(\x06H\bR\x15fecCodewordsCorrected\x12@\n" +
+	"\x1bfec_codewords_uncorrectable\x18\n" +
+	" \x01(\x06H\tR\x19fecCodewordsUncorrectable\x12%\n" +
+	"\rfec_codewords\x18\v \x01(\x06H\n" +
+	"R\ffecCodewords\x120\n" +
+	"\x13fec_corrected_units\x18\f \x01(\x06H\vR\x11fecCorrectedUnits\x12(\n" +
+	"\x0fxgem_key_errors\x18\r \x01(\x06H\fR\rxgemKeyErrors\x12\x1d\n" +
+	"\txgem_loss\x18\x0e \x01(\x06H\rR\bxgemLoss\x12(\n" +
+	"\x0frx_ploams_error\x18\x0f \x01(\x06H\x0eR\rrxPloamsError\x12-\n" +
+	"\x12rx_ploams_non_idle\x18\x10 \x01(\x06H\x0fR\x0frxPloamsNonIdle\x12\x19\n" +
+	"\arx_omci\x18\x11 \x01(\x06H\x10R\x06rxOmci\x12\x19\n" +
+	"\atx_omci\x18\x12 \x01(\x06H\x11R\x06txOmci\x12:\n" +
+	"\x19rx_omci_packets_crc_error\x18\x13 \x01(\x06H\x12R\x15rxOmciPacketsCrcError\x12\x1b\n" +
+	"\brx_bytes\x18\x14 \x01(\x06H\x13R\arxBytes\x12\x1f\n" +
+	"\n" +
+	"rx_packets\x18\x15 \x01(\x06H\x14R\trxPackets\x12\x1b\n" +
+	"\btx_bytes\x18\x16 \x01(\x06H\x15R\atxBytes\x12\x1f\n" +
+	"\n" +
+	"tx_packets\x18\x17 \x01(\x06H\x16R\ttxPackets\x12#\n" +
+	"\fber_reported\x18\x18 \x01(\x06H\x17R\vberReported\x12!\n" +
+	"\vlcdg_errors\x18\x19 \x01(\x06H\x18R\n" +
+	"lcdgErrors\x12\x1f\n" +
+	"\n" +
+	"rdi_errors\x18\x1a \x01(\x06H\x19R\trdiErrors\x12\x1e\n" +
+	"\ttimestamp\x18\x1b \x01(\aH\x1aR\ttimestamp\x12\x1f\n" +
+	"\n" +
+	"hec_errors\x18\x1c \x01(\x06H\x1bR\thecErrorsB\f\n" +
+	"\n" +
+	"is_intf_idB\v\n" +
+	"\tis_onu_idB\x13\n" +
+	"\x11is_positive_driftB\x13\n" +
+	"\x11is_negative_driftB\x1d\n" +
+	"\x1bis_delimiter_miss_detectionB\x0f\n" +
+	"\ris_bip_errorsB\x0e\n" +
+	"\fis_bip_unitsB\x1a\n" +
+	"\x18is_fec_corrected_symbolsB\x1c\n" +
+	"\x1ais_fec_codewords_correctedB \n" +
+	"\x1eis_fec_codewords_uncorrectableB\x12\n" +
+	"\x10is_fec_codewordsB\x18\n" +
+	"\x16is_fec_corrected_unitsB\x14\n" +
+	"\x12is_xgem_key_errorsB\x0e\n" +
+	"\fis_xgem_lossB\x14\n" +
+	"\x12is_rx_ploams_errorB\x17\n" +
+	"\x15is_rx_ploams_non_idleB\f\n" +
+	"\n" +
+	"is_rx_omciB\f\n" +
+	"\n" +
+	"is_tx_omciB\x1e\n" +
+	"\x1cis_rx_omci_packets_crc_errorB\r\n" +
+	"\vis_rx_bytesB\x0f\n" +
+	"\ris_rx_packetsB\r\n" +
+	"\vis_tx_bytesB\x0f\n" +
+	"\ris_tx_packetsB\x11\n" +
+	"\x0fis_ber_reportedB\x10\n" +
+	"\x0eis_lcdg_errorsB\x0f\n" +
+	"\ris_rdi_errorsB\x0e\n" +
+	"\fis_timestampB\x0f\n" +
+	"\ris_hec_errors\"\x8c\x05\n" +
+	"\x1bOmciEthernetFrameExtendedPm\x12\x1f\n" +
+	"\vdrop_events\x18\x01 \x01(\x06R\n" +
+	"dropEvents\x12\x16\n" +
+	"\x06octets\x18\x02 \x01(\x06R\x06octets\x12\x16\n" +
+	"\x06frames\x18\x03 \x01(\x06R\x06frames\x12)\n" +
+	"\x10broadcast_frames\x18\x04 \x01(\x06R\x0fbroadcastFrames\x12)\n" +
+	"\x10multicast_frames\x18\x05 \x01(\x06R\x0fmulticastFrames\x12,\n" +
+	"\x12crc_errored_frames\x18\x06 \x01(\x06R\x10crcErroredFrames\x12)\n" +
+	"\x10undersize_frames\x18\a \x01(\x06R\x0fundersizeFrames\x12'\n" +
+	"\x0foversize_frames\x18\b \x01(\x06R\x0eoversizeFrames\x12(\n" +
+	"\x10frames_64_octets\x18\t \x01(\x06R\x0eframes64Octets\x124\n" +
+	"\x17frames_65_to_127_octets\x18\n" +
+	" \x01(\x06R\x13frames65To127Octets\x126\n" +
+	"\x18frames_128_to_255_octets\x18\v \x01(\x06R\x14frames128To255Octets\x126\n" +
+	"\x18frames_256_to_511_octets\x18\f \x01(\x06R\x14frames256To511Octets\x128\n" +
+	"\x19frames_512_to_1023_octets\x18\r \x01(\x06R\x15frames512To1023Octets\x12:\n" +
+	"\x1aframes_1024_to_1518_octets\x18\x0e \x01(\x06R\x16frames1024To1518Octets\"\xf4\x02\n" +
+	"&GetOmciEthernetFrameExtendedPmResponse\x12B\n" +
+	"\bupstream\x18\x01 \x01(\v2&.extension.OmciEthernetFrameExtendedPmR\bupstream\x12F\n" +
+	"\n" +
+	"downstream\x18\x02 \x01(\v2&.extension.OmciEthernetFrameExtendedPmR\n" +
+	"downstream\x12\x8b\x01\n" +
+	"&omci_ethernet_frame_extended_pm_format\x18\x03 \x01(\x0e28.extension.GetOmciEthernetFrameExtendedPmResponse.FormatR!omciEthernetFrameExtendedPmFormat\"0\n" +
+	"\x06Format\x12\x12\n" +
+	"\x0eTHIRTY_TWO_BIT\x10\x00\x12\x12\n" +
+	"\x0eSIXTY_FOUR_BIT\x10\x01\"t\n" +
+	"\aRxPower\x12\x15\n" +
+	"\x06onu_sn\x18\x01 \x01(\tR\x05onuSn\x12\x16\n" +
+	"\x06status\x18\x02 \x01(\tR\x06status\x12\x1f\n" +
+	"\vfail_reason\x18\x03 \x01(\tR\n" +
+	"failReason\x12\x19\n" +
+	"\brx_power\x18\x04 \x01(\x01R\arxPower\"e\n" +
+	"\x15GetOltRxPowerResponse\x12\x1d\n" +
+	"\n" +
+	"port_label\x18\x01 \x01(\tR\tportLabel\x12-\n" +
+	"\brx_power\x18\x02 \x03(\v2\x12.extension.RxPowerR\arxPower\"\x98\x01\n" +
+	"\x12GetRxPowerResponse\x12\x17\n" +
+	"\aintf_id\x18\x01 \x01(\aR\x06intfId\x12\x15\n" +
+	"\x06onu_id\x18\x02 \x01(\aR\x05onuId\x12\x16\n" +
+	"\x06status\x18\x03 \x01(\tR\x06status\x12\x1f\n" +
+	"\vfail_reason\x18\x04 \x01(\tR\n" +
+	"failReason\x12\x19\n" +
+	"\brx_power\x18\x05 \x01(\x01R\arxPower\"J\n" +
+	"\x1aGetOnuOmciTxRxStatsRequest\x12,\n" +
+	"\x05empty\x18\x01 \x01(\v2\x16.google.protobuf.EmptyR\x05empty\"\xf1\x03\n" +
+	"\x1bGetOnuOmciTxRxStatsResponse\x12)\n" +
+	"\x11base_tx_ar_frames\x18\x01 \x01(\rR\x0ebaseTxArFrames\x12)\n" +
+	"\x11base_rx_ak_frames\x18\x02 \x01(\rR\x0ebaseRxAkFrames\x12.\n" +
+	"\x14base_tx_no_ar_frames\x18\x03 \x01(\rR\x10baseTxNoArFrames\x12.\n" +
+	"\x14base_rx_no_ak_frames\x18\x04 \x01(\rR\x10baseRxNoAkFrames\x12'\n" +
+	"\x10ext_tx_ar_frames\x18\x05 \x01(\rR\rextTxArFrames\x12'\n" +
+	"\x10ext_rx_ak_frames\x18\x06 \x01(\rR\rextRxAkFrames\x12,\n" +
+	"\x13ext_tx_no_ar_frames\x18\a \x01(\rR\x0fextTxNoArFrames\x12,\n" +
+	"\x13ext_rx_no_ak_frames\x18\b \x01(\rR\x0fextRxNoAkFrames\x125\n" +
+	"\x17tx_omci_counter_retries\x18\t \x01(\rR\x14txOmciCounterRetries\x127\n" +
+	"\x18tx_omci_counter_timeouts\x18\n" +
+	" \x01(\rR\x15txOmciCounterTimeouts\"M\n" +
+	"\x1dGetOnuOmciActiveAlarmsRequest\x12,\n" +
+	"\x05empty\x18\x01 \x01(\v2\x16.google.protobuf.EmptyR\x05empty\"}\n" +
+	"\tAlarmData\x12\x19\n" +
+	"\bclass_id\x18\x01 \x01(\rR\aclassId\x12\x1f\n" +
+	"\vinstance_id\x18\x02 \x01(\rR\n" +
+	"instanceId\x12\x12\n" +
+	"\x04name\x18\x03 \x01(\tR\x04name\x12 \n" +
+	"\vdescription\x18\x04 \x01(\tR\vdescription\"[\n" +
+	"\x1eGetOnuOmciActiveAlarmsResponse\x129\n" +
+	"\ractive_alarms\x18\x01 \x03(\v2\x14.extension.AlarmDataR\factiveAlarms\"\xc2\x01\n" +
+	"!GetOffloadedAppsStatisticsRequest\x12U\n" +
+	"\bstatsFor\x18\x01 \x01(\x0e29.extension.GetOffloadedAppsStatisticsRequest.OffloadedAppR\bstatsFor\"F\n" +
+	"\fOffloadedApp\x12\r\n" +
+	"\tUNDEFINED\x10\x00\x12\v\n" +
+	"\aPPPoeIA\x10\x01\x12\f\n" +
+	"\bDHCPv4RA\x10\x02\x12\f\n" +
+	"\bDHCPv6RA\x10\x03\"\x8b\x16\n" +
+	"\"GetOffloadedAppsStatisticsResponse\x12c\n" +
+	"\rdhcpv4RaStats\x18\x01 \x01(\v2;.extension.GetOffloadedAppsStatisticsResponse.DHCPv4RAStatsH\x00R\rdhcpv4RaStats\x12c\n" +
+	"\rdhcpv6RaStats\x18\x02 \x01(\v2;.extension.GetOffloadedAppsStatisticsResponse.DHCPv6RAStatsH\x00R\rdhcpv6RaStats\x12`\n" +
+	"\fpppoeIaStats\x18\x03 \x01(\v2:.extension.GetOffloadedAppsStatisticsResponse.PPPoeIAStatsH\x00R\fpppoeIaStats\x1a\xfb\x05\n" +
+	"\rDHCPv4RAStats\x12:\n" +
+	"\x1ain_bad_packets_from_client\x18\x01 \x01(\rR\x16inBadPacketsFromClient\x12:\n" +
+	"\x1ain_bad_packets_from_server\x18\x02 \x01(\rR\x16inBadPacketsFromServer\x123\n" +
+	"\x16in_packets_from_client\x18\x03 \x01(\rR\x13inPacketsFromClient\x123\n" +
+	"\x16in_packets_from_server\x18\x04 \x01(\rR\x13inPacketsFromServer\x121\n" +
+	"\x15out_packets_to_server\x18\x05 \x01(\rR\x12outPacketsToServer\x121\n" +
+	"\x15out_packets_to_client\x18\x06 \x01(\rR\x12outPacketsToClient\x12M\n" +
+	"$option_82_inserted_packets_to_server\x18\a \x01(\rR\x1foption82InsertedPacketsToServer\x12K\n" +
+	"#option_82_removed_packets_to_client\x18\b \x01(\rR\x1eoption82RemovedPacketsToClient\x12E\n" +
+	" option_82_not_inserted_to_server\x18\t \x01(\rR\x1boption82NotInsertedToServer\x12{\n" +
+	"\x10additional_stats\x18\n" +
+	" \x03(\v2P.extension.GetOffloadedAppsStatisticsResponse.DHCPv4RAStats.AdditionalStatsEntryR\x0fadditionalStats\x1aB\n" +
+	"\x14AdditionalStatsEntry\x12\x10\n" +
+	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
+	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\x1a\xf5\x06\n" +
+	"\rDHCPv6RAStats\x12:\n" +
+	"\x1ain_bad_packets_from_client\x18\x01 \x01(\rR\x16inBadPacketsFromClient\x12:\n" +
+	"\x1ain_bad_packets_from_server\x18\x02 \x01(\rR\x16inBadPacketsFromServer\x12M\n" +
+	"$option_17_inserted_packets_to_server\x18\x03 \x01(\rR\x1foption17InsertedPacketsToServer\x12K\n" +
+	"#option_17_removed_packets_to_client\x18\x04 \x01(\rR\x1eoption17RemovedPacketsToClient\x12M\n" +
+	"$option_18_inserted_packets_to_server\x18\x05 \x01(\rR\x1foption18InsertedPacketsToServer\x12K\n" +
+	"#option_18_removed_packets_to_client\x18\x06 \x01(\rR\x1eoption18RemovedPacketsToClient\x12M\n" +
+	"$option_37_inserted_packets_to_server\x18\a \x01(\rR\x1foption37InsertedPacketsToServer\x12K\n" +
+	"#option_37_removed_packets_to_client\x18\b \x01(\rR\x1eoption37RemovedPacketsToClient\x12W\n" +
+	")outgoing_mtu_exceeded_packets_from_client\x18\t \x01(\rR$outgoingMtuExceededPacketsFromClient\x12{\n" +
+	"\x10additional_stats\x18\n" +
+	" \x03(\v2P.extension.GetOffloadedAppsStatisticsResponse.DHCPv6RAStats.AdditionalStatsEntryR\x0fadditionalStats\x1aB\n" +
+	"\x14AdditionalStatsEntry\x12\x10\n" +
+	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
+	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\x1a\xb9\x06\n" +
+	"\fPPPoeIAStats\x12>\n" +
+	"\x1cin_error_packets_from_client\x18\x01 \x01(\rR\x18inErrorPacketsFromClient\x12>\n" +
+	"\x1cin_error_packets_from_server\x18\x02 \x01(\rR\x18inErrorPacketsFromServer\x123\n" +
+	"\x16in_packets_from_client\x18\x03 \x01(\rR\x13inPacketsFromClient\x123\n" +
+	"\x16in_packets_from_server\x18\x04 \x01(\rR\x13inPacketsFromServer\x121\n" +
+	"\x15out_packets_to_server\x18\x05 \x01(\rR\x12outPacketsToServer\x121\n" +
+	"\x15out_packets_to_client\x18\x06 \x01(\rR\x12outPacketsToClient\x12`\n" +
+	".vendor_specific_tag_inserted_packets_to_server\x18\a \x01(\rR(vendorSpecificTagInsertedPacketsToServer\x12^\n" +
+	"-vendor_specific_tag_removed_packets_to_client\x18\b \x01(\rR'vendorSpecificTagRemovedPacketsToClient\x12W\n" +
+	")outgoing_mtu_exceeded_packets_from_client\x18\t \x01(\rR$outgoingMtuExceededPacketsFromClient\x12z\n" +
+	"\x10additional_stats\x18\n" +
+	" \x03(\v2O.extension.GetOffloadedAppsStatisticsResponse.PPPoeIAStats.AdditionalStatsEntryR\x0fadditionalStats\x1aB\n" +
+	"\x14AdditionalStatsEntry\x12\x10\n" +
+	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
+	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01B\a\n" +
+	"\x05stats\"\xf8\t\n" +
+	"\x0fGetValueRequest\x12;\n" +
+	"\bdistance\x18\x01 \x01(\v2\x1d.extension.GetDistanceRequestH\x00R\bdistance\x12;\n" +
+	"\auniInfo\x18\x02 \x01(\v2\x1f.extension.GetOnuUniInfoRequestH\x00R\auniInfo\x12A\n" +
+	"\voltPortInfo\x18\x03 \x01(\v2\x1d.extension.GetOltPortCountersH\x00R\voltPortInfo\x12I\n" +
+	"\x0eonuOpticalInfo\x18\x04 \x01(\v2\x1f.extension.GetOnuPonOpticalInfoH\x00R\x0eonuOpticalInfo\x12R\n" +
+	"\rethBridgePort\x18\x05 \x01(\v2*.extension.GetOnuEthernetBridgePortHistoryH\x00R\rethBridgePort\x12=\n" +
+	"\n" +
+	"fecHistory\x18\x06 \x01(\v2\x1b.extension.GetOnuFecHistoryH\x00R\n" +
+	"fecHistory\x12B\n" +
+	"\n" +
+	"onuPonInfo\x18\a \x01(\v2 .extension.GetOnuCountersRequestH\x00R\n" +
+	"onuPonInfo\x12L\n" +
+	"\aonuInfo\x18\b \x01(\v20.extension.GetOmciEthernetFrameExtendedPmRequestH\x00R\aonuInfo\x128\n" +
+	"\arxPower\x18\t \x01(\v2\x1c.extension.GetRxPowerRequestH\x00R\arxPower\x12K\n" +
+	"\fonuOmciStats\x18\n" +
+	" \x01(\v2%.extension.GetOnuOmciTxRxStatsRequestH\x00R\fonuOmciStats\x12A\n" +
+	"\n" +
+	"oltRxPower\x18\v \x01(\v2\x1f.extension.GetOltRxPowerRequestH\x00R\n" +
+	"oltRxPower\x12T\n" +
+	"\x0fonuActiveAlarms\x18\f \x01(\v2(.extension.GetOnuOmciActiveAlarmsRequestH\x00R\x0fonuActiveAlarms\x12^\n" +
+	"\x12offloadedAppsStats\x18\r \x01(\v2,.extension.GetOffloadedAppsStatisticsRequestH\x00R\x12offloadedAppsStats\x12U\n" +
+	"\x10onuAllocGemStats\x18\x0e \x01(\v2'.extension.GetOnuAllocGemHistoryRequestH\x00R\x10onuAllocGemStats\x12P\n" +
+	"\x0fonuStatsFromOlt\x18\x0f \x01(\v2$.extension.GetOnuStatsFromOltRequestH\x00R\x0fonuStatsFromOlt\x12A\n" +
+	"\voltPonStats\x18\x10 \x01(\v2\x1d.extension.GetPonStatsRequestH\x00R\voltPonStats\x12A\n" +
+	"\voltNniStats\x18\x11 \x01(\v2\x1d.extension.GetNNIStatsRequestH\x00R\voltNniStatsB\t\n" +
+	"\arequest\"\xe7\r\n" +
+	"\x10GetValueResponse\x12:\n" +
+	"\x06status\x18\x01 \x01(\x0e2\".extension.GetValueResponse.StatusR\x06status\x12E\n" +
+	"\terrReason\x18\x02 \x01(\x0e2'.extension.GetValueResponse.ErrorReasonR\terrReason\x12<\n" +
+	"\bdistance\x18\x03 \x01(\v2\x1e.extension.GetDistanceResponseH\x00R\bdistance\x12<\n" +
+	"\auniInfo\x18\x04 \x01(\v2 .extension.GetOnuUniInfoResponseH\x00R\auniInfo\x12K\n" +
+	"\fportCoutners\x18\x05 \x01(\v2%.extension.GetOltPortCountersResponseH\x00R\fportCoutners\x12Q\n" +
+	"\x0eonuOpticalInfo\x18\x06 \x01(\v2'.extension.GetOnuPonOpticalInfoResponseH\x00R\x0eonuOpticalInfo\x12b\n" +
+	"\x11ethBridgePortInfo\x18\a \x01(\v22.extension.GetOnuEthernetBridgePortHistoryResponseH\x00R\x11ethBridgePortInfo\x12E\n" +
+	"\n" +
+	"fecHistory\x18\b \x01(\v2#.extension.GetOnuFecHistoryResponseH\x00R\n" +
+	"fecHistory\x12K\n" +
+	"\x0eonuPonCounters\x18\t \x01(\v2!.extension.GetOnuCountersResponseH\x00R\x0eonuPonCounters\x12U\n" +
+	"\vonuCounters\x18\n" +
+	" \x01(\v21.extension.GetOmciEthernetFrameExtendedPmResponseH\x00R\vonuCounters\x129\n" +
+	"\arxPower\x18\v \x01(\v2\x1d.extension.GetRxPowerResponseH\x00R\arxPower\x12L\n" +
+	"\fonuOmciStats\x18\f \x01(\v2&.extension.GetOnuOmciTxRxStatsResponseH\x00R\fonuOmciStats\x12B\n" +
+	"\n" +
+	"oltRxPower\x18\r \x01(\v2 .extension.GetOltRxPowerResponseH\x00R\n" +
+	"oltRxPower\x12U\n" +
+	"\x0fonuActiveAlarms\x18\x0e \x01(\v2).extension.GetOnuOmciActiveAlarmsResponseH\x00R\x0fonuActiveAlarms\x12_\n" +
+	"\x12offloadedAppsStats\x18\x0f \x01(\v2-.extension.GetOffloadedAppsStatisticsResponseH\x00R\x12offloadedAppsStats\x12f\n" +
+	"\x18onuAllocGemStatsResponse\x18\x10 \x01(\v2(.extension.GetOnuAllocGemHistoryResponseH\x00R\x18onuAllocGemStatsResponse\x12a\n" +
+	"\x17onuStatsFromOltResponse\x18\x11 \x01(\v2%.extension.GetOnuStatsFromOltResponseH\x00R\x17onuStatsFromOltResponse\x12R\n" +
+	"\x13oltPonStatsResponse\x18\x12 \x01(\v2\x1e.extension.GetPonStatsResponseH\x00R\x13oltPonStatsResponse\x12R\n" +
+	"\x13oltNniStatsResponse\x18\x13 \x01(\v2\x1e.extension.GetNNIStatsResponseH\x00R\x13oltNniStatsResponse\"1\n" +
+	"\x06Status\x12\x14\n" +
+	"\x10STATUS_UNDEFINED\x10\x00\x12\x06\n" +
+	"\x02OK\x10\x01\x12\t\n" +
+	"\x05ERROR\x10\x02\"\xad\x01\n" +
+	"\vErrorReason\x12\x14\n" +
+	"\x10REASON_UNDEFINED\x10\x00\x12\x0f\n" +
+	"\vUNSUPPORTED\x10\x01\x12\x15\n" +
+	"\x11INVALID_DEVICE_ID\x10\x02\x12\x15\n" +
+	"\x11INVALID_PORT_TYPE\x10\x03\x12\v\n" +
+	"\aTIMEOUT\x10\x04\x12\x14\n" +
+	"\x10INVALID_REQ_TYPE\x10\x05\x12\x12\n" +
+	"\x0eINTERNAL_ERROR\x10\x06\x12\x12\n" +
+	"\x0eINVALID_DEVICE\x10\aB\n" +
+	"\n" +
+	"\bresponse\"\xac\x01\n" +
+	"\x10AppOffloadConfig\x12&\n" +
+	"\x0eenableDHCPv4RA\x18\x01 \x01(\bR\x0eenableDHCPv4RA\x12&\n" +
+	"\x0eenableDHCPv6RA\x18\x02 \x01(\bR\x0eenableDHCPv6RA\x12$\n" +
+	"\renablePPPoEIA\x18\x03 \x01(\bR\renablePPPoEIA\x12\"\n" +
+	"\faccessNodeID\x18\x04 \x01(\tR\faccessNodeID\"\xfe\x01\n" +
+	"\x13AppOffloadOnuConfig\x12 \n" +
+	"\vonuDeviceId\x18\x01 \x01(\tR\vonuDeviceId\x12K\n" +
+	"\n" +
+	"perUniInfo\x18\x05 \x03(\v2+.extension.AppOffloadOnuConfig.PerUniConfigR\n" +
+	"perUniInfo\x1ax\n" +
+	"\fPerUniConfig\x12$\n" +
+	"\ragentRemoteID\x18\x02 \x01(\tR\ragentRemoteID\x12&\n" +
+	"\x0eagentCircuitID\x18\x03 \x01(\tR\x0eagentCircuitID\x12\x1a\n" +
+	"\bonuUniId\x18\x04 \x01(\rR\bonuUniId\"\xfa\x01\n" +
+	"\x0fSetValueRequest\x128\n" +
+	"\falarm_config\x18\x01 \x01(\v2\x13.config.AlarmConfigH\x00R\valarmConfig\x12K\n" +
+	"\x12app_offload_config\x18\x02 \x01(\v2\x1b.extension.AppOffloadConfigH\x00R\x10appOffloadConfig\x12U\n" +
+	"\x16app_offload_onu_config\x18\x03 \x01(\v2\x1e.extension.AppOffloadOnuConfigH\x00R\x13appOffloadOnuConfigB\t\n" +
+	"\arequest\"\xc4\x02\n" +
+	"\x10SetValueResponse\x12:\n" +
+	"\x06status\x18\x01 \x01(\x0e2\".extension.SetValueResponse.StatusR\x06status\x12E\n" +
+	"\terrReason\x18\x02 \x01(\x0e2'.extension.SetValueResponse.ErrorReasonR\terrReason\"1\n" +
+	"\x06Status\x12\x14\n" +
+	"\x10STATUS_UNDEFINED\x10\x00\x12\x06\n" +
+	"\x02OK\x10\x01\x12\t\n" +
+	"\x05ERROR\x10\x02\"z\n" +
+	"\vErrorReason\x12\x14\n" +
+	"\x10REASON_UNDEFINED\x10\x00\x12\x0f\n" +
+	"\vUNSUPPORTED\x10\x01\x12\x15\n" +
+	"\x11INVALID_DEVICE_ID\x10\x02\x12\x19\n" +
+	"\x15INVALID_ONU_DEVICE_ID\x10\x03\x12\x12\n" +
+	"\x0eINVALID_UNI_ID\x10\x04\"i\n" +
+	"\x15SingleGetValueRequest\x12\x1a\n" +
+	"\btargetId\x18\x01 \x01(\tR\btargetId\x124\n" +
+	"\arequest\x18\x02 \x01(\v2\x1a.extension.GetValueRequestR\arequest\"Q\n" +
+	"\x16SingleGetValueResponse\x127\n" +
+	"\bresponse\x18\x01 \x01(\v2\x1b.extension.GetValueResponseR\bresponse\"i\n" +
+	"\x15SingleSetValueRequest\x12\x1a\n" +
+	"\btargetId\x18\x01 \x01(\tR\btargetId\x124\n" +
+	"\arequest\x18\x02 \x01(\v2\x1a.extension.SetValueRequestR\arequest\"Q\n" +
+	"\x16SingleSetValueResponse\x127\n" +
+	"\bresponse\x18\x01 \x01(\v2\x1b.extension.SetValueResponseR\bresponse2\xb3\x01\n" +
+	"\tExtension\x12R\n" +
+	"\vGetExtValue\x12 .extension.SingleGetValueRequest\x1a!.extension.SingleGetValueResponse\x12R\n" +
+	"\vSetExtValue\x12 .extension.SingleSetValueRequest\x1a!.extension.SingleSetValueResponseBR\n" +
+	"\x1dorg.opencord.voltha.extensionZ1github.com/opencord/voltha-protos/v5/go/extensionb\x06proto3"
+
+var (
+	file_voltha_protos_extensions_proto_rawDescOnce sync.Once
+	file_voltha_protos_extensions_proto_rawDescData []byte
+)
+
+func file_voltha_protos_extensions_proto_rawDescGZIP() []byte {
+	file_voltha_protos_extensions_proto_rawDescOnce.Do(func() {
+		file_voltha_protos_extensions_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_voltha_protos_extensions_proto_rawDesc), len(file_voltha_protos_extensions_proto_rawDesc)))
+	})
+	return file_voltha_protos_extensions_proto_rawDescData
+}
+
+var file_voltha_protos_extensions_proto_enumTypes = make([]protoimpl.EnumInfo, 12)
+var file_voltha_protos_extensions_proto_msgTypes = make([]protoimpl.MessageInfo, 64)
+var file_voltha_protos_extensions_proto_goTypes = []any{
+	(ValueType_Type)(0),                                      // 0: extension.ValueType.Type
+	(GetOnuUniInfoResponse_ConfigurationInd)(0),              // 1: extension.GetOnuUniInfoResponse.ConfigurationInd
+	(GetOnuUniInfoResponse_AdministrativeState)(0),           // 2: extension.GetOnuUniInfoResponse.AdministrativeState
+	(GetOnuUniInfoResponse_OperationalState)(0),              // 3: extension.GetOnuUniInfoResponse.OperationalState
+	(GetOltPortCounters_PortType)(0),                         // 4: extension.GetOltPortCounters.PortType
+	(GetOnuEthernetBridgePortHistory_Direction)(0),           // 5: extension.GetOnuEthernetBridgePortHistory.Direction
+	(GetOmciEthernetFrameExtendedPmResponse_Format)(0),       // 6: extension.GetOmciEthernetFrameExtendedPmResponse.Format
+	(GetOffloadedAppsStatisticsRequest_OffloadedApp)(0),      // 7: extension.GetOffloadedAppsStatisticsRequest.OffloadedApp
+	(GetValueResponse_Status)(0),                             // 8: extension.GetValueResponse.Status
+	(GetValueResponse_ErrorReason)(0),                        // 9: extension.GetValueResponse.ErrorReason
+	(SetValueResponse_Status)(0),                             // 10: extension.SetValueResponse.Status
+	(SetValueResponse_ErrorReason)(0),                        // 11: extension.SetValueResponse.ErrorReason
+	(*ValueSet)(nil),                                         // 12: extension.ValueSet
+	(*ValueType)(nil),                                        // 13: extension.ValueType
+	(*ValueSpecifier)(nil),                                   // 14: extension.ValueSpecifier
+	(*ReturnValues)(nil),                                     // 15: extension.ReturnValues
+	(*GetDistanceRequest)(nil),                               // 16: extension.GetDistanceRequest
+	(*GetDistanceResponse)(nil),                              // 17: extension.GetDistanceResponse
+	(*GetOnuUniInfoRequest)(nil),                             // 18: extension.GetOnuUniInfoRequest
+	(*GetOnuUniInfoResponse)(nil),                            // 19: extension.GetOnuUniInfoResponse
+	(*GetOltPortCounters)(nil),                               // 20: extension.GetOltPortCounters
+	(*GetOltPortCountersResponse)(nil),                       // 21: extension.GetOltPortCountersResponse
+	(*GetOnuPonOpticalInfo)(nil),                             // 22: extension.GetOnuPonOpticalInfo
+	(*GetOnuPonOpticalInfoResponse)(nil),                     // 23: extension.GetOnuPonOpticalInfoResponse
+	(*GetOnuEthernetBridgePortHistory)(nil),                  // 24: extension.GetOnuEthernetBridgePortHistory
+	(*GetOnuEthernetBridgePortHistoryResponse)(nil),          // 25: extension.GetOnuEthernetBridgePortHistoryResponse
+	(*GetOnuAllocGemHistoryRequest)(nil),                     // 26: extension.GetOnuAllocGemHistoryRequest
+	(*OnuGemPortHistoryData)(nil),                            // 27: extension.OnuGemPortHistoryData
+	(*OnuAllocHistoryData)(nil),                              // 28: extension.OnuAllocHistoryData
+	(*OnuAllocGemHistoryData)(nil),                           // 29: extension.OnuAllocGemHistoryData
+	(*GetOnuAllocGemHistoryResponse)(nil),                    // 30: extension.GetOnuAllocGemHistoryResponse
+	(*GetOnuFecHistory)(nil),                                 // 31: extension.GetOnuFecHistory
+	(*GetOnuFecHistoryResponse)(nil),                         // 32: extension.GetOnuFecHistoryResponse
+	(*GetOnuCountersRequest)(nil),                            // 33: extension.GetOnuCountersRequest
+	(*GetOmciEthernetFrameExtendedPmRequest)(nil),            // 34: extension.GetOmciEthernetFrameExtendedPmRequest
+	(*GetRxPowerRequest)(nil),                                // 35: extension.GetRxPowerRequest
+	(*GetOltRxPowerRequest)(nil),                             // 36: extension.GetOltRxPowerRequest
+	(*GetPonStatsRequest)(nil),                               // 37: extension.GetPonStatsRequest
+	(*GetPonStatsResponse)(nil),                              // 38: extension.GetPonStatsResponse
+	(*GetNNIStatsRequest)(nil),                               // 39: extension.GetNNIStatsRequest
+	(*GetNNIStatsResponse)(nil),                              // 40: extension.GetNNIStatsResponse
+	(*GetOnuStatsFromOltRequest)(nil),                        // 41: extension.GetOnuStatsFromOltRequest
+	(*OnuGemPortInfoFromOlt)(nil),                            // 42: extension.OnuGemPortInfoFromOlt
+	(*OnuAllocIdInfoFromOlt)(nil),                            // 43: extension.OnuAllocIdInfoFromOlt
+	(*OnuAllocGemStatsFromOltResponse)(nil),                  // 44: extension.OnuAllocGemStatsFromOltResponse
+	(*GetOnuStatsFromOltResponse)(nil),                       // 45: extension.GetOnuStatsFromOltResponse
+	(*GetOnuCountersResponse)(nil),                           // 46: extension.GetOnuCountersResponse
+	(*OmciEthernetFrameExtendedPm)(nil),                      // 47: extension.OmciEthernetFrameExtendedPm
+	(*GetOmciEthernetFrameExtendedPmResponse)(nil),           // 48: extension.GetOmciEthernetFrameExtendedPmResponse
+	(*RxPower)(nil),                                          // 49: extension.RxPower
+	(*GetOltRxPowerResponse)(nil),                            // 50: extension.GetOltRxPowerResponse
+	(*GetRxPowerResponse)(nil),                               // 51: extension.GetRxPowerResponse
+	(*GetOnuOmciTxRxStatsRequest)(nil),                       // 52: extension.GetOnuOmciTxRxStatsRequest
+	(*GetOnuOmciTxRxStatsResponse)(nil),                      // 53: extension.GetOnuOmciTxRxStatsResponse
+	(*GetOnuOmciActiveAlarmsRequest)(nil),                    // 54: extension.GetOnuOmciActiveAlarmsRequest
+	(*AlarmData)(nil),                                        // 55: extension.AlarmData
+	(*GetOnuOmciActiveAlarmsResponse)(nil),                   // 56: extension.GetOnuOmciActiveAlarmsResponse
+	(*GetOffloadedAppsStatisticsRequest)(nil),                // 57: extension.GetOffloadedAppsStatisticsRequest
+	(*GetOffloadedAppsStatisticsResponse)(nil),               // 58: extension.GetOffloadedAppsStatisticsResponse
+	(*GetValueRequest)(nil),                                  // 59: extension.GetValueRequest
+	(*GetValueResponse)(nil),                                 // 60: extension.GetValueResponse
+	(*AppOffloadConfig)(nil),                                 // 61: extension.AppOffloadConfig
+	(*AppOffloadOnuConfig)(nil),                              // 62: extension.AppOffloadOnuConfig
+	(*SetValueRequest)(nil),                                  // 63: extension.SetValueRequest
+	(*SetValueResponse)(nil),                                 // 64: extension.SetValueResponse
+	(*SingleGetValueRequest)(nil),                            // 65: extension.SingleGetValueRequest
+	(*SingleGetValueResponse)(nil),                           // 66: extension.SingleGetValueResponse
+	(*SingleSetValueRequest)(nil),                            // 67: extension.SingleSetValueRequest
+	(*SingleSetValueResponse)(nil),                           // 68: extension.SingleSetValueResponse
+	(*GetOffloadedAppsStatisticsResponse_DHCPv4RAStats)(nil), // 69: extension.GetOffloadedAppsStatisticsResponse.DHCPv4RAStats
+	(*GetOffloadedAppsStatisticsResponse_DHCPv6RAStats)(nil), // 70: extension.GetOffloadedAppsStatisticsResponse.DHCPv6RAStats
+	(*GetOffloadedAppsStatisticsResponse_PPPoeIAStats)(nil),  // 71: extension.GetOffloadedAppsStatisticsResponse.PPPoeIAStats
+	nil,                                      // 72: extension.GetOffloadedAppsStatisticsResponse.DHCPv4RAStats.AdditionalStatsEntry
+	nil,                                      // 73: extension.GetOffloadedAppsStatisticsResponse.DHCPv6RAStats.AdditionalStatsEntry
+	nil,                                      // 74: extension.GetOffloadedAppsStatisticsResponse.PPPoeIAStats.AdditionalStatsEntry
+	(*AppOffloadOnuConfig_PerUniConfig)(nil), // 75: extension.AppOffloadOnuConfig.PerUniConfig
+	(*config.AlarmConfig)(nil),               // 76: config.AlarmConfig
+	(*emptypb.Empty)(nil),                    // 77: google.protobuf.Empty
+	(*common.PortStatistics)(nil),            // 78: common.PortStatistics
+}
+var file_voltha_protos_extensions_proto_depIdxs = []int32{
+	76, // 0: extension.ValueSet.alarm_config:type_name -> config.AlarmConfig
+	0,  // 1: extension.ValueSpecifier.value:type_name -> extension.ValueType.Type
+	2,  // 2: extension.GetOnuUniInfoResponse.admState:type_name -> extension.GetOnuUniInfoResponse.AdministrativeState
+	3,  // 3: extension.GetOnuUniInfoResponse.operState:type_name -> extension.GetOnuUniInfoResponse.OperationalState
+	1,  // 4: extension.GetOnuUniInfoResponse.configInd:type_name -> extension.GetOnuUniInfoResponse.ConfigurationInd
+	4,  // 5: extension.GetOltPortCounters.portType:type_name -> extension.GetOltPortCounters.PortType
+	77, // 6: extension.GetOnuPonOpticalInfo.empty:type_name -> google.protobuf.Empty
+	5,  // 7: extension.GetOnuEthernetBridgePortHistory.direction:type_name -> extension.GetOnuEthernetBridgePortHistory.Direction
+	77, // 8: extension.GetOnuAllocGemHistoryRequest.empty:type_name -> google.protobuf.Empty
+	28, // 9: extension.OnuAllocGemHistoryData.onuAllocIdInfo:type_name -> extension.OnuAllocHistoryData
+	27, // 10: extension.OnuAllocGemHistoryData.gemPortInfo:type_name -> extension.OnuGemPortHistoryData
+	29, // 11: extension.GetOnuAllocGemHistoryResponse.onuAllocGemHistoryData:type_name -> extension.OnuAllocGemHistoryData
+	77, // 12: extension.GetOnuFecHistory.empty:type_name -> google.protobuf.Empty
+	78, // 13: extension.GetPonStatsResponse.portStatistics:type_name -> common.PortStatistics
+	78, // 14: extension.GetNNIStatsResponse.portStatistics:type_name -> common.PortStatistics
+	43, // 15: extension.OnuAllocGemStatsFromOltResponse.allocIdInfo:type_name -> extension.OnuAllocIdInfoFromOlt
+	42, // 16: extension.OnuAllocGemStatsFromOltResponse.gemPortInfo:type_name -> extension.OnuGemPortInfoFromOlt
+	44, // 17: extension.GetOnuStatsFromOltResponse.allocGemStatsInfo:type_name -> extension.OnuAllocGemStatsFromOltResponse
+	47, // 18: extension.GetOmciEthernetFrameExtendedPmResponse.upstream:type_name -> extension.OmciEthernetFrameExtendedPm
+	47, // 19: extension.GetOmciEthernetFrameExtendedPmResponse.downstream:type_name -> extension.OmciEthernetFrameExtendedPm
+	6,  // 20: extension.GetOmciEthernetFrameExtendedPmResponse.omci_ethernet_frame_extended_pm_format:type_name -> extension.GetOmciEthernetFrameExtendedPmResponse.Format
+	49, // 21: extension.GetOltRxPowerResponse.rx_power:type_name -> extension.RxPower
+	77, // 22: extension.GetOnuOmciTxRxStatsRequest.empty:type_name -> google.protobuf.Empty
+	77, // 23: extension.GetOnuOmciActiveAlarmsRequest.empty:type_name -> google.protobuf.Empty
+	55, // 24: extension.GetOnuOmciActiveAlarmsResponse.active_alarms:type_name -> extension.AlarmData
+	7,  // 25: extension.GetOffloadedAppsStatisticsRequest.statsFor:type_name -> extension.GetOffloadedAppsStatisticsRequest.OffloadedApp
+	69, // 26: extension.GetOffloadedAppsStatisticsResponse.dhcpv4RaStats:type_name -> extension.GetOffloadedAppsStatisticsResponse.DHCPv4RAStats
+	70, // 27: extension.GetOffloadedAppsStatisticsResponse.dhcpv6RaStats:type_name -> extension.GetOffloadedAppsStatisticsResponse.DHCPv6RAStats
+	71, // 28: extension.GetOffloadedAppsStatisticsResponse.pppoeIaStats:type_name -> extension.GetOffloadedAppsStatisticsResponse.PPPoeIAStats
+	16, // 29: extension.GetValueRequest.distance:type_name -> extension.GetDistanceRequest
+	18, // 30: extension.GetValueRequest.uniInfo:type_name -> extension.GetOnuUniInfoRequest
+	20, // 31: extension.GetValueRequest.oltPortInfo:type_name -> extension.GetOltPortCounters
+	22, // 32: extension.GetValueRequest.onuOpticalInfo:type_name -> extension.GetOnuPonOpticalInfo
+	24, // 33: extension.GetValueRequest.ethBridgePort:type_name -> extension.GetOnuEthernetBridgePortHistory
+	31, // 34: extension.GetValueRequest.fecHistory:type_name -> extension.GetOnuFecHistory
+	33, // 35: extension.GetValueRequest.onuPonInfo:type_name -> extension.GetOnuCountersRequest
+	34, // 36: extension.GetValueRequest.onuInfo:type_name -> extension.GetOmciEthernetFrameExtendedPmRequest
+	35, // 37: extension.GetValueRequest.rxPower:type_name -> extension.GetRxPowerRequest
+	52, // 38: extension.GetValueRequest.onuOmciStats:type_name -> extension.GetOnuOmciTxRxStatsRequest
+	36, // 39: extension.GetValueRequest.oltRxPower:type_name -> extension.GetOltRxPowerRequest
+	54, // 40: extension.GetValueRequest.onuActiveAlarms:type_name -> extension.GetOnuOmciActiveAlarmsRequest
+	57, // 41: extension.GetValueRequest.offloadedAppsStats:type_name -> extension.GetOffloadedAppsStatisticsRequest
+	26, // 42: extension.GetValueRequest.onuAllocGemStats:type_name -> extension.GetOnuAllocGemHistoryRequest
+	41, // 43: extension.GetValueRequest.onuStatsFromOlt:type_name -> extension.GetOnuStatsFromOltRequest
+	37, // 44: extension.GetValueRequest.oltPonStats:type_name -> extension.GetPonStatsRequest
+	39, // 45: extension.GetValueRequest.oltNniStats:type_name -> extension.GetNNIStatsRequest
+	8,  // 46: extension.GetValueResponse.status:type_name -> extension.GetValueResponse.Status
+	9,  // 47: extension.GetValueResponse.errReason:type_name -> extension.GetValueResponse.ErrorReason
+	17, // 48: extension.GetValueResponse.distance:type_name -> extension.GetDistanceResponse
+	19, // 49: extension.GetValueResponse.uniInfo:type_name -> extension.GetOnuUniInfoResponse
+	21, // 50: extension.GetValueResponse.portCoutners:type_name -> extension.GetOltPortCountersResponse
+	23, // 51: extension.GetValueResponse.onuOpticalInfo:type_name -> extension.GetOnuPonOpticalInfoResponse
+	25, // 52: extension.GetValueResponse.ethBridgePortInfo:type_name -> extension.GetOnuEthernetBridgePortHistoryResponse
+	32, // 53: extension.GetValueResponse.fecHistory:type_name -> extension.GetOnuFecHistoryResponse
+	46, // 54: extension.GetValueResponse.onuPonCounters:type_name -> extension.GetOnuCountersResponse
+	48, // 55: extension.GetValueResponse.onuCounters:type_name -> extension.GetOmciEthernetFrameExtendedPmResponse
+	51, // 56: extension.GetValueResponse.rxPower:type_name -> extension.GetRxPowerResponse
+	53, // 57: extension.GetValueResponse.onuOmciStats:type_name -> extension.GetOnuOmciTxRxStatsResponse
+	50, // 58: extension.GetValueResponse.oltRxPower:type_name -> extension.GetOltRxPowerResponse
+	56, // 59: extension.GetValueResponse.onuActiveAlarms:type_name -> extension.GetOnuOmciActiveAlarmsResponse
+	58, // 60: extension.GetValueResponse.offloadedAppsStats:type_name -> extension.GetOffloadedAppsStatisticsResponse
+	30, // 61: extension.GetValueResponse.onuAllocGemStatsResponse:type_name -> extension.GetOnuAllocGemHistoryResponse
+	45, // 62: extension.GetValueResponse.onuStatsFromOltResponse:type_name -> extension.GetOnuStatsFromOltResponse
+	38, // 63: extension.GetValueResponse.oltPonStatsResponse:type_name -> extension.GetPonStatsResponse
+	40, // 64: extension.GetValueResponse.oltNniStatsResponse:type_name -> extension.GetNNIStatsResponse
+	75, // 65: extension.AppOffloadOnuConfig.perUniInfo:type_name -> extension.AppOffloadOnuConfig.PerUniConfig
+	76, // 66: extension.SetValueRequest.alarm_config:type_name -> config.AlarmConfig
+	61, // 67: extension.SetValueRequest.app_offload_config:type_name -> extension.AppOffloadConfig
+	62, // 68: extension.SetValueRequest.app_offload_onu_config:type_name -> extension.AppOffloadOnuConfig
+	10, // 69: extension.SetValueResponse.status:type_name -> extension.SetValueResponse.Status
+	11, // 70: extension.SetValueResponse.errReason:type_name -> extension.SetValueResponse.ErrorReason
+	59, // 71: extension.SingleGetValueRequest.request:type_name -> extension.GetValueRequest
+	60, // 72: extension.SingleGetValueResponse.response:type_name -> extension.GetValueResponse
+	63, // 73: extension.SingleSetValueRequest.request:type_name -> extension.SetValueRequest
+	64, // 74: extension.SingleSetValueResponse.response:type_name -> extension.SetValueResponse
+	72, // 75: extension.GetOffloadedAppsStatisticsResponse.DHCPv4RAStats.additional_stats:type_name -> extension.GetOffloadedAppsStatisticsResponse.DHCPv4RAStats.AdditionalStatsEntry
+	73, // 76: extension.GetOffloadedAppsStatisticsResponse.DHCPv6RAStats.additional_stats:type_name -> extension.GetOffloadedAppsStatisticsResponse.DHCPv6RAStats.AdditionalStatsEntry
+	74, // 77: extension.GetOffloadedAppsStatisticsResponse.PPPoeIAStats.additional_stats:type_name -> extension.GetOffloadedAppsStatisticsResponse.PPPoeIAStats.AdditionalStatsEntry
+	65, // 78: extension.Extension.GetExtValue:input_type -> extension.SingleGetValueRequest
+	67, // 79: extension.Extension.SetExtValue:input_type -> extension.SingleSetValueRequest
+	66, // 80: extension.Extension.GetExtValue:output_type -> extension.SingleGetValueResponse
+	68, // 81: extension.Extension.SetExtValue:output_type -> extension.SingleSetValueResponse
+	80, // [80:82] is the sub-list for method output_type
+	78, // [78:80] is the sub-list for method input_type
+	78, // [78:78] is the sub-list for extension type_name
+	78, // [78:78] is the sub-list for extension extendee
+	0,  // [0:78] is the sub-list for field type_name
+}
+
+func init() { file_voltha_protos_extensions_proto_init() }
+func file_voltha_protos_extensions_proto_init() {
+	if File_voltha_protos_extensions_proto != nil {
+		return
+	}
+	file_voltha_protos_extensions_proto_msgTypes[0].OneofWrappers = []any{
+		(*ValueSet_AlarmConfig)(nil),
+	}
+	file_voltha_protos_extensions_proto_msgTypes[22].OneofWrappers = []any{
+		(*GetOmciEthernetFrameExtendedPmRequest_UniIndex)(nil),
+	}
+	file_voltha_protos_extensions_proto_msgTypes[25].OneofWrappers = []any{
+		(*GetPonStatsRequest_PortLabel)(nil),
+		(*GetPonStatsRequest_PortId)(nil),
+	}
+	file_voltha_protos_extensions_proto_msgTypes[27].OneofWrappers = []any{
+		(*GetNNIStatsRequest_PortLabel)(nil),
+		(*GetNNIStatsRequest_PortId)(nil),
+	}
+	file_voltha_protos_extensions_proto_msgTypes[34].OneofWrappers = []any{
+		(*GetOnuCountersResponse_IntfId)(nil),
+		(*GetOnuCountersResponse_OnuId)(nil),
+		(*GetOnuCountersResponse_PositiveDrift)(nil),
+		(*GetOnuCountersResponse_NegativeDrift)(nil),
+		(*GetOnuCountersResponse_DelimiterMissDetection)(nil),
+		(*GetOnuCountersResponse_BipErrors)(nil),
+		(*GetOnuCountersResponse_BipUnits)(nil),
+		(*GetOnuCountersResponse_FecCorrectedSymbols)(nil),
+		(*GetOnuCountersResponse_FecCodewordsCorrected)(nil),
+		(*GetOnuCountersResponse_FecCodewordsUncorrectable)(nil),
+		(*GetOnuCountersResponse_FecCodewords)(nil),
+		(*GetOnuCountersResponse_FecCorrectedUnits)(nil),
+		(*GetOnuCountersResponse_XgemKeyErrors)(nil),
+		(*GetOnuCountersResponse_XgemLoss)(nil),
+		(*GetOnuCountersResponse_RxPloamsError)(nil),
+		(*GetOnuCountersResponse_RxPloamsNonIdle)(nil),
+		(*GetOnuCountersResponse_RxOmci)(nil),
+		(*GetOnuCountersResponse_TxOmci)(nil),
+		(*GetOnuCountersResponse_RxOmciPacketsCrcError)(nil),
+		(*GetOnuCountersResponse_RxBytes)(nil),
+		(*GetOnuCountersResponse_RxPackets)(nil),
+		(*GetOnuCountersResponse_TxBytes)(nil),
+		(*GetOnuCountersResponse_TxPackets)(nil),
+		(*GetOnuCountersResponse_BerReported)(nil),
+		(*GetOnuCountersResponse_LcdgErrors)(nil),
+		(*GetOnuCountersResponse_RdiErrors)(nil),
+		(*GetOnuCountersResponse_Timestamp)(nil),
+		(*GetOnuCountersResponse_HecErrors)(nil),
+	}
+	file_voltha_protos_extensions_proto_msgTypes[46].OneofWrappers = []any{
+		(*GetOffloadedAppsStatisticsResponse_Dhcpv4RaStats)(nil),
+		(*GetOffloadedAppsStatisticsResponse_Dhcpv6RaStats)(nil),
+		(*GetOffloadedAppsStatisticsResponse_PppoeIaStats)(nil),
+	}
+	file_voltha_protos_extensions_proto_msgTypes[47].OneofWrappers = []any{
+		(*GetValueRequest_Distance)(nil),
+		(*GetValueRequest_UniInfo)(nil),
+		(*GetValueRequest_OltPortInfo)(nil),
+		(*GetValueRequest_OnuOpticalInfo)(nil),
+		(*GetValueRequest_EthBridgePort)(nil),
+		(*GetValueRequest_FecHistory)(nil),
+		(*GetValueRequest_OnuPonInfo)(nil),
+		(*GetValueRequest_OnuInfo)(nil),
+		(*GetValueRequest_RxPower)(nil),
+		(*GetValueRequest_OnuOmciStats)(nil),
+		(*GetValueRequest_OltRxPower)(nil),
+		(*GetValueRequest_OnuActiveAlarms)(nil),
+		(*GetValueRequest_OffloadedAppsStats)(nil),
+		(*GetValueRequest_OnuAllocGemStats)(nil),
+		(*GetValueRequest_OnuStatsFromOlt)(nil),
+		(*GetValueRequest_OltPonStats)(nil),
+		(*GetValueRequest_OltNniStats)(nil),
+	}
+	file_voltha_protos_extensions_proto_msgTypes[48].OneofWrappers = []any{
+		(*GetValueResponse_Distance)(nil),
+		(*GetValueResponse_UniInfo)(nil),
+		(*GetValueResponse_PortCoutners)(nil),
+		(*GetValueResponse_OnuOpticalInfo)(nil),
+		(*GetValueResponse_EthBridgePortInfo)(nil),
+		(*GetValueResponse_FecHistory)(nil),
+		(*GetValueResponse_OnuPonCounters)(nil),
+		(*GetValueResponse_OnuCounters)(nil),
+		(*GetValueResponse_RxPower)(nil),
+		(*GetValueResponse_OnuOmciStats)(nil),
+		(*GetValueResponse_OltRxPower)(nil),
+		(*GetValueResponse_OnuActiveAlarms)(nil),
+		(*GetValueResponse_OffloadedAppsStats)(nil),
+		(*GetValueResponse_OnuAllocGemStatsResponse)(nil),
+		(*GetValueResponse_OnuStatsFromOltResponse)(nil),
+		(*GetValueResponse_OltPonStatsResponse)(nil),
+		(*GetValueResponse_OltNniStatsResponse)(nil),
+	}
+	file_voltha_protos_extensions_proto_msgTypes[51].OneofWrappers = []any{
+		(*SetValueRequest_AlarmConfig)(nil),
+		(*SetValueRequest_AppOffloadConfig)(nil),
+		(*SetValueRequest_AppOffloadOnuConfig)(nil),
+	}
+	type x struct{}
+	out := protoimpl.TypeBuilder{
+		File: protoimpl.DescBuilder{
+			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+			RawDescriptor: unsafe.Slice(unsafe.StringData(file_voltha_protos_extensions_proto_rawDesc), len(file_voltha_protos_extensions_proto_rawDesc)),
+			NumEnums:      12,
+			NumMessages:   64,
+			NumExtensions: 0,
+			NumServices:   1,
 		},
-		{
-			MethodName: "SetExtValue",
-			Handler:    _Extension_SetExtValue_Handler,
-		},
-	},
-	Streams:  []grpc.StreamDesc{},
-	Metadata: "voltha_protos/extensions.proto",
+		GoTypes:           file_voltha_protos_extensions_proto_goTypes,
+		DependencyIndexes: file_voltha_protos_extensions_proto_depIdxs,
+		EnumInfos:         file_voltha_protos_extensions_proto_enumTypes,
+		MessageInfos:      file_voltha_protos_extensions_proto_msgTypes,
+	}.Build()
+	File_voltha_protos_extensions_proto = out.File
+	file_voltha_protos_extensions_proto_goTypes = nil
+	file_voltha_protos_extensions_proto_depIdxs = nil
 }
diff --git a/go/extension/extensions_grpc.pb.go b/go/extension/extensions_grpc.pb.go
new file mode 100644
index 0000000..94626cc
--- /dev/null
+++ b/go/extension/extensions_grpc.pb.go
@@ -0,0 +1,181 @@
+// Copyright 2018-2024 Open Networking Foundation (ONF) and the ONF Contributors
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at:
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
+// versions:
+// - protoc-gen-go-grpc v1.6.0
+// - protoc             v4.25.8
+// source: voltha_protos/extensions.proto
+
+package extension
+
+import (
+	context "context"
+	grpc "google.golang.org/grpc"
+	codes "google.golang.org/grpc/codes"
+	status "google.golang.org/grpc/status"
+)
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+// Requires gRPC-Go v1.64.0 or later.
+const _ = grpc.SupportPackageIsVersion9
+
+const (
+	Extension_GetExtValue_FullMethodName = "/extension.Extension/GetExtValue"
+	Extension_SetExtValue_FullMethodName = "/extension.Extension/SetExtValue"
+)
+
+// ExtensionClient is the client API for Extension service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
+//
+// Extension is a service to get and set specific attributes
+type ExtensionClient interface {
+	// Get a single attribute
+	GetExtValue(ctx context.Context, in *SingleGetValueRequest, opts ...grpc.CallOption) (*SingleGetValueResponse, error)
+	// Set a single attribute
+	SetExtValue(ctx context.Context, in *SingleSetValueRequest, opts ...grpc.CallOption) (*SingleSetValueResponse, error)
+}
+
+type extensionClient struct {
+	cc grpc.ClientConnInterface
+}
+
+func NewExtensionClient(cc grpc.ClientConnInterface) ExtensionClient {
+	return &extensionClient{cc}
+}
+
+func (c *extensionClient) GetExtValue(ctx context.Context, in *SingleGetValueRequest, opts ...grpc.CallOption) (*SingleGetValueResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(SingleGetValueResponse)
+	err := c.cc.Invoke(ctx, Extension_GetExtValue_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *extensionClient) SetExtValue(ctx context.Context, in *SingleSetValueRequest, opts ...grpc.CallOption) (*SingleSetValueResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(SingleSetValueResponse)
+	err := c.cc.Invoke(ctx, Extension_SetExtValue_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+// ExtensionServer is the server API for Extension service.
+// All implementations must embed UnimplementedExtensionServer
+// for forward compatibility.
+//
+// Extension is a service to get and set specific attributes
+type ExtensionServer interface {
+	// Get a single attribute
+	GetExtValue(context.Context, *SingleGetValueRequest) (*SingleGetValueResponse, error)
+	// Set a single attribute
+	SetExtValue(context.Context, *SingleSetValueRequest) (*SingleSetValueResponse, error)
+	mustEmbedUnimplementedExtensionServer()
+}
+
+// UnimplementedExtensionServer must be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedExtensionServer struct{}
+
+func (UnimplementedExtensionServer) GetExtValue(context.Context, *SingleGetValueRequest) (*SingleGetValueResponse, error) {
+	return nil, status.Error(codes.Unimplemented, "method GetExtValue not implemented")
+}
+func (UnimplementedExtensionServer) SetExtValue(context.Context, *SingleSetValueRequest) (*SingleSetValueResponse, error) {
+	return nil, status.Error(codes.Unimplemented, "method SetExtValue not implemented")
+}
+func (UnimplementedExtensionServer) mustEmbedUnimplementedExtensionServer() {}
+func (UnimplementedExtensionServer) testEmbeddedByValue()                   {}
+
+// UnsafeExtensionServer may be embedded to opt out of forward compatibility for this service.
+// Use of this interface is not recommended, as added methods to ExtensionServer will
+// result in compilation errors.
+type UnsafeExtensionServer interface {
+	mustEmbedUnimplementedExtensionServer()
+}
+
+func RegisterExtensionServer(s grpc.ServiceRegistrar, srv ExtensionServer) {
+	// If the following call panics, it indicates UnimplementedExtensionServer was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
+	s.RegisterService(&Extension_ServiceDesc, srv)
+}
+
+func _Extension_GetExtValue_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(SingleGetValueRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(ExtensionServer).GetExtValue(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: Extension_GetExtValue_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(ExtensionServer).GetExtValue(ctx, req.(*SingleGetValueRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Extension_SetExtValue_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(SingleSetValueRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(ExtensionServer).SetExtValue(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: Extension_SetExtValue_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(ExtensionServer).SetExtValue(ctx, req.(*SingleSetValueRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+// Extension_ServiceDesc is the grpc.ServiceDesc for Extension service.
+// It's only intended for direct use with grpc.RegisterService,
+// and not to be introspected or modified (even as a copy)
+var Extension_ServiceDesc = grpc.ServiceDesc{
+	ServiceName: "extension.Extension",
+	HandlerType: (*ExtensionServer)(nil),
+	Methods: []grpc.MethodDesc{
+		{
+			MethodName: "GetExtValue",
+			Handler:    _Extension_GetExtValue_Handler,
+		},
+		{
+			MethodName: "SetExtValue",
+			Handler:    _Extension_SetExtValue_Handler,
+		},
+	},
+	Streams:  []grpc.StreamDesc{},
+	Metadata: "voltha_protos/extensions.proto",
+}
diff --git a/go/health/health.pb.go b/go/health/health.pb.go
index 8b26126..c9c77f3 100644
--- a/go/health/health.pb.go
+++ b/go/health/health.pb.go
@@ -1,208 +1,191 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// 	protoc-gen-go v1.36.11
+// 	protoc        v4.25.8
 // source: voltha_protos/health.proto
 
 package health
 
 import (
-	context "context"
-	fmt "fmt"
-	proto "github.com/golang/protobuf/proto"
-	empty "github.com/golang/protobuf/ptypes/empty"
 	_ "google.golang.org/genproto/googleapis/api/annotations"
-	grpc "google.golang.org/grpc"
-	codes "google.golang.org/grpc/codes"
-	status "google.golang.org/grpc/status"
-	math "math"
+	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+	emptypb "google.golang.org/protobuf/types/known/emptypb"
+	reflect "reflect"
+	sync "sync"
+	unsafe "unsafe"
 )
 
-// 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
+const (
+	// Verify that this generated code is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+	// Verify that runtime/protoimpl is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
 
 // Health states
 type HealthStatus_HealthState int32
 
 const (
-	HealthStatus_HEALTHY    HealthStatus_HealthState = 0
-	HealthStatus_OVERLOADED HealthStatus_HealthState = 1
-	HealthStatus_DYING      HealthStatus_HealthState = 2
+	HealthStatus_HEALTHY    HealthStatus_HealthState = 0 // The instance is healthy
+	HealthStatus_OVERLOADED HealthStatus_HealthState = 1 // The instance is overloaded, decrease query rate
+	HealthStatus_DYING      HealthStatus_HealthState = 2 // The instance is in a critical condition, do not use it
 )
 
-var HealthStatus_HealthState_name = map[int32]string{
-	0: "HEALTHY",
-	1: "OVERLOADED",
-	2: "DYING",
-}
+// Enum value maps for HealthStatus_HealthState.
+var (
+	HealthStatus_HealthState_name = map[int32]string{
+		0: "HEALTHY",
+		1: "OVERLOADED",
+		2: "DYING",
+	}
+	HealthStatus_HealthState_value = map[string]int32{
+		"HEALTHY":    0,
+		"OVERLOADED": 1,
+		"DYING":      2,
+	}
+)
 
-var HealthStatus_HealthState_value = map[string]int32{
-	"HEALTHY":    0,
-	"OVERLOADED": 1,
-	"DYING":      2,
+func (x HealthStatus_HealthState) Enum() *HealthStatus_HealthState {
+	p := new(HealthStatus_HealthState)
+	*p = x
+	return p
 }
 
 func (x HealthStatus_HealthState) String() string {
-	return proto.EnumName(HealthStatus_HealthState_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (HealthStatus_HealthState) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_health_proto_enumTypes[0].Descriptor()
+}
+
+func (HealthStatus_HealthState) Type() protoreflect.EnumType {
+	return &file_voltha_protos_health_proto_enumTypes[0]
+}
+
+func (x HealthStatus_HealthState) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use HealthStatus_HealthState.Descriptor instead.
 func (HealthStatus_HealthState) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_dd1fc2b2d96d69b8, []int{0, 0}
+	return file_voltha_protos_health_proto_rawDescGZIP(), []int{0, 0}
 }
 
 // Encode health status of a Voltha instance
 type HealthStatus struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
 	// Current state of health of this Voltha instance
-	State                HealthStatus_HealthState `protobuf:"varint,1,opt,name=state,proto3,enum=health.HealthStatus_HealthState" json:"state,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                 `json:"-"`
-	XXX_unrecognized     []byte                   `json:"-"`
-	XXX_sizecache        int32                    `json:"-"`
+	State         HealthStatus_HealthState `protobuf:"varint,1,opt,name=state,proto3,enum=health.HealthStatus_HealthState" json:"state,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *HealthStatus) Reset()         { *m = HealthStatus{} }
-func (m *HealthStatus) String() string { return proto.CompactTextString(m) }
-func (*HealthStatus) ProtoMessage()    {}
+func (x *HealthStatus) Reset() {
+	*x = HealthStatus{}
+	mi := &file_voltha_protos_health_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *HealthStatus) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*HealthStatus) ProtoMessage() {}
+
+func (x *HealthStatus) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_health_proto_msgTypes[0]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use HealthStatus.ProtoReflect.Descriptor instead.
 func (*HealthStatus) Descriptor() ([]byte, []int) {
-	return fileDescriptor_dd1fc2b2d96d69b8, []int{0}
+	return file_voltha_protos_health_proto_rawDescGZIP(), []int{0}
 }
 
-func (m *HealthStatus) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_HealthStatus.Unmarshal(m, b)
-}
-func (m *HealthStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_HealthStatus.Marshal(b, m, deterministic)
-}
-func (m *HealthStatus) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_HealthStatus.Merge(m, src)
-}
-func (m *HealthStatus) XXX_Size() int {
-	return xxx_messageInfo_HealthStatus.Size(m)
-}
-func (m *HealthStatus) XXX_DiscardUnknown() {
-	xxx_messageInfo_HealthStatus.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_HealthStatus proto.InternalMessageInfo
-
-func (m *HealthStatus) GetState() HealthStatus_HealthState {
-	if m != nil {
-		return m.State
+func (x *HealthStatus) GetState() HealthStatus_HealthState {
+	if x != nil {
+		return x.State
 	}
 	return HealthStatus_HEALTHY
 }
 
-func init() {
-	proto.RegisterEnum("health.HealthStatus_HealthState", HealthStatus_HealthState_name, HealthStatus_HealthState_value)
-	proto.RegisterType((*HealthStatus)(nil), "health.HealthStatus")
+var File_voltha_protos_health_proto protoreflect.FileDescriptor
+
+const file_voltha_protos_health_proto_rawDesc = "" +
+	"\n" +
+	"\x1avoltha_protos/health.proto\x12\x06health\x1a\x1cgoogle/api/annotations.proto\x1a\x1bgoogle/protobuf/empty.proto\"}\n" +
+	"\fHealthStatus\x126\n" +
+	"\x05state\x18\x01 \x01(\x0e2 .health.HealthStatus.HealthStateR\x05state\"5\n" +
+	"\vHealthState\x12\v\n" +
+	"\aHEALTHY\x10\x00\x12\x0e\n" +
+	"\n" +
+	"OVERLOADED\x10\x01\x12\t\n" +
+	"\x05DYING\x10\x022a\n" +
+	"\rHealthService\x12P\n" +
+	"\x0fGetHealthStatus\x12\x16.google.protobuf.Empty\x1a\x14.health.HealthStatus\"\x0f\x82\xd3\xe4\x93\x02\t\x12\a/healthBL\n" +
+	"\x1aorg.opencord.voltha.healthZ.github.com/opencord/voltha-protos/v5/go/healthb\x06proto3"
+
+var (
+	file_voltha_protos_health_proto_rawDescOnce sync.Once
+	file_voltha_protos_health_proto_rawDescData []byte
+)
+
+func file_voltha_protos_health_proto_rawDescGZIP() []byte {
+	file_voltha_protos_health_proto_rawDescOnce.Do(func() {
+		file_voltha_protos_health_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_voltha_protos_health_proto_rawDesc), len(file_voltha_protos_health_proto_rawDesc)))
+	})
+	return file_voltha_protos_health_proto_rawDescData
 }
 
-func init() { proto.RegisterFile("voltha_protos/health.proto", fileDescriptor_dd1fc2b2d96d69b8) }
-
-var fileDescriptor_dd1fc2b2d96d69b8 = []byte{
-	// 287 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x2a, 0xcb, 0xcf, 0x29,
-	0xc9, 0x48, 0x8c, 0x2f, 0x28, 0xca, 0x2f, 0xc9, 0x2f, 0xd6, 0xcf, 0x48, 0x4d, 0xcc, 0x29, 0xc9,
-	0xd0, 0x03, 0xf3, 0x84, 0xd8, 0x20, 0x3c, 0x29, 0x99, 0xf4, 0xfc, 0xfc, 0xf4, 0x9c, 0x54, 0xfd,
-	0xc4, 0x82, 0x4c, 0xfd, 0xc4, 0xbc, 0xbc, 0xfc, 0x92, 0xc4, 0x92, 0xcc, 0xfc, 0xbc, 0x62, 0x88,
-	0x2a, 0x29, 0x69, 0xa8, 0x2c, 0x98, 0x97, 0x54, 0x9a, 0xa6, 0x9f, 0x9a, 0x5b, 0x50, 0x52, 0x09,
-	0x91, 0x54, 0xaa, 0xe5, 0xe2, 0xf1, 0x00, 0x1b, 0x12, 0x5c, 0x92, 0x58, 0x52, 0x5a, 0x2c, 0x64,
-	0xc6, 0xc5, 0x5a, 0x5c, 0x92, 0x58, 0x92, 0x2a, 0xc1, 0xa8, 0xc0, 0xa8, 0xc1, 0x67, 0xa4, 0xa0,
-	0x07, 0xb5, 0x10, 0x59, 0x11, 0x12, 0x27, 0x35, 0x08, 0xa2, 0x5c, 0xc9, 0x94, 0x8b, 0x1b, 0x49,
-	0x54, 0x88, 0x9b, 0x8b, 0xdd, 0xc3, 0xd5, 0xd1, 0x27, 0xc4, 0x23, 0x52, 0x80, 0x41, 0x88, 0x8f,
-	0x8b, 0xcb, 0x3f, 0xcc, 0x35, 0xc8, 0xc7, 0xdf, 0xd1, 0xc5, 0xd5, 0x45, 0x80, 0x51, 0x88, 0x93,
-	0x8b, 0xd5, 0x25, 0xd2, 0xd3, 0xcf, 0x5d, 0x80, 0xc9, 0x28, 0x91, 0x8b, 0x17, 0xaa, 0x2d, 0xb5,
-	0xa8, 0x2c, 0x33, 0x39, 0x55, 0x28, 0x80, 0x8b, 0xdf, 0x3d, 0xb5, 0x04, 0xc5, 0x49, 0x62, 0x7a,
-	0x10, 0x0f, 0xe8, 0xc1, 0x3c, 0xa0, 0xe7, 0x0a, 0xf2, 0x80, 0x94, 0x08, 0x36, 0xb7, 0x29, 0xf1,
-	0x37, 0x5d, 0x7e, 0x32, 0x99, 0x89, 0x53, 0x88, 0x1d, 0x1a, 0x54, 0x4e, 0x3e, 0x5c, 0x52, 0xf9,
-	0x45, 0xe9, 0x7a, 0xf9, 0x05, 0xa9, 0x79, 0xc9, 0xf9, 0x45, 0x29, 0x7a, 0x90, 0xf0, 0x84, 0xea,
-	0x8d, 0xd2, 0x4b, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x87, 0x29, 0xd1,
-	0x87, 0x28, 0xd1, 0x85, 0x06, 0x79, 0x99, 0xa9, 0x7e, 0x7a, 0x3e, 0xd4, 0xb4, 0x24, 0x36, 0xb0,
-	0xa0, 0x31, 0x20, 0x00, 0x00, 0xff, 0xff, 0x83, 0x1f, 0x28, 0x85, 0x97, 0x01, 0x00, 0x00,
+var file_voltha_protos_health_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
+var file_voltha_protos_health_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
+var file_voltha_protos_health_proto_goTypes = []any{
+	(HealthStatus_HealthState)(0), // 0: health.HealthStatus.HealthState
+	(*HealthStatus)(nil),          // 1: health.HealthStatus
+	(*emptypb.Empty)(nil),         // 2: google.protobuf.Empty
+}
+var file_voltha_protos_health_proto_depIdxs = []int32{
+	0, // 0: health.HealthStatus.state:type_name -> health.HealthStatus.HealthState
+	2, // 1: health.HealthService.GetHealthStatus:input_type -> google.protobuf.Empty
+	1, // 2: health.HealthService.GetHealthStatus:output_type -> health.HealthStatus
+	2, // [2:3] is the sub-list for method output_type
+	1, // [1:2] is the sub-list for method input_type
+	1, // [1:1] is the sub-list for extension type_name
+	1, // [1:1] is the sub-list for extension extendee
+	0, // [0:1] is the sub-list for field type_name
 }
 
-// Reference imports to suppress errors if they are not otherwise used.
-var _ context.Context
-var _ grpc.ClientConn
-
-// This is a compile-time assertion to ensure that this generated file
-// is compatible with the grpc package it is being compiled against.
-const _ = grpc.SupportPackageIsVersion4
-
-// HealthServiceClient is the client API for HealthService service.
-//
-// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
-type HealthServiceClient interface {
-	// Return current health status of a Voltha instance
-	GetHealthStatus(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*HealthStatus, error)
-}
-
-type healthServiceClient struct {
-	cc *grpc.ClientConn
-}
-
-func NewHealthServiceClient(cc *grpc.ClientConn) HealthServiceClient {
-	return &healthServiceClient{cc}
-}
-
-func (c *healthServiceClient) GetHealthStatus(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*HealthStatus, error) {
-	out := new(HealthStatus)
-	err := c.cc.Invoke(ctx, "/health.HealthService/GetHealthStatus", in, out, opts...)
-	if err != nil {
-		return nil, err
+func init() { file_voltha_protos_health_proto_init() }
+func file_voltha_protos_health_proto_init() {
+	if File_voltha_protos_health_proto != nil {
+		return
 	}
-	return out, nil
-}
-
-// HealthServiceServer is the server API for HealthService service.
-type HealthServiceServer interface {
-	// Return current health status of a Voltha instance
-	GetHealthStatus(context.Context, *empty.Empty) (*HealthStatus, error)
-}
-
-// UnimplementedHealthServiceServer can be embedded to have forward compatible implementations.
-type UnimplementedHealthServiceServer struct {
-}
-
-func (*UnimplementedHealthServiceServer) GetHealthStatus(ctx context.Context, req *empty.Empty) (*HealthStatus, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetHealthStatus not implemented")
-}
-
-func RegisterHealthServiceServer(s *grpc.Server, srv HealthServiceServer) {
-	s.RegisterService(&_HealthService_serviceDesc, srv)
-}
-
-func _HealthService_GetHealthStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(empty.Empty)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(HealthServiceServer).GetHealthStatus(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/health.HealthService/GetHealthStatus",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(HealthServiceServer).GetHealthStatus(ctx, req.(*empty.Empty))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-var _HealthService_serviceDesc = grpc.ServiceDesc{
-	ServiceName: "health.HealthService",
-	HandlerType: (*HealthServiceServer)(nil),
-	Methods: []grpc.MethodDesc{
-		{
-			MethodName: "GetHealthStatus",
-			Handler:    _HealthService_GetHealthStatus_Handler,
+	type x struct{}
+	out := protoimpl.TypeBuilder{
+		File: protoimpl.DescBuilder{
+			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+			RawDescriptor: unsafe.Slice(unsafe.StringData(file_voltha_protos_health_proto_rawDesc), len(file_voltha_protos_health_proto_rawDesc)),
+			NumEnums:      1,
+			NumMessages:   1,
+			NumExtensions: 0,
+			NumServices:   1,
 		},
-	},
-	Streams:  []grpc.StreamDesc{},
-	Metadata: "voltha_protos/health.proto",
+		GoTypes:           file_voltha_protos_health_proto_goTypes,
+		DependencyIndexes: file_voltha_protos_health_proto_depIdxs,
+		EnumInfos:         file_voltha_protos_health_proto_enumTypes,
+		MessageInfos:      file_voltha_protos_health_proto_msgTypes,
+	}.Build()
+	File_voltha_protos_health_proto = out.File
+	file_voltha_protos_health_proto_goTypes = nil
+	file_voltha_protos_health_proto_depIdxs = nil
 }
diff --git a/go/health/health_grpc.pb.go b/go/health/health_grpc.pb.go
new file mode 100644
index 0000000..d4b6f89
--- /dev/null
+++ b/go/health/health_grpc.pb.go
@@ -0,0 +1,128 @@
+// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
+// versions:
+// - protoc-gen-go-grpc v1.6.0
+// - protoc             v4.25.8
+// source: voltha_protos/health.proto
+
+package health
+
+import (
+	context "context"
+	grpc "google.golang.org/grpc"
+	codes "google.golang.org/grpc/codes"
+	status "google.golang.org/grpc/status"
+	emptypb "google.golang.org/protobuf/types/known/emptypb"
+)
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+// Requires gRPC-Go v1.64.0 or later.
+const _ = grpc.SupportPackageIsVersion9
+
+const (
+	HealthService_GetHealthStatus_FullMethodName = "/health.HealthService/GetHealthStatus"
+)
+
+// HealthServiceClient is the client API for HealthService service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
+//
+// Health related services
+type HealthServiceClient interface {
+	// Return current health status of a Voltha instance
+	GetHealthStatus(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*HealthStatus, error)
+}
+
+type healthServiceClient struct {
+	cc grpc.ClientConnInterface
+}
+
+func NewHealthServiceClient(cc grpc.ClientConnInterface) HealthServiceClient {
+	return &healthServiceClient{cc}
+}
+
+func (c *healthServiceClient) GetHealthStatus(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*HealthStatus, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(HealthStatus)
+	err := c.cc.Invoke(ctx, HealthService_GetHealthStatus_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+// HealthServiceServer is the server API for HealthService service.
+// All implementations must embed UnimplementedHealthServiceServer
+// for forward compatibility.
+//
+// Health related services
+type HealthServiceServer interface {
+	// Return current health status of a Voltha instance
+	GetHealthStatus(context.Context, *emptypb.Empty) (*HealthStatus, error)
+	mustEmbedUnimplementedHealthServiceServer()
+}
+
+// UnimplementedHealthServiceServer must be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedHealthServiceServer struct{}
+
+func (UnimplementedHealthServiceServer) GetHealthStatus(context.Context, *emptypb.Empty) (*HealthStatus, error) {
+	return nil, status.Error(codes.Unimplemented, "method GetHealthStatus not implemented")
+}
+func (UnimplementedHealthServiceServer) mustEmbedUnimplementedHealthServiceServer() {}
+func (UnimplementedHealthServiceServer) testEmbeddedByValue()                       {}
+
+// UnsafeHealthServiceServer may be embedded to opt out of forward compatibility for this service.
+// Use of this interface is not recommended, as added methods to HealthServiceServer will
+// result in compilation errors.
+type UnsafeHealthServiceServer interface {
+	mustEmbedUnimplementedHealthServiceServer()
+}
+
+func RegisterHealthServiceServer(s grpc.ServiceRegistrar, srv HealthServiceServer) {
+	// If the following call panics, it indicates UnimplementedHealthServiceServer was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
+	s.RegisterService(&HealthService_ServiceDesc, srv)
+}
+
+func _HealthService_GetHealthStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(emptypb.Empty)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(HealthServiceServer).GetHealthStatus(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: HealthService_GetHealthStatus_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(HealthServiceServer).GetHealthStatus(ctx, req.(*emptypb.Empty))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+// HealthService_ServiceDesc is the grpc.ServiceDesc for HealthService service.
+// It's only intended for direct use with grpc.RegisterService,
+// and not to be introspected or modified (even as a copy)
+var HealthService_ServiceDesc = grpc.ServiceDesc{
+	ServiceName: "health.HealthService",
+	HandlerType: (*HealthServiceServer)(nil),
+	Methods: []grpc.MethodDesc{
+		{
+			MethodName: "GetHealthStatus",
+			Handler:    _HealthService_GetHealthStatus_Handler,
+		},
+	},
+	Streams:  []grpc.StreamDesc{},
+	Metadata: "voltha_protos/health.proto",
+}
diff --git a/go/ietf/ietf_interfaces.pb.go b/go/ietf/ietf_interfaces.pb.go
index 9a9c79c..e397c5c 100644
--- a/go/ietf/ietf_interfaces.pb.go
+++ b/go/ietf/ietf_interfaces.pb.go
@@ -1,24 +1,25 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// 	protoc-gen-go v1.36.11
+// 	protoc        v4.25.8
 // source: voltha_protos/ietf_interfaces.proto
 
 package ietf
 
 import (
-	fmt "fmt"
-	proto "github.com/golang/protobuf/proto"
-	math "math"
+	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+	reflect "reflect"
+	sync "sync"
+	unsafe "unsafe"
 )
 
-// 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
+const (
+	// Verify that this generated code is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+	// Verify that runtime/protoimpl is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
 
 type Interface_LinkUpDownTrapEnableType int32
 
@@ -27,22 +28,43 @@
 	Interface_TRAP_ENABLED  Interface_LinkUpDownTrapEnableType = 1
 )
 
-var Interface_LinkUpDownTrapEnableType_name = map[int32]string{
-	0: "TRAP_DISABLED",
-	1: "TRAP_ENABLED",
-}
+// Enum value maps for Interface_LinkUpDownTrapEnableType.
+var (
+	Interface_LinkUpDownTrapEnableType_name = map[int32]string{
+		0: "TRAP_DISABLED",
+		1: "TRAP_ENABLED",
+	}
+	Interface_LinkUpDownTrapEnableType_value = map[string]int32{
+		"TRAP_DISABLED": 0,
+		"TRAP_ENABLED":  1,
+	}
+)
 
-var Interface_LinkUpDownTrapEnableType_value = map[string]int32{
-	"TRAP_DISABLED": 0,
-	"TRAP_ENABLED":  1,
+func (x Interface_LinkUpDownTrapEnableType) Enum() *Interface_LinkUpDownTrapEnableType {
+	p := new(Interface_LinkUpDownTrapEnableType)
+	*p = x
+	return p
 }
 
 func (x Interface_LinkUpDownTrapEnableType) String() string {
-	return proto.EnumName(Interface_LinkUpDownTrapEnableType_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (Interface_LinkUpDownTrapEnableType) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_ietf_interfaces_proto_enumTypes[0].Descriptor()
+}
+
+func (Interface_LinkUpDownTrapEnableType) Type() protoreflect.EnumType {
+	return &file_voltha_protos_ietf_interfaces_proto_enumTypes[0]
+}
+
+func (x Interface_LinkUpDownTrapEnableType) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use Interface_LinkUpDownTrapEnableType.Descriptor instead.
 func (Interface_LinkUpDownTrapEnableType) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_5a91e49a45099096, []int{1, 0}
+	return file_voltha_protos_ietf_interfaces_proto_rawDescGZIP(), []int{1, 0}
 }
 
 type InterfaceState_AdminStatusType int32
@@ -53,24 +75,45 @@
 	InterfaceState_ADMIN_UP      InterfaceState_AdminStatusType = 2
 )
 
-var InterfaceState_AdminStatusType_name = map[int32]string{
-	0: "ADMIN_DOWN",
-	1: "ADMIN_TESTING",
-	2: "ADMIN_UP",
-}
+// Enum value maps for InterfaceState_AdminStatusType.
+var (
+	InterfaceState_AdminStatusType_name = map[int32]string{
+		0: "ADMIN_DOWN",
+		1: "ADMIN_TESTING",
+		2: "ADMIN_UP",
+	}
+	InterfaceState_AdminStatusType_value = map[string]int32{
+		"ADMIN_DOWN":    0,
+		"ADMIN_TESTING": 1,
+		"ADMIN_UP":      2,
+	}
+)
 
-var InterfaceState_AdminStatusType_value = map[string]int32{
-	"ADMIN_DOWN":    0,
-	"ADMIN_TESTING": 1,
-	"ADMIN_UP":      2,
+func (x InterfaceState_AdminStatusType) Enum() *InterfaceState_AdminStatusType {
+	p := new(InterfaceState_AdminStatusType)
+	*p = x
+	return p
 }
 
 func (x InterfaceState_AdminStatusType) String() string {
-	return proto.EnumName(InterfaceState_AdminStatusType_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (InterfaceState_AdminStatusType) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_ietf_interfaces_proto_enumTypes[1].Descriptor()
+}
+
+func (InterfaceState_AdminStatusType) Type() protoreflect.EnumType {
+	return &file_voltha_protos_ietf_interfaces_proto_enumTypes[1]
+}
+
+func (x InterfaceState_AdminStatusType) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use InterfaceState_AdminStatusType.Descriptor instead.
 func (InterfaceState_AdminStatusType) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_5a91e49a45099096, []int{3, 0}
+	return file_voltha_protos_ietf_interfaces_proto_rawDescGZIP(), []int{3, 0}
 }
 
 type InterfaceState_OperStatusType int32
@@ -85,348 +128,440 @@
 	InterfaceState_NOT_PRESENT      InterfaceState_OperStatusType = 6
 )
 
-var InterfaceState_OperStatusType_name = map[int32]string{
-	0: "DORMANT",
-	1: "LOWER_LAYER_DOWN",
-	2: "UNKNOWN",
-	3: "TESTING",
-	4: "UP",
-	5: "DOWN",
-	6: "NOT_PRESENT",
-}
+// Enum value maps for InterfaceState_OperStatusType.
+var (
+	InterfaceState_OperStatusType_name = map[int32]string{
+		0: "DORMANT",
+		1: "LOWER_LAYER_DOWN",
+		2: "UNKNOWN",
+		3: "TESTING",
+		4: "UP",
+		5: "DOWN",
+		6: "NOT_PRESENT",
+	}
+	InterfaceState_OperStatusType_value = map[string]int32{
+		"DORMANT":          0,
+		"LOWER_LAYER_DOWN": 1,
+		"UNKNOWN":          2,
+		"TESTING":          3,
+		"UP":               4,
+		"DOWN":             5,
+		"NOT_PRESENT":      6,
+	}
+)
 
-var InterfaceState_OperStatusType_value = map[string]int32{
-	"DORMANT":          0,
-	"LOWER_LAYER_DOWN": 1,
-	"UNKNOWN":          2,
-	"TESTING":          3,
-	"UP":               4,
-	"DOWN":             5,
-	"NOT_PRESENT":      6,
+func (x InterfaceState_OperStatusType) Enum() *InterfaceState_OperStatusType {
+	p := new(InterfaceState_OperStatusType)
+	*p = x
+	return p
 }
 
 func (x InterfaceState_OperStatusType) String() string {
-	return proto.EnumName(InterfaceState_OperStatusType_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (InterfaceState_OperStatusType) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_ietf_interfaces_proto_enumTypes[2].Descriptor()
+}
+
+func (InterfaceState_OperStatusType) Type() protoreflect.EnumType {
+	return &file_voltha_protos_ietf_interfaces_proto_enumTypes[2]
+}
+
+func (x InterfaceState_OperStatusType) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use InterfaceState_OperStatusType.Descriptor instead.
 func (InterfaceState_OperStatusType) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_5a91e49a45099096, []int{3, 1}
+	return file_voltha_protos_ietf_interfaces_proto_rawDescGZIP(), []int{3, 1}
 }
 
 type Interfaces struct {
-	AllInterfaces        []*Interface `protobuf:"bytes,1,rep,name=all_interfaces,json=allInterfaces,proto3" json:"all_interfaces,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
-	XXX_unrecognized     []byte       `json:"-"`
-	XXX_sizecache        int32        `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	AllInterfaces []*Interface           `protobuf:"bytes,1,rep,name=all_interfaces,json=allInterfaces,proto3" json:"all_interfaces,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *Interfaces) Reset()         { *m = Interfaces{} }
-func (m *Interfaces) String() string { return proto.CompactTextString(m) }
-func (*Interfaces) ProtoMessage()    {}
+func (x *Interfaces) Reset() {
+	*x = Interfaces{}
+	mi := &file_voltha_protos_ietf_interfaces_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *Interfaces) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Interfaces) ProtoMessage() {}
+
+func (x *Interfaces) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_ietf_interfaces_proto_msgTypes[0]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use Interfaces.ProtoReflect.Descriptor instead.
 func (*Interfaces) Descriptor() ([]byte, []int) {
-	return fileDescriptor_5a91e49a45099096, []int{0}
+	return file_voltha_protos_ietf_interfaces_proto_rawDescGZIP(), []int{0}
 }
 
-func (m *Interfaces) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_Interfaces.Unmarshal(m, b)
-}
-func (m *Interfaces) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_Interfaces.Marshal(b, m, deterministic)
-}
-func (m *Interfaces) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Interfaces.Merge(m, src)
-}
-func (m *Interfaces) XXX_Size() int {
-	return xxx_messageInfo_Interfaces.Size(m)
-}
-func (m *Interfaces) XXX_DiscardUnknown() {
-	xxx_messageInfo_Interfaces.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_Interfaces proto.InternalMessageInfo
-
-func (m *Interfaces) GetAllInterfaces() []*Interface {
-	if m != nil {
-		return m.AllInterfaces
+func (x *Interfaces) GetAllInterfaces() []*Interface {
+	if x != nil {
+		return x.AllInterfaces
 	}
 	return nil
 }
 
 type Interface struct {
+	state                protoimpl.MessageState             `protogen:"open.v1"`
 	Name                 string                             `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	Description          string                             `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
 	Type                 string                             `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"`
 	Enabled              bool                               `protobuf:"varint,4,opt,name=enabled,proto3" json:"enabled,omitempty"`
 	LinkUpDownTrapEnable Interface_LinkUpDownTrapEnableType `protobuf:"varint,5,opt,name=link_up_down_trap_enable,json=linkUpDownTrapEnable,proto3,enum=ietf.Interface_LinkUpDownTrapEnableType" json:"link_up_down_trap_enable,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                           `json:"-"`
-	XXX_unrecognized     []byte                             `json:"-"`
-	XXX_sizecache        int32                              `json:"-"`
+	unknownFields        protoimpl.UnknownFields
+	sizeCache            protoimpl.SizeCache
 }
 
-func (m *Interface) Reset()         { *m = Interface{} }
-func (m *Interface) String() string { return proto.CompactTextString(m) }
-func (*Interface) ProtoMessage()    {}
+func (x *Interface) Reset() {
+	*x = Interface{}
+	mi := &file_voltha_protos_ietf_interfaces_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *Interface) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Interface) ProtoMessage() {}
+
+func (x *Interface) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_ietf_interfaces_proto_msgTypes[1]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use Interface.ProtoReflect.Descriptor instead.
 func (*Interface) Descriptor() ([]byte, []int) {
-	return fileDescriptor_5a91e49a45099096, []int{1}
+	return file_voltha_protos_ietf_interfaces_proto_rawDescGZIP(), []int{1}
 }
 
-func (m *Interface) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_Interface.Unmarshal(m, b)
-}
-func (m *Interface) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_Interface.Marshal(b, m, deterministic)
-}
-func (m *Interface) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Interface.Merge(m, src)
-}
-func (m *Interface) XXX_Size() int {
-	return xxx_messageInfo_Interface.Size(m)
-}
-func (m *Interface) XXX_DiscardUnknown() {
-	xxx_messageInfo_Interface.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_Interface proto.InternalMessageInfo
-
-func (m *Interface) GetName() string {
-	if m != nil {
-		return m.Name
+func (x *Interface) GetName() string {
+	if x != nil {
+		return x.Name
 	}
 	return ""
 }
 
-func (m *Interface) GetDescription() string {
-	if m != nil {
-		return m.Description
+func (x *Interface) GetDescription() string {
+	if x != nil {
+		return x.Description
 	}
 	return ""
 }
 
-func (m *Interface) GetType() string {
-	if m != nil {
-		return m.Type
+func (x *Interface) GetType() string {
+	if x != nil {
+		return x.Type
 	}
 	return ""
 }
 
-func (m *Interface) GetEnabled() bool {
-	if m != nil {
-		return m.Enabled
+func (x *Interface) GetEnabled() bool {
+	if x != nil {
+		return x.Enabled
 	}
 	return false
 }
 
-func (m *Interface) GetLinkUpDownTrapEnable() Interface_LinkUpDownTrapEnableType {
-	if m != nil {
-		return m.LinkUpDownTrapEnable
+func (x *Interface) GetLinkUpDownTrapEnable() Interface_LinkUpDownTrapEnableType {
+	if x != nil {
+		return x.LinkUpDownTrapEnable
 	}
 	return Interface_TRAP_DISABLED
 }
 
 type InterfacesState struct {
-	AllInterfacs         []*InterfaceState `protobuf:"bytes,1,rep,name=all_interfacs,json=allInterfacs,proto3" json:"all_interfacs,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
-	XXX_unrecognized     []byte            `json:"-"`
-	XXX_sizecache        int32             `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	AllInterfacs  []*InterfaceState      `protobuf:"bytes,1,rep,name=all_interfacs,json=allInterfacs,proto3" json:"all_interfacs,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *InterfacesState) Reset()         { *m = InterfacesState{} }
-func (m *InterfacesState) String() string { return proto.CompactTextString(m) }
-func (*InterfacesState) ProtoMessage()    {}
+func (x *InterfacesState) Reset() {
+	*x = InterfacesState{}
+	mi := &file_voltha_protos_ietf_interfaces_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *InterfacesState) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*InterfacesState) ProtoMessage() {}
+
+func (x *InterfacesState) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_ietf_interfaces_proto_msgTypes[2]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use InterfacesState.ProtoReflect.Descriptor instead.
 func (*InterfacesState) Descriptor() ([]byte, []int) {
-	return fileDescriptor_5a91e49a45099096, []int{2}
+	return file_voltha_protos_ietf_interfaces_proto_rawDescGZIP(), []int{2}
 }
 
-func (m *InterfacesState) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_InterfacesState.Unmarshal(m, b)
-}
-func (m *InterfacesState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_InterfacesState.Marshal(b, m, deterministic)
-}
-func (m *InterfacesState) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_InterfacesState.Merge(m, src)
-}
-func (m *InterfacesState) XXX_Size() int {
-	return xxx_messageInfo_InterfacesState.Size(m)
-}
-func (m *InterfacesState) XXX_DiscardUnknown() {
-	xxx_messageInfo_InterfacesState.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_InterfacesState proto.InternalMessageInfo
-
-func (m *InterfacesState) GetAllInterfacs() []*InterfaceState {
-	if m != nil {
-		return m.AllInterfacs
+func (x *InterfacesState) GetAllInterfacs() []*InterfaceState {
+	if x != nil {
+		return x.AllInterfacs
 	}
 	return nil
 }
 
 type InterfaceState struct {
-	Name                 string                         `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
-	Type                 string                         `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"`
-	AdminStatus          InterfaceState_AdminStatusType `protobuf:"varint,3,opt,name=admin_status,json=adminStatus,proto3,enum=ietf.InterfaceState_AdminStatusType" json:"admin_status,omitempty"`
-	OperStatus           InterfaceState_OperStatusType  `protobuf:"varint,4,opt,name=oper_status,json=operStatus,proto3,enum=ietf.InterfaceState_OperStatusType" json:"oper_status,omitempty"`
-	LastChange           string                         `protobuf:"bytes,5,opt,name=last_change,json=lastChange,proto3" json:"last_change,omitempty"`
-	IfIndex              int32                          `protobuf:"varint,6,opt,name=if_index,json=ifIndex,proto3" json:"if_index,omitempty"`
-	PhysAddress          string                         `protobuf:"bytes,7,opt,name=phys_address,json=physAddress,proto3" json:"phys_address,omitempty"`
-	HigherLayerIf        []string                       `protobuf:"bytes,8,rep,name=higher_layer_if,json=higherLayerIf,proto3" json:"higher_layer_if,omitempty"`
-	LowerLayerIf         []string                       `protobuf:"bytes,9,rep,name=lower_layer_if,json=lowerLayerIf,proto3" json:"lower_layer_if,omitempty"`
-	Speed                uint64                         `protobuf:"varint,10,opt,name=speed,proto3" json:"speed,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                       `json:"-"`
-	XXX_unrecognized     []byte                         `json:"-"`
-	XXX_sizecache        int32                          `json:"-"`
+	state         protoimpl.MessageState         `protogen:"open.v1"`
+	Name          string                         `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+	Type          string                         `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"`
+	AdminStatus   InterfaceState_AdminStatusType `protobuf:"varint,3,opt,name=admin_status,json=adminStatus,proto3,enum=ietf.InterfaceState_AdminStatusType" json:"admin_status,omitempty"`
+	OperStatus    InterfaceState_OperStatusType  `protobuf:"varint,4,opt,name=oper_status,json=operStatus,proto3,enum=ietf.InterfaceState_OperStatusType" json:"oper_status,omitempty"`
+	LastChange    string                         `protobuf:"bytes,5,opt,name=last_change,json=lastChange,proto3" json:"last_change,omitempty"`
+	IfIndex       int32                          `protobuf:"varint,6,opt,name=if_index,json=ifIndex,proto3" json:"if_index,omitempty"`
+	PhysAddress   string                         `protobuf:"bytes,7,opt,name=phys_address,json=physAddress,proto3" json:"phys_address,omitempty"`
+	HigherLayerIf []string                       `protobuf:"bytes,8,rep,name=higher_layer_if,json=higherLayerIf,proto3" json:"higher_layer_if,omitempty"`
+	LowerLayerIf  []string                       `protobuf:"bytes,9,rep,name=lower_layer_if,json=lowerLayerIf,proto3" json:"lower_layer_if,omitempty"`
+	Speed         uint64                         `protobuf:"varint,10,opt,name=speed,proto3" json:"speed,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *InterfaceState) Reset()         { *m = InterfaceState{} }
-func (m *InterfaceState) String() string { return proto.CompactTextString(m) }
-func (*InterfaceState) ProtoMessage()    {}
+func (x *InterfaceState) Reset() {
+	*x = InterfaceState{}
+	mi := &file_voltha_protos_ietf_interfaces_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *InterfaceState) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*InterfaceState) ProtoMessage() {}
+
+func (x *InterfaceState) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_ietf_interfaces_proto_msgTypes[3]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use InterfaceState.ProtoReflect.Descriptor instead.
 func (*InterfaceState) Descriptor() ([]byte, []int) {
-	return fileDescriptor_5a91e49a45099096, []int{3}
+	return file_voltha_protos_ietf_interfaces_proto_rawDescGZIP(), []int{3}
 }
 
-func (m *InterfaceState) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_InterfaceState.Unmarshal(m, b)
-}
-func (m *InterfaceState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_InterfaceState.Marshal(b, m, deterministic)
-}
-func (m *InterfaceState) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_InterfaceState.Merge(m, src)
-}
-func (m *InterfaceState) XXX_Size() int {
-	return xxx_messageInfo_InterfaceState.Size(m)
-}
-func (m *InterfaceState) XXX_DiscardUnknown() {
-	xxx_messageInfo_InterfaceState.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_InterfaceState proto.InternalMessageInfo
-
-func (m *InterfaceState) GetName() string {
-	if m != nil {
-		return m.Name
+func (x *InterfaceState) GetName() string {
+	if x != nil {
+		return x.Name
 	}
 	return ""
 }
 
-func (m *InterfaceState) GetType() string {
-	if m != nil {
-		return m.Type
+func (x *InterfaceState) GetType() string {
+	if x != nil {
+		return x.Type
 	}
 	return ""
 }
 
-func (m *InterfaceState) GetAdminStatus() InterfaceState_AdminStatusType {
-	if m != nil {
-		return m.AdminStatus
+func (x *InterfaceState) GetAdminStatus() InterfaceState_AdminStatusType {
+	if x != nil {
+		return x.AdminStatus
 	}
 	return InterfaceState_ADMIN_DOWN
 }
 
-func (m *InterfaceState) GetOperStatus() InterfaceState_OperStatusType {
-	if m != nil {
-		return m.OperStatus
+func (x *InterfaceState) GetOperStatus() InterfaceState_OperStatusType {
+	if x != nil {
+		return x.OperStatus
 	}
 	return InterfaceState_DORMANT
 }
 
-func (m *InterfaceState) GetLastChange() string {
-	if m != nil {
-		return m.LastChange
+func (x *InterfaceState) GetLastChange() string {
+	if x != nil {
+		return x.LastChange
 	}
 	return ""
 }
 
-func (m *InterfaceState) GetIfIndex() int32 {
-	if m != nil {
-		return m.IfIndex
+func (x *InterfaceState) GetIfIndex() int32 {
+	if x != nil {
+		return x.IfIndex
 	}
 	return 0
 }
 
-func (m *InterfaceState) GetPhysAddress() string {
-	if m != nil {
-		return m.PhysAddress
+func (x *InterfaceState) GetPhysAddress() string {
+	if x != nil {
+		return x.PhysAddress
 	}
 	return ""
 }
 
-func (m *InterfaceState) GetHigherLayerIf() []string {
-	if m != nil {
-		return m.HigherLayerIf
+func (x *InterfaceState) GetHigherLayerIf() []string {
+	if x != nil {
+		return x.HigherLayerIf
 	}
 	return nil
 }
 
-func (m *InterfaceState) GetLowerLayerIf() []string {
-	if m != nil {
-		return m.LowerLayerIf
+func (x *InterfaceState) GetLowerLayerIf() []string {
+	if x != nil {
+		return x.LowerLayerIf
 	}
 	return nil
 }
 
-func (m *InterfaceState) GetSpeed() uint64 {
-	if m != nil {
-		return m.Speed
+func (x *InterfaceState) GetSpeed() uint64 {
+	if x != nil {
+		return x.Speed
 	}
 	return 0
 }
 
-func init() {
-	proto.RegisterEnum("ietf.Interface_LinkUpDownTrapEnableType", Interface_LinkUpDownTrapEnableType_name, Interface_LinkUpDownTrapEnableType_value)
-	proto.RegisterEnum("ietf.InterfaceState_AdminStatusType", InterfaceState_AdminStatusType_name, InterfaceState_AdminStatusType_value)
-	proto.RegisterEnum("ietf.InterfaceState_OperStatusType", InterfaceState_OperStatusType_name, InterfaceState_OperStatusType_value)
-	proto.RegisterType((*Interfaces)(nil), "ietf.Interfaces")
-	proto.RegisterType((*Interface)(nil), "ietf.Interface")
-	proto.RegisterType((*InterfacesState)(nil), "ietf.InterfacesState")
-	proto.RegisterType((*InterfaceState)(nil), "ietf.InterfaceState")
+var File_voltha_protos_ietf_interfaces_proto protoreflect.FileDescriptor
+
+const file_voltha_protos_ietf_interfaces_proto_rawDesc = "" +
+	"\n" +
+	"#voltha_protos/ietf_interfaces.proto\x12\x04ietf\"D\n" +
+	"\n" +
+	"Interfaces\x126\n" +
+	"\x0eall_interfaces\x18\x01 \x03(\v2\x0f.ietf.InterfaceR\rallInterfaces\"\x92\x02\n" +
+	"\tInterface\x12\x12\n" +
+	"\x04name\x18\x01 \x01(\tR\x04name\x12 \n" +
+	"\vdescription\x18\x02 \x01(\tR\vdescription\x12\x12\n" +
+	"\x04type\x18\x03 \x01(\tR\x04type\x12\x18\n" +
+	"\aenabled\x18\x04 \x01(\bR\aenabled\x12`\n" +
+	"\x18link_up_down_trap_enable\x18\x05 \x01(\x0e2(.ietf.Interface.LinkUpDownTrapEnableTypeR\x14linkUpDownTrapEnable\"?\n" +
+	"\x18LinkUpDownTrapEnableType\x12\x11\n" +
+	"\rTRAP_DISABLED\x10\x00\x12\x10\n" +
+	"\fTRAP_ENABLED\x10\x01\"L\n" +
+	"\x0fInterfacesState\x129\n" +
+	"\rall_interfacs\x18\x01 \x03(\v2\x14.ietf.InterfaceStateR\fallInterfacs\"\xc0\x04\n" +
+	"\x0eInterfaceState\x12\x12\n" +
+	"\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n" +
+	"\x04type\x18\x02 \x01(\tR\x04type\x12G\n" +
+	"\fadmin_status\x18\x03 \x01(\x0e2$.ietf.InterfaceState.AdminStatusTypeR\vadminStatus\x12D\n" +
+	"\voper_status\x18\x04 \x01(\x0e2#.ietf.InterfaceState.OperStatusTypeR\n" +
+	"operStatus\x12\x1f\n" +
+	"\vlast_change\x18\x05 \x01(\tR\n" +
+	"lastChange\x12\x19\n" +
+	"\bif_index\x18\x06 \x01(\x05R\aifIndex\x12!\n" +
+	"\fphys_address\x18\a \x01(\tR\vphysAddress\x12&\n" +
+	"\x0fhigher_layer_if\x18\b \x03(\tR\rhigherLayerIf\x12$\n" +
+	"\x0elower_layer_if\x18\t \x03(\tR\flowerLayerIf\x12\x14\n" +
+	"\x05speed\x18\n" +
+	" \x01(\x04R\x05speed\"B\n" +
+	"\x0fAdminStatusType\x12\x0e\n" +
+	"\n" +
+	"ADMIN_DOWN\x10\x00\x12\x11\n" +
+	"\rADMIN_TESTING\x10\x01\x12\f\n" +
+	"\bADMIN_UP\x10\x02\"p\n" +
+	"\x0eOperStatusType\x12\v\n" +
+	"\aDORMANT\x10\x00\x12\x14\n" +
+	"\x10LOWER_LAYER_DOWN\x10\x01\x12\v\n" +
+	"\aUNKNOWN\x10\x02\x12\v\n" +
+	"\aTESTING\x10\x03\x12\x06\n" +
+	"\x02UP\x10\x04\x12\b\n" +
+	"\x04DOWN\x10\x05\x12\x0f\n" +
+	"\vNOT_PRESENT\x10\x06BH\n" +
+	"\x18org.opencord.voltha.ietfZ,github.com/opencord/voltha-protos/v5/go/ietfb\x06proto3"
+
+var (
+	file_voltha_protos_ietf_interfaces_proto_rawDescOnce sync.Once
+	file_voltha_protos_ietf_interfaces_proto_rawDescData []byte
+)
+
+func file_voltha_protos_ietf_interfaces_proto_rawDescGZIP() []byte {
+	file_voltha_protos_ietf_interfaces_proto_rawDescOnce.Do(func() {
+		file_voltha_protos_ietf_interfaces_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_voltha_protos_ietf_interfaces_proto_rawDesc), len(file_voltha_protos_ietf_interfaces_proto_rawDesc)))
+	})
+	return file_voltha_protos_ietf_interfaces_proto_rawDescData
 }
 
-func init() {
-	proto.RegisterFile("voltha_protos/ietf_interfaces.proto", fileDescriptor_5a91e49a45099096)
+var file_voltha_protos_ietf_interfaces_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
+var file_voltha_protos_ietf_interfaces_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
+var file_voltha_protos_ietf_interfaces_proto_goTypes = []any{
+	(Interface_LinkUpDownTrapEnableType)(0), // 0: ietf.Interface.LinkUpDownTrapEnableType
+	(InterfaceState_AdminStatusType)(0),     // 1: ietf.InterfaceState.AdminStatusType
+	(InterfaceState_OperStatusType)(0),      // 2: ietf.InterfaceState.OperStatusType
+	(*Interfaces)(nil),                      // 3: ietf.Interfaces
+	(*Interface)(nil),                       // 4: ietf.Interface
+	(*InterfacesState)(nil),                 // 5: ietf.InterfacesState
+	(*InterfaceState)(nil),                  // 6: ietf.InterfaceState
+}
+var file_voltha_protos_ietf_interfaces_proto_depIdxs = []int32{
+	4, // 0: ietf.Interfaces.all_interfaces:type_name -> ietf.Interface
+	0, // 1: ietf.Interface.link_up_down_trap_enable:type_name -> ietf.Interface.LinkUpDownTrapEnableType
+	6, // 2: ietf.InterfacesState.all_interfacs:type_name -> ietf.InterfaceState
+	1, // 3: ietf.InterfaceState.admin_status:type_name -> ietf.InterfaceState.AdminStatusType
+	2, // 4: ietf.InterfaceState.oper_status:type_name -> ietf.InterfaceState.OperStatusType
+	5, // [5:5] is the sub-list for method output_type
+	5, // [5:5] is the sub-list for method input_type
+	5, // [5:5] is the sub-list for extension type_name
+	5, // [5:5] is the sub-list for extension extendee
+	0, // [0:5] is the sub-list for field type_name
 }
 
-var fileDescriptor_5a91e49a45099096 = []byte{
-	// 631 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x94, 0x5d, 0x6f, 0x9b, 0x3a,
-	0x18, 0xc7, 0x4b, 0x42, 0xde, 0x9e, 0xbc, 0x71, 0xac, 0x5c, 0x70, 0xae, 0x0e, 0x27, 0xad, 0x26,
-	0x2e, 0x36, 0x22, 0x75, 0xda, 0xa4, 0x5d, 0x4d, 0xe9, 0x40, 0x5d, 0xb4, 0x94, 0x44, 0x0e, 0x51,
-	0xb5, 0xdd, 0x78, 0x6e, 0x70, 0x12, 0x54, 0x8a, 0x2d, 0xa0, 0xed, 0xf2, 0x35, 0xf6, 0x89, 0xf6,
-	0xd1, 0x26, 0x9b, 0x25, 0xa5, 0x55, 0x76, 0xc7, 0xff, 0xe7, 0x9f, 0x1f, 0xd0, 0x1f, 0xcb, 0x70,
-	0xfa, 0xc0, 0xe3, 0x7c, 0x4b, 0x89, 0x48, 0x79, 0xce, 0xb3, 0x51, 0xc4, 0xf2, 0x35, 0x89, 0x92,
-	0x9c, 0xa5, 0x6b, 0xba, 0x62, 0x99, 0xa3, 0x30, 0xd2, 0x25, 0x1e, 0xba, 0x00, 0x93, 0xc3, 0x0a,
-	0x7a, 0x0f, 0x3d, 0x1a, 0xc7, 0x25, 0xd7, 0xd4, 0xac, 0xaa, 0xdd, 0x3e, 0xef, 0x3b, 0x52, 0x76,
-	0x0e, 0x26, 0xee, 0xd2, 0x38, 0x7e, 0xda, 0x37, 0xfc, 0x59, 0x81, 0xd6, 0x21, 0x22, 0x04, 0x7a,
-	0x42, 0xef, 0x98, 0xa9, 0x59, 0x9a, 0xdd, 0xc2, 0xea, 0x19, 0x59, 0xd0, 0x0e, 0x59, 0xb6, 0x4a,
-	0x23, 0x91, 0x47, 0x3c, 0x31, 0x2b, 0x6a, 0xa9, 0x8c, 0xe4, 0xae, 0x7c, 0x27, 0x98, 0x59, 0x2d,
-	0x76, 0xc9, 0x67, 0x64, 0x42, 0x83, 0x25, 0xf4, 0x26, 0x66, 0xa1, 0xa9, 0x5b, 0x9a, 0xdd, 0xc4,
-	0xfb, 0x88, 0xbe, 0x83, 0x19, 0x47, 0xc9, 0x2d, 0xb9, 0x17, 0x24, 0xe4, 0x8f, 0x09, 0xc9, 0x53,
-	0x2a, 0x48, 0xb1, 0x68, 0xd6, 0x2c, 0xcd, 0xee, 0x9d, 0xdb, 0x2f, 0xbe, 0xd9, 0x99, 0x46, 0xc9,
-	0xed, 0x52, 0xb8, 0xfc, 0x31, 0x09, 0x52, 0x2a, 0x3c, 0xe5, 0x06, 0x3b, 0xc1, 0xf0, 0x20, 0x3e,
-	0xb2, 0x32, 0xfc, 0x08, 0xe6, 0xdf, 0x76, 0xa0, 0x7f, 0xa0, 0x1b, 0xe0, 0xf1, 0x9c, 0xb8, 0x93,
-	0xc5, 0xf8, 0x62, 0xea, 0xb9, 0xc6, 0x09, 0x32, 0xa0, 0xa3, 0x90, 0xe7, 0x17, 0x44, 0x1b, 0x4e,
-	0xa1, 0xff, 0x54, 0xd1, 0x22, 0xa7, 0x39, 0x43, 0x1f, 0xa0, 0x5b, 0xee, 0x77, 0x5f, 0xef, 0xe0,
-	0xc5, 0xa7, 0x2a, 0x19, 0x77, 0x4a, 0x1d, 0x67, 0xc3, 0x5f, 0x3a, 0xf4, 0x9e, 0x0b, 0x47, 0x7b,
-	0xde, 0xb7, 0x58, 0x29, 0xb5, 0x78, 0x09, 0x1d, 0x1a, 0xde, 0x45, 0x09, 0xc9, 0x72, 0x9a, 0xdf,
-	0x67, 0xaa, 0xe1, 0xde, 0xf9, 0xd9, 0xb1, 0x97, 0x3a, 0x63, 0x29, 0x2e, 0x94, 0xa7, 0xba, 0x69,
-	0xd3, 0x27, 0x80, 0x5c, 0x68, 0x73, 0xc1, 0xd2, 0xfd, 0x1c, 0x5d, 0xcd, 0x39, 0x3d, 0x3a, 0x67,
-	0x26, 0x58, 0x5a, 0x1a, 0x03, 0xfc, 0x90, 0xd1, 0x7f, 0xd0, 0x8e, 0x69, 0x96, 0x93, 0xd5, 0x96,
-	0x26, 0x9b, 0xe2, 0x6f, 0xb5, 0x30, 0x48, 0xf4, 0x49, 0x11, 0xf4, 0x2f, 0x34, 0x23, 0x79, 0x60,
-	0x43, 0xf6, 0xc3, 0xac, 0x5b, 0x9a, 0x5d, 0xc3, 0x8d, 0x68, 0x3d, 0x91, 0x11, 0xfd, 0x0f, 0x1d,
-	0xb1, 0xdd, 0x65, 0x84, 0x86, 0x61, 0xca, 0xb2, 0xcc, 0x6c, 0x14, 0xe7, 0x48, 0xb2, 0x71, 0x81,
-	0xd0, 0x2b, 0xe8, 0x6f, 0xa3, 0xcd, 0x96, 0xa5, 0x24, 0xa6, 0x3b, 0x96, 0x92, 0x68, 0x6d, 0x36,
-	0xad, 0xaa, 0xdd, 0xc2, 0xdd, 0x02, 0x4f, 0x25, 0x9d, 0xac, 0xd1, 0x19, 0xf4, 0x62, 0xfe, 0x58,
-	0xd6, 0x5a, 0x4a, 0xeb, 0x28, 0xba, 0xb7, 0x06, 0x50, 0xcb, 0x04, 0x63, 0xa1, 0x09, 0x96, 0x66,
-	0xeb, 0xb8, 0x08, 0xc3, 0x0b, 0xe8, 0xbf, 0x28, 0x0a, 0xf5, 0x00, 0xc6, 0xee, 0xd5, 0xc4, 0x27,
-	0xee, 0xec, 0xda, 0x37, 0x4e, 0xe4, 0x11, 0x29, 0x72, 0xe0, 0x2d, 0x82, 0x89, 0x7f, 0x69, 0x68,
-	0xa8, 0x03, 0xcd, 0x02, 0x2d, 0xe7, 0x46, 0x65, 0x28, 0xa0, 0xf7, 0xbc, 0x24, 0xd4, 0x86, 0x86,
-	0x3b, 0xc3, 0x57, 0x63, 0x3f, 0x30, 0x4e, 0xd0, 0x00, 0x8c, 0xe9, 0xec, 0xda, 0xc3, 0x64, 0x3a,
-	0xfe, 0xea, 0xe1, 0x62, 0xaa, 0x26, 0x95, 0xa5, 0xff, 0xc5, 0x97, 0xa1, 0x22, 0xc3, 0x7e, 0x78,
-	0x15, 0xd5, 0xa1, 0xb2, 0x9c, 0x1b, 0x3a, 0x6a, 0x82, 0xae, 0xdc, 0x1a, 0xea, 0x43, 0xdb, 0x9f,
-	0x05, 0x64, 0x8e, 0xbd, 0x85, 0xe7, 0x07, 0x46, 0xfd, 0xe2, 0x33, 0x98, 0x3c, 0xdd, 0x38, 0x5c,
-	0xb0, 0x64, 0xc5, 0xd3, 0xd0, 0x29, 0x6e, 0x09, 0xf5, 0xfb, 0xbe, 0xbd, 0xde, 0x44, 0xf9, 0xf6,
-	0xfe, 0xc6, 0x59, 0xf1, 0xbb, 0xd1, 0x5e, 0x18, 0x15, 0xc2, 0x9b, 0x3f, 0xd7, 0xc8, 0xc3, 0xbb,
-	0xd1, 0x86, 0xab, 0xcb, 0xe4, 0xa6, 0xae, 0xd0, 0xdb, 0xdf, 0x01, 0x00, 0x00, 0xff, 0xff, 0xa4,
-	0x35, 0xed, 0x7c, 0x69, 0x04, 0x00, 0x00,
+func init() { file_voltha_protos_ietf_interfaces_proto_init() }
+func file_voltha_protos_ietf_interfaces_proto_init() {
+	if File_voltha_protos_ietf_interfaces_proto != nil {
+		return
+	}
+	type x struct{}
+	out := protoimpl.TypeBuilder{
+		File: protoimpl.DescBuilder{
+			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+			RawDescriptor: unsafe.Slice(unsafe.StringData(file_voltha_protos_ietf_interfaces_proto_rawDesc), len(file_voltha_protos_ietf_interfaces_proto_rawDesc)),
+			NumEnums:      3,
+			NumMessages:   4,
+			NumExtensions: 0,
+			NumServices:   0,
+		},
+		GoTypes:           file_voltha_protos_ietf_interfaces_proto_goTypes,
+		DependencyIndexes: file_voltha_protos_ietf_interfaces_proto_depIdxs,
+		EnumInfos:         file_voltha_protos_ietf_interfaces_proto_enumTypes,
+		MessageInfos:      file_voltha_protos_ietf_interfaces_proto_msgTypes,
+	}.Build()
+	File_voltha_protos_ietf_interfaces_proto = out.File
+	file_voltha_protos_ietf_interfaces_proto_goTypes = nil
+	file_voltha_protos_ietf_interfaces_proto_depIdxs = nil
 }
diff --git a/go/inter_adapter/inter_adapter.pb.go b/go/inter_adapter/inter_adapter.pb.go
index fd76f67..901deb8 100644
--- a/go/inter_adapter/inter_adapter.pb.go
+++ b/go/inter_adapter/inter_adapter.pb.go
@@ -1,579 +1,673 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// 	protoc-gen-go v1.36.11
+// 	protoc        v4.25.8
 // source: voltha_protos/inter_adapter.proto
 
 package inter_adapter
 
 import (
-	fmt "fmt"
-	proto "github.com/golang/protobuf/proto"
 	common "github.com/opencord/voltha-protos/v5/go/common"
 	openolt "github.com/opencord/voltha-protos/v5/go/openolt"
 	tech_profile "github.com/opencord/voltha-protos/v5/go/tech_profile"
 	voltha "github.com/opencord/voltha-protos/v5/go/voltha"
-	math "math"
+	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+	reflect "reflect"
+	sync "sync"
+	unsafe "unsafe"
 )
 
-// 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
+const (
+	// Verify that this generated code is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+	// Verify that runtime/protoimpl is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
 
 type OmciMessage struct {
-	Message              []byte                      `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"`
-	ConnectStatus        common.ConnectStatus_Types  `protobuf:"varint,2,opt,name=connect_status,json=connectStatus,proto3,enum=common.ConnectStatus_Types" json:"connect_status,omitempty"`
-	ProxyAddress         *voltha.Device_ProxyAddress `protobuf:"bytes,3,opt,name=proxy_address,json=proxyAddress,proto3" json:"proxy_address,omitempty"`
-	ParentDeviceId       string                      `protobuf:"bytes,4,opt,name=parent_device_id,json=parentDeviceId,proto3" json:"parent_device_id,omitempty"`
-	ChildDeviceId        string                      `protobuf:"bytes,5,opt,name=child_device_id,json=childDeviceId,proto3" json:"child_device_id,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                    `json:"-"`
-	XXX_unrecognized     []byte                      `json:"-"`
-	XXX_sizecache        int32                       `json:"-"`
+	state          protoimpl.MessageState      `protogen:"open.v1"`
+	Message        []byte                      `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"`
+	ConnectStatus  common.ConnectStatus_Types  `protobuf:"varint,2,opt,name=connect_status,json=connectStatus,proto3,enum=common.ConnectStatus_Types" json:"connect_status,omitempty"`
+	ProxyAddress   *voltha.Device_ProxyAddress `protobuf:"bytes,3,opt,name=proxy_address,json=proxyAddress,proto3" json:"proxy_address,omitempty"`
+	ParentDeviceId string                      `protobuf:"bytes,4,opt,name=parent_device_id,json=parentDeviceId,proto3" json:"parent_device_id,omitempty"`
+	ChildDeviceId  string                      `protobuf:"bytes,5,opt,name=child_device_id,json=childDeviceId,proto3" json:"child_device_id,omitempty"`
+	unknownFields  protoimpl.UnknownFields
+	sizeCache      protoimpl.SizeCache
 }
 
-func (m *OmciMessage) Reset()         { *m = OmciMessage{} }
-func (m *OmciMessage) String() string { return proto.CompactTextString(m) }
-func (*OmciMessage) ProtoMessage()    {}
+func (x *OmciMessage) Reset() {
+	*x = OmciMessage{}
+	mi := &file_voltha_protos_inter_adapter_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OmciMessage) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OmciMessage) ProtoMessage() {}
+
+func (x *OmciMessage) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_inter_adapter_proto_msgTypes[0]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OmciMessage.ProtoReflect.Descriptor instead.
 func (*OmciMessage) Descriptor() ([]byte, []int) {
-	return fileDescriptor_a316e60f0a1fb837, []int{0}
+	return file_voltha_protos_inter_adapter_proto_rawDescGZIP(), []int{0}
 }
 
-func (m *OmciMessage) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OmciMessage.Unmarshal(m, b)
-}
-func (m *OmciMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OmciMessage.Marshal(b, m, deterministic)
-}
-func (m *OmciMessage) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OmciMessage.Merge(m, src)
-}
-func (m *OmciMessage) XXX_Size() int {
-	return xxx_messageInfo_OmciMessage.Size(m)
-}
-func (m *OmciMessage) XXX_DiscardUnknown() {
-	xxx_messageInfo_OmciMessage.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OmciMessage proto.InternalMessageInfo
-
-func (m *OmciMessage) GetMessage() []byte {
-	if m != nil {
-		return m.Message
+func (x *OmciMessage) GetMessage() []byte {
+	if x != nil {
+		return x.Message
 	}
 	return nil
 }
 
-func (m *OmciMessage) GetConnectStatus() common.ConnectStatus_Types {
-	if m != nil {
-		return m.ConnectStatus
+func (x *OmciMessage) GetConnectStatus() common.ConnectStatus_Types {
+	if x != nil {
+		return x.ConnectStatus
 	}
-	return common.ConnectStatus_UNKNOWN
+	return common.ConnectStatus_Types(0)
 }
 
-func (m *OmciMessage) GetProxyAddress() *voltha.Device_ProxyAddress {
-	if m != nil {
-		return m.ProxyAddress
+func (x *OmciMessage) GetProxyAddress() *voltha.Device_ProxyAddress {
+	if x != nil {
+		return x.ProxyAddress
 	}
 	return nil
 }
 
-func (m *OmciMessage) GetParentDeviceId() string {
-	if m != nil {
-		return m.ParentDeviceId
+func (x *OmciMessage) GetParentDeviceId() string {
+	if x != nil {
+		return x.ParentDeviceId
 	}
 	return ""
 }
 
-func (m *OmciMessage) GetChildDeviceId() string {
-	if m != nil {
-		return m.ChildDeviceId
+func (x *OmciMessage) GetChildDeviceId() string {
+	if x != nil {
+		return x.ChildDeviceId
 	}
 	return ""
 }
 
 type OmciMessages struct {
-	Messages             [][]byte                    `protobuf:"bytes,1,rep,name=messages,proto3" json:"messages,omitempty"`
-	ConnectStatus        common.ConnectStatus_Types  `protobuf:"varint,2,opt,name=connect_status,json=connectStatus,proto3,enum=common.ConnectStatus_Types" json:"connect_status,omitempty"`
-	ProxyAddress         *voltha.Device_ProxyAddress `protobuf:"bytes,3,opt,name=proxy_address,json=proxyAddress,proto3" json:"proxy_address,omitempty"`
-	ParentDeviceId       string                      `protobuf:"bytes,4,opt,name=parent_device_id,json=parentDeviceId,proto3" json:"parent_device_id,omitempty"`
-	ChildDeviceId        string                      `protobuf:"bytes,5,opt,name=child_device_id,json=childDeviceId,proto3" json:"child_device_id,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                    `json:"-"`
-	XXX_unrecognized     []byte                      `json:"-"`
-	XXX_sizecache        int32                       `json:"-"`
+	state          protoimpl.MessageState      `protogen:"open.v1"`
+	Messages       [][]byte                    `protobuf:"bytes,1,rep,name=messages,proto3" json:"messages,omitempty"`
+	ConnectStatus  common.ConnectStatus_Types  `protobuf:"varint,2,opt,name=connect_status,json=connectStatus,proto3,enum=common.ConnectStatus_Types" json:"connect_status,omitempty"`
+	ProxyAddress   *voltha.Device_ProxyAddress `protobuf:"bytes,3,opt,name=proxy_address,json=proxyAddress,proto3" json:"proxy_address,omitempty"`
+	ParentDeviceId string                      `protobuf:"bytes,4,opt,name=parent_device_id,json=parentDeviceId,proto3" json:"parent_device_id,omitempty"`
+	ChildDeviceId  string                      `protobuf:"bytes,5,opt,name=child_device_id,json=childDeviceId,proto3" json:"child_device_id,omitempty"`
+	unknownFields  protoimpl.UnknownFields
+	sizeCache      protoimpl.SizeCache
 }
 
-func (m *OmciMessages) Reset()         { *m = OmciMessages{} }
-func (m *OmciMessages) String() string { return proto.CompactTextString(m) }
-func (*OmciMessages) ProtoMessage()    {}
+func (x *OmciMessages) Reset() {
+	*x = OmciMessages{}
+	mi := &file_voltha_protos_inter_adapter_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OmciMessages) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OmciMessages) ProtoMessage() {}
+
+func (x *OmciMessages) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_inter_adapter_proto_msgTypes[1]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OmciMessages.ProtoReflect.Descriptor instead.
 func (*OmciMessages) Descriptor() ([]byte, []int) {
-	return fileDescriptor_a316e60f0a1fb837, []int{1}
+	return file_voltha_protos_inter_adapter_proto_rawDescGZIP(), []int{1}
 }
 
-func (m *OmciMessages) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OmciMessages.Unmarshal(m, b)
-}
-func (m *OmciMessages) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OmciMessages.Marshal(b, m, deterministic)
-}
-func (m *OmciMessages) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OmciMessages.Merge(m, src)
-}
-func (m *OmciMessages) XXX_Size() int {
-	return xxx_messageInfo_OmciMessages.Size(m)
-}
-func (m *OmciMessages) XXX_DiscardUnknown() {
-	xxx_messageInfo_OmciMessages.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OmciMessages proto.InternalMessageInfo
-
-func (m *OmciMessages) GetMessages() [][]byte {
-	if m != nil {
-		return m.Messages
+func (x *OmciMessages) GetMessages() [][]byte {
+	if x != nil {
+		return x.Messages
 	}
 	return nil
 }
 
-func (m *OmciMessages) GetConnectStatus() common.ConnectStatus_Types {
-	if m != nil {
-		return m.ConnectStatus
+func (x *OmciMessages) GetConnectStatus() common.ConnectStatus_Types {
+	if x != nil {
+		return x.ConnectStatus
 	}
-	return common.ConnectStatus_UNKNOWN
+	return common.ConnectStatus_Types(0)
 }
 
-func (m *OmciMessages) GetProxyAddress() *voltha.Device_ProxyAddress {
-	if m != nil {
-		return m.ProxyAddress
+func (x *OmciMessages) GetProxyAddress() *voltha.Device_ProxyAddress {
+	if x != nil {
+		return x.ProxyAddress
 	}
 	return nil
 }
 
-func (m *OmciMessages) GetParentDeviceId() string {
-	if m != nil {
-		return m.ParentDeviceId
+func (x *OmciMessages) GetParentDeviceId() string {
+	if x != nil {
+		return x.ParentDeviceId
 	}
 	return ""
 }
 
-func (m *OmciMessages) GetChildDeviceId() string {
-	if m != nil {
-		return m.ChildDeviceId
+func (x *OmciMessages) GetChildDeviceId() string {
+	if x != nil {
+		return x.ChildDeviceId
 	}
 	return ""
 }
 
 type TechProfileDownloadMessage struct {
-	DeviceId       string `protobuf:"bytes,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
-	UniId          uint32 `protobuf:"varint,2,opt,name=uni_id,json=uniId,proto3" json:"uni_id,omitempty"`
-	TpInstancePath string `protobuf:"bytes,3,opt,name=tp_instance_path,json=tpInstancePath,proto3" json:"tp_instance_path,omitempty"`
+	state          protoimpl.MessageState `protogen:"open.v1"`
+	DeviceId       string                 `protobuf:"bytes,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
+	UniId          uint32                 `protobuf:"varint,2,opt,name=uni_id,json=uniId,proto3" json:"uni_id,omitempty"`
+	TpInstancePath string                 `protobuf:"bytes,3,opt,name=tp_instance_path,json=tpInstancePath,proto3" json:"tp_instance_path,omitempty"`
 	// Types that are valid to be assigned to TechTpInstance:
+	//
 	//	*TechProfileDownloadMessage_TpInstance
 	//	*TechProfileDownloadMessage_EponTpInstance
-	TechTpInstance       isTechProfileDownloadMessage_TechTpInstance `protobuf_oneof:"tech_tp_instance"`
-	XXX_NoUnkeyedLiteral struct{}                                    `json:"-"`
-	XXX_unrecognized     []byte                                      `json:"-"`
-	XXX_sizecache        int32                                       `json:"-"`
+	TechTpInstance isTechProfileDownloadMessage_TechTpInstance `protobuf_oneof:"tech_tp_instance"`
+	unknownFields  protoimpl.UnknownFields
+	sizeCache      protoimpl.SizeCache
 }
 
-func (m *TechProfileDownloadMessage) Reset()         { *m = TechProfileDownloadMessage{} }
-func (m *TechProfileDownloadMessage) String() string { return proto.CompactTextString(m) }
-func (*TechProfileDownloadMessage) ProtoMessage()    {}
+func (x *TechProfileDownloadMessage) Reset() {
+	*x = TechProfileDownloadMessage{}
+	mi := &file_voltha_protos_inter_adapter_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *TechProfileDownloadMessage) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TechProfileDownloadMessage) ProtoMessage() {}
+
+func (x *TechProfileDownloadMessage) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_inter_adapter_proto_msgTypes[2]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use TechProfileDownloadMessage.ProtoReflect.Descriptor instead.
 func (*TechProfileDownloadMessage) Descriptor() ([]byte, []int) {
-	return fileDescriptor_a316e60f0a1fb837, []int{2}
+	return file_voltha_protos_inter_adapter_proto_rawDescGZIP(), []int{2}
 }
 
-func (m *TechProfileDownloadMessage) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_TechProfileDownloadMessage.Unmarshal(m, b)
-}
-func (m *TechProfileDownloadMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_TechProfileDownloadMessage.Marshal(b, m, deterministic)
-}
-func (m *TechProfileDownloadMessage) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_TechProfileDownloadMessage.Merge(m, src)
-}
-func (m *TechProfileDownloadMessage) XXX_Size() int {
-	return xxx_messageInfo_TechProfileDownloadMessage.Size(m)
-}
-func (m *TechProfileDownloadMessage) XXX_DiscardUnknown() {
-	xxx_messageInfo_TechProfileDownloadMessage.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_TechProfileDownloadMessage proto.InternalMessageInfo
-
-func (m *TechProfileDownloadMessage) GetDeviceId() string {
-	if m != nil {
-		return m.DeviceId
+func (x *TechProfileDownloadMessage) GetDeviceId() string {
+	if x != nil {
+		return x.DeviceId
 	}
 	return ""
 }
 
-func (m *TechProfileDownloadMessage) GetUniId() uint32 {
-	if m != nil {
-		return m.UniId
+func (x *TechProfileDownloadMessage) GetUniId() uint32 {
+	if x != nil {
+		return x.UniId
 	}
 	return 0
 }
 
-func (m *TechProfileDownloadMessage) GetTpInstancePath() string {
-	if m != nil {
-		return m.TpInstancePath
+func (x *TechProfileDownloadMessage) GetTpInstancePath() string {
+	if x != nil {
+		return x.TpInstancePath
 	}
 	return ""
 }
 
+func (x *TechProfileDownloadMessage) GetTechTpInstance() isTechProfileDownloadMessage_TechTpInstance {
+	if x != nil {
+		return x.TechTpInstance
+	}
+	return nil
+}
+
+func (x *TechProfileDownloadMessage) GetTpInstance() *tech_profile.TechProfileInstance {
+	if x != nil {
+		if x, ok := x.TechTpInstance.(*TechProfileDownloadMessage_TpInstance); ok {
+			return x.TpInstance
+		}
+	}
+	return nil
+}
+
+func (x *TechProfileDownloadMessage) GetEponTpInstance() *tech_profile.EponTechProfileInstance {
+	if x != nil {
+		if x, ok := x.TechTpInstance.(*TechProfileDownloadMessage_EponTpInstance); ok {
+			return x.EponTpInstance
+		}
+	}
+	return nil
+}
+
 type isTechProfileDownloadMessage_TechTpInstance interface {
 	isTechProfileDownloadMessage_TechTpInstance()
 }
 
 type TechProfileDownloadMessage_TpInstance struct {
-	TpInstance *tech_profile.TechProfileInstance `protobuf:"bytes,4,opt,name=tp_instance,json=tpInstance,proto3,oneof"`
+	TpInstance *tech_profile.TechProfileInstance `protobuf:"bytes,4,opt,name=tp_instance,json=tpInstance,proto3,oneof"` // relevant for GPON, XGPON and XGS-PON technologies
 }
 
 type TechProfileDownloadMessage_EponTpInstance struct {
-	EponTpInstance *tech_profile.EponTechProfileInstance `protobuf:"bytes,5,opt,name=epon_tp_instance,json=eponTpInstance,proto3,oneof"`
+	EponTpInstance *tech_profile.EponTechProfileInstance `protobuf:"bytes,5,opt,name=epon_tp_instance,json=eponTpInstance,proto3,oneof"` // relevant for EPON technology
 }
 
 func (*TechProfileDownloadMessage_TpInstance) isTechProfileDownloadMessage_TechTpInstance() {}
 
 func (*TechProfileDownloadMessage_EponTpInstance) isTechProfileDownloadMessage_TechTpInstance() {}
 
-func (m *TechProfileDownloadMessage) GetTechTpInstance() isTechProfileDownloadMessage_TechTpInstance {
-	if m != nil {
-		return m.TechTpInstance
-	}
-	return nil
-}
-
-func (m *TechProfileDownloadMessage) GetTpInstance() *tech_profile.TechProfileInstance {
-	if x, ok := m.GetTechTpInstance().(*TechProfileDownloadMessage_TpInstance); ok {
-		return x.TpInstance
-	}
-	return nil
-}
-
-func (m *TechProfileDownloadMessage) GetEponTpInstance() *tech_profile.EponTechProfileInstance {
-	if x, ok := m.GetTechTpInstance().(*TechProfileDownloadMessage_EponTpInstance); ok {
-		return x.EponTpInstance
-	}
-	return nil
-}
-
-// XXX_OneofWrappers is for the internal use of the proto package.
-func (*TechProfileDownloadMessage) XXX_OneofWrappers() []interface{} {
-	return []interface{}{
-		(*TechProfileDownloadMessage_TpInstance)(nil),
-		(*TechProfileDownloadMessage_EponTpInstance)(nil),
-	}
-}
-
 type DeleteGemPortMessage struct {
-	DeviceId             string   `protobuf:"bytes,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
-	UniId                uint32   `protobuf:"varint,2,opt,name=uni_id,json=uniId,proto3" json:"uni_id,omitempty"`
-	TpInstancePath       string   `protobuf:"bytes,3,opt,name=tp_instance_path,json=tpInstancePath,proto3" json:"tp_instance_path,omitempty"`
-	GemPortId            uint32   `protobuf:"varint,4,opt,name=gem_port_id,json=gemPortId,proto3" json:"gem_port_id,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state          protoimpl.MessageState `protogen:"open.v1"`
+	DeviceId       string                 `protobuf:"bytes,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
+	UniId          uint32                 `protobuf:"varint,2,opt,name=uni_id,json=uniId,proto3" json:"uni_id,omitempty"`
+	TpInstancePath string                 `protobuf:"bytes,3,opt,name=tp_instance_path,json=tpInstancePath,proto3" json:"tp_instance_path,omitempty"`
+	GemPortId      uint32                 `protobuf:"varint,4,opt,name=gem_port_id,json=gemPortId,proto3" json:"gem_port_id,omitempty"`
+	unknownFields  protoimpl.UnknownFields
+	sizeCache      protoimpl.SizeCache
 }
 
-func (m *DeleteGemPortMessage) Reset()         { *m = DeleteGemPortMessage{} }
-func (m *DeleteGemPortMessage) String() string { return proto.CompactTextString(m) }
-func (*DeleteGemPortMessage) ProtoMessage()    {}
+func (x *DeleteGemPortMessage) Reset() {
+	*x = DeleteGemPortMessage{}
+	mi := &file_voltha_protos_inter_adapter_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *DeleteGemPortMessage) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeleteGemPortMessage) ProtoMessage() {}
+
+func (x *DeleteGemPortMessage) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_inter_adapter_proto_msgTypes[3]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeleteGemPortMessage.ProtoReflect.Descriptor instead.
 func (*DeleteGemPortMessage) Descriptor() ([]byte, []int) {
-	return fileDescriptor_a316e60f0a1fb837, []int{3}
+	return file_voltha_protos_inter_adapter_proto_rawDescGZIP(), []int{3}
 }
 
-func (m *DeleteGemPortMessage) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_DeleteGemPortMessage.Unmarshal(m, b)
-}
-func (m *DeleteGemPortMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_DeleteGemPortMessage.Marshal(b, m, deterministic)
-}
-func (m *DeleteGemPortMessage) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_DeleteGemPortMessage.Merge(m, src)
-}
-func (m *DeleteGemPortMessage) XXX_Size() int {
-	return xxx_messageInfo_DeleteGemPortMessage.Size(m)
-}
-func (m *DeleteGemPortMessage) XXX_DiscardUnknown() {
-	xxx_messageInfo_DeleteGemPortMessage.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_DeleteGemPortMessage proto.InternalMessageInfo
-
-func (m *DeleteGemPortMessage) GetDeviceId() string {
-	if m != nil {
-		return m.DeviceId
+func (x *DeleteGemPortMessage) GetDeviceId() string {
+	if x != nil {
+		return x.DeviceId
 	}
 	return ""
 }
 
-func (m *DeleteGemPortMessage) GetUniId() uint32 {
-	if m != nil {
-		return m.UniId
+func (x *DeleteGemPortMessage) GetUniId() uint32 {
+	if x != nil {
+		return x.UniId
 	}
 	return 0
 }
 
-func (m *DeleteGemPortMessage) GetTpInstancePath() string {
-	if m != nil {
-		return m.TpInstancePath
+func (x *DeleteGemPortMessage) GetTpInstancePath() string {
+	if x != nil {
+		return x.TpInstancePath
 	}
 	return ""
 }
 
-func (m *DeleteGemPortMessage) GetGemPortId() uint32 {
-	if m != nil {
-		return m.GemPortId
+func (x *DeleteGemPortMessage) GetGemPortId() uint32 {
+	if x != nil {
+		return x.GemPortId
 	}
 	return 0
 }
 
 type DeleteTcontMessage struct {
-	DeviceId             string   `protobuf:"bytes,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
-	UniId                uint32   `protobuf:"varint,2,opt,name=uni_id,json=uniId,proto3" json:"uni_id,omitempty"`
-	TpInstancePath       string   `protobuf:"bytes,3,opt,name=tp_instance_path,json=tpInstancePath,proto3" json:"tp_instance_path,omitempty"`
-	AllocId              uint32   `protobuf:"varint,4,opt,name=alloc_id,json=allocId,proto3" json:"alloc_id,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state          protoimpl.MessageState `protogen:"open.v1"`
+	DeviceId       string                 `protobuf:"bytes,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
+	UniId          uint32                 `protobuf:"varint,2,opt,name=uni_id,json=uniId,proto3" json:"uni_id,omitempty"`
+	TpInstancePath string                 `protobuf:"bytes,3,opt,name=tp_instance_path,json=tpInstancePath,proto3" json:"tp_instance_path,omitempty"`
+	AllocId        uint32                 `protobuf:"varint,4,opt,name=alloc_id,json=allocId,proto3" json:"alloc_id,omitempty"`
+	unknownFields  protoimpl.UnknownFields
+	sizeCache      protoimpl.SizeCache
 }
 
-func (m *DeleteTcontMessage) Reset()         { *m = DeleteTcontMessage{} }
-func (m *DeleteTcontMessage) String() string { return proto.CompactTextString(m) }
-func (*DeleteTcontMessage) ProtoMessage()    {}
+func (x *DeleteTcontMessage) Reset() {
+	*x = DeleteTcontMessage{}
+	mi := &file_voltha_protos_inter_adapter_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *DeleteTcontMessage) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeleteTcontMessage) ProtoMessage() {}
+
+func (x *DeleteTcontMessage) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_inter_adapter_proto_msgTypes[4]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeleteTcontMessage.ProtoReflect.Descriptor instead.
 func (*DeleteTcontMessage) Descriptor() ([]byte, []int) {
-	return fileDescriptor_a316e60f0a1fb837, []int{4}
+	return file_voltha_protos_inter_adapter_proto_rawDescGZIP(), []int{4}
 }
 
-func (m *DeleteTcontMessage) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_DeleteTcontMessage.Unmarshal(m, b)
-}
-func (m *DeleteTcontMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_DeleteTcontMessage.Marshal(b, m, deterministic)
-}
-func (m *DeleteTcontMessage) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_DeleteTcontMessage.Merge(m, src)
-}
-func (m *DeleteTcontMessage) XXX_Size() int {
-	return xxx_messageInfo_DeleteTcontMessage.Size(m)
-}
-func (m *DeleteTcontMessage) XXX_DiscardUnknown() {
-	xxx_messageInfo_DeleteTcontMessage.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_DeleteTcontMessage proto.InternalMessageInfo
-
-func (m *DeleteTcontMessage) GetDeviceId() string {
-	if m != nil {
-		return m.DeviceId
+func (x *DeleteTcontMessage) GetDeviceId() string {
+	if x != nil {
+		return x.DeviceId
 	}
 	return ""
 }
 
-func (m *DeleteTcontMessage) GetUniId() uint32 {
-	if m != nil {
-		return m.UniId
+func (x *DeleteTcontMessage) GetUniId() uint32 {
+	if x != nil {
+		return x.UniId
 	}
 	return 0
 }
 
-func (m *DeleteTcontMessage) GetTpInstancePath() string {
-	if m != nil {
-		return m.TpInstancePath
+func (x *DeleteTcontMessage) GetTpInstancePath() string {
+	if x != nil {
+		return x.TpInstancePath
 	}
 	return ""
 }
 
-func (m *DeleteTcontMessage) GetAllocId() uint32 {
-	if m != nil {
-		return m.AllocId
+func (x *DeleteTcontMessage) GetAllocId() uint32 {
+	if x != nil {
+		return x.AllocId
 	}
 	return 0
 }
 
 type OnuIndicationMessage struct {
-	DeviceId             string                 `protobuf:"bytes,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
-	OnuIndication        *openolt.OnuIndication `protobuf:"bytes,2,opt,name=onu_indication,json=onuIndication,proto3" json:"onu_indication,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}               `json:"-"`
-	XXX_unrecognized     []byte                 `json:"-"`
-	XXX_sizecache        int32                  `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	DeviceId      string                 `protobuf:"bytes,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
+	OnuIndication *openolt.OnuIndication `protobuf:"bytes,2,opt,name=onu_indication,json=onuIndication,proto3" json:"onu_indication,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *OnuIndicationMessage) Reset()         { *m = OnuIndicationMessage{} }
-func (m *OnuIndicationMessage) String() string { return proto.CompactTextString(m) }
-func (*OnuIndicationMessage) ProtoMessage()    {}
+func (x *OnuIndicationMessage) Reset() {
+	*x = OnuIndicationMessage{}
+	mi := &file_voltha_protos_inter_adapter_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OnuIndicationMessage) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OnuIndicationMessage) ProtoMessage() {}
+
+func (x *OnuIndicationMessage) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_inter_adapter_proto_msgTypes[5]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OnuIndicationMessage.ProtoReflect.Descriptor instead.
 func (*OnuIndicationMessage) Descriptor() ([]byte, []int) {
-	return fileDescriptor_a316e60f0a1fb837, []int{5}
+	return file_voltha_protos_inter_adapter_proto_rawDescGZIP(), []int{5}
 }
 
-func (m *OnuIndicationMessage) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OnuIndicationMessage.Unmarshal(m, b)
-}
-func (m *OnuIndicationMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OnuIndicationMessage.Marshal(b, m, deterministic)
-}
-func (m *OnuIndicationMessage) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OnuIndicationMessage.Merge(m, src)
-}
-func (m *OnuIndicationMessage) XXX_Size() int {
-	return xxx_messageInfo_OnuIndicationMessage.Size(m)
-}
-func (m *OnuIndicationMessage) XXX_DiscardUnknown() {
-	xxx_messageInfo_OnuIndicationMessage.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OnuIndicationMessage proto.InternalMessageInfo
-
-func (m *OnuIndicationMessage) GetDeviceId() string {
-	if m != nil {
-		return m.DeviceId
+func (x *OnuIndicationMessage) GetDeviceId() string {
+	if x != nil {
+		return x.DeviceId
 	}
 	return ""
 }
 
-func (m *OnuIndicationMessage) GetOnuIndication() *openolt.OnuIndication {
-	if m != nil {
-		return m.OnuIndication
+func (x *OnuIndicationMessage) GetOnuIndication() *openolt.OnuIndication {
+	if x != nil {
+		return x.OnuIndication
 	}
 	return nil
 }
 
 type TechProfileInstanceRequestMessage struct {
-	DeviceId             string   `protobuf:"bytes,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
-	TpInstancePath       string   `protobuf:"bytes,2,opt,name=tp_instance_path,json=tpInstancePath,proto3" json:"tp_instance_path,omitempty"`
-	ParentDeviceId       string   `protobuf:"bytes,3,opt,name=parent_device_id,json=parentDeviceId,proto3" json:"parent_device_id,omitempty"`
-	ParentPonPort        uint32   `protobuf:"varint,4,opt,name=parent_pon_port,json=parentPonPort,proto3" json:"parent_pon_port,omitempty"`
-	OnuId                uint32   `protobuf:"varint,5,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
-	UniId                uint32   `protobuf:"varint,6,opt,name=uni_id,json=uniId,proto3" json:"uni_id,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state          protoimpl.MessageState `protogen:"open.v1"`
+	DeviceId       string                 `protobuf:"bytes,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
+	TpInstancePath string                 `protobuf:"bytes,2,opt,name=tp_instance_path,json=tpInstancePath,proto3" json:"tp_instance_path,omitempty"` // technology profile instance path
+	ParentDeviceId string                 `protobuf:"bytes,3,opt,name=parent_device_id,json=parentDeviceId,proto3" json:"parent_device_id,omitempty"`
+	ParentPonPort  uint32                 `protobuf:"varint,4,opt,name=parent_pon_port,json=parentPonPort,proto3" json:"parent_pon_port,omitempty"`
+	OnuId          uint32                 `protobuf:"varint,5,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
+	UniId          uint32                 `protobuf:"varint,6,opt,name=uni_id,json=uniId,proto3" json:"uni_id,omitempty"`
+	unknownFields  protoimpl.UnknownFields
+	sizeCache      protoimpl.SizeCache
 }
 
-func (m *TechProfileInstanceRequestMessage) Reset()         { *m = TechProfileInstanceRequestMessage{} }
-func (m *TechProfileInstanceRequestMessage) String() string { return proto.CompactTextString(m) }
-func (*TechProfileInstanceRequestMessage) ProtoMessage()    {}
+func (x *TechProfileInstanceRequestMessage) Reset() {
+	*x = TechProfileInstanceRequestMessage{}
+	mi := &file_voltha_protos_inter_adapter_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *TechProfileInstanceRequestMessage) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TechProfileInstanceRequestMessage) ProtoMessage() {}
+
+func (x *TechProfileInstanceRequestMessage) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_inter_adapter_proto_msgTypes[6]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use TechProfileInstanceRequestMessage.ProtoReflect.Descriptor instead.
 func (*TechProfileInstanceRequestMessage) Descriptor() ([]byte, []int) {
-	return fileDescriptor_a316e60f0a1fb837, []int{6}
+	return file_voltha_protos_inter_adapter_proto_rawDescGZIP(), []int{6}
 }
 
-func (m *TechProfileInstanceRequestMessage) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_TechProfileInstanceRequestMessage.Unmarshal(m, b)
-}
-func (m *TechProfileInstanceRequestMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_TechProfileInstanceRequestMessage.Marshal(b, m, deterministic)
-}
-func (m *TechProfileInstanceRequestMessage) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_TechProfileInstanceRequestMessage.Merge(m, src)
-}
-func (m *TechProfileInstanceRequestMessage) XXX_Size() int {
-	return xxx_messageInfo_TechProfileInstanceRequestMessage.Size(m)
-}
-func (m *TechProfileInstanceRequestMessage) XXX_DiscardUnknown() {
-	xxx_messageInfo_TechProfileInstanceRequestMessage.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_TechProfileInstanceRequestMessage proto.InternalMessageInfo
-
-func (m *TechProfileInstanceRequestMessage) GetDeviceId() string {
-	if m != nil {
-		return m.DeviceId
+func (x *TechProfileInstanceRequestMessage) GetDeviceId() string {
+	if x != nil {
+		return x.DeviceId
 	}
 	return ""
 }
 
-func (m *TechProfileInstanceRequestMessage) GetTpInstancePath() string {
-	if m != nil {
-		return m.TpInstancePath
+func (x *TechProfileInstanceRequestMessage) GetTpInstancePath() string {
+	if x != nil {
+		return x.TpInstancePath
 	}
 	return ""
 }
 
-func (m *TechProfileInstanceRequestMessage) GetParentDeviceId() string {
-	if m != nil {
-		return m.ParentDeviceId
+func (x *TechProfileInstanceRequestMessage) GetParentDeviceId() string {
+	if x != nil {
+		return x.ParentDeviceId
 	}
 	return ""
 }
 
-func (m *TechProfileInstanceRequestMessage) GetParentPonPort() uint32 {
-	if m != nil {
-		return m.ParentPonPort
+func (x *TechProfileInstanceRequestMessage) GetParentPonPort() uint32 {
+	if x != nil {
+		return x.ParentPonPort
 	}
 	return 0
 }
 
-func (m *TechProfileInstanceRequestMessage) GetOnuId() uint32 {
-	if m != nil {
-		return m.OnuId
+func (x *TechProfileInstanceRequestMessage) GetOnuId() uint32 {
+	if x != nil {
+		return x.OnuId
 	}
 	return 0
 }
 
-func (m *TechProfileInstanceRequestMessage) GetUniId() uint32 {
-	if m != nil {
-		return m.UniId
+func (x *TechProfileInstanceRequestMessage) GetUniId() uint32 {
+	if x != nil {
+		return x.UniId
 	}
 	return 0
 }
 
-func init() {
-	proto.RegisterType((*OmciMessage)(nil), "inter_adapter.OmciMessage")
-	proto.RegisterType((*OmciMessages)(nil), "inter_adapter.OmciMessages")
-	proto.RegisterType((*TechProfileDownloadMessage)(nil), "inter_adapter.TechProfileDownloadMessage")
-	proto.RegisterType((*DeleteGemPortMessage)(nil), "inter_adapter.DeleteGemPortMessage")
-	proto.RegisterType((*DeleteTcontMessage)(nil), "inter_adapter.DeleteTcontMessage")
-	proto.RegisterType((*OnuIndicationMessage)(nil), "inter_adapter.OnuIndicationMessage")
-	proto.RegisterType((*TechProfileInstanceRequestMessage)(nil), "inter_adapter.TechProfileInstanceRequestMessage")
+var File_voltha_protos_inter_adapter_proto protoreflect.FileDescriptor
+
+const file_voltha_protos_inter_adapter_proto_rawDesc = "" +
+	"\n" +
+	"!voltha_protos/inter_adapter.proto\x12\rinter_adapter\x1a\x1avoltha_protos/common.proto\x1a\x1avoltha_protos/voltha.proto\x1a voltha_protos/tech_profile.proto\x1a\x1bvoltha_protos/openolt.proto\x1a\x1avoltha_protos/device.proto\"\xff\x01\n" +
+	"\vOmciMessage\x12\x18\n" +
+	"\amessage\x18\x01 \x01(\fR\amessage\x12B\n" +
+	"\x0econnect_status\x18\x02 \x01(\x0e2\x1b.common.ConnectStatus.TypesR\rconnectStatus\x12@\n" +
+	"\rproxy_address\x18\x03 \x01(\v2\x1b.device.Device.ProxyAddressR\fproxyAddress\x12(\n" +
+	"\x10parent_device_id\x18\x04 \x01(\tR\x0eparentDeviceId\x12&\n" +
+	"\x0fchild_device_id\x18\x05 \x01(\tR\rchildDeviceId\"\x82\x02\n" +
+	"\fOmciMessages\x12\x1a\n" +
+	"\bmessages\x18\x01 \x03(\fR\bmessages\x12B\n" +
+	"\x0econnect_status\x18\x02 \x01(\x0e2\x1b.common.ConnectStatus.TypesR\rconnectStatus\x12@\n" +
+	"\rproxy_address\x18\x03 \x01(\v2\x1b.device.Device.ProxyAddressR\fproxyAddress\x12(\n" +
+	"\x10parent_device_id\x18\x04 \x01(\tR\x0eparentDeviceId\x12&\n" +
+	"\x0fchild_device_id\x18\x05 \x01(\tR\rchildDeviceId\"\xa7\x02\n" +
+	"\x1aTechProfileDownloadMessage\x12\x1b\n" +
+	"\tdevice_id\x18\x01 \x01(\tR\bdeviceId\x12\x15\n" +
+	"\x06uni_id\x18\x02 \x01(\rR\x05uniId\x12(\n" +
+	"\x10tp_instance_path\x18\x03 \x01(\tR\x0etpInstancePath\x12D\n" +
+	"\vtp_instance\x18\x04 \x01(\v2!.tech_profile.TechProfileInstanceH\x00R\n" +
+	"tpInstance\x12Q\n" +
+	"\x10epon_tp_instance\x18\x05 \x01(\v2%.tech_profile.EponTechProfileInstanceH\x00R\x0eeponTpInstanceB\x12\n" +
+	"\x10tech_tp_instance\"\x94\x01\n" +
+	"\x14DeleteGemPortMessage\x12\x1b\n" +
+	"\tdevice_id\x18\x01 \x01(\tR\bdeviceId\x12\x15\n" +
+	"\x06uni_id\x18\x02 \x01(\rR\x05uniId\x12(\n" +
+	"\x10tp_instance_path\x18\x03 \x01(\tR\x0etpInstancePath\x12\x1e\n" +
+	"\vgem_port_id\x18\x04 \x01(\rR\tgemPortId\"\x8d\x01\n" +
+	"\x12DeleteTcontMessage\x12\x1b\n" +
+	"\tdevice_id\x18\x01 \x01(\tR\bdeviceId\x12\x15\n" +
+	"\x06uni_id\x18\x02 \x01(\rR\x05uniId\x12(\n" +
+	"\x10tp_instance_path\x18\x03 \x01(\tR\x0etpInstancePath\x12\x19\n" +
+	"\balloc_id\x18\x04 \x01(\rR\aallocId\"r\n" +
+	"\x14OnuIndicationMessage\x12\x1b\n" +
+	"\tdevice_id\x18\x01 \x01(\tR\bdeviceId\x12=\n" +
+	"\x0eonu_indication\x18\x02 \x01(\v2\x16.openolt.OnuIndicationR\ronuIndication\"\xea\x01\n" +
+	"!TechProfileInstanceRequestMessage\x12\x1b\n" +
+	"\tdevice_id\x18\x01 \x01(\tR\bdeviceId\x12(\n" +
+	"\x10tp_instance_path\x18\x02 \x01(\tR\x0etpInstancePath\x12(\n" +
+	"\x10parent_device_id\x18\x03 \x01(\tR\x0eparentDeviceId\x12&\n" +
+	"\x0fparent_pon_port\x18\x04 \x01(\rR\rparentPonPort\x12\x15\n" +
+	"\x06onu_id\x18\x05 \x01(\rR\x05onuId\x12\x15\n" +
+	"\x06uni_id\x18\x06 \x01(\rR\x05uniIdBZ\n" +
+	"!org.opencord.voltha.inter_adapterZ5github.com/opencord/voltha-protos/v5/go/inter_adapterb\x06proto3"
+
+var (
+	file_voltha_protos_inter_adapter_proto_rawDescOnce sync.Once
+	file_voltha_protos_inter_adapter_proto_rawDescData []byte
+)
+
+func file_voltha_protos_inter_adapter_proto_rawDescGZIP() []byte {
+	file_voltha_protos_inter_adapter_proto_rawDescOnce.Do(func() {
+		file_voltha_protos_inter_adapter_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_voltha_protos_inter_adapter_proto_rawDesc), len(file_voltha_protos_inter_adapter_proto_rawDesc)))
+	})
+	return file_voltha_protos_inter_adapter_proto_rawDescData
 }
 
-func init() { proto.RegisterFile("voltha_protos/inter_adapter.proto", fileDescriptor_a316e60f0a1fb837) }
+var file_voltha_protos_inter_adapter_proto_msgTypes = make([]protoimpl.MessageInfo, 7)
+var file_voltha_protos_inter_adapter_proto_goTypes = []any{
+	(*OmciMessage)(nil),                          // 0: inter_adapter.OmciMessage
+	(*OmciMessages)(nil),                         // 1: inter_adapter.OmciMessages
+	(*TechProfileDownloadMessage)(nil),           // 2: inter_adapter.TechProfileDownloadMessage
+	(*DeleteGemPortMessage)(nil),                 // 3: inter_adapter.DeleteGemPortMessage
+	(*DeleteTcontMessage)(nil),                   // 4: inter_adapter.DeleteTcontMessage
+	(*OnuIndicationMessage)(nil),                 // 5: inter_adapter.OnuIndicationMessage
+	(*TechProfileInstanceRequestMessage)(nil),    // 6: inter_adapter.TechProfileInstanceRequestMessage
+	(common.ConnectStatus_Types)(0),              // 7: common.ConnectStatus.Types
+	(*voltha.Device_ProxyAddress)(nil),           // 8: device.Device.ProxyAddress
+	(*tech_profile.TechProfileInstance)(nil),     // 9: tech_profile.TechProfileInstance
+	(*tech_profile.EponTechProfileInstance)(nil), // 10: tech_profile.EponTechProfileInstance
+	(*openolt.OnuIndication)(nil),                // 11: openolt.OnuIndication
+}
+var file_voltha_protos_inter_adapter_proto_depIdxs = []int32{
+	7,  // 0: inter_adapter.OmciMessage.connect_status:type_name -> common.ConnectStatus.Types
+	8,  // 1: inter_adapter.OmciMessage.proxy_address:type_name -> device.Device.ProxyAddress
+	7,  // 2: inter_adapter.OmciMessages.connect_status:type_name -> common.ConnectStatus.Types
+	8,  // 3: inter_adapter.OmciMessages.proxy_address:type_name -> device.Device.ProxyAddress
+	9,  // 4: inter_adapter.TechProfileDownloadMessage.tp_instance:type_name -> tech_profile.TechProfileInstance
+	10, // 5: inter_adapter.TechProfileDownloadMessage.epon_tp_instance:type_name -> tech_profile.EponTechProfileInstance
+	11, // 6: inter_adapter.OnuIndicationMessage.onu_indication:type_name -> openolt.OnuIndication
+	7,  // [7:7] is the sub-list for method output_type
+	7,  // [7:7] is the sub-list for method input_type
+	7,  // [7:7] is the sub-list for extension type_name
+	7,  // [7:7] is the sub-list for extension extendee
+	0,  // [0:7] is the sub-list for field type_name
+}
 
-var fileDescriptor_a316e60f0a1fb837 = []byte{
-	// 632 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x55, 0xc1, 0x6e, 0xd3, 0x4c,
-	0x10, 0xfe, 0x9d, 0xfe, 0x69, 0x9b, 0x49, 0x1c, 0x2a, 0xab, 0xa0, 0x90, 0x48, 0x28, 0x89, 0x04,
-	0xca, 0x05, 0x57, 0x0a, 0xea, 0x11, 0x09, 0x4a, 0x10, 0xe4, 0x80, 0x1a, 0x4c, 0x4e, 0xbd, 0x58,
-	0xdb, 0xdd, 0x25, 0x5e, 0xc9, 0xd9, 0x59, 0xec, 0x75, 0xa1, 0x57, 0xee, 0xdc, 0x78, 0x07, 0xde,
-	0x8d, 0x97, 0x00, 0x79, 0xd7, 0x6e, 0x6c, 0x64, 0xa4, 0x9e, 0x7a, 0xe0, 0x14, 0xcf, 0xcc, 0x37,
-	0x5f, 0xbe, 0x99, 0xd9, 0xdd, 0x81, 0xc9, 0x15, 0xc6, 0x3a, 0x22, 0xa1, 0x4a, 0x50, 0x63, 0x7a,
-	0x22, 0xa4, 0xe6, 0x49, 0x48, 0x18, 0x51, 0x9a, 0x27, 0xbe, 0x71, 0x7a, 0x6e, 0xcd, 0x39, 0x1c,
-	0xd6, 0x33, 0x28, 0x6e, 0xb7, 0x28, 0x2d, 0xf4, 0xcf, 0x98, 0xb5, 0x8a, 0xd8, 0xb8, 0x1e, 0xd3,
-	0x9c, 0x46, 0xf9, 0xf7, 0x47, 0x11, 0xf3, 0x02, 0x31, 0xaa, 0x23, 0x50, 0x71, 0x89, 0xb1, 0x6e,
-	0xa6, 0x66, 0xfc, 0x4a, 0xd0, 0x22, 0x71, 0xfa, 0xcb, 0x81, 0xee, 0xf9, 0x96, 0x8a, 0x77, 0x3c,
-	0x4d, 0xc9, 0x86, 0x7b, 0x03, 0x38, 0xd8, 0xda, 0xcf, 0x81, 0x33, 0x76, 0x66, 0xbd, 0xa0, 0x34,
-	0xbd, 0x33, 0xe8, 0x53, 0x94, 0x92, 0x53, 0x1d, 0xa6, 0x9a, 0xe8, 0x2c, 0x1d, 0xb4, 0xc6, 0xce,
-	0xac, 0x3f, 0x1f, 0xf9, 0x45, 0x1d, 0xaf, 0x6c, 0xf4, 0x83, 0x09, 0xfa, 0xeb, 0x6b, 0xc5, 0xd3,
-	0xc0, 0xa5, 0x55, 0xa7, 0xf7, 0x02, 0x5c, 0x95, 0xe0, 0x97, 0xeb, 0x90, 0x30, 0x96, 0xf0, 0x34,
-	0x1d, 0xec, 0x8d, 0x9d, 0x59, 0x77, 0x3e, 0xf2, 0x0b, 0x4d, 0x0b, 0xfb, 0xb3, 0xca, 0x31, 0x2f,
-	0x2d, 0x24, 0xe8, 0xa9, 0x8a, 0xe5, 0xcd, 0xe0, 0x48, 0x91, 0x84, 0x4b, 0x1d, 0xda, 0x94, 0x50,
-	0xb0, 0xc1, 0xff, 0x63, 0x67, 0xd6, 0x09, 0xfa, 0xd6, 0x6f, 0x29, 0x96, 0xcc, 0x7b, 0x02, 0xf7,
-	0x68, 0x24, 0x62, 0x56, 0x01, 0xb6, 0x0d, 0xd0, 0x35, 0xee, 0x12, 0x37, 0xfd, 0xda, 0x82, 0x5e,
-	0xa5, 0x03, 0xa9, 0x37, 0x84, 0xc3, 0xa2, 0xe6, 0x74, 0xe0, 0x8c, 0xf7, 0x66, 0xbd, 0xe0, 0xc6,
-	0xfe, 0x67, 0x9b, 0xf0, 0xa3, 0x05, 0xc3, 0x35, 0xa7, 0xd1, 0xca, 0x9e, 0xaa, 0x05, 0x7e, 0x96,
-	0x31, 0x12, 0x56, 0x9e, 0x8a, 0x11, 0x74, 0x76, 0x04, 0x8e, 0x21, 0x38, 0x64, 0xe5, 0x7f, 0xdc,
-	0x87, 0xfd, 0x4c, 0x8a, 0x3c, 0x92, 0xf7, 0xc2, 0x0d, 0xda, 0x99, 0x14, 0x4b, 0x96, 0x8b, 0xd4,
-	0x2a, 0x14, 0x32, 0xd5, 0x44, 0x52, 0x1e, 0x2a, 0xa2, 0x23, 0x53, 0x69, 0x27, 0xe8, 0x6b, 0xb5,
-	0x2c, 0xdc, 0x2b, 0xa2, 0x23, 0x6f, 0x01, 0xdd, 0x0a, 0xd2, 0x54, 0xd2, 0x9d, 0x4f, 0xfc, 0xda,
-	0x31, 0xaf, 0x88, 0x2b, 0x73, 0xdf, 0xfe, 0x17, 0xc0, 0x8e, 0xc9, 0x7b, 0x0f, 0x47, 0x5c, 0xa1,
-	0x0c, 0xab, 0x54, 0x6d, 0x43, 0xf5, 0xb8, 0x4e, 0xf5, 0x5a, 0xa1, 0x6c, 0xa6, 0xeb, 0xe7, 0x04,
-	0xeb, 0x1b, 0xca, 0x33, 0x0f, 0x8e, 0x4c, 0x66, 0x85, 0x72, 0xfa, 0xdd, 0x81, 0xe3, 0x05, 0x8f,
-	0xb9, 0xe6, 0x6f, 0xf8, 0x76, 0x85, 0x89, 0xbe, 0x9b, 0x1e, 0x3d, 0x82, 0xee, 0x86, 0x6f, 0x43,
-	0x85, 0x89, 0x2e, 0xa7, 0xed, 0x06, 0x9d, 0x8d, 0x95, 0xb0, 0x64, 0xd3, 0x6f, 0x0e, 0x78, 0x56,
-	0xd6, 0x9a, 0xa2, 0xbc, 0x23, 0x51, 0x0f, 0xe1, 0x90, 0xc4, 0x31, 0xd2, 0x9d, 0xa2, 0x03, 0x63,
-	0x2f, 0xd9, 0x34, 0x81, 0xe3, 0x73, 0x99, 0x2d, 0x25, 0x13, 0x94, 0x68, 0x81, 0xf2, 0x56, 0x82,
-	0x9e, 0x43, 0x1f, 0x65, 0x16, 0x8a, 0x9b, 0x2c, 0x23, 0xac, 0x3b, 0x7f, 0xe0, 0x97, 0x0f, 0x5a,
-	0x8d, 0x33, 0x70, 0xb1, 0x6a, 0x4e, 0x7f, 0x3a, 0x30, 0x69, 0x18, 0x6c, 0xc0, 0x3f, 0x65, 0x3c,
-	0xbd, 0x5d, 0x4b, 0x9a, 0x6a, 0x6f, 0x35, 0xd6, 0xde, 0x74, 0x07, 0xf7, 0xfe, 0x76, 0x07, 0x0b,
-	0x64, 0x7e, 0x3c, 0xf3, 0x09, 0x16, 0xcd, 0x72, 0xad, 0x7b, 0x85, 0x32, 0x1f, 0x62, 0x3e, 0x0e,
-	0x53, 0xbd, 0xbd, 0xa2, 0x6e, 0xd0, 0xce, 0xab, 0xab, 0x4e, 0x69, 0xbf, 0x32, 0xa5, 0xb3, 0x0b,
-	0x98, 0x60, 0xb2, 0x31, 0x8d, 0xa1, 0x98, 0x30, 0xbf, 0x58, 0x18, 0xb5, 0x85, 0x73, 0x71, 0xba,
-	0x11, 0x3a, 0xca, 0x2e, 0xf3, 0xc7, 0xe9, 0xa4, 0x44, 0x16, 0xab, 0xe5, 0x69, 0xb9, 0x68, 0x4e,
-	0x4f, 0x36, 0x58, 0x5f, 0x5e, 0x97, 0xfb, 0x26, 0xf6, 0xec, 0x77, 0x00, 0x00, 0x00, 0xff, 0xff,
-	0xeb, 0x5f, 0xd8, 0xf3, 0xe2, 0x06, 0x00, 0x00,
+func init() { file_voltha_protos_inter_adapter_proto_init() }
+func file_voltha_protos_inter_adapter_proto_init() {
+	if File_voltha_protos_inter_adapter_proto != nil {
+		return
+	}
+	file_voltha_protos_inter_adapter_proto_msgTypes[2].OneofWrappers = []any{
+		(*TechProfileDownloadMessage_TpInstance)(nil),
+		(*TechProfileDownloadMessage_EponTpInstance)(nil),
+	}
+	type x struct{}
+	out := protoimpl.TypeBuilder{
+		File: protoimpl.DescBuilder{
+			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+			RawDescriptor: unsafe.Slice(unsafe.StringData(file_voltha_protos_inter_adapter_proto_rawDesc), len(file_voltha_protos_inter_adapter_proto_rawDesc)),
+			NumEnums:      0,
+			NumMessages:   7,
+			NumExtensions: 0,
+			NumServices:   0,
+		},
+		GoTypes:           file_voltha_protos_inter_adapter_proto_goTypes,
+		DependencyIndexes: file_voltha_protos_inter_adapter_proto_depIdxs,
+		MessageInfos:      file_voltha_protos_inter_adapter_proto_msgTypes,
+	}.Build()
+	File_voltha_protos_inter_adapter_proto = out.File
+	file_voltha_protos_inter_adapter_proto_goTypes = nil
+	file_voltha_protos_inter_adapter_proto_depIdxs = nil
 }
diff --git a/go/olt_inter_adapter_service/olt_inter_adapter_service.pb.go b/go/olt_inter_adapter_service/olt_inter_adapter_service.pb.go
index 1e5c21c..1be5d31 100644
--- a/go/olt_inter_adapter_service/olt_inter_adapter_service.pb.go
+++ b/go/olt_inter_adapter_service/olt_inter_adapter_service.pb.go
@@ -1,284 +1,85 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// 	protoc-gen-go v1.36.11
+// 	protoc        v4.25.8
 // source: voltha_protos/olt_inter_adapter_service.proto
 
 package olt_inter_adapter_service
 
 import (
-	context "context"
-	fmt "fmt"
-	proto "github.com/golang/protobuf/proto"
-	empty "github.com/golang/protobuf/ptypes/empty"
 	common "github.com/opencord/voltha-protos/v5/go/common"
 	health "github.com/opencord/voltha-protos/v5/go/health"
 	inter_adapter "github.com/opencord/voltha-protos/v5/go/inter_adapter"
-	grpc "google.golang.org/grpc"
-	codes "google.golang.org/grpc/codes"
-	status "google.golang.org/grpc/status"
-	math "math"
+	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+	emptypb "google.golang.org/protobuf/types/known/emptypb"
+	reflect "reflect"
+	unsafe "unsafe"
 )
 
-// Reference imports to suppress errors if they are not otherwise used.
-var _ = proto.Marshal
-var _ = fmt.Errorf
-var _ = math.Inf
+const (
+	// Verify that this generated code is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+	// Verify that runtime/protoimpl is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
 
-// 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
+var File_voltha_protos_olt_inter_adapter_service_proto protoreflect.FileDescriptor
 
-func init() {
-	proto.RegisterFile("voltha_protos/olt_inter_adapter_service.proto", fileDescriptor_3ddb40a5aae0f6e1)
+const file_voltha_protos_olt_inter_adapter_service_proto_rawDesc = "" +
+	"\n" +
+	"-voltha_protos/olt_inter_adapter_service.proto\x12\x19olt_inter_adapter_service\x1a\x1avoltha_protos/common.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a!voltha_protos/inter_adapter.proto\x1a\x1avoltha_protos/health.proto2\xe2\x02\n" +
+	"\x16OltInterAdapterService\x12?\n" +
+	"\x0fGetHealthStatus\x12\x12.common.Connection\x1a\x14.health.HealthStatus(\x010\x01\x12F\n" +
+	"\x10ProxyOmciRequest\x12\x1a.inter_adapter.OmciMessage\x1a\x16.google.protobuf.Empty\x12H\n" +
+	"\x11ProxyOmciRequests\x12\x1b.inter_adapter.OmciMessages\x1a\x16.google.protobuf.Empty\x12u\n" +
+	"\x16GetTechProfileInstance\x120.inter_adapter.TechProfileInstanceRequestMessage\x1a).inter_adapter.TechProfileDownloadMessageB\x90\x01\n" +
+	"-org.opencord.voltha.olt_inter_adapter_serviceB\x1cVolthaOltInterAdapterServiceZAgithub.com/opencord/voltha-protos/v5/go/olt_inter_adapter_serviceb\x06proto3"
+
+var file_voltha_protos_olt_inter_adapter_service_proto_goTypes = []any{
+	(*common.Connection)(nil),                               // 0: common.Connection
+	(*inter_adapter.OmciMessage)(nil),                       // 1: inter_adapter.OmciMessage
+	(*inter_adapter.OmciMessages)(nil),                      // 2: inter_adapter.OmciMessages
+	(*inter_adapter.TechProfileInstanceRequestMessage)(nil), // 3: inter_adapter.TechProfileInstanceRequestMessage
+	(*health.HealthStatus)(nil),                             // 4: health.HealthStatus
+	(*emptypb.Empty)(nil),                                   // 5: google.protobuf.Empty
+	(*inter_adapter.TechProfileDownloadMessage)(nil),        // 6: inter_adapter.TechProfileDownloadMessage
+}
+var file_voltha_protos_olt_inter_adapter_service_proto_depIdxs = []int32{
+	0, // 0: olt_inter_adapter_service.OltInterAdapterService.GetHealthStatus:input_type -> common.Connection
+	1, // 1: olt_inter_adapter_service.OltInterAdapterService.ProxyOmciRequest:input_type -> inter_adapter.OmciMessage
+	2, // 2: olt_inter_adapter_service.OltInterAdapterService.ProxyOmciRequests:input_type -> inter_adapter.OmciMessages
+	3, // 3: olt_inter_adapter_service.OltInterAdapterService.GetTechProfileInstance:input_type -> inter_adapter.TechProfileInstanceRequestMessage
+	4, // 4: olt_inter_adapter_service.OltInterAdapterService.GetHealthStatus:output_type -> health.HealthStatus
+	5, // 5: olt_inter_adapter_service.OltInterAdapterService.ProxyOmciRequest:output_type -> google.protobuf.Empty
+	5, // 6: olt_inter_adapter_service.OltInterAdapterService.ProxyOmciRequests:output_type -> google.protobuf.Empty
+	6, // 7: olt_inter_adapter_service.OltInterAdapterService.GetTechProfileInstance:output_type -> inter_adapter.TechProfileDownloadMessage
+	4, // [4:8] is the sub-list for method output_type
+	0, // [0:4] is the sub-list for method input_type
+	0, // [0:0] is the sub-list for extension type_name
+	0, // [0:0] is the sub-list for extension extendee
+	0, // [0:0] is the sub-list for field type_name
 }
 
-var fileDescriptor_3ddb40a5aae0f6e1 = []byte{
-	// 337 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x92, 0xcf, 0x4e, 0xe3, 0x30,
-	0x10, 0x87, 0xd5, 0x3d, 0xec, 0xc1, 0x97, 0xdd, 0xb5, 0x56, 0x95, 0x48, 0xb9, 0x70, 0x83, 0x43,
-	0x9d, 0x0a, 0xc4, 0x19, 0xb5, 0xfc, 0x69, 0x7b, 0x40, 0xad, 0x28, 0xe2, 0xc0, 0xa5, 0x72, 0xdd,
-	0x69, 0x12, 0xc9, 0xf1, 0x04, 0x7b, 0x52, 0xe8, 0x5b, 0xf0, 0x8c, 0x3c, 0x09, 0x4a, 0xec, 0x4a,
-	0xa4, 0x6a, 0x4e, 0x51, 0x34, 0xdf, 0xef, 0xf3, 0x8c, 0x66, 0x58, 0x7f, 0x8b, 0x9a, 0x52, 0xb9,
-	0x2c, 0x2c, 0x12, 0xba, 0x18, 0x35, 0x2d, 0x33, 0x43, 0x60, 0x97, 0x72, 0x2d, 0x8b, 0xea, 0xeb,
-	0xc0, 0x6e, 0x33, 0x05, 0xa2, 0x06, 0xf8, 0x49, 0x2b, 0x10, 0x45, 0x4d, 0x93, 0xc2, 0x3c, 0x47,
-	0xe3, 0x63, 0x51, 0x2f, 0x41, 0x4c, 0x34, 0xc4, 0xf5, 0xdf, 0xaa, 0xdc, 0xc4, 0x90, 0x17, 0xb4,
-	0x0b, 0xc5, 0xb3, 0x66, 0xb0, 0x61, 0x0f, 0xc8, 0x81, 0x3b, 0x05, 0xa9, 0x29, 0xf5, 0xb5, 0xcb,
-	0xaf, 0x5f, 0xac, 0x3b, 0xd3, 0x34, 0xad, 0x62, 0x43, 0x9f, 0x5a, 0xf8, 0x96, 0xf8, 0x0d, 0xfb,
-	0x33, 0x06, 0x9a, 0xd4, 0xf4, 0x82, 0x24, 0x95, 0x8e, 0x73, 0x11, 0x1a, 0xbb, 0x45, 0x63, 0x40,
-	0x51, 0x86, 0x26, 0xfa, 0x2f, 0x82, 0xf0, 0x27, 0x79, 0xde, 0x19, 0x74, 0xf8, 0x03, 0xfb, 0x3b,
-	0xb7, 0xf8, 0xb1, 0x9b, 0xe5, 0x2a, 0x7b, 0x82, 0xb7, 0x12, 0x1c, 0xf1, 0x48, 0x34, 0x3b, 0xac,
-	0x6a, 0x8f, 0xe0, 0x9c, 0x4c, 0x20, 0xea, 0x0a, 0x3f, 0xa8, 0xd8, 0x0f, 0x2a, 0xee, 0xab, 0x41,
-	0xf9, 0x84, 0xfd, 0x3b, 0xf4, 0x38, 0xde, 0x6b, 0x17, 0xb9, 0x56, 0x53, 0xc9, 0xba, 0x63, 0xa0,
-	0x67, 0x50, 0xe9, 0xdc, 0xe2, 0x26, 0xd3, 0x30, 0x35, 0x8e, 0xa4, 0x51, 0xc0, 0x07, 0x07, 0xba,
-	0x23, 0x4c, 0x78, 0x7a, 0xdf, 0xed, 0x45, 0x7b, 0xe2, 0x0e, 0xdf, 0x8d, 0x46, 0xb9, 0x0e, 0xe8,
-	0xe8, 0xb3, 0xc3, 0xfa, 0x68, 0x13, 0x81, 0x05, 0x18, 0x85, 0x76, 0x2d, 0xfc, 0x42, 0x44, 0xeb,
-	0x39, 0x8c, 0x4e, 0x5f, 0x6a, 0xe2, 0xf8, 0x66, 0x5e, 0x87, 0x49, 0x46, 0x69, 0xb9, 0xaa, 0x96,
-	0x11, 0xef, 0x9d, 0xb1, 0x77, 0xf6, 0xc3, 0x92, 0xb7, 0xd7, 0x71, 0x82, 0xed, 0x07, 0xb9, 0xfa,
-	0x5d, 0x73, 0x57, 0xdf, 0x01, 0x00, 0x00, 0xff, 0xff, 0xd0, 0x9f, 0xd5, 0x8e, 0xc2, 0x02, 0x00,
-	0x00,
-}
-
-// Reference imports to suppress errors if they are not otherwise used.
-var _ context.Context
-var _ grpc.ClientConn
-
-// This is a compile-time assertion to ensure that this generated file
-// is compatible with the grpc package it is being compiled against.
-const _ = grpc.SupportPackageIsVersion4
-
-// OltInterAdapterServiceClient is the client API for OltInterAdapterService service.
-//
-// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
-type OltInterAdapterServiceClient interface {
-	// GetHealthStatus is used by a OltInterAdapterService client to detect a connection
-	// lost with the gRPC server hosting the OltInterAdapterService service
-	GetHealthStatus(ctx context.Context, opts ...grpc.CallOption) (OltInterAdapterService_GetHealthStatusClient, error)
-	ProxyOmciRequest(ctx context.Context, in *inter_adapter.OmciMessage, opts ...grpc.CallOption) (*empty.Empty, error)
-	ProxyOmciRequests(ctx context.Context, in *inter_adapter.OmciMessages, opts ...grpc.CallOption) (*empty.Empty, error)
-	GetTechProfileInstance(ctx context.Context, in *inter_adapter.TechProfileInstanceRequestMessage, opts ...grpc.CallOption) (*inter_adapter.TechProfileDownloadMessage, error)
-}
-
-type oltInterAdapterServiceClient struct {
-	cc *grpc.ClientConn
-}
-
-func NewOltInterAdapterServiceClient(cc *grpc.ClientConn) OltInterAdapterServiceClient {
-	return &oltInterAdapterServiceClient{cc}
-}
-
-func (c *oltInterAdapterServiceClient) GetHealthStatus(ctx context.Context, opts ...grpc.CallOption) (OltInterAdapterService_GetHealthStatusClient, error) {
-	stream, err := c.cc.NewStream(ctx, &_OltInterAdapterService_serviceDesc.Streams[0], "/olt_inter_adapter_service.OltInterAdapterService/GetHealthStatus", opts...)
-	if err != nil {
-		return nil, err
+func init() { file_voltha_protos_olt_inter_adapter_service_proto_init() }
+func file_voltha_protos_olt_inter_adapter_service_proto_init() {
+	if File_voltha_protos_olt_inter_adapter_service_proto != nil {
+		return
 	}
-	x := &oltInterAdapterServiceGetHealthStatusClient{stream}
-	return x, nil
-}
-
-type OltInterAdapterService_GetHealthStatusClient interface {
-	Send(*common.Connection) error
-	Recv() (*health.HealthStatus, error)
-	grpc.ClientStream
-}
-
-type oltInterAdapterServiceGetHealthStatusClient struct {
-	grpc.ClientStream
-}
-
-func (x *oltInterAdapterServiceGetHealthStatusClient) Send(m *common.Connection) error {
-	return x.ClientStream.SendMsg(m)
-}
-
-func (x *oltInterAdapterServiceGetHealthStatusClient) Recv() (*health.HealthStatus, error) {
-	m := new(health.HealthStatus)
-	if err := x.ClientStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
-
-func (c *oltInterAdapterServiceClient) ProxyOmciRequest(ctx context.Context, in *inter_adapter.OmciMessage, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/olt_inter_adapter_service.OltInterAdapterService/ProxyOmciRequest", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *oltInterAdapterServiceClient) ProxyOmciRequests(ctx context.Context, in *inter_adapter.OmciMessages, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/olt_inter_adapter_service.OltInterAdapterService/ProxyOmciRequests", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *oltInterAdapterServiceClient) GetTechProfileInstance(ctx context.Context, in *inter_adapter.TechProfileInstanceRequestMessage, opts ...grpc.CallOption) (*inter_adapter.TechProfileDownloadMessage, error) {
-	out := new(inter_adapter.TechProfileDownloadMessage)
-	err := c.cc.Invoke(ctx, "/olt_inter_adapter_service.OltInterAdapterService/GetTechProfileInstance", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-// OltInterAdapterServiceServer is the server API for OltInterAdapterService service.
-type OltInterAdapterServiceServer interface {
-	// GetHealthStatus is used by a OltInterAdapterService client to detect a connection
-	// lost with the gRPC server hosting the OltInterAdapterService service
-	GetHealthStatus(OltInterAdapterService_GetHealthStatusServer) error
-	ProxyOmciRequest(context.Context, *inter_adapter.OmciMessage) (*empty.Empty, error)
-	ProxyOmciRequests(context.Context, *inter_adapter.OmciMessages) (*empty.Empty, error)
-	GetTechProfileInstance(context.Context, *inter_adapter.TechProfileInstanceRequestMessage) (*inter_adapter.TechProfileDownloadMessage, error)
-}
-
-// UnimplementedOltInterAdapterServiceServer can be embedded to have forward compatible implementations.
-type UnimplementedOltInterAdapterServiceServer struct {
-}
-
-func (*UnimplementedOltInterAdapterServiceServer) GetHealthStatus(srv OltInterAdapterService_GetHealthStatusServer) error {
-	return status.Errorf(codes.Unimplemented, "method GetHealthStatus not implemented")
-}
-func (*UnimplementedOltInterAdapterServiceServer) ProxyOmciRequest(ctx context.Context, req *inter_adapter.OmciMessage) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method ProxyOmciRequest not implemented")
-}
-func (*UnimplementedOltInterAdapterServiceServer) ProxyOmciRequests(ctx context.Context, req *inter_adapter.OmciMessages) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method ProxyOmciRequests not implemented")
-}
-func (*UnimplementedOltInterAdapterServiceServer) GetTechProfileInstance(ctx context.Context, req *inter_adapter.TechProfileInstanceRequestMessage) (*inter_adapter.TechProfileDownloadMessage, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetTechProfileInstance not implemented")
-}
-
-func RegisterOltInterAdapterServiceServer(s *grpc.Server, srv OltInterAdapterServiceServer) {
-	s.RegisterService(&_OltInterAdapterService_serviceDesc, srv)
-}
-
-func _OltInterAdapterService_GetHealthStatus_Handler(srv interface{}, stream grpc.ServerStream) error {
-	return srv.(OltInterAdapterServiceServer).GetHealthStatus(&oltInterAdapterServiceGetHealthStatusServer{stream})
-}
-
-type OltInterAdapterService_GetHealthStatusServer interface {
-	Send(*health.HealthStatus) error
-	Recv() (*common.Connection, error)
-	grpc.ServerStream
-}
-
-type oltInterAdapterServiceGetHealthStatusServer struct {
-	grpc.ServerStream
-}
-
-func (x *oltInterAdapterServiceGetHealthStatusServer) Send(m *health.HealthStatus) error {
-	return x.ServerStream.SendMsg(m)
-}
-
-func (x *oltInterAdapterServiceGetHealthStatusServer) Recv() (*common.Connection, error) {
-	m := new(common.Connection)
-	if err := x.ServerStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
-
-func _OltInterAdapterService_ProxyOmciRequest_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(inter_adapter.OmciMessage)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(OltInterAdapterServiceServer).ProxyOmciRequest(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/olt_inter_adapter_service.OltInterAdapterService/ProxyOmciRequest",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(OltInterAdapterServiceServer).ProxyOmciRequest(ctx, req.(*inter_adapter.OmciMessage))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _OltInterAdapterService_ProxyOmciRequests_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(inter_adapter.OmciMessages)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(OltInterAdapterServiceServer).ProxyOmciRequests(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/olt_inter_adapter_service.OltInterAdapterService/ProxyOmciRequests",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(OltInterAdapterServiceServer).ProxyOmciRequests(ctx, req.(*inter_adapter.OmciMessages))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _OltInterAdapterService_GetTechProfileInstance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(inter_adapter.TechProfileInstanceRequestMessage)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(OltInterAdapterServiceServer).GetTechProfileInstance(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/olt_inter_adapter_service.OltInterAdapterService/GetTechProfileInstance",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(OltInterAdapterServiceServer).GetTechProfileInstance(ctx, req.(*inter_adapter.TechProfileInstanceRequestMessage))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-var _OltInterAdapterService_serviceDesc = grpc.ServiceDesc{
-	ServiceName: "olt_inter_adapter_service.OltInterAdapterService",
-	HandlerType: (*OltInterAdapterServiceServer)(nil),
-	Methods: []grpc.MethodDesc{
-		{
-			MethodName: "ProxyOmciRequest",
-			Handler:    _OltInterAdapterService_ProxyOmciRequest_Handler,
+	type x struct{}
+	out := protoimpl.TypeBuilder{
+		File: protoimpl.DescBuilder{
+			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+			RawDescriptor: unsafe.Slice(unsafe.StringData(file_voltha_protos_olt_inter_adapter_service_proto_rawDesc), len(file_voltha_protos_olt_inter_adapter_service_proto_rawDesc)),
+			NumEnums:      0,
+			NumMessages:   0,
+			NumExtensions: 0,
+			NumServices:   1,
 		},
-		{
-			MethodName: "ProxyOmciRequests",
-			Handler:    _OltInterAdapterService_ProxyOmciRequests_Handler,
-		},
-		{
-			MethodName: "GetTechProfileInstance",
-			Handler:    _OltInterAdapterService_GetTechProfileInstance_Handler,
-		},
-	},
-	Streams: []grpc.StreamDesc{
-		{
-			StreamName:    "GetHealthStatus",
-			Handler:       _OltInterAdapterService_GetHealthStatus_Handler,
-			ServerStreams: true,
-			ClientStreams: true,
-		},
-	},
-	Metadata: "voltha_protos/olt_inter_adapter_service.proto",
+		GoTypes:           file_voltha_protos_olt_inter_adapter_service_proto_goTypes,
+		DependencyIndexes: file_voltha_protos_olt_inter_adapter_service_proto_depIdxs,
+	}.Build()
+	File_voltha_protos_olt_inter_adapter_service_proto = out.File
+	file_voltha_protos_olt_inter_adapter_service_proto_goTypes = nil
+	file_voltha_protos_olt_inter_adapter_service_proto_depIdxs = nil
 }
diff --git a/go/olt_inter_adapter_service/olt_inter_adapter_service_grpc.pb.go b/go/olt_inter_adapter_service/olt_inter_adapter_service_grpc.pb.go
new file mode 100644
index 0000000..472b828
--- /dev/null
+++ b/go/olt_inter_adapter_service/olt_inter_adapter_service_grpc.pb.go
@@ -0,0 +1,239 @@
+// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
+// versions:
+// - protoc-gen-go-grpc v1.6.0
+// - protoc             v4.25.8
+// source: voltha_protos/olt_inter_adapter_service.proto
+
+package olt_inter_adapter_service
+
+import (
+	context "context"
+	common "github.com/opencord/voltha-protos/v5/go/common"
+	health "github.com/opencord/voltha-protos/v5/go/health"
+	inter_adapter "github.com/opencord/voltha-protos/v5/go/inter_adapter"
+	grpc "google.golang.org/grpc"
+	codes "google.golang.org/grpc/codes"
+	status "google.golang.org/grpc/status"
+	emptypb "google.golang.org/protobuf/types/known/emptypb"
+)
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+// Requires gRPC-Go v1.64.0 or later.
+const _ = grpc.SupportPackageIsVersion9
+
+const (
+	OltInterAdapterService_GetHealthStatus_FullMethodName        = "/olt_inter_adapter_service.OltInterAdapterService/GetHealthStatus"
+	OltInterAdapterService_ProxyOmciRequest_FullMethodName       = "/olt_inter_adapter_service.OltInterAdapterService/ProxyOmciRequest"
+	OltInterAdapterService_ProxyOmciRequests_FullMethodName      = "/olt_inter_adapter_service.OltInterAdapterService/ProxyOmciRequests"
+	OltInterAdapterService_GetTechProfileInstance_FullMethodName = "/olt_inter_adapter_service.OltInterAdapterService/GetTechProfileInstance"
+)
+
+// OltInterAdapterServiceClient is the client API for OltInterAdapterService service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
+type OltInterAdapterServiceClient interface {
+	// GetHealthStatus is used by a OltInterAdapterService client to detect a connection
+	// lost with the gRPC server hosting the OltInterAdapterService service
+	GetHealthStatus(ctx context.Context, opts ...grpc.CallOption) (grpc.BidiStreamingClient[common.Connection, health.HealthStatus], error)
+	ProxyOmciRequest(ctx context.Context, in *inter_adapter.OmciMessage, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	ProxyOmciRequests(ctx context.Context, in *inter_adapter.OmciMessages, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	GetTechProfileInstance(ctx context.Context, in *inter_adapter.TechProfileInstanceRequestMessage, opts ...grpc.CallOption) (*inter_adapter.TechProfileDownloadMessage, error)
+}
+
+type oltInterAdapterServiceClient struct {
+	cc grpc.ClientConnInterface
+}
+
+func NewOltInterAdapterServiceClient(cc grpc.ClientConnInterface) OltInterAdapterServiceClient {
+	return &oltInterAdapterServiceClient{cc}
+}
+
+func (c *oltInterAdapterServiceClient) GetHealthStatus(ctx context.Context, opts ...grpc.CallOption) (grpc.BidiStreamingClient[common.Connection, health.HealthStatus], error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	stream, err := c.cc.NewStream(ctx, &OltInterAdapterService_ServiceDesc.Streams[0], OltInterAdapterService_GetHealthStatus_FullMethodName, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	x := &grpc.GenericClientStream[common.Connection, health.HealthStatus]{ClientStream: stream}
+	return x, nil
+}
+
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type OltInterAdapterService_GetHealthStatusClient = grpc.BidiStreamingClient[common.Connection, health.HealthStatus]
+
+func (c *oltInterAdapterServiceClient) ProxyOmciRequest(ctx context.Context, in *inter_adapter.OmciMessage, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, OltInterAdapterService_ProxyOmciRequest_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *oltInterAdapterServiceClient) ProxyOmciRequests(ctx context.Context, in *inter_adapter.OmciMessages, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, OltInterAdapterService_ProxyOmciRequests_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *oltInterAdapterServiceClient) GetTechProfileInstance(ctx context.Context, in *inter_adapter.TechProfileInstanceRequestMessage, opts ...grpc.CallOption) (*inter_adapter.TechProfileDownloadMessage, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(inter_adapter.TechProfileDownloadMessage)
+	err := c.cc.Invoke(ctx, OltInterAdapterService_GetTechProfileInstance_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+// OltInterAdapterServiceServer is the server API for OltInterAdapterService service.
+// All implementations must embed UnimplementedOltInterAdapterServiceServer
+// for forward compatibility.
+type OltInterAdapterServiceServer interface {
+	// GetHealthStatus is used by a OltInterAdapterService client to detect a connection
+	// lost with the gRPC server hosting the OltInterAdapterService service
+	GetHealthStatus(grpc.BidiStreamingServer[common.Connection, health.HealthStatus]) error
+	ProxyOmciRequest(context.Context, *inter_adapter.OmciMessage) (*emptypb.Empty, error)
+	ProxyOmciRequests(context.Context, *inter_adapter.OmciMessages) (*emptypb.Empty, error)
+	GetTechProfileInstance(context.Context, *inter_adapter.TechProfileInstanceRequestMessage) (*inter_adapter.TechProfileDownloadMessage, error)
+	mustEmbedUnimplementedOltInterAdapterServiceServer()
+}
+
+// UnimplementedOltInterAdapterServiceServer must be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedOltInterAdapterServiceServer struct{}
+
+func (UnimplementedOltInterAdapterServiceServer) GetHealthStatus(grpc.BidiStreamingServer[common.Connection, health.HealthStatus]) error {
+	return status.Error(codes.Unimplemented, "method GetHealthStatus not implemented")
+}
+func (UnimplementedOltInterAdapterServiceServer) ProxyOmciRequest(context.Context, *inter_adapter.OmciMessage) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method ProxyOmciRequest not implemented")
+}
+func (UnimplementedOltInterAdapterServiceServer) ProxyOmciRequests(context.Context, *inter_adapter.OmciMessages) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method ProxyOmciRequests not implemented")
+}
+func (UnimplementedOltInterAdapterServiceServer) GetTechProfileInstance(context.Context, *inter_adapter.TechProfileInstanceRequestMessage) (*inter_adapter.TechProfileDownloadMessage, error) {
+	return nil, status.Error(codes.Unimplemented, "method GetTechProfileInstance not implemented")
+}
+func (UnimplementedOltInterAdapterServiceServer) mustEmbedUnimplementedOltInterAdapterServiceServer() {
+}
+func (UnimplementedOltInterAdapterServiceServer) testEmbeddedByValue() {}
+
+// UnsafeOltInterAdapterServiceServer may be embedded to opt out of forward compatibility for this service.
+// Use of this interface is not recommended, as added methods to OltInterAdapterServiceServer will
+// result in compilation errors.
+type UnsafeOltInterAdapterServiceServer interface {
+	mustEmbedUnimplementedOltInterAdapterServiceServer()
+}
+
+func RegisterOltInterAdapterServiceServer(s grpc.ServiceRegistrar, srv OltInterAdapterServiceServer) {
+	// If the following call panics, it indicates UnimplementedOltInterAdapterServiceServer was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
+	s.RegisterService(&OltInterAdapterService_ServiceDesc, srv)
+}
+
+func _OltInterAdapterService_GetHealthStatus_Handler(srv interface{}, stream grpc.ServerStream) error {
+	return srv.(OltInterAdapterServiceServer).GetHealthStatus(&grpc.GenericServerStream[common.Connection, health.HealthStatus]{ServerStream: stream})
+}
+
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type OltInterAdapterService_GetHealthStatusServer = grpc.BidiStreamingServer[common.Connection, health.HealthStatus]
+
+func _OltInterAdapterService_ProxyOmciRequest_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(inter_adapter.OmciMessage)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(OltInterAdapterServiceServer).ProxyOmciRequest(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: OltInterAdapterService_ProxyOmciRequest_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(OltInterAdapterServiceServer).ProxyOmciRequest(ctx, req.(*inter_adapter.OmciMessage))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _OltInterAdapterService_ProxyOmciRequests_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(inter_adapter.OmciMessages)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(OltInterAdapterServiceServer).ProxyOmciRequests(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: OltInterAdapterService_ProxyOmciRequests_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(OltInterAdapterServiceServer).ProxyOmciRequests(ctx, req.(*inter_adapter.OmciMessages))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _OltInterAdapterService_GetTechProfileInstance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(inter_adapter.TechProfileInstanceRequestMessage)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(OltInterAdapterServiceServer).GetTechProfileInstance(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: OltInterAdapterService_GetTechProfileInstance_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(OltInterAdapterServiceServer).GetTechProfileInstance(ctx, req.(*inter_adapter.TechProfileInstanceRequestMessage))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+// OltInterAdapterService_ServiceDesc is the grpc.ServiceDesc for OltInterAdapterService service.
+// It's only intended for direct use with grpc.RegisterService,
+// and not to be introspected or modified (even as a copy)
+var OltInterAdapterService_ServiceDesc = grpc.ServiceDesc{
+	ServiceName: "olt_inter_adapter_service.OltInterAdapterService",
+	HandlerType: (*OltInterAdapterServiceServer)(nil),
+	Methods: []grpc.MethodDesc{
+		{
+			MethodName: "ProxyOmciRequest",
+			Handler:    _OltInterAdapterService_ProxyOmciRequest_Handler,
+		},
+		{
+			MethodName: "ProxyOmciRequests",
+			Handler:    _OltInterAdapterService_ProxyOmciRequests_Handler,
+		},
+		{
+			MethodName: "GetTechProfileInstance",
+			Handler:    _OltInterAdapterService_GetTechProfileInstance_Handler,
+		},
+	},
+	Streams: []grpc.StreamDesc{
+		{
+			StreamName:    "GetHealthStatus",
+			Handler:       _OltInterAdapterService_GetHealthStatus_Handler,
+			ServerStreams: true,
+			ClientStreams: true,
+		},
+	},
+	Metadata: "voltha_protos/olt_inter_adapter_service.proto",
+}
diff --git a/go/omci/omci_alarm_db.pb.go b/go/omci/omci_alarm_db.pb.go
index b585bbb..ad59db3 100644
--- a/go/omci/omci_alarm_db.pb.go
+++ b/go/omci/omci_alarm_db.pb.go
@@ -1,512 +1,642 @@
+//
+// Copyright 2018 - present the original author or authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
 // Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// 	protoc-gen-go v1.36.11
+// 	protoc        v4.25.8
 // source: voltha_protos/omci_alarm_db.proto
 
 package omci
 
 import (
-	fmt "fmt"
-	proto "github.com/golang/protobuf/proto"
-	math "math"
+	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+	reflect "reflect"
+	sync "sync"
+	unsafe "unsafe"
 )
 
-// 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
+const (
+	// Verify that this generated code is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+	// Verify that runtime/protoimpl is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
 
 type AlarmOpenOmciEventType_OpenOmciEventType int32
 
 const (
-	AlarmOpenOmciEventType_state_change AlarmOpenOmciEventType_OpenOmciEventType = 0
+	AlarmOpenOmciEventType_state_change AlarmOpenOmciEventType_OpenOmciEventType = 0 // A state machine has transitioned to a new state
 )
 
-var AlarmOpenOmciEventType_OpenOmciEventType_name = map[int32]string{
-	0: "state_change",
-}
+// Enum value maps for AlarmOpenOmciEventType_OpenOmciEventType.
+var (
+	AlarmOpenOmciEventType_OpenOmciEventType_name = map[int32]string{
+		0: "state_change",
+	}
+	AlarmOpenOmciEventType_OpenOmciEventType_value = map[string]int32{
+		"state_change": 0,
+	}
+)
 
-var AlarmOpenOmciEventType_OpenOmciEventType_value = map[string]int32{
-	"state_change": 0,
+func (x AlarmOpenOmciEventType_OpenOmciEventType) Enum() *AlarmOpenOmciEventType_OpenOmciEventType {
+	p := new(AlarmOpenOmciEventType_OpenOmciEventType)
+	*p = x
+	return p
 }
 
 func (x AlarmOpenOmciEventType_OpenOmciEventType) String() string {
-	return proto.EnumName(AlarmOpenOmciEventType_OpenOmciEventType_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (AlarmOpenOmciEventType_OpenOmciEventType) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_omci_alarm_db_proto_enumTypes[0].Descriptor()
+}
+
+func (AlarmOpenOmciEventType_OpenOmciEventType) Type() protoreflect.EnumType {
+	return &file_voltha_protos_omci_alarm_db_proto_enumTypes[0]
+}
+
+func (x AlarmOpenOmciEventType_OpenOmciEventType) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use AlarmOpenOmciEventType_OpenOmciEventType.Descriptor instead.
 func (AlarmOpenOmciEventType_OpenOmciEventType) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_8d41f1e38aadb08d, []int{6, 0}
+	return file_voltha_protos_omci_alarm_db_proto_rawDescGZIP(), []int{6, 0}
 }
 
 type AlarmAttributeData struct {
-	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
-	Value                string   `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Name          string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+	Value         string                 `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *AlarmAttributeData) Reset()         { *m = AlarmAttributeData{} }
-func (m *AlarmAttributeData) String() string { return proto.CompactTextString(m) }
-func (*AlarmAttributeData) ProtoMessage()    {}
+func (x *AlarmAttributeData) Reset() {
+	*x = AlarmAttributeData{}
+	mi := &file_voltha_protos_omci_alarm_db_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *AlarmAttributeData) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AlarmAttributeData) ProtoMessage() {}
+
+func (x *AlarmAttributeData) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_omci_alarm_db_proto_msgTypes[0]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use AlarmAttributeData.ProtoReflect.Descriptor instead.
 func (*AlarmAttributeData) Descriptor() ([]byte, []int) {
-	return fileDescriptor_8d41f1e38aadb08d, []int{0}
+	return file_voltha_protos_omci_alarm_db_proto_rawDescGZIP(), []int{0}
 }
 
-func (m *AlarmAttributeData) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_AlarmAttributeData.Unmarshal(m, b)
-}
-func (m *AlarmAttributeData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_AlarmAttributeData.Marshal(b, m, deterministic)
-}
-func (m *AlarmAttributeData) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_AlarmAttributeData.Merge(m, src)
-}
-func (m *AlarmAttributeData) XXX_Size() int {
-	return xxx_messageInfo_AlarmAttributeData.Size(m)
-}
-func (m *AlarmAttributeData) XXX_DiscardUnknown() {
-	xxx_messageInfo_AlarmAttributeData.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_AlarmAttributeData proto.InternalMessageInfo
-
-func (m *AlarmAttributeData) GetName() string {
-	if m != nil {
-		return m.Name
+func (x *AlarmAttributeData) GetName() string {
+	if x != nil {
+		return x.Name
 	}
 	return ""
 }
 
-func (m *AlarmAttributeData) GetValue() string {
-	if m != nil {
-		return m.Value
+func (x *AlarmAttributeData) GetValue() string {
+	if x != nil {
+		return x.Value
 	}
 	return ""
 }
 
 type AlarmInstanceData struct {
-	InstanceId           uint32                `protobuf:"varint,1,opt,name=instance_id,json=instanceId,proto3" json:"instance_id,omitempty"`
-	Created              string                `protobuf:"bytes,2,opt,name=created,proto3" json:"created,omitempty"`
-	Modified             string                `protobuf:"bytes,3,opt,name=modified,proto3" json:"modified,omitempty"`
-	Attributes           []*AlarmAttributeData `protobuf:"bytes,4,rep,name=attributes,proto3" json:"attributes,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
-	XXX_unrecognized     []byte                `json:"-"`
-	XXX_sizecache        int32                 `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	InstanceId    uint32                 `protobuf:"varint,1,opt,name=instance_id,json=instanceId,proto3" json:"instance_id,omitempty"`
+	Created       string                 `protobuf:"bytes,2,opt,name=created,proto3" json:"created,omitempty"`
+	Modified      string                 `protobuf:"bytes,3,opt,name=modified,proto3" json:"modified,omitempty"`
+	Attributes    []*AlarmAttributeData  `protobuf:"bytes,4,rep,name=attributes,proto3" json:"attributes,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *AlarmInstanceData) Reset()         { *m = AlarmInstanceData{} }
-func (m *AlarmInstanceData) String() string { return proto.CompactTextString(m) }
-func (*AlarmInstanceData) ProtoMessage()    {}
+func (x *AlarmInstanceData) Reset() {
+	*x = AlarmInstanceData{}
+	mi := &file_voltha_protos_omci_alarm_db_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *AlarmInstanceData) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AlarmInstanceData) ProtoMessage() {}
+
+func (x *AlarmInstanceData) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_omci_alarm_db_proto_msgTypes[1]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use AlarmInstanceData.ProtoReflect.Descriptor instead.
 func (*AlarmInstanceData) Descriptor() ([]byte, []int) {
-	return fileDescriptor_8d41f1e38aadb08d, []int{1}
+	return file_voltha_protos_omci_alarm_db_proto_rawDescGZIP(), []int{1}
 }
 
-func (m *AlarmInstanceData) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_AlarmInstanceData.Unmarshal(m, b)
-}
-func (m *AlarmInstanceData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_AlarmInstanceData.Marshal(b, m, deterministic)
-}
-func (m *AlarmInstanceData) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_AlarmInstanceData.Merge(m, src)
-}
-func (m *AlarmInstanceData) XXX_Size() int {
-	return xxx_messageInfo_AlarmInstanceData.Size(m)
-}
-func (m *AlarmInstanceData) XXX_DiscardUnknown() {
-	xxx_messageInfo_AlarmInstanceData.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_AlarmInstanceData proto.InternalMessageInfo
-
-func (m *AlarmInstanceData) GetInstanceId() uint32 {
-	if m != nil {
-		return m.InstanceId
+func (x *AlarmInstanceData) GetInstanceId() uint32 {
+	if x != nil {
+		return x.InstanceId
 	}
 	return 0
 }
 
-func (m *AlarmInstanceData) GetCreated() string {
-	if m != nil {
-		return m.Created
+func (x *AlarmInstanceData) GetCreated() string {
+	if x != nil {
+		return x.Created
 	}
 	return ""
 }
 
-func (m *AlarmInstanceData) GetModified() string {
-	if m != nil {
-		return m.Modified
+func (x *AlarmInstanceData) GetModified() string {
+	if x != nil {
+		return x.Modified
 	}
 	return ""
 }
 
-func (m *AlarmInstanceData) GetAttributes() []*AlarmAttributeData {
-	if m != nil {
-		return m.Attributes
+func (x *AlarmInstanceData) GetAttributes() []*AlarmAttributeData {
+	if x != nil {
+		return x.Attributes
 	}
 	return nil
 }
 
 type AlarmClassData struct {
-	ClassId              uint32               `protobuf:"varint,1,opt,name=class_id,json=classId,proto3" json:"class_id,omitempty"`
-	Instances            []*AlarmInstanceData `protobuf:"bytes,2,rep,name=instances,proto3" json:"instances,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
-	XXX_unrecognized     []byte               `json:"-"`
-	XXX_sizecache        int32                `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	ClassId       uint32                 `protobuf:"varint,1,opt,name=class_id,json=classId,proto3" json:"class_id,omitempty"`
+	Instances     []*AlarmInstanceData   `protobuf:"bytes,2,rep,name=instances,proto3" json:"instances,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *AlarmClassData) Reset()         { *m = AlarmClassData{} }
-func (m *AlarmClassData) String() string { return proto.CompactTextString(m) }
-func (*AlarmClassData) ProtoMessage()    {}
+func (x *AlarmClassData) Reset() {
+	*x = AlarmClassData{}
+	mi := &file_voltha_protos_omci_alarm_db_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *AlarmClassData) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AlarmClassData) ProtoMessage() {}
+
+func (x *AlarmClassData) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_omci_alarm_db_proto_msgTypes[2]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use AlarmClassData.ProtoReflect.Descriptor instead.
 func (*AlarmClassData) Descriptor() ([]byte, []int) {
-	return fileDescriptor_8d41f1e38aadb08d, []int{2}
+	return file_voltha_protos_omci_alarm_db_proto_rawDescGZIP(), []int{2}
 }
 
-func (m *AlarmClassData) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_AlarmClassData.Unmarshal(m, b)
-}
-func (m *AlarmClassData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_AlarmClassData.Marshal(b, m, deterministic)
-}
-func (m *AlarmClassData) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_AlarmClassData.Merge(m, src)
-}
-func (m *AlarmClassData) XXX_Size() int {
-	return xxx_messageInfo_AlarmClassData.Size(m)
-}
-func (m *AlarmClassData) XXX_DiscardUnknown() {
-	xxx_messageInfo_AlarmClassData.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_AlarmClassData proto.InternalMessageInfo
-
-func (m *AlarmClassData) GetClassId() uint32 {
-	if m != nil {
-		return m.ClassId
+func (x *AlarmClassData) GetClassId() uint32 {
+	if x != nil {
+		return x.ClassId
 	}
 	return 0
 }
 
-func (m *AlarmClassData) GetInstances() []*AlarmInstanceData {
-	if m != nil {
-		return m.Instances
+func (x *AlarmClassData) GetInstances() []*AlarmInstanceData {
+	if x != nil {
+		return x.Instances
 	}
 	return nil
 }
 
 type AlarmManagedEntity struct {
-	ClassId              uint32   `protobuf:"varint,1,opt,name=class_id,json=classId,proto3" json:"class_id,omitempty"`
-	Name                 string   `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	ClassId       uint32                 `protobuf:"varint,1,opt,name=class_id,json=classId,proto3" json:"class_id,omitempty"`
+	Name          string                 `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *AlarmManagedEntity) Reset()         { *m = AlarmManagedEntity{} }
-func (m *AlarmManagedEntity) String() string { return proto.CompactTextString(m) }
-func (*AlarmManagedEntity) ProtoMessage()    {}
+func (x *AlarmManagedEntity) Reset() {
+	*x = AlarmManagedEntity{}
+	mi := &file_voltha_protos_omci_alarm_db_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *AlarmManagedEntity) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AlarmManagedEntity) ProtoMessage() {}
+
+func (x *AlarmManagedEntity) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_omci_alarm_db_proto_msgTypes[3]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use AlarmManagedEntity.ProtoReflect.Descriptor instead.
 func (*AlarmManagedEntity) Descriptor() ([]byte, []int) {
-	return fileDescriptor_8d41f1e38aadb08d, []int{3}
+	return file_voltha_protos_omci_alarm_db_proto_rawDescGZIP(), []int{3}
 }
 
-func (m *AlarmManagedEntity) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_AlarmManagedEntity.Unmarshal(m, b)
-}
-func (m *AlarmManagedEntity) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_AlarmManagedEntity.Marshal(b, m, deterministic)
-}
-func (m *AlarmManagedEntity) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_AlarmManagedEntity.Merge(m, src)
-}
-func (m *AlarmManagedEntity) XXX_Size() int {
-	return xxx_messageInfo_AlarmManagedEntity.Size(m)
-}
-func (m *AlarmManagedEntity) XXX_DiscardUnknown() {
-	xxx_messageInfo_AlarmManagedEntity.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_AlarmManagedEntity proto.InternalMessageInfo
-
-func (m *AlarmManagedEntity) GetClassId() uint32 {
-	if m != nil {
-		return m.ClassId
+func (x *AlarmManagedEntity) GetClassId() uint32 {
+	if x != nil {
+		return x.ClassId
 	}
 	return 0
 }
 
-func (m *AlarmManagedEntity) GetName() string {
-	if m != nil {
-		return m.Name
+func (x *AlarmManagedEntity) GetName() string {
+	if x != nil {
+		return x.Name
 	}
 	return ""
 }
 
 type AlarmMessageType struct {
-	MessageType          uint32   `protobuf:"varint,1,opt,name=message_type,json=messageType,proto3" json:"message_type,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	MessageType   uint32                 `protobuf:"varint,1,opt,name=message_type,json=messageType,proto3" json:"message_type,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *AlarmMessageType) Reset()         { *m = AlarmMessageType{} }
-func (m *AlarmMessageType) String() string { return proto.CompactTextString(m) }
-func (*AlarmMessageType) ProtoMessage()    {}
+func (x *AlarmMessageType) Reset() {
+	*x = AlarmMessageType{}
+	mi := &file_voltha_protos_omci_alarm_db_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *AlarmMessageType) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AlarmMessageType) ProtoMessage() {}
+
+func (x *AlarmMessageType) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_omci_alarm_db_proto_msgTypes[4]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use AlarmMessageType.ProtoReflect.Descriptor instead.
 func (*AlarmMessageType) Descriptor() ([]byte, []int) {
-	return fileDescriptor_8d41f1e38aadb08d, []int{4}
+	return file_voltha_protos_omci_alarm_db_proto_rawDescGZIP(), []int{4}
 }
 
-func (m *AlarmMessageType) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_AlarmMessageType.Unmarshal(m, b)
-}
-func (m *AlarmMessageType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_AlarmMessageType.Marshal(b, m, deterministic)
-}
-func (m *AlarmMessageType) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_AlarmMessageType.Merge(m, src)
-}
-func (m *AlarmMessageType) XXX_Size() int {
-	return xxx_messageInfo_AlarmMessageType.Size(m)
-}
-func (m *AlarmMessageType) XXX_DiscardUnknown() {
-	xxx_messageInfo_AlarmMessageType.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_AlarmMessageType proto.InternalMessageInfo
-
-func (m *AlarmMessageType) GetMessageType() uint32 {
-	if m != nil {
-		return m.MessageType
+func (x *AlarmMessageType) GetMessageType() uint32 {
+	if x != nil {
+		return x.MessageType
 	}
 	return 0
 }
 
 type AlarmDeviceData struct {
-	DeviceId             string                `protobuf:"bytes,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
-	Created              string                `protobuf:"bytes,2,opt,name=created,proto3" json:"created,omitempty"`
-	LastAlarmSequence    uint32                `protobuf:"varint,3,opt,name=last_alarm_sequence,json=lastAlarmSequence,proto3" json:"last_alarm_sequence,omitempty"`
-	LastSyncTime         string                `protobuf:"bytes,4,opt,name=last_sync_time,json=lastSyncTime,proto3" json:"last_sync_time,omitempty"`
-	Version              uint32                `protobuf:"varint,5,opt,name=version,proto3" json:"version,omitempty"`
-	Classes              []*AlarmClassData     `protobuf:"bytes,6,rep,name=classes,proto3" json:"classes,omitempty"`
-	ManagedEntities      []*AlarmManagedEntity `protobuf:"bytes,7,rep,name=managed_entities,json=managedEntities,proto3" json:"managed_entities,omitempty"`
-	MessageTypes         []*AlarmMessageType   `protobuf:"bytes,8,rep,name=message_types,json=messageTypes,proto3" json:"message_types,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
-	XXX_unrecognized     []byte                `json:"-"`
-	XXX_sizecache        int32                 `json:"-"`
+	state             protoimpl.MessageState `protogen:"open.v1"`
+	DeviceId          string                 `protobuf:"bytes,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
+	Created           string                 `protobuf:"bytes,2,opt,name=created,proto3" json:"created,omitempty"`
+	LastAlarmSequence uint32                 `protobuf:"varint,3,opt,name=last_alarm_sequence,json=lastAlarmSequence,proto3" json:"last_alarm_sequence,omitempty"`
+	LastSyncTime      string                 `protobuf:"bytes,4,opt,name=last_sync_time,json=lastSyncTime,proto3" json:"last_sync_time,omitempty"`
+	Version           uint32                 `protobuf:"varint,5,opt,name=version,proto3" json:"version,omitempty"`
+	Classes           []*AlarmClassData      `protobuf:"bytes,6,rep,name=classes,proto3" json:"classes,omitempty"`
+	ManagedEntities   []*AlarmManagedEntity  `protobuf:"bytes,7,rep,name=managed_entities,json=managedEntities,proto3" json:"managed_entities,omitempty"`
+	MessageTypes      []*AlarmMessageType    `protobuf:"bytes,8,rep,name=message_types,json=messageTypes,proto3" json:"message_types,omitempty"`
+	unknownFields     protoimpl.UnknownFields
+	sizeCache         protoimpl.SizeCache
 }
 
-func (m *AlarmDeviceData) Reset()         { *m = AlarmDeviceData{} }
-func (m *AlarmDeviceData) String() string { return proto.CompactTextString(m) }
-func (*AlarmDeviceData) ProtoMessage()    {}
+func (x *AlarmDeviceData) Reset() {
+	*x = AlarmDeviceData{}
+	mi := &file_voltha_protos_omci_alarm_db_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *AlarmDeviceData) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AlarmDeviceData) ProtoMessage() {}
+
+func (x *AlarmDeviceData) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_omci_alarm_db_proto_msgTypes[5]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use AlarmDeviceData.ProtoReflect.Descriptor instead.
 func (*AlarmDeviceData) Descriptor() ([]byte, []int) {
-	return fileDescriptor_8d41f1e38aadb08d, []int{5}
+	return file_voltha_protos_omci_alarm_db_proto_rawDescGZIP(), []int{5}
 }
 
-func (m *AlarmDeviceData) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_AlarmDeviceData.Unmarshal(m, b)
-}
-func (m *AlarmDeviceData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_AlarmDeviceData.Marshal(b, m, deterministic)
-}
-func (m *AlarmDeviceData) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_AlarmDeviceData.Merge(m, src)
-}
-func (m *AlarmDeviceData) XXX_Size() int {
-	return xxx_messageInfo_AlarmDeviceData.Size(m)
-}
-func (m *AlarmDeviceData) XXX_DiscardUnknown() {
-	xxx_messageInfo_AlarmDeviceData.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_AlarmDeviceData proto.InternalMessageInfo
-
-func (m *AlarmDeviceData) GetDeviceId() string {
-	if m != nil {
-		return m.DeviceId
+func (x *AlarmDeviceData) GetDeviceId() string {
+	if x != nil {
+		return x.DeviceId
 	}
 	return ""
 }
 
-func (m *AlarmDeviceData) GetCreated() string {
-	if m != nil {
-		return m.Created
+func (x *AlarmDeviceData) GetCreated() string {
+	if x != nil {
+		return x.Created
 	}
 	return ""
 }
 
-func (m *AlarmDeviceData) GetLastAlarmSequence() uint32 {
-	if m != nil {
-		return m.LastAlarmSequence
+func (x *AlarmDeviceData) GetLastAlarmSequence() uint32 {
+	if x != nil {
+		return x.LastAlarmSequence
 	}
 	return 0
 }
 
-func (m *AlarmDeviceData) GetLastSyncTime() string {
-	if m != nil {
-		return m.LastSyncTime
+func (x *AlarmDeviceData) GetLastSyncTime() string {
+	if x != nil {
+		return x.LastSyncTime
 	}
 	return ""
 }
 
-func (m *AlarmDeviceData) GetVersion() uint32 {
-	if m != nil {
-		return m.Version
+func (x *AlarmDeviceData) GetVersion() uint32 {
+	if x != nil {
+		return x.Version
 	}
 	return 0
 }
 
-func (m *AlarmDeviceData) GetClasses() []*AlarmClassData {
-	if m != nil {
-		return m.Classes
+func (x *AlarmDeviceData) GetClasses() []*AlarmClassData {
+	if x != nil {
+		return x.Classes
 	}
 	return nil
 }
 
-func (m *AlarmDeviceData) GetManagedEntities() []*AlarmManagedEntity {
-	if m != nil {
-		return m.ManagedEntities
+func (x *AlarmDeviceData) GetManagedEntities() []*AlarmManagedEntity {
+	if x != nil {
+		return x.ManagedEntities
 	}
 	return nil
 }
 
-func (m *AlarmDeviceData) GetMessageTypes() []*AlarmMessageType {
-	if m != nil {
-		return m.MessageTypes
+func (x *AlarmDeviceData) GetMessageTypes() []*AlarmMessageType {
+	if x != nil {
+		return x.MessageTypes
 	}
 	return nil
 }
 
 type AlarmOpenOmciEventType struct {
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *AlarmOpenOmciEventType) Reset()         { *m = AlarmOpenOmciEventType{} }
-func (m *AlarmOpenOmciEventType) String() string { return proto.CompactTextString(m) }
-func (*AlarmOpenOmciEventType) ProtoMessage()    {}
+func (x *AlarmOpenOmciEventType) Reset() {
+	*x = AlarmOpenOmciEventType{}
+	mi := &file_voltha_protos_omci_alarm_db_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *AlarmOpenOmciEventType) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AlarmOpenOmciEventType) ProtoMessage() {}
+
+func (x *AlarmOpenOmciEventType) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_omci_alarm_db_proto_msgTypes[6]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use AlarmOpenOmciEventType.ProtoReflect.Descriptor instead.
 func (*AlarmOpenOmciEventType) Descriptor() ([]byte, []int) {
-	return fileDescriptor_8d41f1e38aadb08d, []int{6}
+	return file_voltha_protos_omci_alarm_db_proto_rawDescGZIP(), []int{6}
 }
 
-func (m *AlarmOpenOmciEventType) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_AlarmOpenOmciEventType.Unmarshal(m, b)
-}
-func (m *AlarmOpenOmciEventType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_AlarmOpenOmciEventType.Marshal(b, m, deterministic)
-}
-func (m *AlarmOpenOmciEventType) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_AlarmOpenOmciEventType.Merge(m, src)
-}
-func (m *AlarmOpenOmciEventType) XXX_Size() int {
-	return xxx_messageInfo_AlarmOpenOmciEventType.Size(m)
-}
-func (m *AlarmOpenOmciEventType) XXX_DiscardUnknown() {
-	xxx_messageInfo_AlarmOpenOmciEventType.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_AlarmOpenOmciEventType proto.InternalMessageInfo
-
 type AlarmOpenOmciEvent struct {
-	Type                 AlarmOpenOmciEventType_OpenOmciEventType `protobuf:"varint,1,opt,name=type,proto3,enum=omci.AlarmOpenOmciEventType_OpenOmciEventType" json:"type,omitempty"`
-	Data                 string                                   `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                                 `json:"-"`
-	XXX_unrecognized     []byte                                   `json:"-"`
-	XXX_sizecache        int32                                    `json:"-"`
+	state         protoimpl.MessageState                   `protogen:"open.v1"`
+	Type          AlarmOpenOmciEventType_OpenOmciEventType `protobuf:"varint,1,opt,name=type,proto3,enum=omci.AlarmOpenOmciEventType_OpenOmciEventType" json:"type,omitempty"`
+	Data          string                                   `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` // associated data, in json format
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *AlarmOpenOmciEvent) Reset()         { *m = AlarmOpenOmciEvent{} }
-func (m *AlarmOpenOmciEvent) String() string { return proto.CompactTextString(m) }
-func (*AlarmOpenOmciEvent) ProtoMessage()    {}
+func (x *AlarmOpenOmciEvent) Reset() {
+	*x = AlarmOpenOmciEvent{}
+	mi := &file_voltha_protos_omci_alarm_db_proto_msgTypes[7]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *AlarmOpenOmciEvent) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AlarmOpenOmciEvent) ProtoMessage() {}
+
+func (x *AlarmOpenOmciEvent) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_omci_alarm_db_proto_msgTypes[7]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use AlarmOpenOmciEvent.ProtoReflect.Descriptor instead.
 func (*AlarmOpenOmciEvent) Descriptor() ([]byte, []int) {
-	return fileDescriptor_8d41f1e38aadb08d, []int{7}
+	return file_voltha_protos_omci_alarm_db_proto_rawDescGZIP(), []int{7}
 }
 
-func (m *AlarmOpenOmciEvent) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_AlarmOpenOmciEvent.Unmarshal(m, b)
-}
-func (m *AlarmOpenOmciEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_AlarmOpenOmciEvent.Marshal(b, m, deterministic)
-}
-func (m *AlarmOpenOmciEvent) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_AlarmOpenOmciEvent.Merge(m, src)
-}
-func (m *AlarmOpenOmciEvent) XXX_Size() int {
-	return xxx_messageInfo_AlarmOpenOmciEvent.Size(m)
-}
-func (m *AlarmOpenOmciEvent) XXX_DiscardUnknown() {
-	xxx_messageInfo_AlarmOpenOmciEvent.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_AlarmOpenOmciEvent proto.InternalMessageInfo
-
-func (m *AlarmOpenOmciEvent) GetType() AlarmOpenOmciEventType_OpenOmciEventType {
-	if m != nil {
-		return m.Type
+func (x *AlarmOpenOmciEvent) GetType() AlarmOpenOmciEventType_OpenOmciEventType {
+	if x != nil {
+		return x.Type
 	}
 	return AlarmOpenOmciEventType_state_change
 }
 
-func (m *AlarmOpenOmciEvent) GetData() string {
-	if m != nil {
-		return m.Data
+func (x *AlarmOpenOmciEvent) GetData() string {
+	if x != nil {
+		return x.Data
 	}
 	return ""
 }
 
-func init() {
-	proto.RegisterEnum("omci.AlarmOpenOmciEventType_OpenOmciEventType", AlarmOpenOmciEventType_OpenOmciEventType_name, AlarmOpenOmciEventType_OpenOmciEventType_value)
-	proto.RegisterType((*AlarmAttributeData)(nil), "omci.AlarmAttributeData")
-	proto.RegisterType((*AlarmInstanceData)(nil), "omci.AlarmInstanceData")
-	proto.RegisterType((*AlarmClassData)(nil), "omci.AlarmClassData")
-	proto.RegisterType((*AlarmManagedEntity)(nil), "omci.AlarmManagedEntity")
-	proto.RegisterType((*AlarmMessageType)(nil), "omci.AlarmMessageType")
-	proto.RegisterType((*AlarmDeviceData)(nil), "omci.AlarmDeviceData")
-	proto.RegisterType((*AlarmOpenOmciEventType)(nil), "omci.AlarmOpenOmciEventType")
-	proto.RegisterType((*AlarmOpenOmciEvent)(nil), "omci.AlarmOpenOmciEvent")
+var File_voltha_protos_omci_alarm_db_proto protoreflect.FileDescriptor
+
+const file_voltha_protos_omci_alarm_db_proto_rawDesc = "" +
+	"\n" +
+	"!voltha_protos/omci_alarm_db.proto\x12\x04omci\">\n" +
+	"\x12AlarmAttributeData\x12\x12\n" +
+	"\x04name\x18\x01 \x01(\tR\x04name\x12\x14\n" +
+	"\x05value\x18\x02 \x01(\tR\x05value\"\xa4\x01\n" +
+	"\x11AlarmInstanceData\x12\x1f\n" +
+	"\vinstance_id\x18\x01 \x01(\rR\n" +
+	"instanceId\x12\x18\n" +
+	"\acreated\x18\x02 \x01(\tR\acreated\x12\x1a\n" +
+	"\bmodified\x18\x03 \x01(\tR\bmodified\x128\n" +
+	"\n" +
+	"attributes\x18\x04 \x03(\v2\x18.omci.AlarmAttributeDataR\n" +
+	"attributes\"b\n" +
+	"\x0eAlarmClassData\x12\x19\n" +
+	"\bclass_id\x18\x01 \x01(\rR\aclassId\x125\n" +
+	"\tinstances\x18\x02 \x03(\v2\x17.omci.AlarmInstanceDataR\tinstances\"C\n" +
+	"\x12AlarmManagedEntity\x12\x19\n" +
+	"\bclass_id\x18\x01 \x01(\rR\aclassId\x12\x12\n" +
+	"\x04name\x18\x02 \x01(\tR\x04name\"5\n" +
+	"\x10AlarmMessageType\x12!\n" +
+	"\fmessage_type\x18\x01 \x01(\rR\vmessageType\"\xea\x02\n" +
+	"\x0fAlarmDeviceData\x12\x1b\n" +
+	"\tdevice_id\x18\x01 \x01(\tR\bdeviceId\x12\x18\n" +
+	"\acreated\x18\x02 \x01(\tR\acreated\x12.\n" +
+	"\x13last_alarm_sequence\x18\x03 \x01(\rR\x11lastAlarmSequence\x12$\n" +
+	"\x0elast_sync_time\x18\x04 \x01(\tR\flastSyncTime\x12\x18\n" +
+	"\aversion\x18\x05 \x01(\rR\aversion\x12.\n" +
+	"\aclasses\x18\x06 \x03(\v2\x14.omci.AlarmClassDataR\aclasses\x12C\n" +
+	"\x10managed_entities\x18\a \x03(\v2\x18.omci.AlarmManagedEntityR\x0fmanagedEntities\x12;\n" +
+	"\rmessage_types\x18\b \x03(\v2\x16.omci.AlarmMessageTypeR\fmessageTypes\"?\n" +
+	"\x16AlarmOpenOmciEventType\"%\n" +
+	"\x11OpenOmciEventType\x12\x10\n" +
+	"\fstate_change\x10\x00\"l\n" +
+	"\x12AlarmOpenOmciEvent\x12B\n" +
+	"\x04type\x18\x01 \x01(\x0e2..omci.AlarmOpenOmciEventType.OpenOmciEventTypeR\x04type\x12\x12\n" +
+	"\x04data\x18\x02 \x01(\tR\x04dataBH\n" +
+	"\x18org.opencord.voltha.omciZ,github.com/opencord/voltha-protos/v5/go/omcib\x06proto3"
+
+var (
+	file_voltha_protos_omci_alarm_db_proto_rawDescOnce sync.Once
+	file_voltha_protos_omci_alarm_db_proto_rawDescData []byte
+)
+
+func file_voltha_protos_omci_alarm_db_proto_rawDescGZIP() []byte {
+	file_voltha_protos_omci_alarm_db_proto_rawDescOnce.Do(func() {
+		file_voltha_protos_omci_alarm_db_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_voltha_protos_omci_alarm_db_proto_rawDesc), len(file_voltha_protos_omci_alarm_db_proto_rawDesc)))
+	})
+	return file_voltha_protos_omci_alarm_db_proto_rawDescData
 }
 
-func init() { proto.RegisterFile("voltha_protos/omci_alarm_db.proto", fileDescriptor_8d41f1e38aadb08d) }
+var file_voltha_protos_omci_alarm_db_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
+var file_voltha_protos_omci_alarm_db_proto_msgTypes = make([]protoimpl.MessageInfo, 8)
+var file_voltha_protos_omci_alarm_db_proto_goTypes = []any{
+	(AlarmOpenOmciEventType_OpenOmciEventType)(0), // 0: omci.AlarmOpenOmciEventType.OpenOmciEventType
+	(*AlarmAttributeData)(nil),                    // 1: omci.AlarmAttributeData
+	(*AlarmInstanceData)(nil),                     // 2: omci.AlarmInstanceData
+	(*AlarmClassData)(nil),                        // 3: omci.AlarmClassData
+	(*AlarmManagedEntity)(nil),                    // 4: omci.AlarmManagedEntity
+	(*AlarmMessageType)(nil),                      // 5: omci.AlarmMessageType
+	(*AlarmDeviceData)(nil),                       // 6: omci.AlarmDeviceData
+	(*AlarmOpenOmciEventType)(nil),                // 7: omci.AlarmOpenOmciEventType
+	(*AlarmOpenOmciEvent)(nil),                    // 8: omci.AlarmOpenOmciEvent
+}
+var file_voltha_protos_omci_alarm_db_proto_depIdxs = []int32{
+	1, // 0: omci.AlarmInstanceData.attributes:type_name -> omci.AlarmAttributeData
+	2, // 1: omci.AlarmClassData.instances:type_name -> omci.AlarmInstanceData
+	3, // 2: omci.AlarmDeviceData.classes:type_name -> omci.AlarmClassData
+	4, // 3: omci.AlarmDeviceData.managed_entities:type_name -> omci.AlarmManagedEntity
+	5, // 4: omci.AlarmDeviceData.message_types:type_name -> omci.AlarmMessageType
+	0, // 5: omci.AlarmOpenOmciEvent.type:type_name -> omci.AlarmOpenOmciEventType.OpenOmciEventType
+	6, // [6:6] is the sub-list for method output_type
+	6, // [6:6] is the sub-list for method input_type
+	6, // [6:6] is the sub-list for extension type_name
+	6, // [6:6] is the sub-list for extension extendee
+	0, // [0:6] is the sub-list for field type_name
+}
 
-var fileDescriptor_8d41f1e38aadb08d = []byte{
-	// 557 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x54, 0xc1, 0x6a, 0xdb, 0x40,
-	0x10, 0x6d, 0x1c, 0x27, 0xb1, 0x27, 0xb6, 0x63, 0x6f, 0x43, 0xba, 0x6d, 0x0f, 0x4d, 0x44, 0x0b,
-	0x39, 0xb4, 0x32, 0xa4, 0x18, 0x0a, 0x85, 0x96, 0xc4, 0x09, 0xd4, 0x87, 0x12, 0x50, 0x72, 0xea,
-	0x45, 0xac, 0xa5, 0xa9, 0xbc, 0xa0, 0xdd, 0x75, 0xb5, 0x6b, 0x81, 0xff, 0xa7, 0x5f, 0xd7, 0xaf,
-	0x28, 0x1a, 0x49, 0xb6, 0x82, 0x21, 0x37, 0xbd, 0xa7, 0xb7, 0x6f, 0x66, 0xdf, 0x0c, 0x0b, 0x17,
-	0xb9, 0x49, 0xdd, 0x42, 0x84, 0xcb, 0xcc, 0x38, 0x63, 0xc7, 0x46, 0x45, 0x32, 0x14, 0xa9, 0xc8,
-	0x54, 0x18, 0xcf, 0x7d, 0x22, 0x59, 0xbb, 0x20, 0xbd, 0x6f, 0xc0, 0xae, 0x0b, 0xfe, 0xda, 0xb9,
-	0x4c, 0xce, 0x57, 0x0e, 0x6f, 0x85, 0x13, 0x8c, 0x41, 0x5b, 0x0b, 0x85, 0x7c, 0xef, 0x7c, 0xef,
-	0xb2, 0x1b, 0xd0, 0x37, 0x3b, 0x85, 0x83, 0x5c, 0xa4, 0x2b, 0xe4, 0x2d, 0x22, 0x4b, 0xe0, 0xfd,
-	0xdd, 0x83, 0x11, 0x19, 0xcc, 0xb4, 0x75, 0x42, 0x47, 0xe5, 0xf9, 0x77, 0x70, 0x2c, 0x2b, 0x1c,
-	0xca, 0x98, 0x6c, 0xfa, 0x01, 0xd4, 0xd4, 0x2c, 0x66, 0x1c, 0x8e, 0xa2, 0x0c, 0x85, 0xc3, 0xb8,
-	0xb2, 0xab, 0x21, 0x7b, 0x03, 0x1d, 0x65, 0x62, 0xf9, 0x5b, 0x62, 0xcc, 0xf7, 0xe9, 0xd7, 0x06,
-	0xb3, 0x2f, 0x00, 0xa2, 0xee, 0xd3, 0xf2, 0xf6, 0xf9, 0xfe, 0xe5, 0xf1, 0x15, 0xf7, 0x8b, 0x7b,
-	0xf8, 0xbb, 0x97, 0x08, 0x1a, 0x5a, 0x6f, 0x0e, 0x03, 0x52, 0x4c, 0x53, 0x61, 0x2d, 0xb5, 0xf8,
-	0x1a, 0x3a, 0x51, 0x01, 0xb6, 0xfd, 0x1d, 0x11, 0x9e, 0xc5, 0x6c, 0x02, 0xdd, 0xba, 0x55, 0xcb,
-	0x5b, 0x54, 0xe5, 0x55, 0xa3, 0x4a, 0xf3, 0xa6, 0xc1, 0x56, 0xe9, 0x4d, 0xab, 0x28, 0x7f, 0x0a,
-	0x2d, 0x12, 0x8c, 0xef, 0xb4, 0x93, 0x6e, 0xfd, 0x5c, 0x9d, 0x3a, 0xe5, 0xd6, 0x36, 0x65, 0x6f,
-	0x02, 0xc3, 0xd2, 0x04, 0xad, 0x15, 0x09, 0x3e, 0xae, 0x97, 0xc8, 0x2e, 0xa0, 0xa7, 0x4a, 0x18,
-	0xba, 0xf5, 0x12, 0x2b, 0x9b, 0x63, 0xb5, 0x95, 0x78, 0xff, 0x5a, 0x70, 0x42, 0xe7, 0x6e, 0x31,
-	0x97, 0xd5, 0x10, 0xde, 0x42, 0x37, 0x26, 0x54, 0x97, 0xee, 0x06, 0x9d, 0x92, 0x78, 0x76, 0x00,
-	0x3e, 0xbc, 0x4c, 0x85, 0x75, 0xd5, 0xba, 0x58, 0xfc, 0xb3, 0x42, 0x1d, 0x21, 0xcd, 0xa2, 0x1f,
-	0x8c, 0x8a, 0x5f, 0x54, 0xe8, 0xa1, 0xfa, 0xc1, 0xde, 0xc3, 0x80, 0xf4, 0x76, 0xad, 0xa3, 0xd0,
-	0x49, 0x85, 0xbc, 0x4d, 0x86, 0xbd, 0x82, 0x7d, 0x58, 0xeb, 0xe8, 0x51, 0x2a, 0x2c, 0xea, 0xe5,
-	0x98, 0x59, 0x69, 0x34, 0x3f, 0x28, 0x53, 0xa8, 0x20, 0xf3, 0xa1, 0x0c, 0x04, 0x2d, 0x3f, 0xa4,
-	0xac, 0x4f, 0x1b, 0x59, 0x6f, 0xe6, 0x15, 0xd4, 0x22, 0x36, 0x85, 0xa1, 0x2a, 0x13, 0x0e, 0xb1,
-	0x88, 0x58, 0xa2, 0xe5, 0x47, 0x3b, 0xab, 0xf0, 0x64, 0x08, 0xc1, 0x89, 0x6a, 0x40, 0x89, 0x96,
-	0x7d, 0x85, 0x7e, 0x33, 0x52, 0xcb, 0x3b, 0xe4, 0x70, 0xd6, 0x74, 0xd8, 0xc6, 0x1b, 0xf4, 0x1a,
-	0x59, 0x5b, 0xef, 0x3b, 0x9c, 0x91, 0xe2, 0x7e, 0x89, 0xfa, 0x5e, 0x45, 0xf2, 0x2e, 0x47, 0xed,
-	0x68, 0x0c, 0x1f, 0x60, 0xb4, 0x43, 0xb2, 0x21, 0xf4, 0xac, 0x13, 0x0e, 0xc3, 0x68, 0x21, 0x74,
-	0x82, 0xc3, 0x17, 0x5e, 0x5a, 0x6d, 0xca, 0x13, 0x2d, 0xbb, 0x81, 0xf6, 0x66, 0xbc, 0x83, 0x2b,
-	0xbf, 0xd1, 0xca, 0x8e, 0xa7, 0xbf, 0xc3, 0x04, 0x74, 0xb6, 0x58, 0xa9, 0x58, 0x38, 0x51, 0xaf,
-	0x54, 0xf1, 0x7d, 0xf3, 0x03, 0xb8, 0xc9, 0x12, 0xdf, 0x2c, 0x51, 0x47, 0x26, 0x8b, 0xfd, 0xf2,
-	0x69, 0x20, 0xfb, 0x5f, 0x1f, 0x13, 0xe9, 0x16, 0xab, 0xb9, 0x1f, 0x19, 0x35, 0xae, 0x05, 0xe3,
-	0x52, 0xf0, 0xa9, 0x7a, 0x3b, 0xf2, 0xc9, 0x38, 0x31, 0xf4, 0x82, 0xcc, 0x0f, 0x89, 0xfa, 0xfc,
-	0x3f, 0x00, 0x00, 0xff, 0xff, 0x2f, 0xc0, 0x0c, 0x6c, 0x5e, 0x04, 0x00, 0x00,
+func init() { file_voltha_protos_omci_alarm_db_proto_init() }
+func file_voltha_protos_omci_alarm_db_proto_init() {
+	if File_voltha_protos_omci_alarm_db_proto != nil {
+		return
+	}
+	type x struct{}
+	out := protoimpl.TypeBuilder{
+		File: protoimpl.DescBuilder{
+			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+			RawDescriptor: unsafe.Slice(unsafe.StringData(file_voltha_protos_omci_alarm_db_proto_rawDesc), len(file_voltha_protos_omci_alarm_db_proto_rawDesc)),
+			NumEnums:      1,
+			NumMessages:   8,
+			NumExtensions: 0,
+			NumServices:   0,
+		},
+		GoTypes:           file_voltha_protos_omci_alarm_db_proto_goTypes,
+		DependencyIndexes: file_voltha_protos_omci_alarm_db_proto_depIdxs,
+		EnumInfos:         file_voltha_protos_omci_alarm_db_proto_enumTypes,
+		MessageInfos:      file_voltha_protos_omci_alarm_db_proto_msgTypes,
+	}.Build()
+	File_voltha_protos_omci_alarm_db_proto = out.File
+	file_voltha_protos_omci_alarm_db_proto_goTypes = nil
+	file_voltha_protos_omci_alarm_db_proto_depIdxs = nil
 }
diff --git a/go/omci/omci_mib_db.pb.go b/go/omci/omci_mib_db.pb.go
index 05b146a..fba1737 100644
--- a/go/omci/omci_mib_db.pb.go
+++ b/go/omci/omci_mib_db.pb.go
@@ -1,512 +1,642 @@
+//
+// Copyright 2018 - present the original author or authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
 // Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// 	protoc-gen-go v1.36.11
+// 	protoc        v4.25.8
 // source: voltha_protos/omci_mib_db.proto
 
 package omci
 
 import (
-	fmt "fmt"
-	proto "github.com/golang/protobuf/proto"
-	math "math"
+	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+	reflect "reflect"
+	sync "sync"
+	unsafe "unsafe"
 )
 
-// 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
+const (
+	// Verify that this generated code is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+	// Verify that runtime/protoimpl is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
 
 type OpenOmciEventType_Types int32
 
 const (
-	OpenOmciEventType_state_change OpenOmciEventType_Types = 0
+	OpenOmciEventType_state_change OpenOmciEventType_Types = 0 // A state machine has transitioned to a new state
 )
 
-var OpenOmciEventType_Types_name = map[int32]string{
-	0: "state_change",
-}
+// Enum value maps for OpenOmciEventType_Types.
+var (
+	OpenOmciEventType_Types_name = map[int32]string{
+		0: "state_change",
+	}
+	OpenOmciEventType_Types_value = map[string]int32{
+		"state_change": 0,
+	}
+)
 
-var OpenOmciEventType_Types_value = map[string]int32{
-	"state_change": 0,
+func (x OpenOmciEventType_Types) Enum() *OpenOmciEventType_Types {
+	p := new(OpenOmciEventType_Types)
+	*p = x
+	return p
 }
 
 func (x OpenOmciEventType_Types) String() string {
-	return proto.EnumName(OpenOmciEventType_Types_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OpenOmciEventType_Types) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_omci_mib_db_proto_enumTypes[0].Descriptor()
+}
+
+func (OpenOmciEventType_Types) Type() protoreflect.EnumType {
+	return &file_voltha_protos_omci_mib_db_proto_enumTypes[0]
+}
+
+func (x OpenOmciEventType_Types) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OpenOmciEventType_Types.Descriptor instead.
 func (OpenOmciEventType_Types) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_4fa402a2df36dcc1, []int{6, 0}
+	return file_voltha_protos_omci_mib_db_proto_rawDescGZIP(), []int{6, 0}
 }
 
 type MibAttributeData struct {
-	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
-	Value                string   `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Name          string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+	Value         string                 `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *MibAttributeData) Reset()         { *m = MibAttributeData{} }
-func (m *MibAttributeData) String() string { return proto.CompactTextString(m) }
-func (*MibAttributeData) ProtoMessage()    {}
+func (x *MibAttributeData) Reset() {
+	*x = MibAttributeData{}
+	mi := &file_voltha_protos_omci_mib_db_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *MibAttributeData) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*MibAttributeData) ProtoMessage() {}
+
+func (x *MibAttributeData) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_omci_mib_db_proto_msgTypes[0]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use MibAttributeData.ProtoReflect.Descriptor instead.
 func (*MibAttributeData) Descriptor() ([]byte, []int) {
-	return fileDescriptor_4fa402a2df36dcc1, []int{0}
+	return file_voltha_protos_omci_mib_db_proto_rawDescGZIP(), []int{0}
 }
 
-func (m *MibAttributeData) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_MibAttributeData.Unmarshal(m, b)
-}
-func (m *MibAttributeData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_MibAttributeData.Marshal(b, m, deterministic)
-}
-func (m *MibAttributeData) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_MibAttributeData.Merge(m, src)
-}
-func (m *MibAttributeData) XXX_Size() int {
-	return xxx_messageInfo_MibAttributeData.Size(m)
-}
-func (m *MibAttributeData) XXX_DiscardUnknown() {
-	xxx_messageInfo_MibAttributeData.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_MibAttributeData proto.InternalMessageInfo
-
-func (m *MibAttributeData) GetName() string {
-	if m != nil {
-		return m.Name
+func (x *MibAttributeData) GetName() string {
+	if x != nil {
+		return x.Name
 	}
 	return ""
 }
 
-func (m *MibAttributeData) GetValue() string {
-	if m != nil {
-		return m.Value
+func (x *MibAttributeData) GetValue() string {
+	if x != nil {
+		return x.Value
 	}
 	return ""
 }
 
 type MibInstanceData struct {
-	InstanceId           uint32              `protobuf:"varint,1,opt,name=instance_id,json=instanceId,proto3" json:"instance_id,omitempty"`
-	Created              string              `protobuf:"bytes,2,opt,name=created,proto3" json:"created,omitempty"`
-	Modified             string              `protobuf:"bytes,3,opt,name=modified,proto3" json:"modified,omitempty"`
-	Attributes           []*MibAttributeData `protobuf:"bytes,4,rep,name=attributes,proto3" json:"attributes,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
-	XXX_unrecognized     []byte              `json:"-"`
-	XXX_sizecache        int32               `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	InstanceId    uint32                 `protobuf:"varint,1,opt,name=instance_id,json=instanceId,proto3" json:"instance_id,omitempty"`
+	Created       string                 `protobuf:"bytes,2,opt,name=created,proto3" json:"created,omitempty"`
+	Modified      string                 `protobuf:"bytes,3,opt,name=modified,proto3" json:"modified,omitempty"`
+	Attributes    []*MibAttributeData    `protobuf:"bytes,4,rep,name=attributes,proto3" json:"attributes,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *MibInstanceData) Reset()         { *m = MibInstanceData{} }
-func (m *MibInstanceData) String() string { return proto.CompactTextString(m) }
-func (*MibInstanceData) ProtoMessage()    {}
+func (x *MibInstanceData) Reset() {
+	*x = MibInstanceData{}
+	mi := &file_voltha_protos_omci_mib_db_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *MibInstanceData) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*MibInstanceData) ProtoMessage() {}
+
+func (x *MibInstanceData) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_omci_mib_db_proto_msgTypes[1]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use MibInstanceData.ProtoReflect.Descriptor instead.
 func (*MibInstanceData) Descriptor() ([]byte, []int) {
-	return fileDescriptor_4fa402a2df36dcc1, []int{1}
+	return file_voltha_protos_omci_mib_db_proto_rawDescGZIP(), []int{1}
 }
 
-func (m *MibInstanceData) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_MibInstanceData.Unmarshal(m, b)
-}
-func (m *MibInstanceData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_MibInstanceData.Marshal(b, m, deterministic)
-}
-func (m *MibInstanceData) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_MibInstanceData.Merge(m, src)
-}
-func (m *MibInstanceData) XXX_Size() int {
-	return xxx_messageInfo_MibInstanceData.Size(m)
-}
-func (m *MibInstanceData) XXX_DiscardUnknown() {
-	xxx_messageInfo_MibInstanceData.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_MibInstanceData proto.InternalMessageInfo
-
-func (m *MibInstanceData) GetInstanceId() uint32 {
-	if m != nil {
-		return m.InstanceId
+func (x *MibInstanceData) GetInstanceId() uint32 {
+	if x != nil {
+		return x.InstanceId
 	}
 	return 0
 }
 
-func (m *MibInstanceData) GetCreated() string {
-	if m != nil {
-		return m.Created
+func (x *MibInstanceData) GetCreated() string {
+	if x != nil {
+		return x.Created
 	}
 	return ""
 }
 
-func (m *MibInstanceData) GetModified() string {
-	if m != nil {
-		return m.Modified
+func (x *MibInstanceData) GetModified() string {
+	if x != nil {
+		return x.Modified
 	}
 	return ""
 }
 
-func (m *MibInstanceData) GetAttributes() []*MibAttributeData {
-	if m != nil {
-		return m.Attributes
+func (x *MibInstanceData) GetAttributes() []*MibAttributeData {
+	if x != nil {
+		return x.Attributes
 	}
 	return nil
 }
 
 type MibClassData struct {
-	ClassId              uint32             `protobuf:"varint,1,opt,name=class_id,json=classId,proto3" json:"class_id,omitempty"`
-	Instances            []*MibInstanceData `protobuf:"bytes,2,rep,name=instances,proto3" json:"instances,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
-	XXX_unrecognized     []byte             `json:"-"`
-	XXX_sizecache        int32              `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	ClassId       uint32                 `protobuf:"varint,1,opt,name=class_id,json=classId,proto3" json:"class_id,omitempty"`
+	Instances     []*MibInstanceData     `protobuf:"bytes,2,rep,name=instances,proto3" json:"instances,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *MibClassData) Reset()         { *m = MibClassData{} }
-func (m *MibClassData) String() string { return proto.CompactTextString(m) }
-func (*MibClassData) ProtoMessage()    {}
+func (x *MibClassData) Reset() {
+	*x = MibClassData{}
+	mi := &file_voltha_protos_omci_mib_db_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *MibClassData) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*MibClassData) ProtoMessage() {}
+
+func (x *MibClassData) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_omci_mib_db_proto_msgTypes[2]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use MibClassData.ProtoReflect.Descriptor instead.
 func (*MibClassData) Descriptor() ([]byte, []int) {
-	return fileDescriptor_4fa402a2df36dcc1, []int{2}
+	return file_voltha_protos_omci_mib_db_proto_rawDescGZIP(), []int{2}
 }
 
-func (m *MibClassData) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_MibClassData.Unmarshal(m, b)
-}
-func (m *MibClassData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_MibClassData.Marshal(b, m, deterministic)
-}
-func (m *MibClassData) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_MibClassData.Merge(m, src)
-}
-func (m *MibClassData) XXX_Size() int {
-	return xxx_messageInfo_MibClassData.Size(m)
-}
-func (m *MibClassData) XXX_DiscardUnknown() {
-	xxx_messageInfo_MibClassData.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_MibClassData proto.InternalMessageInfo
-
-func (m *MibClassData) GetClassId() uint32 {
-	if m != nil {
-		return m.ClassId
+func (x *MibClassData) GetClassId() uint32 {
+	if x != nil {
+		return x.ClassId
 	}
 	return 0
 }
 
-func (m *MibClassData) GetInstances() []*MibInstanceData {
-	if m != nil {
-		return m.Instances
+func (x *MibClassData) GetInstances() []*MibInstanceData {
+	if x != nil {
+		return x.Instances
 	}
 	return nil
 }
 
 type ManagedEntity struct {
-	ClassId              uint32   `protobuf:"varint,1,opt,name=class_id,json=classId,proto3" json:"class_id,omitempty"`
-	Name                 string   `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	ClassId       uint32                 `protobuf:"varint,1,opt,name=class_id,json=classId,proto3" json:"class_id,omitempty"`
+	Name          string                 `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *ManagedEntity) Reset()         { *m = ManagedEntity{} }
-func (m *ManagedEntity) String() string { return proto.CompactTextString(m) }
-func (*ManagedEntity) ProtoMessage()    {}
+func (x *ManagedEntity) Reset() {
+	*x = ManagedEntity{}
+	mi := &file_voltha_protos_omci_mib_db_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ManagedEntity) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ManagedEntity) ProtoMessage() {}
+
+func (x *ManagedEntity) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_omci_mib_db_proto_msgTypes[3]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ManagedEntity.ProtoReflect.Descriptor instead.
 func (*ManagedEntity) Descriptor() ([]byte, []int) {
-	return fileDescriptor_4fa402a2df36dcc1, []int{3}
+	return file_voltha_protos_omci_mib_db_proto_rawDescGZIP(), []int{3}
 }
 
-func (m *ManagedEntity) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_ManagedEntity.Unmarshal(m, b)
-}
-func (m *ManagedEntity) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_ManagedEntity.Marshal(b, m, deterministic)
-}
-func (m *ManagedEntity) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_ManagedEntity.Merge(m, src)
-}
-func (m *ManagedEntity) XXX_Size() int {
-	return xxx_messageInfo_ManagedEntity.Size(m)
-}
-func (m *ManagedEntity) XXX_DiscardUnknown() {
-	xxx_messageInfo_ManagedEntity.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_ManagedEntity proto.InternalMessageInfo
-
-func (m *ManagedEntity) GetClassId() uint32 {
-	if m != nil {
-		return m.ClassId
+func (x *ManagedEntity) GetClassId() uint32 {
+	if x != nil {
+		return x.ClassId
 	}
 	return 0
 }
 
-func (m *ManagedEntity) GetName() string {
-	if m != nil {
-		return m.Name
+func (x *ManagedEntity) GetName() string {
+	if x != nil {
+		return x.Name
 	}
 	return ""
 }
 
 type MessageType struct {
-	MessageType          uint32   `protobuf:"varint,1,opt,name=message_type,json=messageType,proto3" json:"message_type,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	MessageType   uint32                 `protobuf:"varint,1,opt,name=message_type,json=messageType,proto3" json:"message_type,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *MessageType) Reset()         { *m = MessageType{} }
-func (m *MessageType) String() string { return proto.CompactTextString(m) }
-func (*MessageType) ProtoMessage()    {}
+func (x *MessageType) Reset() {
+	*x = MessageType{}
+	mi := &file_voltha_protos_omci_mib_db_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *MessageType) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*MessageType) ProtoMessage() {}
+
+func (x *MessageType) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_omci_mib_db_proto_msgTypes[4]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use MessageType.ProtoReflect.Descriptor instead.
 func (*MessageType) Descriptor() ([]byte, []int) {
-	return fileDescriptor_4fa402a2df36dcc1, []int{4}
+	return file_voltha_protos_omci_mib_db_proto_rawDescGZIP(), []int{4}
 }
 
-func (m *MessageType) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_MessageType.Unmarshal(m, b)
-}
-func (m *MessageType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_MessageType.Marshal(b, m, deterministic)
-}
-func (m *MessageType) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_MessageType.Merge(m, src)
-}
-func (m *MessageType) XXX_Size() int {
-	return xxx_messageInfo_MessageType.Size(m)
-}
-func (m *MessageType) XXX_DiscardUnknown() {
-	xxx_messageInfo_MessageType.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_MessageType proto.InternalMessageInfo
-
-func (m *MessageType) GetMessageType() uint32 {
-	if m != nil {
-		return m.MessageType
+func (x *MessageType) GetMessageType() uint32 {
+	if x != nil {
+		return x.MessageType
 	}
 	return 0
 }
 
 type MibDeviceData struct {
-	DeviceId             string           `protobuf:"bytes,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
-	Created              string           `protobuf:"bytes,2,opt,name=created,proto3" json:"created,omitempty"`
-	LastSyncTime         string           `protobuf:"bytes,3,opt,name=last_sync_time,json=lastSyncTime,proto3" json:"last_sync_time,omitempty"`
-	MibDataSync          uint32           `protobuf:"varint,4,opt,name=mib_data_sync,json=mibDataSync,proto3" json:"mib_data_sync,omitempty"`
-	Version              uint32           `protobuf:"varint,5,opt,name=version,proto3" json:"version,omitempty"`
-	Classes              []*MibClassData  `protobuf:"bytes,6,rep,name=classes,proto3" json:"classes,omitempty"`
-	ManagedEntities      []*ManagedEntity `protobuf:"bytes,7,rep,name=managed_entities,json=managedEntities,proto3" json:"managed_entities,omitempty"`
-	MessageTypes         []*MessageType   `protobuf:"bytes,8,rep,name=message_types,json=messageTypes,proto3" json:"message_types,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
-	XXX_unrecognized     []byte           `json:"-"`
-	XXX_sizecache        int32            `json:"-"`
+	state           protoimpl.MessageState `protogen:"open.v1"`
+	DeviceId        string                 `protobuf:"bytes,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
+	Created         string                 `protobuf:"bytes,2,opt,name=created,proto3" json:"created,omitempty"`
+	LastSyncTime    string                 `protobuf:"bytes,3,opt,name=last_sync_time,json=lastSyncTime,proto3" json:"last_sync_time,omitempty"`
+	MibDataSync     uint32                 `protobuf:"varint,4,opt,name=mib_data_sync,json=mibDataSync,proto3" json:"mib_data_sync,omitempty"`
+	Version         uint32                 `protobuf:"varint,5,opt,name=version,proto3" json:"version,omitempty"`
+	Classes         []*MibClassData        `protobuf:"bytes,6,rep,name=classes,proto3" json:"classes,omitempty"`
+	ManagedEntities []*ManagedEntity       `protobuf:"bytes,7,rep,name=managed_entities,json=managedEntities,proto3" json:"managed_entities,omitempty"`
+	MessageTypes    []*MessageType         `protobuf:"bytes,8,rep,name=message_types,json=messageTypes,proto3" json:"message_types,omitempty"`
+	unknownFields   protoimpl.UnknownFields
+	sizeCache       protoimpl.SizeCache
 }
 
-func (m *MibDeviceData) Reset()         { *m = MibDeviceData{} }
-func (m *MibDeviceData) String() string { return proto.CompactTextString(m) }
-func (*MibDeviceData) ProtoMessage()    {}
+func (x *MibDeviceData) Reset() {
+	*x = MibDeviceData{}
+	mi := &file_voltha_protos_omci_mib_db_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *MibDeviceData) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*MibDeviceData) ProtoMessage() {}
+
+func (x *MibDeviceData) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_omci_mib_db_proto_msgTypes[5]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use MibDeviceData.ProtoReflect.Descriptor instead.
 func (*MibDeviceData) Descriptor() ([]byte, []int) {
-	return fileDescriptor_4fa402a2df36dcc1, []int{5}
+	return file_voltha_protos_omci_mib_db_proto_rawDescGZIP(), []int{5}
 }
 
-func (m *MibDeviceData) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_MibDeviceData.Unmarshal(m, b)
-}
-func (m *MibDeviceData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_MibDeviceData.Marshal(b, m, deterministic)
-}
-func (m *MibDeviceData) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_MibDeviceData.Merge(m, src)
-}
-func (m *MibDeviceData) XXX_Size() int {
-	return xxx_messageInfo_MibDeviceData.Size(m)
-}
-func (m *MibDeviceData) XXX_DiscardUnknown() {
-	xxx_messageInfo_MibDeviceData.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_MibDeviceData proto.InternalMessageInfo
-
-func (m *MibDeviceData) GetDeviceId() string {
-	if m != nil {
-		return m.DeviceId
+func (x *MibDeviceData) GetDeviceId() string {
+	if x != nil {
+		return x.DeviceId
 	}
 	return ""
 }
 
-func (m *MibDeviceData) GetCreated() string {
-	if m != nil {
-		return m.Created
+func (x *MibDeviceData) GetCreated() string {
+	if x != nil {
+		return x.Created
 	}
 	return ""
 }
 
-func (m *MibDeviceData) GetLastSyncTime() string {
-	if m != nil {
-		return m.LastSyncTime
+func (x *MibDeviceData) GetLastSyncTime() string {
+	if x != nil {
+		return x.LastSyncTime
 	}
 	return ""
 }
 
-func (m *MibDeviceData) GetMibDataSync() uint32 {
-	if m != nil {
-		return m.MibDataSync
+func (x *MibDeviceData) GetMibDataSync() uint32 {
+	if x != nil {
+		return x.MibDataSync
 	}
 	return 0
 }
 
-func (m *MibDeviceData) GetVersion() uint32 {
-	if m != nil {
-		return m.Version
+func (x *MibDeviceData) GetVersion() uint32 {
+	if x != nil {
+		return x.Version
 	}
 	return 0
 }
 
-func (m *MibDeviceData) GetClasses() []*MibClassData {
-	if m != nil {
-		return m.Classes
+func (x *MibDeviceData) GetClasses() []*MibClassData {
+	if x != nil {
+		return x.Classes
 	}
 	return nil
 }
 
-func (m *MibDeviceData) GetManagedEntities() []*ManagedEntity {
-	if m != nil {
-		return m.ManagedEntities
+func (x *MibDeviceData) GetManagedEntities() []*ManagedEntity {
+	if x != nil {
+		return x.ManagedEntities
 	}
 	return nil
 }
 
-func (m *MibDeviceData) GetMessageTypes() []*MessageType {
-	if m != nil {
-		return m.MessageTypes
+func (x *MibDeviceData) GetMessageTypes() []*MessageType {
+	if x != nil {
+		return x.MessageTypes
 	}
 	return nil
 }
 
 type OpenOmciEventType struct {
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *OpenOmciEventType) Reset()         { *m = OpenOmciEventType{} }
-func (m *OpenOmciEventType) String() string { return proto.CompactTextString(m) }
-func (*OpenOmciEventType) ProtoMessage()    {}
+func (x *OpenOmciEventType) Reset() {
+	*x = OpenOmciEventType{}
+	mi := &file_voltha_protos_omci_mib_db_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OpenOmciEventType) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OpenOmciEventType) ProtoMessage() {}
+
+func (x *OpenOmciEventType) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_omci_mib_db_proto_msgTypes[6]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OpenOmciEventType.ProtoReflect.Descriptor instead.
 func (*OpenOmciEventType) Descriptor() ([]byte, []int) {
-	return fileDescriptor_4fa402a2df36dcc1, []int{6}
+	return file_voltha_protos_omci_mib_db_proto_rawDescGZIP(), []int{6}
 }
 
-func (m *OpenOmciEventType) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OpenOmciEventType.Unmarshal(m, b)
-}
-func (m *OpenOmciEventType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OpenOmciEventType.Marshal(b, m, deterministic)
-}
-func (m *OpenOmciEventType) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OpenOmciEventType.Merge(m, src)
-}
-func (m *OpenOmciEventType) XXX_Size() int {
-	return xxx_messageInfo_OpenOmciEventType.Size(m)
-}
-func (m *OpenOmciEventType) XXX_DiscardUnknown() {
-	xxx_messageInfo_OpenOmciEventType.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OpenOmciEventType proto.InternalMessageInfo
-
 type OpenOmciEvent struct {
-	Type                 OpenOmciEventType_Types `protobuf:"varint,1,opt,name=type,proto3,enum=omci.OpenOmciEventType_Types" json:"type,omitempty"`
-	Data                 string                  `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
-	XXX_unrecognized     []byte                  `json:"-"`
-	XXX_sizecache        int32                   `json:"-"`
+	state         protoimpl.MessageState  `protogen:"open.v1"`
+	Type          OpenOmciEventType_Types `protobuf:"varint,1,opt,name=type,proto3,enum=omci.OpenOmciEventType_Types" json:"type,omitempty"`
+	Data          string                  `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` // associated data, in json format
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *OpenOmciEvent) Reset()         { *m = OpenOmciEvent{} }
-func (m *OpenOmciEvent) String() string { return proto.CompactTextString(m) }
-func (*OpenOmciEvent) ProtoMessage()    {}
+func (x *OpenOmciEvent) Reset() {
+	*x = OpenOmciEvent{}
+	mi := &file_voltha_protos_omci_mib_db_proto_msgTypes[7]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OpenOmciEvent) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OpenOmciEvent) ProtoMessage() {}
+
+func (x *OpenOmciEvent) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_omci_mib_db_proto_msgTypes[7]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OpenOmciEvent.ProtoReflect.Descriptor instead.
 func (*OpenOmciEvent) Descriptor() ([]byte, []int) {
-	return fileDescriptor_4fa402a2df36dcc1, []int{7}
+	return file_voltha_protos_omci_mib_db_proto_rawDescGZIP(), []int{7}
 }
 
-func (m *OpenOmciEvent) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OpenOmciEvent.Unmarshal(m, b)
-}
-func (m *OpenOmciEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OpenOmciEvent.Marshal(b, m, deterministic)
-}
-func (m *OpenOmciEvent) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OpenOmciEvent.Merge(m, src)
-}
-func (m *OpenOmciEvent) XXX_Size() int {
-	return xxx_messageInfo_OpenOmciEvent.Size(m)
-}
-func (m *OpenOmciEvent) XXX_DiscardUnknown() {
-	xxx_messageInfo_OpenOmciEvent.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OpenOmciEvent proto.InternalMessageInfo
-
-func (m *OpenOmciEvent) GetType() OpenOmciEventType_Types {
-	if m != nil {
-		return m.Type
+func (x *OpenOmciEvent) GetType() OpenOmciEventType_Types {
+	if x != nil {
+		return x.Type
 	}
 	return OpenOmciEventType_state_change
 }
 
-func (m *OpenOmciEvent) GetData() string {
-	if m != nil {
-		return m.Data
+func (x *OpenOmciEvent) GetData() string {
+	if x != nil {
+		return x.Data
 	}
 	return ""
 }
 
-func init() {
-	proto.RegisterEnum("omci.OpenOmciEventType_Types", OpenOmciEventType_Types_name, OpenOmciEventType_Types_value)
-	proto.RegisterType((*MibAttributeData)(nil), "omci.MibAttributeData")
-	proto.RegisterType((*MibInstanceData)(nil), "omci.MibInstanceData")
-	proto.RegisterType((*MibClassData)(nil), "omci.MibClassData")
-	proto.RegisterType((*ManagedEntity)(nil), "omci.ManagedEntity")
-	proto.RegisterType((*MessageType)(nil), "omci.MessageType")
-	proto.RegisterType((*MibDeviceData)(nil), "omci.MibDeviceData")
-	proto.RegisterType((*OpenOmciEventType)(nil), "omci.OpenOmciEventType")
-	proto.RegisterType((*OpenOmciEvent)(nil), "omci.OpenOmciEvent")
+var File_voltha_protos_omci_mib_db_proto protoreflect.FileDescriptor
+
+const file_voltha_protos_omci_mib_db_proto_rawDesc = "" +
+	"\n" +
+	"\x1fvoltha_protos/omci_mib_db.proto\x12\x04omci\"<\n" +
+	"\x10MibAttributeData\x12\x12\n" +
+	"\x04name\x18\x01 \x01(\tR\x04name\x12\x14\n" +
+	"\x05value\x18\x02 \x01(\tR\x05value\"\xa0\x01\n" +
+	"\x0fMibInstanceData\x12\x1f\n" +
+	"\vinstance_id\x18\x01 \x01(\rR\n" +
+	"instanceId\x12\x18\n" +
+	"\acreated\x18\x02 \x01(\tR\acreated\x12\x1a\n" +
+	"\bmodified\x18\x03 \x01(\tR\bmodified\x126\n" +
+	"\n" +
+	"attributes\x18\x04 \x03(\v2\x16.omci.MibAttributeDataR\n" +
+	"attributes\"^\n" +
+	"\fMibClassData\x12\x19\n" +
+	"\bclass_id\x18\x01 \x01(\rR\aclassId\x123\n" +
+	"\tinstances\x18\x02 \x03(\v2\x15.omci.MibInstanceDataR\tinstances\">\n" +
+	"\rManagedEntity\x12\x19\n" +
+	"\bclass_id\x18\x01 \x01(\rR\aclassId\x12\x12\n" +
+	"\x04name\x18\x02 \x01(\tR\x04name\"0\n" +
+	"\vMessageType\x12!\n" +
+	"\fmessage_type\x18\x01 \x01(\rR\vmessageType\"\xd0\x02\n" +
+	"\rMibDeviceData\x12\x1b\n" +
+	"\tdevice_id\x18\x01 \x01(\tR\bdeviceId\x12\x18\n" +
+	"\acreated\x18\x02 \x01(\tR\acreated\x12$\n" +
+	"\x0elast_sync_time\x18\x03 \x01(\tR\flastSyncTime\x12\"\n" +
+	"\rmib_data_sync\x18\x04 \x01(\rR\vmibDataSync\x12\x18\n" +
+	"\aversion\x18\x05 \x01(\rR\aversion\x12,\n" +
+	"\aclasses\x18\x06 \x03(\v2\x12.omci.MibClassDataR\aclasses\x12>\n" +
+	"\x10managed_entities\x18\a \x03(\v2\x13.omci.ManagedEntityR\x0fmanagedEntities\x126\n" +
+	"\rmessage_types\x18\b \x03(\v2\x11.omci.MessageTypeR\fmessageTypes\".\n" +
+	"\x11OpenOmciEventType\"\x19\n" +
+	"\x05Types\x12\x10\n" +
+	"\fstate_change\x10\x00\"V\n" +
+	"\rOpenOmciEvent\x121\n" +
+	"\x04type\x18\x01 \x01(\x0e2\x1d.omci.OpenOmciEventType.TypesR\x04type\x12\x12\n" +
+	"\x04data\x18\x02 \x01(\tR\x04dataBH\n" +
+	"\x18org.opencord.voltha.omciZ,github.com/opencord/voltha-protos/v5/go/omcib\x06proto3"
+
+var (
+	file_voltha_protos_omci_mib_db_proto_rawDescOnce sync.Once
+	file_voltha_protos_omci_mib_db_proto_rawDescData []byte
+)
+
+func file_voltha_protos_omci_mib_db_proto_rawDescGZIP() []byte {
+	file_voltha_protos_omci_mib_db_proto_rawDescOnce.Do(func() {
+		file_voltha_protos_omci_mib_db_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_voltha_protos_omci_mib_db_proto_rawDesc), len(file_voltha_protos_omci_mib_db_proto_rawDesc)))
+	})
+	return file_voltha_protos_omci_mib_db_proto_rawDescData
 }
 
-func init() { proto.RegisterFile("voltha_protos/omci_mib_db.proto", fileDescriptor_4fa402a2df36dcc1) }
+var file_voltha_protos_omci_mib_db_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
+var file_voltha_protos_omci_mib_db_proto_msgTypes = make([]protoimpl.MessageInfo, 8)
+var file_voltha_protos_omci_mib_db_proto_goTypes = []any{
+	(OpenOmciEventType_Types)(0), // 0: omci.OpenOmciEventType.Types
+	(*MibAttributeData)(nil),     // 1: omci.MibAttributeData
+	(*MibInstanceData)(nil),      // 2: omci.MibInstanceData
+	(*MibClassData)(nil),         // 3: omci.MibClassData
+	(*ManagedEntity)(nil),        // 4: omci.ManagedEntity
+	(*MessageType)(nil),          // 5: omci.MessageType
+	(*MibDeviceData)(nil),        // 6: omci.MibDeviceData
+	(*OpenOmciEventType)(nil),    // 7: omci.OpenOmciEventType
+	(*OpenOmciEvent)(nil),        // 8: omci.OpenOmciEvent
+}
+var file_voltha_protos_omci_mib_db_proto_depIdxs = []int32{
+	1, // 0: omci.MibInstanceData.attributes:type_name -> omci.MibAttributeData
+	2, // 1: omci.MibClassData.instances:type_name -> omci.MibInstanceData
+	3, // 2: omci.MibDeviceData.classes:type_name -> omci.MibClassData
+	4, // 3: omci.MibDeviceData.managed_entities:type_name -> omci.ManagedEntity
+	5, // 4: omci.MibDeviceData.message_types:type_name -> omci.MessageType
+	0, // 5: omci.OpenOmciEvent.type:type_name -> omci.OpenOmciEventType.Types
+	6, // [6:6] is the sub-list for method output_type
+	6, // [6:6] is the sub-list for method input_type
+	6, // [6:6] is the sub-list for extension type_name
+	6, // [6:6] is the sub-list for extension extendee
+	0, // [0:6] is the sub-list for field type_name
+}
 
-var fileDescriptor_4fa402a2df36dcc1 = []byte{
-	// 548 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x93, 0x4d, 0x6f, 0xd3, 0x30,
-	0x18, 0xc7, 0x69, 0xd7, 0xae, 0xed, 0xd3, 0x66, 0xeb, 0xcc, 0x8b, 0x3c, 0x10, 0xda, 0x88, 0x38,
-	0xec, 0x30, 0x52, 0xd8, 0xc4, 0x4e, 0x68, 0x12, 0xb0, 0x49, 0xf4, 0x10, 0x4d, 0x0a, 0x13, 0x07,
-	0x0e, 0x44, 0x4e, 0xf2, 0x90, 0x5a, 0xaa, 0xed, 0x2a, 0x76, 0x23, 0xf5, 0xdb, 0xf0, 0x91, 0xf8,
-	0x48, 0xc8, 0x4e, 0xd2, 0x06, 0x90, 0x76, 0xcb, 0xff, 0xc9, 0xff, 0x79, 0xfb, 0xd9, 0x86, 0x93,
-	0x52, 0x2d, 0xcd, 0x82, 0xc5, 0xab, 0x42, 0x19, 0xa5, 0x67, 0x4a, 0xa4, 0x3c, 0x16, 0x3c, 0x89,
-	0xb3, 0x24, 0x70, 0x21, 0xd2, 0xb3, 0x21, 0xff, 0x03, 0x4c, 0x43, 0x9e, 0x7c, 0x34, 0xa6, 0xe0,
-	0xc9, 0xda, 0xe0, 0x0d, 0x33, 0x8c, 0x10, 0xe8, 0x49, 0x26, 0x90, 0x76, 0x4e, 0x3b, 0x67, 0xa3,
-	0xc8, 0x7d, 0x93, 0x27, 0xd0, 0x2f, 0xd9, 0x72, 0x8d, 0xb4, 0xeb, 0x82, 0x95, 0xf0, 0x7f, 0x75,
-	0xe0, 0x30, 0xe4, 0xc9, 0x5c, 0x6a, 0xc3, 0x64, 0x5a, 0x65, 0x9f, 0xc0, 0x98, 0xd7, 0x3a, 0xe6,
-	0x99, 0x2b, 0xe2, 0x45, 0xd0, 0x84, 0xe6, 0x19, 0xa1, 0x30, 0x48, 0x0b, 0x64, 0x06, 0xb3, 0xba,
-	0x58, 0x23, 0xc9, 0x73, 0x18, 0x0a, 0x95, 0xf1, 0x9f, 0x1c, 0x33, 0xba, 0xe7, 0x7e, 0x6d, 0x35,
-	0xb9, 0x02, 0x60, 0xcd, 0x94, 0x9a, 0xf6, 0x4e, 0xf7, 0xce, 0xc6, 0x17, 0xcf, 0x02, 0xbb, 0x43,
-	0xf0, 0xef, 0x02, 0x51, 0xcb, 0xe9, 0xff, 0x80, 0x49, 0xc8, 0x93, 0xcf, 0x4b, 0xa6, 0xb5, 0x1b,
-	0xef, 0x18, 0x86, 0xa9, 0x15, 0xbb, 0xd9, 0x06, 0x4e, 0xcf, 0x33, 0x72, 0x09, 0xa3, 0x66, 0x4c,
-	0x4d, 0xbb, 0xae, 0xc3, 0xd3, 0x6d, 0x87, 0xf6, 0x8e, 0xd1, 0xce, 0xe7, 0x5f, 0x83, 0x17, 0x32,
-	0xc9, 0x72, 0xcc, 0x6e, 0xa5, 0xe1, 0x66, 0xf3, 0x50, 0x83, 0x06, 0x6c, 0x77, 0x07, 0xd6, 0x7f,
-	0x0b, 0xe3, 0x10, 0xb5, 0x66, 0x39, 0xde, 0x6f, 0x56, 0x48, 0x5e, 0xc1, 0x44, 0x54, 0x32, 0x36,
-	0x9b, 0x15, 0xd6, 0x15, 0xc6, 0x62, 0x67, 0xf1, 0x7f, 0x77, 0xc1, 0x0b, 0x79, 0x72, 0x83, 0x25,
-	0xaf, 0x91, 0xbf, 0x80, 0x51, 0xe6, 0x54, 0xd3, 0x73, 0x14, 0x0d, 0xab, 0xc0, 0x83, 0xb8, 0x5f,
-	0xc3, 0xc1, 0x92, 0x69, 0x13, 0xeb, 0x8d, 0x4c, 0x63, 0xc3, 0x05, 0xd6, 0xd0, 0x27, 0x36, 0xfa,
-	0x75, 0x23, 0xd3, 0x7b, 0x2e, 0x90, 0xf8, 0xe0, 0xb9, 0x7b, 0xc3, 0x0c, 0x73, 0x4e, 0xda, 0xab,
-	0x47, 0xe2, 0x89, 0x6d, 0x6e, 0x7d, 0xb6, 0x47, 0x89, 0x85, 0xe6, 0x4a, 0xd2, 0x7e, 0xb5, 0x72,
-	0x2d, 0xc9, 0x39, 0x54, 0xdb, 0xa3, 0xa6, 0xfb, 0x8e, 0x28, 0xd9, 0x12, 0xdd, 0x9e, 0x49, 0xd4,
-	0x58, 0xc8, 0x35, 0x4c, 0x45, 0x05, 0x33, 0x46, 0x4b, 0x93, 0xa3, 0xa6, 0x03, 0x97, 0xf6, 0xb8,
-	0x4e, 0x6b, 0xa3, 0x8e, 0x0e, 0x45, 0x4b, 0x72, 0xd4, 0xe4, 0x0a, 0xbc, 0x36, 0x3d, 0x4d, 0x87,
-	0x2e, 0xf9, 0xa8, 0x4e, 0xde, 0x41, 0x8c, 0x26, 0x2d, 0xa2, 0xda, 0x0f, 0xe0, 0xe8, 0x6e, 0x85,
-	0xf2, 0x4e, 0xa4, 0xfc, 0xb6, 0x44, 0x69, 0x1c, 0xe7, 0x63, 0xe8, 0xbb, 0xbf, 0x64, 0x0a, 0x13,
-	0x6d, 0x98, 0xc1, 0x38, 0x5d, 0x30, 0x99, 0xe3, 0xf4, 0x91, 0xff, 0x0d, 0xbc, 0xbf, 0xfc, 0xe4,
-	0x1d, 0xf4, 0xb6, 0xc7, 0x75, 0x70, 0xf1, 0xb2, 0xea, 0xf7, 0x5f, 0xc9, 0xc0, 0xd5, 0x8b, 0x9c,
-	0xd5, 0x5e, 0x06, 0xcb, 0xb4, 0xb9, 0x0c, 0xf6, 0xfb, 0xd3, 0x17, 0xa0, 0xaa, 0xc8, 0x03, 0xb5,
-	0x42, 0x99, 0xaa, 0x22, 0x0b, 0xaa, 0x37, 0xec, 0xaa, 0x7d, 0x3f, 0xcf, 0xb9, 0x59, 0xac, 0x93,
-	0x20, 0x55, 0x62, 0xd6, 0x18, 0x66, 0x95, 0xe1, 0x4d, 0xfd, 0xc8, 0xcb, 0xf7, 0xb3, 0x5c, 0xb9,
-	0xa7, 0x9e, 0xec, 0xbb, 0xd0, 0xe5, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xc6, 0x6b, 0x99, 0x13,
-	0x07, 0x04, 0x00, 0x00,
+func init() { file_voltha_protos_omci_mib_db_proto_init() }
+func file_voltha_protos_omci_mib_db_proto_init() {
+	if File_voltha_protos_omci_mib_db_proto != nil {
+		return
+	}
+	type x struct{}
+	out := protoimpl.TypeBuilder{
+		File: protoimpl.DescBuilder{
+			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+			RawDescriptor: unsafe.Slice(unsafe.StringData(file_voltha_protos_omci_mib_db_proto_rawDesc), len(file_voltha_protos_omci_mib_db_proto_rawDesc)),
+			NumEnums:      1,
+			NumMessages:   8,
+			NumExtensions: 0,
+			NumServices:   0,
+		},
+		GoTypes:           file_voltha_protos_omci_mib_db_proto_goTypes,
+		DependencyIndexes: file_voltha_protos_omci_mib_db_proto_depIdxs,
+		EnumInfos:         file_voltha_protos_omci_mib_db_proto_enumTypes,
+		MessageInfos:      file_voltha_protos_omci_mib_db_proto_msgTypes,
+	}.Build()
+	File_voltha_protos_omci_mib_db_proto = out.File
+	file_voltha_protos_omci_mib_db_proto_goTypes = nil
+	file_voltha_protos_omci_mib_db_proto_depIdxs = nil
 }
diff --git a/go/omci/omci_test.pb.go b/go/omci/omci_test.pb.go
index 6d32ae0..15c7e0b 100644
--- a/go/omci/omci_test.pb.go
+++ b/go/omci/omci_test.pb.go
@@ -1,24 +1,25 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// 	protoc-gen-go v1.36.11
+// 	protoc        v4.25.8
 // source: voltha_protos/omci_test.proto
 
 package omci
 
 import (
-	fmt "fmt"
-	proto "github.com/golang/protobuf/proto"
-	math "math"
+	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+	reflect "reflect"
+	sync "sync"
+	unsafe "unsafe"
 )
 
-// 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
+const (
+	// Verify that this generated code is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+	// Verify that runtime/protoimpl is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
 
 type TestResponse_TestResponseResult int32
 
@@ -27,133 +28,205 @@
 	TestResponse_FAILURE TestResponse_TestResponseResult = 1
 )
 
-var TestResponse_TestResponseResult_name = map[int32]string{
-	0: "SUCCESS",
-	1: "FAILURE",
-}
+// Enum value maps for TestResponse_TestResponseResult.
+var (
+	TestResponse_TestResponseResult_name = map[int32]string{
+		0: "SUCCESS",
+		1: "FAILURE",
+	}
+	TestResponse_TestResponseResult_value = map[string]int32{
+		"SUCCESS": 0,
+		"FAILURE": 1,
+	}
+)
 
-var TestResponse_TestResponseResult_value = map[string]int32{
-	"SUCCESS": 0,
-	"FAILURE": 1,
+func (x TestResponse_TestResponseResult) Enum() *TestResponse_TestResponseResult {
+	p := new(TestResponse_TestResponseResult)
+	*p = x
+	return p
 }
 
 func (x TestResponse_TestResponseResult) String() string {
-	return proto.EnumName(TestResponse_TestResponseResult_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (TestResponse_TestResponseResult) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_omci_test_proto_enumTypes[0].Descriptor()
+}
+
+func (TestResponse_TestResponseResult) Type() protoreflect.EnumType {
+	return &file_voltha_protos_omci_test_proto_enumTypes[0]
+}
+
+func (x TestResponse_TestResponseResult) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use TestResponse_TestResponseResult.Descriptor instead.
 func (TestResponse_TestResponseResult) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_146dc5f97baf9397, []int{1, 0}
+	return file_voltha_protos_omci_test_proto_rawDescGZIP(), []int{1, 0}
 }
 
 type OmciTestRequest struct {
-	Id                   string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
-	Uuid                 string   `protobuf:"bytes,2,opt,name=uuid,proto3" json:"uuid,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+	Uuid          string                 `protobuf:"bytes,2,opt,name=uuid,proto3" json:"uuid,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *OmciTestRequest) Reset()         { *m = OmciTestRequest{} }
-func (m *OmciTestRequest) String() string { return proto.CompactTextString(m) }
-func (*OmciTestRequest) ProtoMessage()    {}
+func (x *OmciTestRequest) Reset() {
+	*x = OmciTestRequest{}
+	mi := &file_voltha_protos_omci_test_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OmciTestRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OmciTestRequest) ProtoMessage() {}
+
+func (x *OmciTestRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_omci_test_proto_msgTypes[0]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OmciTestRequest.ProtoReflect.Descriptor instead.
 func (*OmciTestRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_146dc5f97baf9397, []int{0}
+	return file_voltha_protos_omci_test_proto_rawDescGZIP(), []int{0}
 }
 
-func (m *OmciTestRequest) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OmciTestRequest.Unmarshal(m, b)
-}
-func (m *OmciTestRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OmciTestRequest.Marshal(b, m, deterministic)
-}
-func (m *OmciTestRequest) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OmciTestRequest.Merge(m, src)
-}
-func (m *OmciTestRequest) XXX_Size() int {
-	return xxx_messageInfo_OmciTestRequest.Size(m)
-}
-func (m *OmciTestRequest) XXX_DiscardUnknown() {
-	xxx_messageInfo_OmciTestRequest.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OmciTestRequest proto.InternalMessageInfo
-
-func (m *OmciTestRequest) GetId() string {
-	if m != nil {
-		return m.Id
+func (x *OmciTestRequest) GetId() string {
+	if x != nil {
+		return x.Id
 	}
 	return ""
 }
 
-func (m *OmciTestRequest) GetUuid() string {
-	if m != nil {
-		return m.Uuid
+func (x *OmciTestRequest) GetUuid() string {
+	if x != nil {
+		return x.Uuid
 	}
 	return ""
 }
 
 type TestResponse struct {
-	Result               TestResponse_TestResponseResult `protobuf:"varint,1,opt,name=result,proto3,enum=omci.TestResponse_TestResponseResult" json:"result,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                        `json:"-"`
-	XXX_unrecognized     []byte                          `json:"-"`
-	XXX_sizecache        int32                           `json:"-"`
+	state         protoimpl.MessageState          `protogen:"open.v1"`
+	Result        TestResponse_TestResponseResult `protobuf:"varint,1,opt,name=result,proto3,enum=omci.TestResponse_TestResponseResult" json:"result,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *TestResponse) Reset()         { *m = TestResponse{} }
-func (m *TestResponse) String() string { return proto.CompactTextString(m) }
-func (*TestResponse) ProtoMessage()    {}
+func (x *TestResponse) Reset() {
+	*x = TestResponse{}
+	mi := &file_voltha_protos_omci_test_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *TestResponse) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TestResponse) ProtoMessage() {}
+
+func (x *TestResponse) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_omci_test_proto_msgTypes[1]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use TestResponse.ProtoReflect.Descriptor instead.
 func (*TestResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_146dc5f97baf9397, []int{1}
+	return file_voltha_protos_omci_test_proto_rawDescGZIP(), []int{1}
 }
 
-func (m *TestResponse) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_TestResponse.Unmarshal(m, b)
-}
-func (m *TestResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_TestResponse.Marshal(b, m, deterministic)
-}
-func (m *TestResponse) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_TestResponse.Merge(m, src)
-}
-func (m *TestResponse) XXX_Size() int {
-	return xxx_messageInfo_TestResponse.Size(m)
-}
-func (m *TestResponse) XXX_DiscardUnknown() {
-	xxx_messageInfo_TestResponse.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_TestResponse proto.InternalMessageInfo
-
-func (m *TestResponse) GetResult() TestResponse_TestResponseResult {
-	if m != nil {
-		return m.Result
+func (x *TestResponse) GetResult() TestResponse_TestResponseResult {
+	if x != nil {
+		return x.Result
 	}
 	return TestResponse_SUCCESS
 }
 
-func init() {
-	proto.RegisterEnum("omci.TestResponse_TestResponseResult", TestResponse_TestResponseResult_name, TestResponse_TestResponseResult_value)
-	proto.RegisterType((*OmciTestRequest)(nil), "omci.OmciTestRequest")
-	proto.RegisterType((*TestResponse)(nil), "omci.TestResponse")
+var File_voltha_protos_omci_test_proto protoreflect.FileDescriptor
+
+const file_voltha_protos_omci_test_proto_rawDesc = "" +
+	"\n" +
+	"\x1dvoltha_protos/omci_test.proto\x12\x04omci\"5\n" +
+	"\x0fOmciTestRequest\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" +
+	"\x04uuid\x18\x02 \x01(\tR\x04uuid\"}\n" +
+	"\fTestResponse\x12=\n" +
+	"\x06result\x18\x01 \x01(\x0e2%.omci.TestResponse.TestResponseResultR\x06result\".\n" +
+	"\x12TestResponseResult\x12\v\n" +
+	"\aSUCCESS\x10\x00\x12\v\n" +
+	"\aFAILURE\x10\x01BH\n" +
+	"\x18org.opencord.voltha.omciZ,github.com/opencord/voltha-protos/v5/go/omcib\x06proto3"
+
+var (
+	file_voltha_protos_omci_test_proto_rawDescOnce sync.Once
+	file_voltha_protos_omci_test_proto_rawDescData []byte
+)
+
+func file_voltha_protos_omci_test_proto_rawDescGZIP() []byte {
+	file_voltha_protos_omci_test_proto_rawDescOnce.Do(func() {
+		file_voltha_protos_omci_test_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_voltha_protos_omci_test_proto_rawDesc), len(file_voltha_protos_omci_test_proto_rawDesc)))
+	})
+	return file_voltha_protos_omci_test_proto_rawDescData
 }
 
-func init() { proto.RegisterFile("voltha_protos/omci_test.proto", fileDescriptor_146dc5f97baf9397) }
+var file_voltha_protos_omci_test_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
+var file_voltha_protos_omci_test_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
+var file_voltha_protos_omci_test_proto_goTypes = []any{
+	(TestResponse_TestResponseResult)(0), // 0: omci.TestResponse.TestResponseResult
+	(*OmciTestRequest)(nil),              // 1: omci.OmciTestRequest
+	(*TestResponse)(nil),                 // 2: omci.TestResponse
+}
+var file_voltha_protos_omci_test_proto_depIdxs = []int32{
+	0, // 0: omci.TestResponse.result:type_name -> omci.TestResponse.TestResponseResult
+	1, // [1:1] is the sub-list for method output_type
+	1, // [1:1] is the sub-list for method input_type
+	1, // [1:1] is the sub-list for extension type_name
+	1, // [1:1] is the sub-list for extension extendee
+	0, // [0:1] is the sub-list for field type_name
+}
 
-var fileDescriptor_146dc5f97baf9397 = []byte{
-	// 230 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x2d, 0xcb, 0xcf, 0x29,
-	0xc9, 0x48, 0x8c, 0x2f, 0x28, 0xca, 0x2f, 0xc9, 0x2f, 0xd6, 0xcf, 0xcf, 0x4d, 0xce, 0x8c, 0x2f,
-	0x49, 0x2d, 0x2e, 0xd1, 0x03, 0x0b, 0x08, 0xb1, 0x80, 0x04, 0x94, 0x4c, 0xb9, 0xf8, 0xfd, 0x73,
-	0x93, 0x33, 0x43, 0x52, 0x8b, 0x4b, 0x82, 0x52, 0x0b, 0x4b, 0x53, 0x8b, 0x4b, 0x84, 0xf8, 0xb8,
-	0x98, 0x32, 0x53, 0x24, 0x18, 0x15, 0x18, 0x35, 0x38, 0x83, 0x98, 0x32, 0x53, 0x84, 0x84, 0xb8,
-	0x58, 0x4a, 0x4b, 0x33, 0x53, 0x24, 0x98, 0xc0, 0x22, 0x60, 0xb6, 0x52, 0x2d, 0x17, 0x0f, 0x44,
-	0x4b, 0x71, 0x41, 0x7e, 0x5e, 0x71, 0xaa, 0x90, 0x2d, 0x17, 0x5b, 0x51, 0x6a, 0x71, 0x69, 0x4e,
-	0x09, 0x58, 0x1f, 0x9f, 0x91, 0xaa, 0x1e, 0xc8, 0x74, 0x3d, 0x64, 0x35, 0x28, 0x9c, 0x20, 0xb0,
-	0xe2, 0x20, 0xa8, 0x26, 0x25, 0x3d, 0x2e, 0x21, 0x4c, 0x59, 0x21, 0x6e, 0x2e, 0xf6, 0xe0, 0x50,
-	0x67, 0x67, 0xd7, 0xe0, 0x60, 0x01, 0x06, 0x10, 0xc7, 0xcd, 0xd1, 0xd3, 0x27, 0x34, 0xc8, 0x55,
-	0x80, 0xd1, 0xc9, 0x83, 0x4b, 0x22, 0xbf, 0x28, 0x5d, 0x2f, 0xbf, 0x20, 0x35, 0x2f, 0x39, 0xbf,
-	0x28, 0x45, 0x0f, 0xe2, 0x53, 0xb0, 0x9d, 0x51, 0x3a, 0xe9, 0x99, 0x25, 0x19, 0xa5, 0x49, 0x7a,
-	0xc9, 0xf9, 0xb9, 0xfa, 0x30, 0x05, 0xfa, 0x10, 0x05, 0xba, 0xd0, 0xa0, 0x28, 0x33, 0xd5, 0x4f,
-	0xcf, 0x07, 0x07, 0x48, 0x12, 0x1b, 0x58, 0xc8, 0x18, 0x10, 0x00, 0x00, 0xff, 0xff, 0x85, 0xc9,
-	0x07, 0x50, 0x2d, 0x01, 0x00, 0x00,
+func init() { file_voltha_protos_omci_test_proto_init() }
+func file_voltha_protos_omci_test_proto_init() {
+	if File_voltha_protos_omci_test_proto != nil {
+		return
+	}
+	type x struct{}
+	out := protoimpl.TypeBuilder{
+		File: protoimpl.DescBuilder{
+			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+			RawDescriptor: unsafe.Slice(unsafe.StringData(file_voltha_protos_omci_test_proto_rawDesc), len(file_voltha_protos_omci_test_proto_rawDesc)),
+			NumEnums:      1,
+			NumMessages:   2,
+			NumExtensions: 0,
+			NumServices:   0,
+		},
+		GoTypes:           file_voltha_protos_omci_test_proto_goTypes,
+		DependencyIndexes: file_voltha_protos_omci_test_proto_depIdxs,
+		EnumInfos:         file_voltha_protos_omci_test_proto_enumTypes,
+		MessageInfos:      file_voltha_protos_omci_test_proto_msgTypes,
+	}.Build()
+	File_voltha_protos_omci_test_proto = out.File
+	file_voltha_protos_omci_test_proto_goTypes = nil
+	file_voltha_protos_omci_test_proto_depIdxs = nil
 }
diff --git a/go/onu_inter_adapter_service/onu_inter_adapter_service.pb.go b/go/onu_inter_adapter_service/onu_inter_adapter_service.pb.go
index 9094c10..e3a9798 100644
--- a/go/onu_inter_adapter_service/onu_inter_adapter_service.pb.go
+++ b/go/onu_inter_adapter_service/onu_inter_adapter_service.pb.go
@@ -1,357 +1,92 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// 	protoc-gen-go v1.36.11
+// 	protoc        v4.25.8
 // source: voltha_protos/onu_inter_adapter_service.proto
 
 package onu_inter_adapter_service
 
 import (
-	context "context"
-	fmt "fmt"
-	proto "github.com/golang/protobuf/proto"
-	empty "github.com/golang/protobuf/ptypes/empty"
 	common "github.com/opencord/voltha-protos/v5/go/common"
 	health "github.com/opencord/voltha-protos/v5/go/health"
 	inter_adapter "github.com/opencord/voltha-protos/v5/go/inter_adapter"
-	grpc "google.golang.org/grpc"
-	codes "google.golang.org/grpc/codes"
-	status "google.golang.org/grpc/status"
-	math "math"
+	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+	emptypb "google.golang.org/protobuf/types/known/emptypb"
+	reflect "reflect"
+	unsafe "unsafe"
 )
 
-// Reference imports to suppress errors if they are not otherwise used.
-var _ = proto.Marshal
-var _ = fmt.Errorf
-var _ = math.Inf
+const (
+	// Verify that this generated code is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+	// Verify that runtime/protoimpl is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
 
-// 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
+var File_voltha_protos_onu_inter_adapter_service_proto protoreflect.FileDescriptor
 
-func init() {
-	proto.RegisterFile("voltha_protos/onu_inter_adapter_service.proto", fileDescriptor_f951f30caeee9ccd)
+const file_voltha_protos_onu_inter_adapter_service_proto_rawDesc = "" +
+	"\n" +
+	"-voltha_protos/onu_inter_adapter_service.proto\x12\x19onu_inter_adapter_service\x1a\x1avoltha_protos/common.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a!voltha_protos/inter_adapter.proto\x1a\x1avoltha_protos/health.proto2\xdf\x03\n" +
+	"\x16OnuInterAdapterService\x12?\n" +
+	"\x0fGetHealthStatus\x12\x12.common.Connection\x1a\x14.health.HealthStatus(\x010\x01\x12L\n" +
+	"\rOnuIndication\x12#.inter_adapter.OnuIndicationMessage\x1a\x16.google.protobuf.Empty\x12D\n" +
+	"\x0eOmciIndication\x12\x1a.inter_adapter.OmciMessage\x1a\x16.google.protobuf.Empty\x12X\n" +
+	"\x13DownloadTechProfile\x12).inter_adapter.TechProfileDownloadMessage\x1a\x16.google.protobuf.Empty\x12L\n" +
+	"\rDeleteGemPort\x12#.inter_adapter.DeleteGemPortMessage\x1a\x16.google.protobuf.Empty\x12H\n" +
+	"\vDeleteTCont\x12!.inter_adapter.DeleteTcontMessage\x1a\x16.google.protobuf.EmptyB\x90\x01\n" +
+	"-org.opencord.voltha.onu_inter_adapter_serviceB\x1cVolthaOnuInterAdapterServiceZAgithub.com/opencord/voltha-protos/v5/go/onu_inter_adapter_serviceb\x06proto3"
+
+var file_voltha_protos_onu_inter_adapter_service_proto_goTypes = []any{
+	(*common.Connection)(nil),                        // 0: common.Connection
+	(*inter_adapter.OnuIndicationMessage)(nil),       // 1: inter_adapter.OnuIndicationMessage
+	(*inter_adapter.OmciMessage)(nil),                // 2: inter_adapter.OmciMessage
+	(*inter_adapter.TechProfileDownloadMessage)(nil), // 3: inter_adapter.TechProfileDownloadMessage
+	(*inter_adapter.DeleteGemPortMessage)(nil),       // 4: inter_adapter.DeleteGemPortMessage
+	(*inter_adapter.DeleteTcontMessage)(nil),         // 5: inter_adapter.DeleteTcontMessage
+	(*health.HealthStatus)(nil),                      // 6: health.HealthStatus
+	(*emptypb.Empty)(nil),                            // 7: google.protobuf.Empty
+}
+var file_voltha_protos_onu_inter_adapter_service_proto_depIdxs = []int32{
+	0, // 0: onu_inter_adapter_service.OnuInterAdapterService.GetHealthStatus:input_type -> common.Connection
+	1, // 1: onu_inter_adapter_service.OnuInterAdapterService.OnuIndication:input_type -> inter_adapter.OnuIndicationMessage
+	2, // 2: onu_inter_adapter_service.OnuInterAdapterService.OmciIndication:input_type -> inter_adapter.OmciMessage
+	3, // 3: onu_inter_adapter_service.OnuInterAdapterService.DownloadTechProfile:input_type -> inter_adapter.TechProfileDownloadMessage
+	4, // 4: onu_inter_adapter_service.OnuInterAdapterService.DeleteGemPort:input_type -> inter_adapter.DeleteGemPortMessage
+	5, // 5: onu_inter_adapter_service.OnuInterAdapterService.DeleteTCont:input_type -> inter_adapter.DeleteTcontMessage
+	6, // 6: onu_inter_adapter_service.OnuInterAdapterService.GetHealthStatus:output_type -> health.HealthStatus
+	7, // 7: onu_inter_adapter_service.OnuInterAdapterService.OnuIndication:output_type -> google.protobuf.Empty
+	7, // 8: onu_inter_adapter_service.OnuInterAdapterService.OmciIndication:output_type -> google.protobuf.Empty
+	7, // 9: onu_inter_adapter_service.OnuInterAdapterService.DownloadTechProfile:output_type -> google.protobuf.Empty
+	7, // 10: onu_inter_adapter_service.OnuInterAdapterService.DeleteGemPort:output_type -> google.protobuf.Empty
+	7, // 11: onu_inter_adapter_service.OnuInterAdapterService.DeleteTCont:output_type -> google.protobuf.Empty
+	6, // [6:12] is the sub-list for method output_type
+	0, // [0:6] is the sub-list for method input_type
+	0, // [0:0] is the sub-list for extension type_name
+	0, // [0:0] is the sub-list for extension extendee
+	0, // [0:0] is the sub-list for field type_name
 }
 
-var fileDescriptor_f951f30caeee9ccd = []byte{
-	// 354 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x93, 0xcf, 0x4a, 0xc3, 0x40,
-	0x10, 0xc6, 0x29, 0x82, 0x87, 0x95, 0x2a, 0xac, 0x52, 0x30, 0x7a, 0x29, 0x5e, 0xf4, 0xd0, 0x8d,
-	0x28, 0x9e, 0xa5, 0x7f, 0xa4, 0x15, 0x2a, 0x2d, 0xb4, 0x88, 0x78, 0x29, 0xdb, 0xcd, 0x34, 0x59,
-	0x48, 0x76, 0x42, 0x32, 0xa9, 0xf8, 0x16, 0xbe, 0xa1, 0xaf, 0x22, 0xc9, 0xa6, 0xd0, 0xd4, 0x96,
-	0x9c, 0x42, 0xf8, 0x7e, 0xf3, 0x63, 0x06, 0xbe, 0x65, 0x9d, 0x35, 0x86, 0x14, 0xc8, 0x45, 0x9c,
-	0x20, 0x61, 0xea, 0xa2, 0xc9, 0x16, 0xda, 0x10, 0x24, 0x0b, 0xe9, 0xc9, 0x38, 0xff, 0xa6, 0x90,
-	0xac, 0xb5, 0x02, 0x51, 0x00, 0xfc, 0xf2, 0x20, 0xe0, 0x38, 0x55, 0x93, 0xc2, 0x28, 0x42, 0x63,
-	0xc7, 0x9c, 0x2b, 0x1f, 0xd1, 0x0f, 0xc1, 0x2d, 0xfe, 0x96, 0xd9, 0xca, 0x85, 0x28, 0xa6, 0xef,
-	0x32, 0x6c, 0x57, 0x07, 0x2b, 0xf6, 0x12, 0xd9, 0x71, 0x07, 0x20, 0x43, 0x0a, 0x6c, 0xf6, 0xf0,
-	0x7b, 0xc4, 0x5a, 0x13, 0x93, 0xbd, 0xe6, 0x63, 0x5d, 0x3b, 0x35, 0xb3, 0x2b, 0xf1, 0x67, 0x76,
-	0x36, 0x04, 0x1a, 0x15, 0xf4, 0x8c, 0x24, 0x65, 0x29, 0xe7, 0xa2, 0x5c, 0xac, 0x8f, 0xc6, 0x80,
-	0x22, 0x8d, 0xc6, 0xb9, 0x10, 0xa5, 0x70, 0x9b, 0xbc, 0x6d, 0xdc, 0x37, 0xf8, 0x98, 0x35, 0x0b,
-	0xb5, 0xa7, 0x95, 0xcc, 0x51, 0x7e, 0x23, 0xaa, 0xeb, 0x55, 0xd2, 0x37, 0x48, 0x53, 0xe9, 0x83,
-	0xd3, 0x12, 0xf6, 0x5c, 0xb1, 0x39, 0x57, 0xbc, 0xe4, 0xe7, 0xf2, 0x01, 0x3b, 0x9d, 0x44, 0x4a,
-	0x6f, 0xe9, 0x9c, 0x5d, 0x5d, 0xa4, 0x74, 0x9d, 0xe5, 0x83, 0x9d, 0x0f, 0xf0, 0xcb, 0x84, 0x28,
-	0xbd, 0x39, 0xa8, 0x60, 0x9a, 0xe0, 0x4a, 0x87, 0xc0, 0xef, 0x76, 0x54, 0x5b, 0xd9, 0x06, 0xaf,
-	0x33, 0x8f, 0x59, 0x73, 0x00, 0x21, 0x10, 0x0c, 0x21, 0x9a, 0x62, 0x42, 0xff, 0xae, 0xad, 0xa4,
-	0x75, 0xb6, 0x11, 0x3b, 0xb1, 0xfc, 0xbc, 0x8f, 0x86, 0x78, 0x7b, 0xaf, 0x6b, 0xae, 0xd0, 0xd4,
-	0x99, 0x7a, 0x3f, 0x0d, 0xd6, 0xc1, 0xc4, 0x17, 0x18, 0x83, 0x51, 0x98, 0x78, 0xc2, 0xb6, 0x41,
-	0x1c, 0xec, 0x62, 0xef, 0xfa, 0xbd, 0x20, 0xf6, 0xd7, 0xe2, 0xb3, 0xeb, 0x6b, 0x0a, 0xb2, 0x65,
-	0xde, 0x04, 0x77, 0xe3, 0x74, 0xad, 0xb3, 0x53, 0x36, 0x6c, 0xfd, 0xe4, 0xfa, 0x78, 0xf8, 0x35,
-	0x2c, 0x8f, 0x0b, 0xee, 0xf1, 0x2f, 0x00, 0x00, 0xff, 0xff, 0xc4, 0x5f, 0x8c, 0x88, 0x3f, 0x03,
-	0x00, 0x00,
-}
-
-// Reference imports to suppress errors if they are not otherwise used.
-var _ context.Context
-var _ grpc.ClientConn
-
-// This is a compile-time assertion to ensure that this generated file
-// is compatible with the grpc package it is being compiled against.
-const _ = grpc.SupportPackageIsVersion4
-
-// OnuInterAdapterServiceClient is the client API for OnuInterAdapterService service.
-//
-// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
-type OnuInterAdapterServiceClient interface {
-	// GetHealthStatus is used by a OnuInterAdapterService client to detect a connection
-	// lost with the gRPC server hosting the OnuInterAdapterService service
-	GetHealthStatus(ctx context.Context, opts ...grpc.CallOption) (OnuInterAdapterService_GetHealthStatusClient, error)
-	OnuIndication(ctx context.Context, in *inter_adapter.OnuIndicationMessage, opts ...grpc.CallOption) (*empty.Empty, error)
-	OmciIndication(ctx context.Context, in *inter_adapter.OmciMessage, opts ...grpc.CallOption) (*empty.Empty, error)
-	DownloadTechProfile(ctx context.Context, in *inter_adapter.TechProfileDownloadMessage, opts ...grpc.CallOption) (*empty.Empty, error)
-	DeleteGemPort(ctx context.Context, in *inter_adapter.DeleteGemPortMessage, opts ...grpc.CallOption) (*empty.Empty, error)
-	DeleteTCont(ctx context.Context, in *inter_adapter.DeleteTcontMessage, opts ...grpc.CallOption) (*empty.Empty, error)
-}
-
-type onuInterAdapterServiceClient struct {
-	cc *grpc.ClientConn
-}
-
-func NewOnuInterAdapterServiceClient(cc *grpc.ClientConn) OnuInterAdapterServiceClient {
-	return &onuInterAdapterServiceClient{cc}
-}
-
-func (c *onuInterAdapterServiceClient) GetHealthStatus(ctx context.Context, opts ...grpc.CallOption) (OnuInterAdapterService_GetHealthStatusClient, error) {
-	stream, err := c.cc.NewStream(ctx, &_OnuInterAdapterService_serviceDesc.Streams[0], "/onu_inter_adapter_service.OnuInterAdapterService/GetHealthStatus", opts...)
-	if err != nil {
-		return nil, err
+func init() { file_voltha_protos_onu_inter_adapter_service_proto_init() }
+func file_voltha_protos_onu_inter_adapter_service_proto_init() {
+	if File_voltha_protos_onu_inter_adapter_service_proto != nil {
+		return
 	}
-	x := &onuInterAdapterServiceGetHealthStatusClient{stream}
-	return x, nil
-}
-
-type OnuInterAdapterService_GetHealthStatusClient interface {
-	Send(*common.Connection) error
-	Recv() (*health.HealthStatus, error)
-	grpc.ClientStream
-}
-
-type onuInterAdapterServiceGetHealthStatusClient struct {
-	grpc.ClientStream
-}
-
-func (x *onuInterAdapterServiceGetHealthStatusClient) Send(m *common.Connection) error {
-	return x.ClientStream.SendMsg(m)
-}
-
-func (x *onuInterAdapterServiceGetHealthStatusClient) Recv() (*health.HealthStatus, error) {
-	m := new(health.HealthStatus)
-	if err := x.ClientStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
-
-func (c *onuInterAdapterServiceClient) OnuIndication(ctx context.Context, in *inter_adapter.OnuIndicationMessage, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/onu_inter_adapter_service.OnuInterAdapterService/OnuIndication", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *onuInterAdapterServiceClient) OmciIndication(ctx context.Context, in *inter_adapter.OmciMessage, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/onu_inter_adapter_service.OnuInterAdapterService/OmciIndication", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *onuInterAdapterServiceClient) DownloadTechProfile(ctx context.Context, in *inter_adapter.TechProfileDownloadMessage, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/onu_inter_adapter_service.OnuInterAdapterService/DownloadTechProfile", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *onuInterAdapterServiceClient) DeleteGemPort(ctx context.Context, in *inter_adapter.DeleteGemPortMessage, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/onu_inter_adapter_service.OnuInterAdapterService/DeleteGemPort", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *onuInterAdapterServiceClient) DeleteTCont(ctx context.Context, in *inter_adapter.DeleteTcontMessage, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/onu_inter_adapter_service.OnuInterAdapterService/DeleteTCont", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-// OnuInterAdapterServiceServer is the server API for OnuInterAdapterService service.
-type OnuInterAdapterServiceServer interface {
-	// GetHealthStatus is used by a OnuInterAdapterService client to detect a connection
-	// lost with the gRPC server hosting the OnuInterAdapterService service
-	GetHealthStatus(OnuInterAdapterService_GetHealthStatusServer) error
-	OnuIndication(context.Context, *inter_adapter.OnuIndicationMessage) (*empty.Empty, error)
-	OmciIndication(context.Context, *inter_adapter.OmciMessage) (*empty.Empty, error)
-	DownloadTechProfile(context.Context, *inter_adapter.TechProfileDownloadMessage) (*empty.Empty, error)
-	DeleteGemPort(context.Context, *inter_adapter.DeleteGemPortMessage) (*empty.Empty, error)
-	DeleteTCont(context.Context, *inter_adapter.DeleteTcontMessage) (*empty.Empty, error)
-}
-
-// UnimplementedOnuInterAdapterServiceServer can be embedded to have forward compatible implementations.
-type UnimplementedOnuInterAdapterServiceServer struct {
-}
-
-func (*UnimplementedOnuInterAdapterServiceServer) GetHealthStatus(srv OnuInterAdapterService_GetHealthStatusServer) error {
-	return status.Errorf(codes.Unimplemented, "method GetHealthStatus not implemented")
-}
-func (*UnimplementedOnuInterAdapterServiceServer) OnuIndication(ctx context.Context, req *inter_adapter.OnuIndicationMessage) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method OnuIndication not implemented")
-}
-func (*UnimplementedOnuInterAdapterServiceServer) OmciIndication(ctx context.Context, req *inter_adapter.OmciMessage) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method OmciIndication not implemented")
-}
-func (*UnimplementedOnuInterAdapterServiceServer) DownloadTechProfile(ctx context.Context, req *inter_adapter.TechProfileDownloadMessage) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method DownloadTechProfile not implemented")
-}
-func (*UnimplementedOnuInterAdapterServiceServer) DeleteGemPort(ctx context.Context, req *inter_adapter.DeleteGemPortMessage) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method DeleteGemPort not implemented")
-}
-func (*UnimplementedOnuInterAdapterServiceServer) DeleteTCont(ctx context.Context, req *inter_adapter.DeleteTcontMessage) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method DeleteTCont not implemented")
-}
-
-func RegisterOnuInterAdapterServiceServer(s *grpc.Server, srv OnuInterAdapterServiceServer) {
-	s.RegisterService(&_OnuInterAdapterService_serviceDesc, srv)
-}
-
-func _OnuInterAdapterService_GetHealthStatus_Handler(srv interface{}, stream grpc.ServerStream) error {
-	return srv.(OnuInterAdapterServiceServer).GetHealthStatus(&onuInterAdapterServiceGetHealthStatusServer{stream})
-}
-
-type OnuInterAdapterService_GetHealthStatusServer interface {
-	Send(*health.HealthStatus) error
-	Recv() (*common.Connection, error)
-	grpc.ServerStream
-}
-
-type onuInterAdapterServiceGetHealthStatusServer struct {
-	grpc.ServerStream
-}
-
-func (x *onuInterAdapterServiceGetHealthStatusServer) Send(m *health.HealthStatus) error {
-	return x.ServerStream.SendMsg(m)
-}
-
-func (x *onuInterAdapterServiceGetHealthStatusServer) Recv() (*common.Connection, error) {
-	m := new(common.Connection)
-	if err := x.ServerStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
-
-func _OnuInterAdapterService_OnuIndication_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(inter_adapter.OnuIndicationMessage)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(OnuInterAdapterServiceServer).OnuIndication(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/onu_inter_adapter_service.OnuInterAdapterService/OnuIndication",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(OnuInterAdapterServiceServer).OnuIndication(ctx, req.(*inter_adapter.OnuIndicationMessage))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _OnuInterAdapterService_OmciIndication_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(inter_adapter.OmciMessage)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(OnuInterAdapterServiceServer).OmciIndication(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/onu_inter_adapter_service.OnuInterAdapterService/OmciIndication",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(OnuInterAdapterServiceServer).OmciIndication(ctx, req.(*inter_adapter.OmciMessage))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _OnuInterAdapterService_DownloadTechProfile_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(inter_adapter.TechProfileDownloadMessage)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(OnuInterAdapterServiceServer).DownloadTechProfile(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/onu_inter_adapter_service.OnuInterAdapterService/DownloadTechProfile",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(OnuInterAdapterServiceServer).DownloadTechProfile(ctx, req.(*inter_adapter.TechProfileDownloadMessage))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _OnuInterAdapterService_DeleteGemPort_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(inter_adapter.DeleteGemPortMessage)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(OnuInterAdapterServiceServer).DeleteGemPort(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/onu_inter_adapter_service.OnuInterAdapterService/DeleteGemPort",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(OnuInterAdapterServiceServer).DeleteGemPort(ctx, req.(*inter_adapter.DeleteGemPortMessage))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _OnuInterAdapterService_DeleteTCont_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(inter_adapter.DeleteTcontMessage)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(OnuInterAdapterServiceServer).DeleteTCont(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/onu_inter_adapter_service.OnuInterAdapterService/DeleteTCont",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(OnuInterAdapterServiceServer).DeleteTCont(ctx, req.(*inter_adapter.DeleteTcontMessage))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-var _OnuInterAdapterService_serviceDesc = grpc.ServiceDesc{
-	ServiceName: "onu_inter_adapter_service.OnuInterAdapterService",
-	HandlerType: (*OnuInterAdapterServiceServer)(nil),
-	Methods: []grpc.MethodDesc{
-		{
-			MethodName: "OnuIndication",
-			Handler:    _OnuInterAdapterService_OnuIndication_Handler,
+	type x struct{}
+	out := protoimpl.TypeBuilder{
+		File: protoimpl.DescBuilder{
+			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+			RawDescriptor: unsafe.Slice(unsafe.StringData(file_voltha_protos_onu_inter_adapter_service_proto_rawDesc), len(file_voltha_protos_onu_inter_adapter_service_proto_rawDesc)),
+			NumEnums:      0,
+			NumMessages:   0,
+			NumExtensions: 0,
+			NumServices:   1,
 		},
-		{
-			MethodName: "OmciIndication",
-			Handler:    _OnuInterAdapterService_OmciIndication_Handler,
-		},
-		{
-			MethodName: "DownloadTechProfile",
-			Handler:    _OnuInterAdapterService_DownloadTechProfile_Handler,
-		},
-		{
-			MethodName: "DeleteGemPort",
-			Handler:    _OnuInterAdapterService_DeleteGemPort_Handler,
-		},
-		{
-			MethodName: "DeleteTCont",
-			Handler:    _OnuInterAdapterService_DeleteTCont_Handler,
-		},
-	},
-	Streams: []grpc.StreamDesc{
-		{
-			StreamName:    "GetHealthStatus",
-			Handler:       _OnuInterAdapterService_GetHealthStatus_Handler,
-			ServerStreams: true,
-			ClientStreams: true,
-		},
-	},
-	Metadata: "voltha_protos/onu_inter_adapter_service.proto",
+		GoTypes:           file_voltha_protos_onu_inter_adapter_service_proto_goTypes,
+		DependencyIndexes: file_voltha_protos_onu_inter_adapter_service_proto_depIdxs,
+	}.Build()
+	File_voltha_protos_onu_inter_adapter_service_proto = out.File
+	file_voltha_protos_onu_inter_adapter_service_proto_goTypes = nil
+	file_voltha_protos_onu_inter_adapter_service_proto_depIdxs = nil
 }
diff --git a/go/onu_inter_adapter_service/onu_inter_adapter_service_grpc.pb.go b/go/onu_inter_adapter_service/onu_inter_adapter_service_grpc.pb.go
new file mode 100644
index 0000000..393563d
--- /dev/null
+++ b/go/onu_inter_adapter_service/onu_inter_adapter_service_grpc.pb.go
@@ -0,0 +1,315 @@
+// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
+// versions:
+// - protoc-gen-go-grpc v1.6.0
+// - protoc             v4.25.8
+// source: voltha_protos/onu_inter_adapter_service.proto
+
+package onu_inter_adapter_service
+
+import (
+	context "context"
+	common "github.com/opencord/voltha-protos/v5/go/common"
+	health "github.com/opencord/voltha-protos/v5/go/health"
+	inter_adapter "github.com/opencord/voltha-protos/v5/go/inter_adapter"
+	grpc "google.golang.org/grpc"
+	codes "google.golang.org/grpc/codes"
+	status "google.golang.org/grpc/status"
+	emptypb "google.golang.org/protobuf/types/known/emptypb"
+)
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+// Requires gRPC-Go v1.64.0 or later.
+const _ = grpc.SupportPackageIsVersion9
+
+const (
+	OnuInterAdapterService_GetHealthStatus_FullMethodName     = "/onu_inter_adapter_service.OnuInterAdapterService/GetHealthStatus"
+	OnuInterAdapterService_OnuIndication_FullMethodName       = "/onu_inter_adapter_service.OnuInterAdapterService/OnuIndication"
+	OnuInterAdapterService_OmciIndication_FullMethodName      = "/onu_inter_adapter_service.OnuInterAdapterService/OmciIndication"
+	OnuInterAdapterService_DownloadTechProfile_FullMethodName = "/onu_inter_adapter_service.OnuInterAdapterService/DownloadTechProfile"
+	OnuInterAdapterService_DeleteGemPort_FullMethodName       = "/onu_inter_adapter_service.OnuInterAdapterService/DeleteGemPort"
+	OnuInterAdapterService_DeleteTCont_FullMethodName         = "/onu_inter_adapter_service.OnuInterAdapterService/DeleteTCont"
+)
+
+// OnuInterAdapterServiceClient is the client API for OnuInterAdapterService service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
+type OnuInterAdapterServiceClient interface {
+	// GetHealthStatus is used by a OnuInterAdapterService client to detect a connection
+	// lost with the gRPC server hosting the OnuInterAdapterService service
+	GetHealthStatus(ctx context.Context, opts ...grpc.CallOption) (grpc.BidiStreamingClient[common.Connection, health.HealthStatus], error)
+	OnuIndication(ctx context.Context, in *inter_adapter.OnuIndicationMessage, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	OmciIndication(ctx context.Context, in *inter_adapter.OmciMessage, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	DownloadTechProfile(ctx context.Context, in *inter_adapter.TechProfileDownloadMessage, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	DeleteGemPort(ctx context.Context, in *inter_adapter.DeleteGemPortMessage, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	DeleteTCont(ctx context.Context, in *inter_adapter.DeleteTcontMessage, opts ...grpc.CallOption) (*emptypb.Empty, error)
+}
+
+type onuInterAdapterServiceClient struct {
+	cc grpc.ClientConnInterface
+}
+
+func NewOnuInterAdapterServiceClient(cc grpc.ClientConnInterface) OnuInterAdapterServiceClient {
+	return &onuInterAdapterServiceClient{cc}
+}
+
+func (c *onuInterAdapterServiceClient) GetHealthStatus(ctx context.Context, opts ...grpc.CallOption) (grpc.BidiStreamingClient[common.Connection, health.HealthStatus], error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	stream, err := c.cc.NewStream(ctx, &OnuInterAdapterService_ServiceDesc.Streams[0], OnuInterAdapterService_GetHealthStatus_FullMethodName, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	x := &grpc.GenericClientStream[common.Connection, health.HealthStatus]{ClientStream: stream}
+	return x, nil
+}
+
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type OnuInterAdapterService_GetHealthStatusClient = grpc.BidiStreamingClient[common.Connection, health.HealthStatus]
+
+func (c *onuInterAdapterServiceClient) OnuIndication(ctx context.Context, in *inter_adapter.OnuIndicationMessage, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, OnuInterAdapterService_OnuIndication_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *onuInterAdapterServiceClient) OmciIndication(ctx context.Context, in *inter_adapter.OmciMessage, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, OnuInterAdapterService_OmciIndication_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *onuInterAdapterServiceClient) DownloadTechProfile(ctx context.Context, in *inter_adapter.TechProfileDownloadMessage, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, OnuInterAdapterService_DownloadTechProfile_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *onuInterAdapterServiceClient) DeleteGemPort(ctx context.Context, in *inter_adapter.DeleteGemPortMessage, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, OnuInterAdapterService_DeleteGemPort_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *onuInterAdapterServiceClient) DeleteTCont(ctx context.Context, in *inter_adapter.DeleteTcontMessage, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, OnuInterAdapterService_DeleteTCont_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+// OnuInterAdapterServiceServer is the server API for OnuInterAdapterService service.
+// All implementations must embed UnimplementedOnuInterAdapterServiceServer
+// for forward compatibility.
+type OnuInterAdapterServiceServer interface {
+	// GetHealthStatus is used by a OnuInterAdapterService client to detect a connection
+	// lost with the gRPC server hosting the OnuInterAdapterService service
+	GetHealthStatus(grpc.BidiStreamingServer[common.Connection, health.HealthStatus]) error
+	OnuIndication(context.Context, *inter_adapter.OnuIndicationMessage) (*emptypb.Empty, error)
+	OmciIndication(context.Context, *inter_adapter.OmciMessage) (*emptypb.Empty, error)
+	DownloadTechProfile(context.Context, *inter_adapter.TechProfileDownloadMessage) (*emptypb.Empty, error)
+	DeleteGemPort(context.Context, *inter_adapter.DeleteGemPortMessage) (*emptypb.Empty, error)
+	DeleteTCont(context.Context, *inter_adapter.DeleteTcontMessage) (*emptypb.Empty, error)
+	mustEmbedUnimplementedOnuInterAdapterServiceServer()
+}
+
+// UnimplementedOnuInterAdapterServiceServer must be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedOnuInterAdapterServiceServer struct{}
+
+func (UnimplementedOnuInterAdapterServiceServer) GetHealthStatus(grpc.BidiStreamingServer[common.Connection, health.HealthStatus]) error {
+	return status.Error(codes.Unimplemented, "method GetHealthStatus not implemented")
+}
+func (UnimplementedOnuInterAdapterServiceServer) OnuIndication(context.Context, *inter_adapter.OnuIndicationMessage) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method OnuIndication not implemented")
+}
+func (UnimplementedOnuInterAdapterServiceServer) OmciIndication(context.Context, *inter_adapter.OmciMessage) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method OmciIndication not implemented")
+}
+func (UnimplementedOnuInterAdapterServiceServer) DownloadTechProfile(context.Context, *inter_adapter.TechProfileDownloadMessage) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method DownloadTechProfile not implemented")
+}
+func (UnimplementedOnuInterAdapterServiceServer) DeleteGemPort(context.Context, *inter_adapter.DeleteGemPortMessage) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method DeleteGemPort not implemented")
+}
+func (UnimplementedOnuInterAdapterServiceServer) DeleteTCont(context.Context, *inter_adapter.DeleteTcontMessage) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method DeleteTCont not implemented")
+}
+func (UnimplementedOnuInterAdapterServiceServer) mustEmbedUnimplementedOnuInterAdapterServiceServer() {
+}
+func (UnimplementedOnuInterAdapterServiceServer) testEmbeddedByValue() {}
+
+// UnsafeOnuInterAdapterServiceServer may be embedded to opt out of forward compatibility for this service.
+// Use of this interface is not recommended, as added methods to OnuInterAdapterServiceServer will
+// result in compilation errors.
+type UnsafeOnuInterAdapterServiceServer interface {
+	mustEmbedUnimplementedOnuInterAdapterServiceServer()
+}
+
+func RegisterOnuInterAdapterServiceServer(s grpc.ServiceRegistrar, srv OnuInterAdapterServiceServer) {
+	// If the following call panics, it indicates UnimplementedOnuInterAdapterServiceServer was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
+	s.RegisterService(&OnuInterAdapterService_ServiceDesc, srv)
+}
+
+func _OnuInterAdapterService_GetHealthStatus_Handler(srv interface{}, stream grpc.ServerStream) error {
+	return srv.(OnuInterAdapterServiceServer).GetHealthStatus(&grpc.GenericServerStream[common.Connection, health.HealthStatus]{ServerStream: stream})
+}
+
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type OnuInterAdapterService_GetHealthStatusServer = grpc.BidiStreamingServer[common.Connection, health.HealthStatus]
+
+func _OnuInterAdapterService_OnuIndication_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(inter_adapter.OnuIndicationMessage)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(OnuInterAdapterServiceServer).OnuIndication(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: OnuInterAdapterService_OnuIndication_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(OnuInterAdapterServiceServer).OnuIndication(ctx, req.(*inter_adapter.OnuIndicationMessage))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _OnuInterAdapterService_OmciIndication_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(inter_adapter.OmciMessage)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(OnuInterAdapterServiceServer).OmciIndication(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: OnuInterAdapterService_OmciIndication_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(OnuInterAdapterServiceServer).OmciIndication(ctx, req.(*inter_adapter.OmciMessage))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _OnuInterAdapterService_DownloadTechProfile_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(inter_adapter.TechProfileDownloadMessage)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(OnuInterAdapterServiceServer).DownloadTechProfile(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: OnuInterAdapterService_DownloadTechProfile_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(OnuInterAdapterServiceServer).DownloadTechProfile(ctx, req.(*inter_adapter.TechProfileDownloadMessage))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _OnuInterAdapterService_DeleteGemPort_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(inter_adapter.DeleteGemPortMessage)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(OnuInterAdapterServiceServer).DeleteGemPort(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: OnuInterAdapterService_DeleteGemPort_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(OnuInterAdapterServiceServer).DeleteGemPort(ctx, req.(*inter_adapter.DeleteGemPortMessage))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _OnuInterAdapterService_DeleteTCont_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(inter_adapter.DeleteTcontMessage)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(OnuInterAdapterServiceServer).DeleteTCont(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: OnuInterAdapterService_DeleteTCont_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(OnuInterAdapterServiceServer).DeleteTCont(ctx, req.(*inter_adapter.DeleteTcontMessage))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+// OnuInterAdapterService_ServiceDesc is the grpc.ServiceDesc for OnuInterAdapterService service.
+// It's only intended for direct use with grpc.RegisterService,
+// and not to be introspected or modified (even as a copy)
+var OnuInterAdapterService_ServiceDesc = grpc.ServiceDesc{
+	ServiceName: "onu_inter_adapter_service.OnuInterAdapterService",
+	HandlerType: (*OnuInterAdapterServiceServer)(nil),
+	Methods: []grpc.MethodDesc{
+		{
+			MethodName: "OnuIndication",
+			Handler:    _OnuInterAdapterService_OnuIndication_Handler,
+		},
+		{
+			MethodName: "OmciIndication",
+			Handler:    _OnuInterAdapterService_OmciIndication_Handler,
+		},
+		{
+			MethodName: "DownloadTechProfile",
+			Handler:    _OnuInterAdapterService_DownloadTechProfile_Handler,
+		},
+		{
+			MethodName: "DeleteGemPort",
+			Handler:    _OnuInterAdapterService_DeleteGemPort_Handler,
+		},
+		{
+			MethodName: "DeleteTCont",
+			Handler:    _OnuInterAdapterService_DeleteTCont_Handler,
+		},
+	},
+	Streams: []grpc.StreamDesc{
+		{
+			StreamName:    "GetHealthStatus",
+			Handler:       _OnuInterAdapterService_GetHealthStatus_Handler,
+			ServerStreams: true,
+			ClientStreams: true,
+		},
+	},
+	Metadata: "voltha_protos/onu_inter_adapter_service.proto",
+}
diff --git a/go/openflow_13/openflow_13.pb.go b/go/openflow_13/openflow_13.pb.go
index 18505f0..4c107e9 100644
--- a/go/openflow_13/openflow_13.pb.go
+++ b/go/openflow_13/openflow_13.pb.go
@@ -1,25 +1,82 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford
+// Junior University
+// Copyright 2011-2024 Open Networking Foundation (ONF) and the ONF Contributors
+//
+// We are making the OpenFlow specification and associated documentation
+// (Software) available for public use and benefit with the expectation
+// that others will use, modify and enhance the Software and contribute
+// those enhancements back to the community. However, since we would
+// like to make the Software available for broadest use, with as few
+// restrictions as possible permission is hereby granted, free of
+// charge, to any person obtaining a copy of this Software to deal in
+// the Software under the copyrights without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+// BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+// SOFTWARE.
+//
+// The name and trademarks of copyright holder(s) may NOT be used in
+// advertising or publicity pertaining to the Software or any
+// derivatives without specific, written prior permission.
+
+// OpenFlow: protocol between controller and datapath.
+
+//
+// This is a relatively straightforward rendering of OpenFlow message
+// definitions into protocol buffer messages. We preserved the snake
+// case syntax, and made the following changes:
+// - all pad fields dropped
+// - for each enum value above 0x7fffffff the MSB is dropped. For example,
+//   0xffffffff is now 0x7fffffff.
+// - '<type> thing[...]' is replaced with 'repeated <type> thing'
+// - 'char thing[...]' is replaced with 'string thing'
+// - 'uint8_t data[...]' is replaced with 'bytes data'
+// - the following systematic changes are done to various integer types:
+//   uint8_t  -> uint32
+//   uint16_t -> uint32
+//   uint32_t -> uint32
+//   uint64_t -> uint64
+// - removed most length, len, size fields where these values can be determined
+//   from the explicitly encoded length of "repeated" protobuf fields.
+// - explicit use of enum types whereever it is unambigous (and not used as
+//   bitmask/flags value.
+//
+
 // Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// 	protoc-gen-go v1.36.11
+// 	protoc        v4.25.8
 // source: voltha_protos/openflow_13.proto
 
 package openflow_13
 
 import (
-	fmt "fmt"
-	proto "github.com/golang/protobuf/proto"
 	_ "google.golang.org/genproto/googleapis/api/annotations"
-	math "math"
+	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+	reflect "reflect"
+	sync "sync"
+	unsafe "unsafe"
 )
 
-// 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
+const (
+	// Verify that this generated code is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+	// Verify that runtime/protoimpl is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
 
 // Port numbering. Ports are numbered starting from 1.
 type OfpPortNo int32
@@ -31,165 +88,207 @@
 	// Reserved OpenFlow Port (fake output "ports").
 	OfpPortNo_OFPP_IN_PORT    OfpPortNo = 2147483640
 	OfpPortNo_OFPP_TABLE      OfpPortNo = 2147483641
-	OfpPortNo_OFPP_NORMAL     OfpPortNo = 2147483642
-	OfpPortNo_OFPP_FLOOD      OfpPortNo = 2147483643
-	OfpPortNo_OFPP_ALL        OfpPortNo = 2147483644
-	OfpPortNo_OFPP_CONTROLLER OfpPortNo = 2147483645
-	OfpPortNo_OFPP_LOCAL      OfpPortNo = 2147483646
+	OfpPortNo_OFPP_NORMAL     OfpPortNo = 2147483642 // Forward using non-OpenFlow pipeline.
+	OfpPortNo_OFPP_FLOOD      OfpPortNo = 2147483643 // Flood using non-OpenFlow pipeline.
+	OfpPortNo_OFPP_ALL        OfpPortNo = 2147483644 // All standard ports except input port.
+	OfpPortNo_OFPP_CONTROLLER OfpPortNo = 2147483645 // Send to controller.
+	OfpPortNo_OFPP_LOCAL      OfpPortNo = 2147483646 // Local openflow "port".
 	OfpPortNo_OFPP_ANY        OfpPortNo = 2147483647
 )
 
-var OfpPortNo_name = map[int32]string{
-	0:          "OFPP_INVALID",
-	2147483392: "OFPP_MAX",
-	2147483640: "OFPP_IN_PORT",
-	2147483641: "OFPP_TABLE",
-	2147483642: "OFPP_NORMAL",
-	2147483643: "OFPP_FLOOD",
-	2147483644: "OFPP_ALL",
-	2147483645: "OFPP_CONTROLLER",
-	2147483646: "OFPP_LOCAL",
-	2147483647: "OFPP_ANY",
-}
+// Enum value maps for OfpPortNo.
+var (
+	OfpPortNo_name = map[int32]string{
+		0:          "OFPP_INVALID",
+		2147483392: "OFPP_MAX",
+		2147483640: "OFPP_IN_PORT",
+		2147483641: "OFPP_TABLE",
+		2147483642: "OFPP_NORMAL",
+		2147483643: "OFPP_FLOOD",
+		2147483644: "OFPP_ALL",
+		2147483645: "OFPP_CONTROLLER",
+		2147483646: "OFPP_LOCAL",
+		2147483647: "OFPP_ANY",
+	}
+	OfpPortNo_value = map[string]int32{
+		"OFPP_INVALID":    0,
+		"OFPP_MAX":        2147483392,
+		"OFPP_IN_PORT":    2147483640,
+		"OFPP_TABLE":      2147483641,
+		"OFPP_NORMAL":     2147483642,
+		"OFPP_FLOOD":      2147483643,
+		"OFPP_ALL":        2147483644,
+		"OFPP_CONTROLLER": 2147483645,
+		"OFPP_LOCAL":      2147483646,
+		"OFPP_ANY":        2147483647,
+	}
+)
 
-var OfpPortNo_value = map[string]int32{
-	"OFPP_INVALID":    0,
-	"OFPP_MAX":        2147483392,
-	"OFPP_IN_PORT":    2147483640,
-	"OFPP_TABLE":      2147483641,
-	"OFPP_NORMAL":     2147483642,
-	"OFPP_FLOOD":      2147483643,
-	"OFPP_ALL":        2147483644,
-	"OFPP_CONTROLLER": 2147483645,
-	"OFPP_LOCAL":      2147483646,
-	"OFPP_ANY":        2147483647,
+func (x OfpPortNo) Enum() *OfpPortNo {
+	p := new(OfpPortNo)
+	*p = x
+	return p
 }
 
 func (x OfpPortNo) String() string {
-	return proto.EnumName(OfpPortNo_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OfpPortNo) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openflow_13_proto_enumTypes[0].Descriptor()
+}
+
+func (OfpPortNo) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openflow_13_proto_enumTypes[0]
+}
+
+func (x OfpPortNo) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OfpPortNo.Descriptor instead.
 func (OfpPortNo) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{0}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{0}
 }
 
 type OfpType int32
 
 const (
 	// Immutable messages.
-	OfpType_OFPT_HELLO        OfpType = 0
-	OfpType_OFPT_ERROR        OfpType = 1
-	OfpType_OFPT_ECHO_REQUEST OfpType = 2
-	OfpType_OFPT_ECHO_REPLY   OfpType = 3
-	OfpType_OFPT_EXPERIMENTER OfpType = 4
+	OfpType_OFPT_HELLO        OfpType = 0 // Symmetric message
+	OfpType_OFPT_ERROR        OfpType = 1 // Symmetric message
+	OfpType_OFPT_ECHO_REQUEST OfpType = 2 // Symmetric message
+	OfpType_OFPT_ECHO_REPLY   OfpType = 3 // Symmetric message
+	OfpType_OFPT_EXPERIMENTER OfpType = 4 // Symmetric message
 	// Switch configuration messages.
-	OfpType_OFPT_FEATURES_REQUEST   OfpType = 5
-	OfpType_OFPT_FEATURES_REPLY     OfpType = 6
-	OfpType_OFPT_GET_CONFIG_REQUEST OfpType = 7
-	OfpType_OFPT_GET_CONFIG_REPLY   OfpType = 8
-	OfpType_OFPT_SET_CONFIG         OfpType = 9
+	OfpType_OFPT_FEATURES_REQUEST   OfpType = 5 // Controller/switch message
+	OfpType_OFPT_FEATURES_REPLY     OfpType = 6 // Controller/switch message
+	OfpType_OFPT_GET_CONFIG_REQUEST OfpType = 7 // Controller/switch message
+	OfpType_OFPT_GET_CONFIG_REPLY   OfpType = 8 // Controller/switch message
+	OfpType_OFPT_SET_CONFIG         OfpType = 9 // Controller/switch message
 	// Asynchronous messages.
-	OfpType_OFPT_PACKET_IN    OfpType = 10
-	OfpType_OFPT_FLOW_REMOVED OfpType = 11
-	OfpType_OFPT_PORT_STATUS  OfpType = 12
+	OfpType_OFPT_PACKET_IN    OfpType = 10 // Async message
+	OfpType_OFPT_FLOW_REMOVED OfpType = 11 // Async message
+	OfpType_OFPT_PORT_STATUS  OfpType = 12 // Async message
 	// Controller command messages.
-	OfpType_OFPT_PACKET_OUT OfpType = 13
-	OfpType_OFPT_FLOW_MOD   OfpType = 14
-	OfpType_OFPT_GROUP_MOD  OfpType = 15
-	OfpType_OFPT_PORT_MOD   OfpType = 16
-	OfpType_OFPT_TABLE_MOD  OfpType = 17
+	OfpType_OFPT_PACKET_OUT OfpType = 13 // Controller/switch message
+	OfpType_OFPT_FLOW_MOD   OfpType = 14 // Controller/switch message
+	OfpType_OFPT_GROUP_MOD  OfpType = 15 // Controller/switch message
+	OfpType_OFPT_PORT_MOD   OfpType = 16 // Controller/switch message
+	OfpType_OFPT_TABLE_MOD  OfpType = 17 // Controller/switch message
 	// Multipart messages.
-	OfpType_OFPT_MULTIPART_REQUEST OfpType = 18
-	OfpType_OFPT_MULTIPART_REPLY   OfpType = 19
+	OfpType_OFPT_MULTIPART_REQUEST OfpType = 18 // Controller/switch message
+	OfpType_OFPT_MULTIPART_REPLY   OfpType = 19 // Controller/switch message
 	// Barrier messages.
-	OfpType_OFPT_BARRIER_REQUEST OfpType = 20
-	OfpType_OFPT_BARRIER_REPLY   OfpType = 21
+	OfpType_OFPT_BARRIER_REQUEST OfpType = 20 // Controller/switch message
+	OfpType_OFPT_BARRIER_REPLY   OfpType = 21 // Controller/switch message
 	// Queue Configuration messages.
-	OfpType_OFPT_QUEUE_GET_CONFIG_REQUEST OfpType = 22
-	OfpType_OFPT_QUEUE_GET_CONFIG_REPLY   OfpType = 23
+	OfpType_OFPT_QUEUE_GET_CONFIG_REQUEST OfpType = 22 // Controller/switch message
+	OfpType_OFPT_QUEUE_GET_CONFIG_REPLY   OfpType = 23 // Controller/switch message
 	// Controller role change request messages.
-	OfpType_OFPT_ROLE_REQUEST OfpType = 24
-	OfpType_OFPT_ROLE_REPLY   OfpType = 25
+	OfpType_OFPT_ROLE_REQUEST OfpType = 24 // Controller/switch message
+	OfpType_OFPT_ROLE_REPLY   OfpType = 25 // Controller/switch message
 	// Asynchronous message configuration.
-	OfpType_OFPT_GET_ASYNC_REQUEST OfpType = 26
-	OfpType_OFPT_GET_ASYNC_REPLY   OfpType = 27
-	OfpType_OFPT_SET_ASYNC         OfpType = 28
+	OfpType_OFPT_GET_ASYNC_REQUEST OfpType = 26 // Controller/switch message
+	OfpType_OFPT_GET_ASYNC_REPLY   OfpType = 27 // Controller/switch message
+	OfpType_OFPT_SET_ASYNC         OfpType = 28 // Controller/switch message
 	// Meters and rate limiters configuration messages.
-	OfpType_OFPT_METER_MOD OfpType = 29
+	OfpType_OFPT_METER_MOD OfpType = 29 // Controller/switch message
 )
 
-var OfpType_name = map[int32]string{
-	0:  "OFPT_HELLO",
-	1:  "OFPT_ERROR",
-	2:  "OFPT_ECHO_REQUEST",
-	3:  "OFPT_ECHO_REPLY",
-	4:  "OFPT_EXPERIMENTER",
-	5:  "OFPT_FEATURES_REQUEST",
-	6:  "OFPT_FEATURES_REPLY",
-	7:  "OFPT_GET_CONFIG_REQUEST",
-	8:  "OFPT_GET_CONFIG_REPLY",
-	9:  "OFPT_SET_CONFIG",
-	10: "OFPT_PACKET_IN",
-	11: "OFPT_FLOW_REMOVED",
-	12: "OFPT_PORT_STATUS",
-	13: "OFPT_PACKET_OUT",
-	14: "OFPT_FLOW_MOD",
-	15: "OFPT_GROUP_MOD",
-	16: "OFPT_PORT_MOD",
-	17: "OFPT_TABLE_MOD",
-	18: "OFPT_MULTIPART_REQUEST",
-	19: "OFPT_MULTIPART_REPLY",
-	20: "OFPT_BARRIER_REQUEST",
-	21: "OFPT_BARRIER_REPLY",
-	22: "OFPT_QUEUE_GET_CONFIG_REQUEST",
-	23: "OFPT_QUEUE_GET_CONFIG_REPLY",
-	24: "OFPT_ROLE_REQUEST",
-	25: "OFPT_ROLE_REPLY",
-	26: "OFPT_GET_ASYNC_REQUEST",
-	27: "OFPT_GET_ASYNC_REPLY",
-	28: "OFPT_SET_ASYNC",
-	29: "OFPT_METER_MOD",
-}
+// Enum value maps for OfpType.
+var (
+	OfpType_name = map[int32]string{
+		0:  "OFPT_HELLO",
+		1:  "OFPT_ERROR",
+		2:  "OFPT_ECHO_REQUEST",
+		3:  "OFPT_ECHO_REPLY",
+		4:  "OFPT_EXPERIMENTER",
+		5:  "OFPT_FEATURES_REQUEST",
+		6:  "OFPT_FEATURES_REPLY",
+		7:  "OFPT_GET_CONFIG_REQUEST",
+		8:  "OFPT_GET_CONFIG_REPLY",
+		9:  "OFPT_SET_CONFIG",
+		10: "OFPT_PACKET_IN",
+		11: "OFPT_FLOW_REMOVED",
+		12: "OFPT_PORT_STATUS",
+		13: "OFPT_PACKET_OUT",
+		14: "OFPT_FLOW_MOD",
+		15: "OFPT_GROUP_MOD",
+		16: "OFPT_PORT_MOD",
+		17: "OFPT_TABLE_MOD",
+		18: "OFPT_MULTIPART_REQUEST",
+		19: "OFPT_MULTIPART_REPLY",
+		20: "OFPT_BARRIER_REQUEST",
+		21: "OFPT_BARRIER_REPLY",
+		22: "OFPT_QUEUE_GET_CONFIG_REQUEST",
+		23: "OFPT_QUEUE_GET_CONFIG_REPLY",
+		24: "OFPT_ROLE_REQUEST",
+		25: "OFPT_ROLE_REPLY",
+		26: "OFPT_GET_ASYNC_REQUEST",
+		27: "OFPT_GET_ASYNC_REPLY",
+		28: "OFPT_SET_ASYNC",
+		29: "OFPT_METER_MOD",
+	}
+	OfpType_value = map[string]int32{
+		"OFPT_HELLO":                    0,
+		"OFPT_ERROR":                    1,
+		"OFPT_ECHO_REQUEST":             2,
+		"OFPT_ECHO_REPLY":               3,
+		"OFPT_EXPERIMENTER":             4,
+		"OFPT_FEATURES_REQUEST":         5,
+		"OFPT_FEATURES_REPLY":           6,
+		"OFPT_GET_CONFIG_REQUEST":       7,
+		"OFPT_GET_CONFIG_REPLY":         8,
+		"OFPT_SET_CONFIG":               9,
+		"OFPT_PACKET_IN":                10,
+		"OFPT_FLOW_REMOVED":             11,
+		"OFPT_PORT_STATUS":              12,
+		"OFPT_PACKET_OUT":               13,
+		"OFPT_FLOW_MOD":                 14,
+		"OFPT_GROUP_MOD":                15,
+		"OFPT_PORT_MOD":                 16,
+		"OFPT_TABLE_MOD":                17,
+		"OFPT_MULTIPART_REQUEST":        18,
+		"OFPT_MULTIPART_REPLY":          19,
+		"OFPT_BARRIER_REQUEST":          20,
+		"OFPT_BARRIER_REPLY":            21,
+		"OFPT_QUEUE_GET_CONFIG_REQUEST": 22,
+		"OFPT_QUEUE_GET_CONFIG_REPLY":   23,
+		"OFPT_ROLE_REQUEST":             24,
+		"OFPT_ROLE_REPLY":               25,
+		"OFPT_GET_ASYNC_REQUEST":        26,
+		"OFPT_GET_ASYNC_REPLY":          27,
+		"OFPT_SET_ASYNC":                28,
+		"OFPT_METER_MOD":                29,
+	}
+)
 
-var OfpType_value = map[string]int32{
-	"OFPT_HELLO":                    0,
-	"OFPT_ERROR":                    1,
-	"OFPT_ECHO_REQUEST":             2,
-	"OFPT_ECHO_REPLY":               3,
-	"OFPT_EXPERIMENTER":             4,
-	"OFPT_FEATURES_REQUEST":         5,
-	"OFPT_FEATURES_REPLY":           6,
-	"OFPT_GET_CONFIG_REQUEST":       7,
-	"OFPT_GET_CONFIG_REPLY":         8,
-	"OFPT_SET_CONFIG":               9,
-	"OFPT_PACKET_IN":                10,
-	"OFPT_FLOW_REMOVED":             11,
-	"OFPT_PORT_STATUS":              12,
-	"OFPT_PACKET_OUT":               13,
-	"OFPT_FLOW_MOD":                 14,
-	"OFPT_GROUP_MOD":                15,
-	"OFPT_PORT_MOD":                 16,
-	"OFPT_TABLE_MOD":                17,
-	"OFPT_MULTIPART_REQUEST":        18,
-	"OFPT_MULTIPART_REPLY":          19,
-	"OFPT_BARRIER_REQUEST":          20,
-	"OFPT_BARRIER_REPLY":            21,
-	"OFPT_QUEUE_GET_CONFIG_REQUEST": 22,
-	"OFPT_QUEUE_GET_CONFIG_REPLY":   23,
-	"OFPT_ROLE_REQUEST":             24,
-	"OFPT_ROLE_REPLY":               25,
-	"OFPT_GET_ASYNC_REQUEST":        26,
-	"OFPT_GET_ASYNC_REPLY":          27,
-	"OFPT_SET_ASYNC":                28,
-	"OFPT_METER_MOD":                29,
+func (x OfpType) Enum() *OfpType {
+	p := new(OfpType)
+	*p = x
+	return p
 }
 
 func (x OfpType) String() string {
-	return proto.EnumName(OfpType_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OfpType) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openflow_13_proto_enumTypes[1].Descriptor()
+}
+
+func (OfpType) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openflow_13_proto_enumTypes[1]
+}
+
+func (x OfpType) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OfpType.Descriptor instead.
 func (OfpType) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{1}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{1}
 }
 
 // Hello elements types.
@@ -197,57 +296,99 @@
 
 const (
 	OfpHelloElemType_OFPHET_INVALID       OfpHelloElemType = 0
-	OfpHelloElemType_OFPHET_VERSIONBITMAP OfpHelloElemType = 1
+	OfpHelloElemType_OFPHET_VERSIONBITMAP OfpHelloElemType = 1 // Bitmap of version supported.
 )
 
-var OfpHelloElemType_name = map[int32]string{
-	0: "OFPHET_INVALID",
-	1: "OFPHET_VERSIONBITMAP",
-}
+// Enum value maps for OfpHelloElemType.
+var (
+	OfpHelloElemType_name = map[int32]string{
+		0: "OFPHET_INVALID",
+		1: "OFPHET_VERSIONBITMAP",
+	}
+	OfpHelloElemType_value = map[string]int32{
+		"OFPHET_INVALID":       0,
+		"OFPHET_VERSIONBITMAP": 1,
+	}
+)
 
-var OfpHelloElemType_value = map[string]int32{
-	"OFPHET_INVALID":       0,
-	"OFPHET_VERSIONBITMAP": 1,
+func (x OfpHelloElemType) Enum() *OfpHelloElemType {
+	p := new(OfpHelloElemType)
+	*p = x
+	return p
 }
 
 func (x OfpHelloElemType) String() string {
-	return proto.EnumName(OfpHelloElemType_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OfpHelloElemType) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openflow_13_proto_enumTypes[2].Descriptor()
+}
+
+func (OfpHelloElemType) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openflow_13_proto_enumTypes[2]
+}
+
+func (x OfpHelloElemType) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OfpHelloElemType.Descriptor instead.
 func (OfpHelloElemType) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{2}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{2}
 }
 
 type OfpConfigFlags int32
 
 const (
 	// Handling of IP fragments.
-	OfpConfigFlags_OFPC_FRAG_NORMAL OfpConfigFlags = 0
-	OfpConfigFlags_OFPC_FRAG_DROP   OfpConfigFlags = 1
-	OfpConfigFlags_OFPC_FRAG_REASM  OfpConfigFlags = 2
-	OfpConfigFlags_OFPC_FRAG_MASK   OfpConfigFlags = 3
+	OfpConfigFlags_OFPC_FRAG_NORMAL OfpConfigFlags = 0 // No special handling for fragments.
+	OfpConfigFlags_OFPC_FRAG_DROP   OfpConfigFlags = 1 // Drop fragments.
+	OfpConfigFlags_OFPC_FRAG_REASM  OfpConfigFlags = 2 // Reassemble (only if OFPC_IP_REASM set).
+	OfpConfigFlags_OFPC_FRAG_MASK   OfpConfigFlags = 3 // Bitmask of flags dealing with frag.
 )
 
-var OfpConfigFlags_name = map[int32]string{
-	0: "OFPC_FRAG_NORMAL",
-	1: "OFPC_FRAG_DROP",
-	2: "OFPC_FRAG_REASM",
-	3: "OFPC_FRAG_MASK",
-}
+// Enum value maps for OfpConfigFlags.
+var (
+	OfpConfigFlags_name = map[int32]string{
+		0: "OFPC_FRAG_NORMAL",
+		1: "OFPC_FRAG_DROP",
+		2: "OFPC_FRAG_REASM",
+		3: "OFPC_FRAG_MASK",
+	}
+	OfpConfigFlags_value = map[string]int32{
+		"OFPC_FRAG_NORMAL": 0,
+		"OFPC_FRAG_DROP":   1,
+		"OFPC_FRAG_REASM":  2,
+		"OFPC_FRAG_MASK":   3,
+	}
+)
 
-var OfpConfigFlags_value = map[string]int32{
-	"OFPC_FRAG_NORMAL": 0,
-	"OFPC_FRAG_DROP":   1,
-	"OFPC_FRAG_REASM":  2,
-	"OFPC_FRAG_MASK":   3,
+func (x OfpConfigFlags) Enum() *OfpConfigFlags {
+	p := new(OfpConfigFlags)
+	*p = x
+	return p
 }
 
 func (x OfpConfigFlags) String() string {
-	return proto.EnumName(OfpConfigFlags_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OfpConfigFlags) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openflow_13_proto_enumTypes[3].Descriptor()
+}
+
+func (OfpConfigFlags) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openflow_13_proto_enumTypes[3]
+}
+
+func (x OfpConfigFlags) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OfpConfigFlags.Descriptor instead.
 func (OfpConfigFlags) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{3}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{3}
 }
 
 // Flags to configure the table. Reserved for future use.
@@ -255,25 +396,46 @@
 
 const (
 	OfpTableConfig_OFPTC_INVALID         OfpTableConfig = 0
-	OfpTableConfig_OFPTC_DEPRECATED_MASK OfpTableConfig = 3
+	OfpTableConfig_OFPTC_DEPRECATED_MASK OfpTableConfig = 3 // Deprecated bits
 )
 
-var OfpTableConfig_name = map[int32]string{
-	0: "OFPTC_INVALID",
-	3: "OFPTC_DEPRECATED_MASK",
-}
+// Enum value maps for OfpTableConfig.
+var (
+	OfpTableConfig_name = map[int32]string{
+		0: "OFPTC_INVALID",
+		3: "OFPTC_DEPRECATED_MASK",
+	}
+	OfpTableConfig_value = map[string]int32{
+		"OFPTC_INVALID":         0,
+		"OFPTC_DEPRECATED_MASK": 3,
+	}
+)
 
-var OfpTableConfig_value = map[string]int32{
-	"OFPTC_INVALID":         0,
-	"OFPTC_DEPRECATED_MASK": 3,
+func (x OfpTableConfig) Enum() *OfpTableConfig {
+	p := new(OfpTableConfig)
+	*p = x
+	return p
 }
 
 func (x OfpTableConfig) String() string {
-	return proto.EnumName(OfpTableConfig_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OfpTableConfig) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openflow_13_proto_enumTypes[4].Descriptor()
+}
+
+func (OfpTableConfig) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openflow_13_proto_enumTypes[4]
+}
+
+func (x OfpTableConfig) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OfpTableConfig.Descriptor instead.
 func (OfpTableConfig) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{4}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{4}
 }
 
 // Table numbering. Tables can use any number up to OFPT_MAX.
@@ -287,24 +449,45 @@
 	OfpTable_OFPTT_ALL OfpTable = 255
 )
 
-var OfpTable_name = map[int32]string{
-	0:   "OFPTT_INVALID",
-	254: "OFPTT_MAX",
-	255: "OFPTT_ALL",
-}
+// Enum value maps for OfpTable.
+var (
+	OfpTable_name = map[int32]string{
+		0:   "OFPTT_INVALID",
+		254: "OFPTT_MAX",
+		255: "OFPTT_ALL",
+	}
+	OfpTable_value = map[string]int32{
+		"OFPTT_INVALID": 0,
+		"OFPTT_MAX":     254,
+		"OFPTT_ALL":     255,
+	}
+)
 
-var OfpTable_value = map[string]int32{
-	"OFPTT_INVALID": 0,
-	"OFPTT_MAX":     254,
-	"OFPTT_ALL":     255,
+func (x OfpTable) Enum() *OfpTable {
+	p := new(OfpTable)
+	*p = x
+	return p
 }
 
 func (x OfpTable) String() string {
-	return proto.EnumName(OfpTable_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OfpTable) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openflow_13_proto_enumTypes[5].Descriptor()
+}
+
+func (OfpTable) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openflow_13_proto_enumTypes[5]
+}
+
+func (x OfpTable) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OfpTable.Descriptor instead.
 func (OfpTable) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{5}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{5}
 }
 
 // Capabilities supported by the datapath.
@@ -312,43 +495,64 @@
 
 const (
 	OfpCapabilities_OFPC_INVALID      OfpCapabilities = 0
-	OfpCapabilities_OFPC_FLOW_STATS   OfpCapabilities = 1
-	OfpCapabilities_OFPC_TABLE_STATS  OfpCapabilities = 2
-	OfpCapabilities_OFPC_PORT_STATS   OfpCapabilities = 4
-	OfpCapabilities_OFPC_GROUP_STATS  OfpCapabilities = 8
-	OfpCapabilities_OFPC_IP_REASM     OfpCapabilities = 32
-	OfpCapabilities_OFPC_QUEUE_STATS  OfpCapabilities = 64
-	OfpCapabilities_OFPC_PORT_BLOCKED OfpCapabilities = 256
+	OfpCapabilities_OFPC_FLOW_STATS   OfpCapabilities = 1   // Flow statistics.
+	OfpCapabilities_OFPC_TABLE_STATS  OfpCapabilities = 2   // Table statistics.
+	OfpCapabilities_OFPC_PORT_STATS   OfpCapabilities = 4   // Port statistics.
+	OfpCapabilities_OFPC_GROUP_STATS  OfpCapabilities = 8   // Group statistics.
+	OfpCapabilities_OFPC_IP_REASM     OfpCapabilities = 32  // Can reassemble IP fragments.
+	OfpCapabilities_OFPC_QUEUE_STATS  OfpCapabilities = 64  // Queue statistics.
+	OfpCapabilities_OFPC_PORT_BLOCKED OfpCapabilities = 256 // Switch will block looping ports.
 )
 
-var OfpCapabilities_name = map[int32]string{
-	0:   "OFPC_INVALID",
-	1:   "OFPC_FLOW_STATS",
-	2:   "OFPC_TABLE_STATS",
-	4:   "OFPC_PORT_STATS",
-	8:   "OFPC_GROUP_STATS",
-	32:  "OFPC_IP_REASM",
-	64:  "OFPC_QUEUE_STATS",
-	256: "OFPC_PORT_BLOCKED",
-}
+// Enum value maps for OfpCapabilities.
+var (
+	OfpCapabilities_name = map[int32]string{
+		0:   "OFPC_INVALID",
+		1:   "OFPC_FLOW_STATS",
+		2:   "OFPC_TABLE_STATS",
+		4:   "OFPC_PORT_STATS",
+		8:   "OFPC_GROUP_STATS",
+		32:  "OFPC_IP_REASM",
+		64:  "OFPC_QUEUE_STATS",
+		256: "OFPC_PORT_BLOCKED",
+	}
+	OfpCapabilities_value = map[string]int32{
+		"OFPC_INVALID":      0,
+		"OFPC_FLOW_STATS":   1,
+		"OFPC_TABLE_STATS":  2,
+		"OFPC_PORT_STATS":   4,
+		"OFPC_GROUP_STATS":  8,
+		"OFPC_IP_REASM":     32,
+		"OFPC_QUEUE_STATS":  64,
+		"OFPC_PORT_BLOCKED": 256,
+	}
+)
 
-var OfpCapabilities_value = map[string]int32{
-	"OFPC_INVALID":      0,
-	"OFPC_FLOW_STATS":   1,
-	"OFPC_TABLE_STATS":  2,
-	"OFPC_PORT_STATS":   4,
-	"OFPC_GROUP_STATS":  8,
-	"OFPC_IP_REASM":     32,
-	"OFPC_QUEUE_STATS":  64,
-	"OFPC_PORT_BLOCKED": 256,
+func (x OfpCapabilities) Enum() *OfpCapabilities {
+	p := new(OfpCapabilities)
+	*p = x
+	return p
 }
 
 func (x OfpCapabilities) String() string {
-	return proto.EnumName(OfpCapabilities_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OfpCapabilities) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openflow_13_proto_enumTypes[6].Descriptor()
+}
+
+func (OfpCapabilities) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openflow_13_proto_enumTypes[6]
+}
+
+func (x OfpCapabilities) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OfpCapabilities.Descriptor instead.
 func (OfpCapabilities) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{6}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{6}
 }
 
 // Flags to indicate behavior of the physical port.  These flags are
@@ -358,34 +562,55 @@
 
 const (
 	OfpPortConfig_OFPPC_INVALID      OfpPortConfig = 0
-	OfpPortConfig_OFPPC_PORT_DOWN    OfpPortConfig = 1
-	OfpPortConfig_OFPPC_NO_RECV      OfpPortConfig = 4
-	OfpPortConfig_OFPPC_NO_FWD       OfpPortConfig = 32
-	OfpPortConfig_OFPPC_NO_PACKET_IN OfpPortConfig = 64
+	OfpPortConfig_OFPPC_PORT_DOWN    OfpPortConfig = 1  // Port is administratively down.
+	OfpPortConfig_OFPPC_NO_RECV      OfpPortConfig = 4  // Drop all packets received by port.
+	OfpPortConfig_OFPPC_NO_FWD       OfpPortConfig = 32 // Drop packets forwarded to port.
+	OfpPortConfig_OFPPC_NO_PACKET_IN OfpPortConfig = 64 // Do not send packet-in msgs for port.
 )
 
-var OfpPortConfig_name = map[int32]string{
-	0:  "OFPPC_INVALID",
-	1:  "OFPPC_PORT_DOWN",
-	4:  "OFPPC_NO_RECV",
-	32: "OFPPC_NO_FWD",
-	64: "OFPPC_NO_PACKET_IN",
-}
+// Enum value maps for OfpPortConfig.
+var (
+	OfpPortConfig_name = map[int32]string{
+		0:  "OFPPC_INVALID",
+		1:  "OFPPC_PORT_DOWN",
+		4:  "OFPPC_NO_RECV",
+		32: "OFPPC_NO_FWD",
+		64: "OFPPC_NO_PACKET_IN",
+	}
+	OfpPortConfig_value = map[string]int32{
+		"OFPPC_INVALID":      0,
+		"OFPPC_PORT_DOWN":    1,
+		"OFPPC_NO_RECV":      4,
+		"OFPPC_NO_FWD":       32,
+		"OFPPC_NO_PACKET_IN": 64,
+	}
+)
 
-var OfpPortConfig_value = map[string]int32{
-	"OFPPC_INVALID":      0,
-	"OFPPC_PORT_DOWN":    1,
-	"OFPPC_NO_RECV":      4,
-	"OFPPC_NO_FWD":       32,
-	"OFPPC_NO_PACKET_IN": 64,
+func (x OfpPortConfig) Enum() *OfpPortConfig {
+	p := new(OfpPortConfig)
+	*p = x
+	return p
 }
 
 func (x OfpPortConfig) String() string {
-	return proto.EnumName(OfpPortConfig_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OfpPortConfig) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openflow_13_proto_enumTypes[7].Descriptor()
+}
+
+func (OfpPortConfig) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openflow_13_proto_enumTypes[7]
+}
+
+func (x OfpPortConfig) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OfpPortConfig.Descriptor instead.
 func (OfpPortConfig) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{7}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{7}
 }
 
 // Current state of the physical port.  These are not configurable from
@@ -394,31 +619,52 @@
 
 const (
 	OfpPortState_OFPPS_INVALID   OfpPortState = 0
-	OfpPortState_OFPPS_LINK_DOWN OfpPortState = 1
-	OfpPortState_OFPPS_BLOCKED   OfpPortState = 2
-	OfpPortState_OFPPS_LIVE      OfpPortState = 4
+	OfpPortState_OFPPS_LINK_DOWN OfpPortState = 1 // No physical link present.
+	OfpPortState_OFPPS_BLOCKED   OfpPortState = 2 // Port is blocked
+	OfpPortState_OFPPS_LIVE      OfpPortState = 4 // Live for Fast Failover Group.
 )
 
-var OfpPortState_name = map[int32]string{
-	0: "OFPPS_INVALID",
-	1: "OFPPS_LINK_DOWN",
-	2: "OFPPS_BLOCKED",
-	4: "OFPPS_LIVE",
-}
+// Enum value maps for OfpPortState.
+var (
+	OfpPortState_name = map[int32]string{
+		0: "OFPPS_INVALID",
+		1: "OFPPS_LINK_DOWN",
+		2: "OFPPS_BLOCKED",
+		4: "OFPPS_LIVE",
+	}
+	OfpPortState_value = map[string]int32{
+		"OFPPS_INVALID":   0,
+		"OFPPS_LINK_DOWN": 1,
+		"OFPPS_BLOCKED":   2,
+		"OFPPS_LIVE":      4,
+	}
+)
 
-var OfpPortState_value = map[string]int32{
-	"OFPPS_INVALID":   0,
-	"OFPPS_LINK_DOWN": 1,
-	"OFPPS_BLOCKED":   2,
-	"OFPPS_LIVE":      4,
+func (x OfpPortState) Enum() *OfpPortState {
+	p := new(OfpPortState)
+	*p = x
+	return p
 }
 
 func (x OfpPortState) String() string {
-	return proto.EnumName(OfpPortState_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OfpPortState) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openflow_13_proto_enumTypes[8].Descriptor()
+}
+
+func (OfpPortState) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openflow_13_proto_enumTypes[8]
+}
+
+func (x OfpPortState) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OfpPortState.Descriptor instead.
 func (OfpPortState) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{8}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{8}
 }
 
 // Features of ports available in a datapath.
@@ -426,125 +672,188 @@
 
 const (
 	OfpPortFeatures_OFPPF_INVALID    OfpPortFeatures = 0
-	OfpPortFeatures_OFPPF_10MB_HD    OfpPortFeatures = 1
-	OfpPortFeatures_OFPPF_10MB_FD    OfpPortFeatures = 2
-	OfpPortFeatures_OFPPF_100MB_HD   OfpPortFeatures = 4
-	OfpPortFeatures_OFPPF_100MB_FD   OfpPortFeatures = 8
-	OfpPortFeatures_OFPPF_1GB_HD     OfpPortFeatures = 16
-	OfpPortFeatures_OFPPF_1GB_FD     OfpPortFeatures = 32
-	OfpPortFeatures_OFPPF_10GB_FD    OfpPortFeatures = 64
-	OfpPortFeatures_OFPPF_40GB_FD    OfpPortFeatures = 128
-	OfpPortFeatures_OFPPF_100GB_FD   OfpPortFeatures = 256
-	OfpPortFeatures_OFPPF_1TB_FD     OfpPortFeatures = 512
-	OfpPortFeatures_OFPPF_OTHER      OfpPortFeatures = 1024
-	OfpPortFeatures_OFPPF_COPPER     OfpPortFeatures = 2048
-	OfpPortFeatures_OFPPF_FIBER      OfpPortFeatures = 4096
-	OfpPortFeatures_OFPPF_AUTONEG    OfpPortFeatures = 8192
-	OfpPortFeatures_OFPPF_PAUSE      OfpPortFeatures = 16384
-	OfpPortFeatures_OFPPF_PAUSE_ASYM OfpPortFeatures = 32768
+	OfpPortFeatures_OFPPF_10MB_HD    OfpPortFeatures = 1     // 10 Mb half-duplex rate support.
+	OfpPortFeatures_OFPPF_10MB_FD    OfpPortFeatures = 2     // 10 Mb full-duplex rate support.
+	OfpPortFeatures_OFPPF_100MB_HD   OfpPortFeatures = 4     // 100 Mb half-duplex rate support.
+	OfpPortFeatures_OFPPF_100MB_FD   OfpPortFeatures = 8     // 100 Mb full-duplex rate support.
+	OfpPortFeatures_OFPPF_1GB_HD     OfpPortFeatures = 16    // 1 Gb half-duplex rate support.
+	OfpPortFeatures_OFPPF_1GB_FD     OfpPortFeatures = 32    // 1 Gb full-duplex rate support.
+	OfpPortFeatures_OFPPF_10GB_FD    OfpPortFeatures = 64    // 10 Gb full-duplex rate support.
+	OfpPortFeatures_OFPPF_40GB_FD    OfpPortFeatures = 128   // 40 Gb full-duplex rate support.
+	OfpPortFeatures_OFPPF_100GB_FD   OfpPortFeatures = 256   // 100 Gb full-duplex rate support.
+	OfpPortFeatures_OFPPF_1TB_FD     OfpPortFeatures = 512   // 1 Tb full-duplex rate support.
+	OfpPortFeatures_OFPPF_OTHER      OfpPortFeatures = 1024  // Other rate, not in the list.
+	OfpPortFeatures_OFPPF_COPPER     OfpPortFeatures = 2048  // Copper medium.
+	OfpPortFeatures_OFPPF_FIBER      OfpPortFeatures = 4096  // Fiber medium.
+	OfpPortFeatures_OFPPF_AUTONEG    OfpPortFeatures = 8192  // Auto-negotiation.
+	OfpPortFeatures_OFPPF_PAUSE      OfpPortFeatures = 16384 // Pause.
+	OfpPortFeatures_OFPPF_PAUSE_ASYM OfpPortFeatures = 32768 // Asymmetric pause.
 )
 
-var OfpPortFeatures_name = map[int32]string{
-	0:     "OFPPF_INVALID",
-	1:     "OFPPF_10MB_HD",
-	2:     "OFPPF_10MB_FD",
-	4:     "OFPPF_100MB_HD",
-	8:     "OFPPF_100MB_FD",
-	16:    "OFPPF_1GB_HD",
-	32:    "OFPPF_1GB_FD",
-	64:    "OFPPF_10GB_FD",
-	128:   "OFPPF_40GB_FD",
-	256:   "OFPPF_100GB_FD",
-	512:   "OFPPF_1TB_FD",
-	1024:  "OFPPF_OTHER",
-	2048:  "OFPPF_COPPER",
-	4096:  "OFPPF_FIBER",
-	8192:  "OFPPF_AUTONEG",
-	16384: "OFPPF_PAUSE",
-	32768: "OFPPF_PAUSE_ASYM",
-}
+// Enum value maps for OfpPortFeatures.
+var (
+	OfpPortFeatures_name = map[int32]string{
+		0:     "OFPPF_INVALID",
+		1:     "OFPPF_10MB_HD",
+		2:     "OFPPF_10MB_FD",
+		4:     "OFPPF_100MB_HD",
+		8:     "OFPPF_100MB_FD",
+		16:    "OFPPF_1GB_HD",
+		32:    "OFPPF_1GB_FD",
+		64:    "OFPPF_10GB_FD",
+		128:   "OFPPF_40GB_FD",
+		256:   "OFPPF_100GB_FD",
+		512:   "OFPPF_1TB_FD",
+		1024:  "OFPPF_OTHER",
+		2048:  "OFPPF_COPPER",
+		4096:  "OFPPF_FIBER",
+		8192:  "OFPPF_AUTONEG",
+		16384: "OFPPF_PAUSE",
+		32768: "OFPPF_PAUSE_ASYM",
+	}
+	OfpPortFeatures_value = map[string]int32{
+		"OFPPF_INVALID":    0,
+		"OFPPF_10MB_HD":    1,
+		"OFPPF_10MB_FD":    2,
+		"OFPPF_100MB_HD":   4,
+		"OFPPF_100MB_FD":   8,
+		"OFPPF_1GB_HD":     16,
+		"OFPPF_1GB_FD":     32,
+		"OFPPF_10GB_FD":    64,
+		"OFPPF_40GB_FD":    128,
+		"OFPPF_100GB_FD":   256,
+		"OFPPF_1TB_FD":     512,
+		"OFPPF_OTHER":      1024,
+		"OFPPF_COPPER":     2048,
+		"OFPPF_FIBER":      4096,
+		"OFPPF_AUTONEG":    8192,
+		"OFPPF_PAUSE":      16384,
+		"OFPPF_PAUSE_ASYM": 32768,
+	}
+)
 
-var OfpPortFeatures_value = map[string]int32{
-	"OFPPF_INVALID":    0,
-	"OFPPF_10MB_HD":    1,
-	"OFPPF_10MB_FD":    2,
-	"OFPPF_100MB_HD":   4,
-	"OFPPF_100MB_FD":   8,
-	"OFPPF_1GB_HD":     16,
-	"OFPPF_1GB_FD":     32,
-	"OFPPF_10GB_FD":    64,
-	"OFPPF_40GB_FD":    128,
-	"OFPPF_100GB_FD":   256,
-	"OFPPF_1TB_FD":     512,
-	"OFPPF_OTHER":      1024,
-	"OFPPF_COPPER":     2048,
-	"OFPPF_FIBER":      4096,
-	"OFPPF_AUTONEG":    8192,
-	"OFPPF_PAUSE":      16384,
-	"OFPPF_PAUSE_ASYM": 32768,
+func (x OfpPortFeatures) Enum() *OfpPortFeatures {
+	p := new(OfpPortFeatures)
+	*p = x
+	return p
 }
 
 func (x OfpPortFeatures) String() string {
-	return proto.EnumName(OfpPortFeatures_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OfpPortFeatures) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openflow_13_proto_enumTypes[9].Descriptor()
+}
+
+func (OfpPortFeatures) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openflow_13_proto_enumTypes[9]
+}
+
+func (x OfpPortFeatures) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OfpPortFeatures.Descriptor instead.
 func (OfpPortFeatures) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{9}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{9}
 }
 
 // What changed about the physical port
 type OfpPortReason int32
 
 const (
-	OfpPortReason_OFPPR_ADD    OfpPortReason = 0
-	OfpPortReason_OFPPR_DELETE OfpPortReason = 1
-	OfpPortReason_OFPPR_MODIFY OfpPortReason = 2
+	OfpPortReason_OFPPR_ADD    OfpPortReason = 0 // The port was added.
+	OfpPortReason_OFPPR_DELETE OfpPortReason = 1 // The port was removed.
+	OfpPortReason_OFPPR_MODIFY OfpPortReason = 2 // Some attribute of the port has changed.
 )
 
-var OfpPortReason_name = map[int32]string{
-	0: "OFPPR_ADD",
-	1: "OFPPR_DELETE",
-	2: "OFPPR_MODIFY",
-}
+// Enum value maps for OfpPortReason.
+var (
+	OfpPortReason_name = map[int32]string{
+		0: "OFPPR_ADD",
+		1: "OFPPR_DELETE",
+		2: "OFPPR_MODIFY",
+	}
+	OfpPortReason_value = map[string]int32{
+		"OFPPR_ADD":    0,
+		"OFPPR_DELETE": 1,
+		"OFPPR_MODIFY": 2,
+	}
+)
 
-var OfpPortReason_value = map[string]int32{
-	"OFPPR_ADD":    0,
-	"OFPPR_DELETE": 1,
-	"OFPPR_MODIFY": 2,
+func (x OfpPortReason) Enum() *OfpPortReason {
+	p := new(OfpPortReason)
+	*p = x
+	return p
 }
 
 func (x OfpPortReason) String() string {
-	return proto.EnumName(OfpPortReason_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OfpPortReason) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openflow_13_proto_enumTypes[10].Descriptor()
+}
+
+func (OfpPortReason) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openflow_13_proto_enumTypes[10]
+}
+
+func (x OfpPortReason) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OfpPortReason.Descriptor instead.
 func (OfpPortReason) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{10}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{10}
 }
 
 // What changed about the physical device
 type OfpDeviceConnection int32
 
 const (
-	OfpDeviceConnection_OFPDEV_CONNECTED    OfpDeviceConnection = 0
-	OfpDeviceConnection_OFPDEV_DISCONNECTED OfpDeviceConnection = 1
+	OfpDeviceConnection_OFPDEV_CONNECTED    OfpDeviceConnection = 0 // The device connected.
+	OfpDeviceConnection_OFPDEV_DISCONNECTED OfpDeviceConnection = 1 // The device disconnected.
 )
 
-var OfpDeviceConnection_name = map[int32]string{
-	0: "OFPDEV_CONNECTED",
-	1: "OFPDEV_DISCONNECTED",
-}
+// Enum value maps for OfpDeviceConnection.
+var (
+	OfpDeviceConnection_name = map[int32]string{
+		0: "OFPDEV_CONNECTED",
+		1: "OFPDEV_DISCONNECTED",
+	}
+	OfpDeviceConnection_value = map[string]int32{
+		"OFPDEV_CONNECTED":    0,
+		"OFPDEV_DISCONNECTED": 1,
+	}
+)
 
-var OfpDeviceConnection_value = map[string]int32{
-	"OFPDEV_CONNECTED":    0,
-	"OFPDEV_DISCONNECTED": 1,
+func (x OfpDeviceConnection) Enum() *OfpDeviceConnection {
+	p := new(OfpDeviceConnection)
+	*p = x
+	return p
 }
 
 func (x OfpDeviceConnection) String() string {
-	return proto.EnumName(OfpDeviceConnection_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OfpDeviceConnection) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openflow_13_proto_enumTypes[11].Descriptor()
+}
+
+func (OfpDeviceConnection) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openflow_13_proto_enumTypes[11]
+}
+
+func (x OfpDeviceConnection) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OfpDeviceConnection.Descriptor instead.
 func (OfpDeviceConnection) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{11}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{11}
 }
 
 // The match type indicates the match structure (set of fields that compose the
@@ -556,26 +865,47 @@
 type OfpMatchType int32
 
 const (
-	OfpMatchType_OFPMT_STANDARD OfpMatchType = 0
-	OfpMatchType_OFPMT_OXM      OfpMatchType = 1
+	OfpMatchType_OFPMT_STANDARD OfpMatchType = 0 // Deprecated.
+	OfpMatchType_OFPMT_OXM      OfpMatchType = 1 // OpenFlow Extensible Match
 )
 
-var OfpMatchType_name = map[int32]string{
-	0: "OFPMT_STANDARD",
-	1: "OFPMT_OXM",
-}
+// Enum value maps for OfpMatchType.
+var (
+	OfpMatchType_name = map[int32]string{
+		0: "OFPMT_STANDARD",
+		1: "OFPMT_OXM",
+	}
+	OfpMatchType_value = map[string]int32{
+		"OFPMT_STANDARD": 0,
+		"OFPMT_OXM":      1,
+	}
+)
 
-var OfpMatchType_value = map[string]int32{
-	"OFPMT_STANDARD": 0,
-	"OFPMT_OXM":      1,
+func (x OfpMatchType) Enum() *OfpMatchType {
+	p := new(OfpMatchType)
+	*p = x
+	return p
 }
 
 func (x OfpMatchType) String() string {
-	return proto.EnumName(OfpMatchType_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OfpMatchType) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openflow_13_proto_enumTypes[12].Descriptor()
+}
+
+func (OfpMatchType) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openflow_13_proto_enumTypes[12]
+}
+
+func (x OfpMatchType) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OfpMatchType.Descriptor instead.
 func (OfpMatchType) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{12}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{12}
 }
 
 // OXM Class IDs.
@@ -585,172 +915,214 @@
 type OfpOxmClass int32
 
 const (
-	OfpOxmClass_OFPXMC_NXM_0          OfpOxmClass = 0
-	OfpOxmClass_OFPXMC_NXM_1          OfpOxmClass = 1
-	OfpOxmClass_OFPXMC_OPENFLOW_BASIC OfpOxmClass = 32768
-	OfpOxmClass_OFPXMC_EXPERIMENTER   OfpOxmClass = 65535
+	OfpOxmClass_OFPXMC_NXM_0          OfpOxmClass = 0     // Backward compatibility with NXM
+	OfpOxmClass_OFPXMC_NXM_1          OfpOxmClass = 1     // Backward compatibility with NXM
+	OfpOxmClass_OFPXMC_OPENFLOW_BASIC OfpOxmClass = 32768 // Basic class for OpenFlow
+	OfpOxmClass_OFPXMC_EXPERIMENTER   OfpOxmClass = 65535 // Experimenter class
 )
 
-var OfpOxmClass_name = map[int32]string{
-	0:     "OFPXMC_NXM_0",
-	1:     "OFPXMC_NXM_1",
-	32768: "OFPXMC_OPENFLOW_BASIC",
-	65535: "OFPXMC_EXPERIMENTER",
-}
+// Enum value maps for OfpOxmClass.
+var (
+	OfpOxmClass_name = map[int32]string{
+		0:     "OFPXMC_NXM_0",
+		1:     "OFPXMC_NXM_1",
+		32768: "OFPXMC_OPENFLOW_BASIC",
+		65535: "OFPXMC_EXPERIMENTER",
+	}
+	OfpOxmClass_value = map[string]int32{
+		"OFPXMC_NXM_0":          0,
+		"OFPXMC_NXM_1":          1,
+		"OFPXMC_OPENFLOW_BASIC": 32768,
+		"OFPXMC_EXPERIMENTER":   65535,
+	}
+)
 
-var OfpOxmClass_value = map[string]int32{
-	"OFPXMC_NXM_0":          0,
-	"OFPXMC_NXM_1":          1,
-	"OFPXMC_OPENFLOW_BASIC": 32768,
-	"OFPXMC_EXPERIMENTER":   65535,
+func (x OfpOxmClass) Enum() *OfpOxmClass {
+	p := new(OfpOxmClass)
+	*p = x
+	return p
 }
 
 func (x OfpOxmClass) String() string {
-	return proto.EnumName(OfpOxmClass_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OfpOxmClass) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openflow_13_proto_enumTypes[13].Descriptor()
+}
+
+func (OfpOxmClass) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openflow_13_proto_enumTypes[13]
+}
+
+func (x OfpOxmClass) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OfpOxmClass.Descriptor instead.
 func (OfpOxmClass) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{13}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{13}
 }
 
 // OXM Flow field types for OpenFlow basic class.
 type OxmOfbFieldTypes int32
 
 const (
-	OxmOfbFieldTypes_OFPXMT_OFB_IN_PORT        OxmOfbFieldTypes = 0
-	OxmOfbFieldTypes_OFPXMT_OFB_IN_PHY_PORT    OxmOfbFieldTypes = 1
-	OxmOfbFieldTypes_OFPXMT_OFB_METADATA       OxmOfbFieldTypes = 2
-	OxmOfbFieldTypes_OFPXMT_OFB_ETH_DST        OxmOfbFieldTypes = 3
-	OxmOfbFieldTypes_OFPXMT_OFB_ETH_SRC        OxmOfbFieldTypes = 4
-	OxmOfbFieldTypes_OFPXMT_OFB_ETH_TYPE       OxmOfbFieldTypes = 5
-	OxmOfbFieldTypes_OFPXMT_OFB_VLAN_VID       OxmOfbFieldTypes = 6
-	OxmOfbFieldTypes_OFPXMT_OFB_VLAN_PCP       OxmOfbFieldTypes = 7
-	OxmOfbFieldTypes_OFPXMT_OFB_IP_DSCP        OxmOfbFieldTypes = 8
-	OxmOfbFieldTypes_OFPXMT_OFB_IP_ECN         OxmOfbFieldTypes = 9
-	OxmOfbFieldTypes_OFPXMT_OFB_IP_PROTO       OxmOfbFieldTypes = 10
-	OxmOfbFieldTypes_OFPXMT_OFB_IPV4_SRC       OxmOfbFieldTypes = 11
-	OxmOfbFieldTypes_OFPXMT_OFB_IPV4_DST       OxmOfbFieldTypes = 12
-	OxmOfbFieldTypes_OFPXMT_OFB_TCP_SRC        OxmOfbFieldTypes = 13
-	OxmOfbFieldTypes_OFPXMT_OFB_TCP_DST        OxmOfbFieldTypes = 14
-	OxmOfbFieldTypes_OFPXMT_OFB_UDP_SRC        OxmOfbFieldTypes = 15
-	OxmOfbFieldTypes_OFPXMT_OFB_UDP_DST        OxmOfbFieldTypes = 16
-	OxmOfbFieldTypes_OFPXMT_OFB_SCTP_SRC       OxmOfbFieldTypes = 17
-	OxmOfbFieldTypes_OFPXMT_OFB_SCTP_DST       OxmOfbFieldTypes = 18
-	OxmOfbFieldTypes_OFPXMT_OFB_ICMPV4_TYPE    OxmOfbFieldTypes = 19
-	OxmOfbFieldTypes_OFPXMT_OFB_ICMPV4_CODE    OxmOfbFieldTypes = 20
-	OxmOfbFieldTypes_OFPXMT_OFB_ARP_OP         OxmOfbFieldTypes = 21
-	OxmOfbFieldTypes_OFPXMT_OFB_ARP_SPA        OxmOfbFieldTypes = 22
-	OxmOfbFieldTypes_OFPXMT_OFB_ARP_TPA        OxmOfbFieldTypes = 23
-	OxmOfbFieldTypes_OFPXMT_OFB_ARP_SHA        OxmOfbFieldTypes = 24
-	OxmOfbFieldTypes_OFPXMT_OFB_ARP_THA        OxmOfbFieldTypes = 25
-	OxmOfbFieldTypes_OFPXMT_OFB_IPV6_SRC       OxmOfbFieldTypes = 26
-	OxmOfbFieldTypes_OFPXMT_OFB_IPV6_DST       OxmOfbFieldTypes = 27
-	OxmOfbFieldTypes_OFPXMT_OFB_IPV6_FLABEL    OxmOfbFieldTypes = 28
-	OxmOfbFieldTypes_OFPXMT_OFB_ICMPV6_TYPE    OxmOfbFieldTypes = 29
-	OxmOfbFieldTypes_OFPXMT_OFB_ICMPV6_CODE    OxmOfbFieldTypes = 30
-	OxmOfbFieldTypes_OFPXMT_OFB_IPV6_ND_TARGET OxmOfbFieldTypes = 31
-	OxmOfbFieldTypes_OFPXMT_OFB_IPV6_ND_SLL    OxmOfbFieldTypes = 32
-	OxmOfbFieldTypes_OFPXMT_OFB_IPV6_ND_TLL    OxmOfbFieldTypes = 33
-	OxmOfbFieldTypes_OFPXMT_OFB_MPLS_LABEL     OxmOfbFieldTypes = 34
-	OxmOfbFieldTypes_OFPXMT_OFB_MPLS_TC        OxmOfbFieldTypes = 35
-	OxmOfbFieldTypes_OFPXMT_OFB_MPLS_BOS       OxmOfbFieldTypes = 36
-	OxmOfbFieldTypes_OFPXMT_OFB_PBB_ISID       OxmOfbFieldTypes = 37
-	OxmOfbFieldTypes_OFPXMT_OFB_TUNNEL_ID      OxmOfbFieldTypes = 38
-	OxmOfbFieldTypes_OFPXMT_OFB_IPV6_EXTHDR    OxmOfbFieldTypes = 39
+	OxmOfbFieldTypes_OFPXMT_OFB_IN_PORT        OxmOfbFieldTypes = 0  // Switch input port.
+	OxmOfbFieldTypes_OFPXMT_OFB_IN_PHY_PORT    OxmOfbFieldTypes = 1  // Switch physical input port.
+	OxmOfbFieldTypes_OFPXMT_OFB_METADATA       OxmOfbFieldTypes = 2  // Metadata passed between tables.
+	OxmOfbFieldTypes_OFPXMT_OFB_ETH_DST        OxmOfbFieldTypes = 3  // Ethernet destination address.
+	OxmOfbFieldTypes_OFPXMT_OFB_ETH_SRC        OxmOfbFieldTypes = 4  // Ethernet source address.
+	OxmOfbFieldTypes_OFPXMT_OFB_ETH_TYPE       OxmOfbFieldTypes = 5  // Ethernet frame type.
+	OxmOfbFieldTypes_OFPXMT_OFB_VLAN_VID       OxmOfbFieldTypes = 6  // VLAN id.
+	OxmOfbFieldTypes_OFPXMT_OFB_VLAN_PCP       OxmOfbFieldTypes = 7  // VLAN priority.
+	OxmOfbFieldTypes_OFPXMT_OFB_IP_DSCP        OxmOfbFieldTypes = 8  // IP DSCP (6 bits in ToS field).
+	OxmOfbFieldTypes_OFPXMT_OFB_IP_ECN         OxmOfbFieldTypes = 9  // IP ECN (2 bits in ToS field).
+	OxmOfbFieldTypes_OFPXMT_OFB_IP_PROTO       OxmOfbFieldTypes = 10 // IP protocol.
+	OxmOfbFieldTypes_OFPXMT_OFB_IPV4_SRC       OxmOfbFieldTypes = 11 // IPv4 source address.
+	OxmOfbFieldTypes_OFPXMT_OFB_IPV4_DST       OxmOfbFieldTypes = 12 // IPv4 destination address.
+	OxmOfbFieldTypes_OFPXMT_OFB_TCP_SRC        OxmOfbFieldTypes = 13 // TCP source port.
+	OxmOfbFieldTypes_OFPXMT_OFB_TCP_DST        OxmOfbFieldTypes = 14 // TCP destination port.
+	OxmOfbFieldTypes_OFPXMT_OFB_UDP_SRC        OxmOfbFieldTypes = 15 // UDP source port.
+	OxmOfbFieldTypes_OFPXMT_OFB_UDP_DST        OxmOfbFieldTypes = 16 // UDP destination port.
+	OxmOfbFieldTypes_OFPXMT_OFB_SCTP_SRC       OxmOfbFieldTypes = 17 // SCTP source port.
+	OxmOfbFieldTypes_OFPXMT_OFB_SCTP_DST       OxmOfbFieldTypes = 18 // SCTP destination port.
+	OxmOfbFieldTypes_OFPXMT_OFB_ICMPV4_TYPE    OxmOfbFieldTypes = 19 // ICMP type.
+	OxmOfbFieldTypes_OFPXMT_OFB_ICMPV4_CODE    OxmOfbFieldTypes = 20 // ICMP code.
+	OxmOfbFieldTypes_OFPXMT_OFB_ARP_OP         OxmOfbFieldTypes = 21 // ARP opcode.
+	OxmOfbFieldTypes_OFPXMT_OFB_ARP_SPA        OxmOfbFieldTypes = 22 // ARP source IPv4 address.
+	OxmOfbFieldTypes_OFPXMT_OFB_ARP_TPA        OxmOfbFieldTypes = 23 // ARP target IPv4 address.
+	OxmOfbFieldTypes_OFPXMT_OFB_ARP_SHA        OxmOfbFieldTypes = 24 // ARP source hardware address.
+	OxmOfbFieldTypes_OFPXMT_OFB_ARP_THA        OxmOfbFieldTypes = 25 // ARP target hardware address.
+	OxmOfbFieldTypes_OFPXMT_OFB_IPV6_SRC       OxmOfbFieldTypes = 26 // IPv6 source address.
+	OxmOfbFieldTypes_OFPXMT_OFB_IPV6_DST       OxmOfbFieldTypes = 27 // IPv6 destination address.
+	OxmOfbFieldTypes_OFPXMT_OFB_IPV6_FLABEL    OxmOfbFieldTypes = 28 // IPv6 Flow Label
+	OxmOfbFieldTypes_OFPXMT_OFB_ICMPV6_TYPE    OxmOfbFieldTypes = 29 // ICMPv6 type.
+	OxmOfbFieldTypes_OFPXMT_OFB_ICMPV6_CODE    OxmOfbFieldTypes = 30 // ICMPv6 code.
+	OxmOfbFieldTypes_OFPXMT_OFB_IPV6_ND_TARGET OxmOfbFieldTypes = 31 // Target address for ND.
+	OxmOfbFieldTypes_OFPXMT_OFB_IPV6_ND_SLL    OxmOfbFieldTypes = 32 // Source link-layer for ND.
+	OxmOfbFieldTypes_OFPXMT_OFB_IPV6_ND_TLL    OxmOfbFieldTypes = 33 // Target link-layer for ND.
+	OxmOfbFieldTypes_OFPXMT_OFB_MPLS_LABEL     OxmOfbFieldTypes = 34 // MPLS label.
+	OxmOfbFieldTypes_OFPXMT_OFB_MPLS_TC        OxmOfbFieldTypes = 35 // MPLS TC.
+	OxmOfbFieldTypes_OFPXMT_OFB_MPLS_BOS       OxmOfbFieldTypes = 36 // MPLS BoS bit.
+	OxmOfbFieldTypes_OFPXMT_OFB_PBB_ISID       OxmOfbFieldTypes = 37 // PBB I-SID.
+	OxmOfbFieldTypes_OFPXMT_OFB_TUNNEL_ID      OxmOfbFieldTypes = 38 // Logical Port Metadata.
+	OxmOfbFieldTypes_OFPXMT_OFB_IPV6_EXTHDR    OxmOfbFieldTypes = 39 // IPv6 Extension Header pseudo-field
 )
 
-var OxmOfbFieldTypes_name = map[int32]string{
-	0:  "OFPXMT_OFB_IN_PORT",
-	1:  "OFPXMT_OFB_IN_PHY_PORT",
-	2:  "OFPXMT_OFB_METADATA",
-	3:  "OFPXMT_OFB_ETH_DST",
-	4:  "OFPXMT_OFB_ETH_SRC",
-	5:  "OFPXMT_OFB_ETH_TYPE",
-	6:  "OFPXMT_OFB_VLAN_VID",
-	7:  "OFPXMT_OFB_VLAN_PCP",
-	8:  "OFPXMT_OFB_IP_DSCP",
-	9:  "OFPXMT_OFB_IP_ECN",
-	10: "OFPXMT_OFB_IP_PROTO",
-	11: "OFPXMT_OFB_IPV4_SRC",
-	12: "OFPXMT_OFB_IPV4_DST",
-	13: "OFPXMT_OFB_TCP_SRC",
-	14: "OFPXMT_OFB_TCP_DST",
-	15: "OFPXMT_OFB_UDP_SRC",
-	16: "OFPXMT_OFB_UDP_DST",
-	17: "OFPXMT_OFB_SCTP_SRC",
-	18: "OFPXMT_OFB_SCTP_DST",
-	19: "OFPXMT_OFB_ICMPV4_TYPE",
-	20: "OFPXMT_OFB_ICMPV4_CODE",
-	21: "OFPXMT_OFB_ARP_OP",
-	22: "OFPXMT_OFB_ARP_SPA",
-	23: "OFPXMT_OFB_ARP_TPA",
-	24: "OFPXMT_OFB_ARP_SHA",
-	25: "OFPXMT_OFB_ARP_THA",
-	26: "OFPXMT_OFB_IPV6_SRC",
-	27: "OFPXMT_OFB_IPV6_DST",
-	28: "OFPXMT_OFB_IPV6_FLABEL",
-	29: "OFPXMT_OFB_ICMPV6_TYPE",
-	30: "OFPXMT_OFB_ICMPV6_CODE",
-	31: "OFPXMT_OFB_IPV6_ND_TARGET",
-	32: "OFPXMT_OFB_IPV6_ND_SLL",
-	33: "OFPXMT_OFB_IPV6_ND_TLL",
-	34: "OFPXMT_OFB_MPLS_LABEL",
-	35: "OFPXMT_OFB_MPLS_TC",
-	36: "OFPXMT_OFB_MPLS_BOS",
-	37: "OFPXMT_OFB_PBB_ISID",
-	38: "OFPXMT_OFB_TUNNEL_ID",
-	39: "OFPXMT_OFB_IPV6_EXTHDR",
-}
+// Enum value maps for OxmOfbFieldTypes.
+var (
+	OxmOfbFieldTypes_name = map[int32]string{
+		0:  "OFPXMT_OFB_IN_PORT",
+		1:  "OFPXMT_OFB_IN_PHY_PORT",
+		2:  "OFPXMT_OFB_METADATA",
+		3:  "OFPXMT_OFB_ETH_DST",
+		4:  "OFPXMT_OFB_ETH_SRC",
+		5:  "OFPXMT_OFB_ETH_TYPE",
+		6:  "OFPXMT_OFB_VLAN_VID",
+		7:  "OFPXMT_OFB_VLAN_PCP",
+		8:  "OFPXMT_OFB_IP_DSCP",
+		9:  "OFPXMT_OFB_IP_ECN",
+		10: "OFPXMT_OFB_IP_PROTO",
+		11: "OFPXMT_OFB_IPV4_SRC",
+		12: "OFPXMT_OFB_IPV4_DST",
+		13: "OFPXMT_OFB_TCP_SRC",
+		14: "OFPXMT_OFB_TCP_DST",
+		15: "OFPXMT_OFB_UDP_SRC",
+		16: "OFPXMT_OFB_UDP_DST",
+		17: "OFPXMT_OFB_SCTP_SRC",
+		18: "OFPXMT_OFB_SCTP_DST",
+		19: "OFPXMT_OFB_ICMPV4_TYPE",
+		20: "OFPXMT_OFB_ICMPV4_CODE",
+		21: "OFPXMT_OFB_ARP_OP",
+		22: "OFPXMT_OFB_ARP_SPA",
+		23: "OFPXMT_OFB_ARP_TPA",
+		24: "OFPXMT_OFB_ARP_SHA",
+		25: "OFPXMT_OFB_ARP_THA",
+		26: "OFPXMT_OFB_IPV6_SRC",
+		27: "OFPXMT_OFB_IPV6_DST",
+		28: "OFPXMT_OFB_IPV6_FLABEL",
+		29: "OFPXMT_OFB_ICMPV6_TYPE",
+		30: "OFPXMT_OFB_ICMPV6_CODE",
+		31: "OFPXMT_OFB_IPV6_ND_TARGET",
+		32: "OFPXMT_OFB_IPV6_ND_SLL",
+		33: "OFPXMT_OFB_IPV6_ND_TLL",
+		34: "OFPXMT_OFB_MPLS_LABEL",
+		35: "OFPXMT_OFB_MPLS_TC",
+		36: "OFPXMT_OFB_MPLS_BOS",
+		37: "OFPXMT_OFB_PBB_ISID",
+		38: "OFPXMT_OFB_TUNNEL_ID",
+		39: "OFPXMT_OFB_IPV6_EXTHDR",
+	}
+	OxmOfbFieldTypes_value = map[string]int32{
+		"OFPXMT_OFB_IN_PORT":        0,
+		"OFPXMT_OFB_IN_PHY_PORT":    1,
+		"OFPXMT_OFB_METADATA":       2,
+		"OFPXMT_OFB_ETH_DST":        3,
+		"OFPXMT_OFB_ETH_SRC":        4,
+		"OFPXMT_OFB_ETH_TYPE":       5,
+		"OFPXMT_OFB_VLAN_VID":       6,
+		"OFPXMT_OFB_VLAN_PCP":       7,
+		"OFPXMT_OFB_IP_DSCP":        8,
+		"OFPXMT_OFB_IP_ECN":         9,
+		"OFPXMT_OFB_IP_PROTO":       10,
+		"OFPXMT_OFB_IPV4_SRC":       11,
+		"OFPXMT_OFB_IPV4_DST":       12,
+		"OFPXMT_OFB_TCP_SRC":        13,
+		"OFPXMT_OFB_TCP_DST":        14,
+		"OFPXMT_OFB_UDP_SRC":        15,
+		"OFPXMT_OFB_UDP_DST":        16,
+		"OFPXMT_OFB_SCTP_SRC":       17,
+		"OFPXMT_OFB_SCTP_DST":       18,
+		"OFPXMT_OFB_ICMPV4_TYPE":    19,
+		"OFPXMT_OFB_ICMPV4_CODE":    20,
+		"OFPXMT_OFB_ARP_OP":         21,
+		"OFPXMT_OFB_ARP_SPA":        22,
+		"OFPXMT_OFB_ARP_TPA":        23,
+		"OFPXMT_OFB_ARP_SHA":        24,
+		"OFPXMT_OFB_ARP_THA":        25,
+		"OFPXMT_OFB_IPV6_SRC":       26,
+		"OFPXMT_OFB_IPV6_DST":       27,
+		"OFPXMT_OFB_IPV6_FLABEL":    28,
+		"OFPXMT_OFB_ICMPV6_TYPE":    29,
+		"OFPXMT_OFB_ICMPV6_CODE":    30,
+		"OFPXMT_OFB_IPV6_ND_TARGET": 31,
+		"OFPXMT_OFB_IPV6_ND_SLL":    32,
+		"OFPXMT_OFB_IPV6_ND_TLL":    33,
+		"OFPXMT_OFB_MPLS_LABEL":     34,
+		"OFPXMT_OFB_MPLS_TC":        35,
+		"OFPXMT_OFB_MPLS_BOS":       36,
+		"OFPXMT_OFB_PBB_ISID":       37,
+		"OFPXMT_OFB_TUNNEL_ID":      38,
+		"OFPXMT_OFB_IPV6_EXTHDR":    39,
+	}
+)
 
-var OxmOfbFieldTypes_value = map[string]int32{
-	"OFPXMT_OFB_IN_PORT":        0,
-	"OFPXMT_OFB_IN_PHY_PORT":    1,
-	"OFPXMT_OFB_METADATA":       2,
-	"OFPXMT_OFB_ETH_DST":        3,
-	"OFPXMT_OFB_ETH_SRC":        4,
-	"OFPXMT_OFB_ETH_TYPE":       5,
-	"OFPXMT_OFB_VLAN_VID":       6,
-	"OFPXMT_OFB_VLAN_PCP":       7,
-	"OFPXMT_OFB_IP_DSCP":        8,
-	"OFPXMT_OFB_IP_ECN":         9,
-	"OFPXMT_OFB_IP_PROTO":       10,
-	"OFPXMT_OFB_IPV4_SRC":       11,
-	"OFPXMT_OFB_IPV4_DST":       12,
-	"OFPXMT_OFB_TCP_SRC":        13,
-	"OFPXMT_OFB_TCP_DST":        14,
-	"OFPXMT_OFB_UDP_SRC":        15,
-	"OFPXMT_OFB_UDP_DST":        16,
-	"OFPXMT_OFB_SCTP_SRC":       17,
-	"OFPXMT_OFB_SCTP_DST":       18,
-	"OFPXMT_OFB_ICMPV4_TYPE":    19,
-	"OFPXMT_OFB_ICMPV4_CODE":    20,
-	"OFPXMT_OFB_ARP_OP":         21,
-	"OFPXMT_OFB_ARP_SPA":        22,
-	"OFPXMT_OFB_ARP_TPA":        23,
-	"OFPXMT_OFB_ARP_SHA":        24,
-	"OFPXMT_OFB_ARP_THA":        25,
-	"OFPXMT_OFB_IPV6_SRC":       26,
-	"OFPXMT_OFB_IPV6_DST":       27,
-	"OFPXMT_OFB_IPV6_FLABEL":    28,
-	"OFPXMT_OFB_ICMPV6_TYPE":    29,
-	"OFPXMT_OFB_ICMPV6_CODE":    30,
-	"OFPXMT_OFB_IPV6_ND_TARGET": 31,
-	"OFPXMT_OFB_IPV6_ND_SLL":    32,
-	"OFPXMT_OFB_IPV6_ND_TLL":    33,
-	"OFPXMT_OFB_MPLS_LABEL":     34,
-	"OFPXMT_OFB_MPLS_TC":        35,
-	"OFPXMT_OFB_MPLS_BOS":       36,
-	"OFPXMT_OFB_PBB_ISID":       37,
-	"OFPXMT_OFB_TUNNEL_ID":      38,
-	"OFPXMT_OFB_IPV6_EXTHDR":    39,
+func (x OxmOfbFieldTypes) Enum() *OxmOfbFieldTypes {
+	p := new(OxmOfbFieldTypes)
+	*p = x
+	return p
 }
 
 func (x OxmOfbFieldTypes) String() string {
-	return proto.EnumName(OxmOfbFieldTypes_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OxmOfbFieldTypes) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openflow_13_proto_enumTypes[14].Descriptor()
+}
+
+func (OxmOfbFieldTypes) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openflow_13_proto_enumTypes[14]
+}
+
+func (x OxmOfbFieldTypes) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OxmOfbFieldTypes.Descriptor instead.
 func (OxmOfbFieldTypes) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{14}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{14}
 }
 
 // The VLAN id is 12-bits, so we can use the entire 16 bits to indicate
@@ -758,26 +1130,47 @@
 type OfpVlanId int32
 
 const (
-	OfpVlanId_OFPVID_NONE    OfpVlanId = 0
-	OfpVlanId_OFPVID_PRESENT OfpVlanId = 4096
+	OfpVlanId_OFPVID_NONE    OfpVlanId = 0    // No VLAN id was set.
+	OfpVlanId_OFPVID_PRESENT OfpVlanId = 4096 // Bit that indicate that a VLAN id is set
 )
 
-var OfpVlanId_name = map[int32]string{
-	0:    "OFPVID_NONE",
-	4096: "OFPVID_PRESENT",
-}
+// Enum value maps for OfpVlanId.
+var (
+	OfpVlanId_name = map[int32]string{
+		0:    "OFPVID_NONE",
+		4096: "OFPVID_PRESENT",
+	}
+	OfpVlanId_value = map[string]int32{
+		"OFPVID_NONE":    0,
+		"OFPVID_PRESENT": 4096,
+	}
+)
 
-var OfpVlanId_value = map[string]int32{
-	"OFPVID_NONE":    0,
-	"OFPVID_PRESENT": 4096,
+func (x OfpVlanId) Enum() *OfpVlanId {
+	p := new(OfpVlanId)
+	*p = x
+	return p
 }
 
 func (x OfpVlanId) String() string {
-	return proto.EnumName(OfpVlanId_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OfpVlanId) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openflow_13_proto_enumTypes[15].Descriptor()
+}
+
+func (OfpVlanId) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openflow_13_proto_enumTypes[15]
+}
+
+func (x OfpVlanId) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OfpVlanId.Descriptor instead.
 func (OfpVlanId) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{15}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{15}
 }
 
 // Bit definitions for IPv6 Extension Header pseudo-field.
@@ -785,119 +1178,161 @@
 
 const (
 	OfpIpv6ExthdrFlags_OFPIEH_INVALID OfpIpv6ExthdrFlags = 0
-	OfpIpv6ExthdrFlags_OFPIEH_NONEXT  OfpIpv6ExthdrFlags = 1
-	OfpIpv6ExthdrFlags_OFPIEH_ESP     OfpIpv6ExthdrFlags = 2
-	OfpIpv6ExthdrFlags_OFPIEH_AUTH    OfpIpv6ExthdrFlags = 4
-	OfpIpv6ExthdrFlags_OFPIEH_DEST    OfpIpv6ExthdrFlags = 8
-	OfpIpv6ExthdrFlags_OFPIEH_FRAG    OfpIpv6ExthdrFlags = 16
-	OfpIpv6ExthdrFlags_OFPIEH_ROUTER  OfpIpv6ExthdrFlags = 32
-	OfpIpv6ExthdrFlags_OFPIEH_HOP     OfpIpv6ExthdrFlags = 64
-	OfpIpv6ExthdrFlags_OFPIEH_UNREP   OfpIpv6ExthdrFlags = 128
-	OfpIpv6ExthdrFlags_OFPIEH_UNSEQ   OfpIpv6ExthdrFlags = 256
+	OfpIpv6ExthdrFlags_OFPIEH_NONEXT  OfpIpv6ExthdrFlags = 1   // "No next header" encountered.
+	OfpIpv6ExthdrFlags_OFPIEH_ESP     OfpIpv6ExthdrFlags = 2   // Encrypted Sec Payload header present.
+	OfpIpv6ExthdrFlags_OFPIEH_AUTH    OfpIpv6ExthdrFlags = 4   // Authentication header present.
+	OfpIpv6ExthdrFlags_OFPIEH_DEST    OfpIpv6ExthdrFlags = 8   // 1 or 2 dest headers present.
+	OfpIpv6ExthdrFlags_OFPIEH_FRAG    OfpIpv6ExthdrFlags = 16  // Fragment header present.
+	OfpIpv6ExthdrFlags_OFPIEH_ROUTER  OfpIpv6ExthdrFlags = 32  // Router header present.
+	OfpIpv6ExthdrFlags_OFPIEH_HOP     OfpIpv6ExthdrFlags = 64  // Hop-by-hop header present.
+	OfpIpv6ExthdrFlags_OFPIEH_UNREP   OfpIpv6ExthdrFlags = 128 // Unexpected repeats encountered.
+	OfpIpv6ExthdrFlags_OFPIEH_UNSEQ   OfpIpv6ExthdrFlags = 256 // Unexpected sequencing encountered.
 )
 
-var OfpIpv6ExthdrFlags_name = map[int32]string{
-	0:   "OFPIEH_INVALID",
-	1:   "OFPIEH_NONEXT",
-	2:   "OFPIEH_ESP",
-	4:   "OFPIEH_AUTH",
-	8:   "OFPIEH_DEST",
-	16:  "OFPIEH_FRAG",
-	32:  "OFPIEH_ROUTER",
-	64:  "OFPIEH_HOP",
-	128: "OFPIEH_UNREP",
-	256: "OFPIEH_UNSEQ",
-}
+// Enum value maps for OfpIpv6ExthdrFlags.
+var (
+	OfpIpv6ExthdrFlags_name = map[int32]string{
+		0:   "OFPIEH_INVALID",
+		1:   "OFPIEH_NONEXT",
+		2:   "OFPIEH_ESP",
+		4:   "OFPIEH_AUTH",
+		8:   "OFPIEH_DEST",
+		16:  "OFPIEH_FRAG",
+		32:  "OFPIEH_ROUTER",
+		64:  "OFPIEH_HOP",
+		128: "OFPIEH_UNREP",
+		256: "OFPIEH_UNSEQ",
+	}
+	OfpIpv6ExthdrFlags_value = map[string]int32{
+		"OFPIEH_INVALID": 0,
+		"OFPIEH_NONEXT":  1,
+		"OFPIEH_ESP":     2,
+		"OFPIEH_AUTH":    4,
+		"OFPIEH_DEST":    8,
+		"OFPIEH_FRAG":    16,
+		"OFPIEH_ROUTER":  32,
+		"OFPIEH_HOP":     64,
+		"OFPIEH_UNREP":   128,
+		"OFPIEH_UNSEQ":   256,
+	}
+)
 
-var OfpIpv6ExthdrFlags_value = map[string]int32{
-	"OFPIEH_INVALID": 0,
-	"OFPIEH_NONEXT":  1,
-	"OFPIEH_ESP":     2,
-	"OFPIEH_AUTH":    4,
-	"OFPIEH_DEST":    8,
-	"OFPIEH_FRAG":    16,
-	"OFPIEH_ROUTER":  32,
-	"OFPIEH_HOP":     64,
-	"OFPIEH_UNREP":   128,
-	"OFPIEH_UNSEQ":   256,
+func (x OfpIpv6ExthdrFlags) Enum() *OfpIpv6ExthdrFlags {
+	p := new(OfpIpv6ExthdrFlags)
+	*p = x
+	return p
 }
 
 func (x OfpIpv6ExthdrFlags) String() string {
-	return proto.EnumName(OfpIpv6ExthdrFlags_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OfpIpv6ExthdrFlags) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openflow_13_proto_enumTypes[16].Descriptor()
+}
+
+func (OfpIpv6ExthdrFlags) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openflow_13_proto_enumTypes[16]
+}
+
+func (x OfpIpv6ExthdrFlags) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OfpIpv6ExthdrFlags.Descriptor instead.
 func (OfpIpv6ExthdrFlags) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{16}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{16}
 }
 
 type OfpActionType int32
 
 const (
-	OfpActionType_OFPAT_OUTPUT       OfpActionType = 0
+	OfpActionType_OFPAT_OUTPUT       OfpActionType = 0 // Output to switch port.
 	OfpActionType_OFPAT_COPY_TTL_OUT OfpActionType = 11
 	OfpActionType_OFPAT_COPY_TTL_IN  OfpActionType = 12
-	OfpActionType_OFPAT_SET_MPLS_TTL OfpActionType = 15
-	OfpActionType_OFPAT_DEC_MPLS_TTL OfpActionType = 16
-	OfpActionType_OFPAT_PUSH_VLAN    OfpActionType = 17
-	OfpActionType_OFPAT_POP_VLAN     OfpActionType = 18
-	OfpActionType_OFPAT_PUSH_MPLS    OfpActionType = 19
-	OfpActionType_OFPAT_POP_MPLS     OfpActionType = 20
-	OfpActionType_OFPAT_SET_QUEUE    OfpActionType = 21
-	OfpActionType_OFPAT_GROUP        OfpActionType = 22
-	OfpActionType_OFPAT_SET_NW_TTL   OfpActionType = 23
-	OfpActionType_OFPAT_DEC_NW_TTL   OfpActionType = 24
-	OfpActionType_OFPAT_SET_FIELD    OfpActionType = 25
-	OfpActionType_OFPAT_PUSH_PBB     OfpActionType = 26
-	OfpActionType_OFPAT_POP_PBB      OfpActionType = 27
+	OfpActionType_OFPAT_SET_MPLS_TTL OfpActionType = 15 // MPLS TTL
+	OfpActionType_OFPAT_DEC_MPLS_TTL OfpActionType = 16 // Decrement MPLS TTL
+	OfpActionType_OFPAT_PUSH_VLAN    OfpActionType = 17 // Push a new VLAN tag
+	OfpActionType_OFPAT_POP_VLAN     OfpActionType = 18 // Pop the outer VLAN tag
+	OfpActionType_OFPAT_PUSH_MPLS    OfpActionType = 19 // Push a new MPLS tag
+	OfpActionType_OFPAT_POP_MPLS     OfpActionType = 20 // Pop the outer MPLS tag
+	OfpActionType_OFPAT_SET_QUEUE    OfpActionType = 21 // Set queue id when outputting to a port
+	OfpActionType_OFPAT_GROUP        OfpActionType = 22 // Apply group.
+	OfpActionType_OFPAT_SET_NW_TTL   OfpActionType = 23 // IP TTL.
+	OfpActionType_OFPAT_DEC_NW_TTL   OfpActionType = 24 // Decrement IP TTL.
+	OfpActionType_OFPAT_SET_FIELD    OfpActionType = 25 // Set a header field using OXM TLV format.
+	OfpActionType_OFPAT_PUSH_PBB     OfpActionType = 26 // Push a new PBB service tag (I-TAG)
+	OfpActionType_OFPAT_POP_PBB      OfpActionType = 27 // Pop the outer PBB service tag (I-TAG)
 	OfpActionType_OFPAT_EXPERIMENTER OfpActionType = 65535
 )
 
-var OfpActionType_name = map[int32]string{
-	0:     "OFPAT_OUTPUT",
-	11:    "OFPAT_COPY_TTL_OUT",
-	12:    "OFPAT_COPY_TTL_IN",
-	15:    "OFPAT_SET_MPLS_TTL",
-	16:    "OFPAT_DEC_MPLS_TTL",
-	17:    "OFPAT_PUSH_VLAN",
-	18:    "OFPAT_POP_VLAN",
-	19:    "OFPAT_PUSH_MPLS",
-	20:    "OFPAT_POP_MPLS",
-	21:    "OFPAT_SET_QUEUE",
-	22:    "OFPAT_GROUP",
-	23:    "OFPAT_SET_NW_TTL",
-	24:    "OFPAT_DEC_NW_TTL",
-	25:    "OFPAT_SET_FIELD",
-	26:    "OFPAT_PUSH_PBB",
-	27:    "OFPAT_POP_PBB",
-	65535: "OFPAT_EXPERIMENTER",
-}
+// Enum value maps for OfpActionType.
+var (
+	OfpActionType_name = map[int32]string{
+		0:     "OFPAT_OUTPUT",
+		11:    "OFPAT_COPY_TTL_OUT",
+		12:    "OFPAT_COPY_TTL_IN",
+		15:    "OFPAT_SET_MPLS_TTL",
+		16:    "OFPAT_DEC_MPLS_TTL",
+		17:    "OFPAT_PUSH_VLAN",
+		18:    "OFPAT_POP_VLAN",
+		19:    "OFPAT_PUSH_MPLS",
+		20:    "OFPAT_POP_MPLS",
+		21:    "OFPAT_SET_QUEUE",
+		22:    "OFPAT_GROUP",
+		23:    "OFPAT_SET_NW_TTL",
+		24:    "OFPAT_DEC_NW_TTL",
+		25:    "OFPAT_SET_FIELD",
+		26:    "OFPAT_PUSH_PBB",
+		27:    "OFPAT_POP_PBB",
+		65535: "OFPAT_EXPERIMENTER",
+	}
+	OfpActionType_value = map[string]int32{
+		"OFPAT_OUTPUT":       0,
+		"OFPAT_COPY_TTL_OUT": 11,
+		"OFPAT_COPY_TTL_IN":  12,
+		"OFPAT_SET_MPLS_TTL": 15,
+		"OFPAT_DEC_MPLS_TTL": 16,
+		"OFPAT_PUSH_VLAN":    17,
+		"OFPAT_POP_VLAN":     18,
+		"OFPAT_PUSH_MPLS":    19,
+		"OFPAT_POP_MPLS":     20,
+		"OFPAT_SET_QUEUE":    21,
+		"OFPAT_GROUP":        22,
+		"OFPAT_SET_NW_TTL":   23,
+		"OFPAT_DEC_NW_TTL":   24,
+		"OFPAT_SET_FIELD":    25,
+		"OFPAT_PUSH_PBB":     26,
+		"OFPAT_POP_PBB":      27,
+		"OFPAT_EXPERIMENTER": 65535,
+	}
+)
 
-var OfpActionType_value = map[string]int32{
-	"OFPAT_OUTPUT":       0,
-	"OFPAT_COPY_TTL_OUT": 11,
-	"OFPAT_COPY_TTL_IN":  12,
-	"OFPAT_SET_MPLS_TTL": 15,
-	"OFPAT_DEC_MPLS_TTL": 16,
-	"OFPAT_PUSH_VLAN":    17,
-	"OFPAT_POP_VLAN":     18,
-	"OFPAT_PUSH_MPLS":    19,
-	"OFPAT_POP_MPLS":     20,
-	"OFPAT_SET_QUEUE":    21,
-	"OFPAT_GROUP":        22,
-	"OFPAT_SET_NW_TTL":   23,
-	"OFPAT_DEC_NW_TTL":   24,
-	"OFPAT_SET_FIELD":    25,
-	"OFPAT_PUSH_PBB":     26,
-	"OFPAT_POP_PBB":      27,
-	"OFPAT_EXPERIMENTER": 65535,
+func (x OfpActionType) Enum() *OfpActionType {
+	p := new(OfpActionType)
+	*p = x
+	return p
 }
 
 func (x OfpActionType) String() string {
-	return proto.EnumName(OfpActionType_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OfpActionType) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openflow_13_proto_enumTypes[17].Descriptor()
+}
+
+func (OfpActionType) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openflow_13_proto_enumTypes[17]
+}
+
+func (x OfpActionType) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OfpActionType.Descriptor instead.
 func (OfpActionType) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{17}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{17}
 }
 
 type OfpControllerMaxLen int32
@@ -908,24 +1343,45 @@
 	OfpControllerMaxLen_OFPCML_NO_BUFFER OfpControllerMaxLen = 65535
 )
 
-var OfpControllerMaxLen_name = map[int32]string{
-	0:     "OFPCML_INVALID",
-	65509: "OFPCML_MAX",
-	65535: "OFPCML_NO_BUFFER",
-}
+// Enum value maps for OfpControllerMaxLen.
+var (
+	OfpControllerMaxLen_name = map[int32]string{
+		0:     "OFPCML_INVALID",
+		65509: "OFPCML_MAX",
+		65535: "OFPCML_NO_BUFFER",
+	}
+	OfpControllerMaxLen_value = map[string]int32{
+		"OFPCML_INVALID":   0,
+		"OFPCML_MAX":       65509,
+		"OFPCML_NO_BUFFER": 65535,
+	}
+)
 
-var OfpControllerMaxLen_value = map[string]int32{
-	"OFPCML_INVALID":   0,
-	"OFPCML_MAX":       65509,
-	"OFPCML_NO_BUFFER": 65535,
+func (x OfpControllerMaxLen) Enum() *OfpControllerMaxLen {
+	p := new(OfpControllerMaxLen)
+	*p = x
+	return p
 }
 
 func (x OfpControllerMaxLen) String() string {
-	return proto.EnumName(OfpControllerMaxLen_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OfpControllerMaxLen) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openflow_13_proto_enumTypes[18].Descriptor()
+}
+
+func (OfpControllerMaxLen) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openflow_13_proto_enumTypes[18]
+}
+
+func (x OfpControllerMaxLen) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OfpControllerMaxLen.Descriptor instead.
 func (OfpControllerMaxLen) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{18}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{18}
 }
 
 type OfpInstructionType int32
@@ -935,74 +1391,116 @@
 	OfpInstructionType_OFPIT_GOTO_TABLE     OfpInstructionType = 1
 	OfpInstructionType_OFPIT_WRITE_METADATA OfpInstructionType = 2
 	OfpInstructionType_OFPIT_WRITE_ACTIONS  OfpInstructionType = 3
-	OfpInstructionType_OFPIT_APPLY_ACTIONS  OfpInstructionType = 4
+	OfpInstructionType_OFPIT_APPLY_ACTIONS  OfpInstructionType = 4 // Applies the action(s) immediately
 	OfpInstructionType_OFPIT_CLEAR_ACTIONS  OfpInstructionType = 5
-	OfpInstructionType_OFPIT_METER          OfpInstructionType = 6
-	OfpInstructionType_OFPIT_EXPERIMENTER   OfpInstructionType = 65535
+	OfpInstructionType_OFPIT_METER          OfpInstructionType = 6     // Apply meter (rate limiter)
+	OfpInstructionType_OFPIT_EXPERIMENTER   OfpInstructionType = 65535 // Experimenter instruction
 )
 
-var OfpInstructionType_name = map[int32]string{
-	0:     "OFPIT_INVALID",
-	1:     "OFPIT_GOTO_TABLE",
-	2:     "OFPIT_WRITE_METADATA",
-	3:     "OFPIT_WRITE_ACTIONS",
-	4:     "OFPIT_APPLY_ACTIONS",
-	5:     "OFPIT_CLEAR_ACTIONS",
-	6:     "OFPIT_METER",
-	65535: "OFPIT_EXPERIMENTER",
-}
+// Enum value maps for OfpInstructionType.
+var (
+	OfpInstructionType_name = map[int32]string{
+		0:     "OFPIT_INVALID",
+		1:     "OFPIT_GOTO_TABLE",
+		2:     "OFPIT_WRITE_METADATA",
+		3:     "OFPIT_WRITE_ACTIONS",
+		4:     "OFPIT_APPLY_ACTIONS",
+		5:     "OFPIT_CLEAR_ACTIONS",
+		6:     "OFPIT_METER",
+		65535: "OFPIT_EXPERIMENTER",
+	}
+	OfpInstructionType_value = map[string]int32{
+		"OFPIT_INVALID":        0,
+		"OFPIT_GOTO_TABLE":     1,
+		"OFPIT_WRITE_METADATA": 2,
+		"OFPIT_WRITE_ACTIONS":  3,
+		"OFPIT_APPLY_ACTIONS":  4,
+		"OFPIT_CLEAR_ACTIONS":  5,
+		"OFPIT_METER":          6,
+		"OFPIT_EXPERIMENTER":   65535,
+	}
+)
 
-var OfpInstructionType_value = map[string]int32{
-	"OFPIT_INVALID":        0,
-	"OFPIT_GOTO_TABLE":     1,
-	"OFPIT_WRITE_METADATA": 2,
-	"OFPIT_WRITE_ACTIONS":  3,
-	"OFPIT_APPLY_ACTIONS":  4,
-	"OFPIT_CLEAR_ACTIONS":  5,
-	"OFPIT_METER":          6,
-	"OFPIT_EXPERIMENTER":   65535,
+func (x OfpInstructionType) Enum() *OfpInstructionType {
+	p := new(OfpInstructionType)
+	*p = x
+	return p
 }
 
 func (x OfpInstructionType) String() string {
-	return proto.EnumName(OfpInstructionType_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OfpInstructionType) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openflow_13_proto_enumTypes[19].Descriptor()
+}
+
+func (OfpInstructionType) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openflow_13_proto_enumTypes[19]
+}
+
+func (x OfpInstructionType) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OfpInstructionType.Descriptor instead.
 func (OfpInstructionType) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{19}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{19}
 }
 
 type OfpFlowModCommand int32
 
 const (
-	OfpFlowModCommand_OFPFC_ADD           OfpFlowModCommand = 0
-	OfpFlowModCommand_OFPFC_MODIFY        OfpFlowModCommand = 1
+	OfpFlowModCommand_OFPFC_ADD           OfpFlowModCommand = 0 // New flow.
+	OfpFlowModCommand_OFPFC_MODIFY        OfpFlowModCommand = 1 // Modify all matching flows.
 	OfpFlowModCommand_OFPFC_MODIFY_STRICT OfpFlowModCommand = 2
-	OfpFlowModCommand_OFPFC_DELETE        OfpFlowModCommand = 3
+	OfpFlowModCommand_OFPFC_DELETE        OfpFlowModCommand = 3 // Delete all matching flows.
 	OfpFlowModCommand_OFPFC_DELETE_STRICT OfpFlowModCommand = 4
 )
 
-var OfpFlowModCommand_name = map[int32]string{
-	0: "OFPFC_ADD",
-	1: "OFPFC_MODIFY",
-	2: "OFPFC_MODIFY_STRICT",
-	3: "OFPFC_DELETE",
-	4: "OFPFC_DELETE_STRICT",
-}
+// Enum value maps for OfpFlowModCommand.
+var (
+	OfpFlowModCommand_name = map[int32]string{
+		0: "OFPFC_ADD",
+		1: "OFPFC_MODIFY",
+		2: "OFPFC_MODIFY_STRICT",
+		3: "OFPFC_DELETE",
+		4: "OFPFC_DELETE_STRICT",
+	}
+	OfpFlowModCommand_value = map[string]int32{
+		"OFPFC_ADD":           0,
+		"OFPFC_MODIFY":        1,
+		"OFPFC_MODIFY_STRICT": 2,
+		"OFPFC_DELETE":        3,
+		"OFPFC_DELETE_STRICT": 4,
+	}
+)
 
-var OfpFlowModCommand_value = map[string]int32{
-	"OFPFC_ADD":           0,
-	"OFPFC_MODIFY":        1,
-	"OFPFC_MODIFY_STRICT": 2,
-	"OFPFC_DELETE":        3,
-	"OFPFC_DELETE_STRICT": 4,
+func (x OfpFlowModCommand) Enum() *OfpFlowModCommand {
+	p := new(OfpFlowModCommand)
+	*p = x
+	return p
 }
 
 func (x OfpFlowModCommand) String() string {
-	return proto.EnumName(OfpFlowModCommand_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OfpFlowModCommand) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openflow_13_proto_enumTypes[20].Descriptor()
+}
+
+func (OfpFlowModCommand) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openflow_13_proto_enumTypes[20]
+}
+
+func (x OfpFlowModCommand) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OfpFlowModCommand.Descriptor instead.
 func (OfpFlowModCommand) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{20}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{20}
 }
 
 type OfpFlowModFlags int32
@@ -1010,36 +1508,57 @@
 const (
 	OfpFlowModFlags_OFPFF_INVALID       OfpFlowModFlags = 0
 	OfpFlowModFlags_OFPFF_SEND_FLOW_REM OfpFlowModFlags = 1
-	OfpFlowModFlags_OFPFF_CHECK_OVERLAP OfpFlowModFlags = 2
-	OfpFlowModFlags_OFPFF_RESET_COUNTS  OfpFlowModFlags = 4
-	OfpFlowModFlags_OFPFF_NO_PKT_COUNTS OfpFlowModFlags = 8
-	OfpFlowModFlags_OFPFF_NO_BYT_COUNTS OfpFlowModFlags = 16
+	OfpFlowModFlags_OFPFF_CHECK_OVERLAP OfpFlowModFlags = 2  // Check for overlapping entries first.
+	OfpFlowModFlags_OFPFF_RESET_COUNTS  OfpFlowModFlags = 4  // Reset flow packet and byte counts.
+	OfpFlowModFlags_OFPFF_NO_PKT_COUNTS OfpFlowModFlags = 8  // Don't keep track of packet count.
+	OfpFlowModFlags_OFPFF_NO_BYT_COUNTS OfpFlowModFlags = 16 // Don't keep track of byte count.
 )
 
-var OfpFlowModFlags_name = map[int32]string{
-	0:  "OFPFF_INVALID",
-	1:  "OFPFF_SEND_FLOW_REM",
-	2:  "OFPFF_CHECK_OVERLAP",
-	4:  "OFPFF_RESET_COUNTS",
-	8:  "OFPFF_NO_PKT_COUNTS",
-	16: "OFPFF_NO_BYT_COUNTS",
-}
+// Enum value maps for OfpFlowModFlags.
+var (
+	OfpFlowModFlags_name = map[int32]string{
+		0:  "OFPFF_INVALID",
+		1:  "OFPFF_SEND_FLOW_REM",
+		2:  "OFPFF_CHECK_OVERLAP",
+		4:  "OFPFF_RESET_COUNTS",
+		8:  "OFPFF_NO_PKT_COUNTS",
+		16: "OFPFF_NO_BYT_COUNTS",
+	}
+	OfpFlowModFlags_value = map[string]int32{
+		"OFPFF_INVALID":       0,
+		"OFPFF_SEND_FLOW_REM": 1,
+		"OFPFF_CHECK_OVERLAP": 2,
+		"OFPFF_RESET_COUNTS":  4,
+		"OFPFF_NO_PKT_COUNTS": 8,
+		"OFPFF_NO_BYT_COUNTS": 16,
+	}
+)
 
-var OfpFlowModFlags_value = map[string]int32{
-	"OFPFF_INVALID":       0,
-	"OFPFF_SEND_FLOW_REM": 1,
-	"OFPFF_CHECK_OVERLAP": 2,
-	"OFPFF_RESET_COUNTS":  4,
-	"OFPFF_NO_PKT_COUNTS": 8,
-	"OFPFF_NO_BYT_COUNTS": 16,
+func (x OfpFlowModFlags) Enum() *OfpFlowModFlags {
+	p := new(OfpFlowModFlags)
+	*p = x
+	return p
 }
 
 func (x OfpFlowModFlags) String() string {
-	return proto.EnumName(OfpFlowModFlags_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OfpFlowModFlags) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openflow_13_proto_enumTypes[21].Descriptor()
+}
+
+func (OfpFlowModFlags) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openflow_13_proto_enumTypes[21]
+}
+
+func (x OfpFlowModFlags) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OfpFlowModFlags.Descriptor instead.
 func (OfpFlowModFlags) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{21}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{21}
 }
 
 // Group numbering. Groups can use any number up to OFPG_MAX.
@@ -1051,58 +1570,100 @@
 	OfpGroup_OFPG_MAX OfpGroup = 2147483392
 	// Fake groups.
 	OfpGroup_OFPG_ALL OfpGroup = 2147483644
-	OfpGroup_OFPG_ANY OfpGroup = 2147483647
+	OfpGroup_OFPG_ANY OfpGroup = 2147483647 // Special wildcard: no group specified.
 )
 
-var OfpGroup_name = map[int32]string{
-	0:          "OFPG_INVALID",
-	2147483392: "OFPG_MAX",
-	2147483644: "OFPG_ALL",
-	2147483647: "OFPG_ANY",
-}
+// Enum value maps for OfpGroup.
+var (
+	OfpGroup_name = map[int32]string{
+		0:          "OFPG_INVALID",
+		2147483392: "OFPG_MAX",
+		2147483644: "OFPG_ALL",
+		2147483647: "OFPG_ANY",
+	}
+	OfpGroup_value = map[string]int32{
+		"OFPG_INVALID": 0,
+		"OFPG_MAX":     2147483392,
+		"OFPG_ALL":     2147483644,
+		"OFPG_ANY":     2147483647,
+	}
+)
 
-var OfpGroup_value = map[string]int32{
-	"OFPG_INVALID": 0,
-	"OFPG_MAX":     2147483392,
-	"OFPG_ALL":     2147483644,
-	"OFPG_ANY":     2147483647,
+func (x OfpGroup) Enum() *OfpGroup {
+	p := new(OfpGroup)
+	*p = x
+	return p
 }
 
 func (x OfpGroup) String() string {
-	return proto.EnumName(OfpGroup_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OfpGroup) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openflow_13_proto_enumTypes[22].Descriptor()
+}
+
+func (OfpGroup) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openflow_13_proto_enumTypes[22]
+}
+
+func (x OfpGroup) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OfpGroup.Descriptor instead.
 func (OfpGroup) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{22}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{22}
 }
 
 // Group commands
 type OfpGroupModCommand int32
 
 const (
-	OfpGroupModCommand_OFPGC_ADD    OfpGroupModCommand = 0
-	OfpGroupModCommand_OFPGC_MODIFY OfpGroupModCommand = 1
-	OfpGroupModCommand_OFPGC_DELETE OfpGroupModCommand = 2
+	OfpGroupModCommand_OFPGC_ADD    OfpGroupModCommand = 0 // New group.
+	OfpGroupModCommand_OFPGC_MODIFY OfpGroupModCommand = 1 // Modify all matching groups.
+	OfpGroupModCommand_OFPGC_DELETE OfpGroupModCommand = 2 // Delete all matching groups.
 )
 
-var OfpGroupModCommand_name = map[int32]string{
-	0: "OFPGC_ADD",
-	1: "OFPGC_MODIFY",
-	2: "OFPGC_DELETE",
-}
+// Enum value maps for OfpGroupModCommand.
+var (
+	OfpGroupModCommand_name = map[int32]string{
+		0: "OFPGC_ADD",
+		1: "OFPGC_MODIFY",
+		2: "OFPGC_DELETE",
+	}
+	OfpGroupModCommand_value = map[string]int32{
+		"OFPGC_ADD":    0,
+		"OFPGC_MODIFY": 1,
+		"OFPGC_DELETE": 2,
+	}
+)
 
-var OfpGroupModCommand_value = map[string]int32{
-	"OFPGC_ADD":    0,
-	"OFPGC_MODIFY": 1,
-	"OFPGC_DELETE": 2,
+func (x OfpGroupModCommand) Enum() *OfpGroupModCommand {
+	p := new(OfpGroupModCommand)
+	*p = x
+	return p
 }
 
 func (x OfpGroupModCommand) String() string {
-	return proto.EnumName(OfpGroupModCommand_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OfpGroupModCommand) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openflow_13_proto_enumTypes[23].Descriptor()
+}
+
+func (OfpGroupModCommand) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openflow_13_proto_enumTypes[23]
+}
+
+func (x OfpGroupModCommand) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OfpGroupModCommand.Descriptor instead.
 func (OfpGroupModCommand) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{23}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{23}
 }
 
 // Group types.  Values in the range [128; 255] are reserved for experimental
@@ -1110,96 +1671,159 @@
 type OfpGroupType int32
 
 const (
-	OfpGroupType_OFPGT_ALL      OfpGroupType = 0
-	OfpGroupType_OFPGT_SELECT   OfpGroupType = 1
-	OfpGroupType_OFPGT_INDIRECT OfpGroupType = 2
-	OfpGroupType_OFPGT_FF       OfpGroupType = 3
+	OfpGroupType_OFPGT_ALL      OfpGroupType = 0 // All (multicast/broadcast) group.
+	OfpGroupType_OFPGT_SELECT   OfpGroupType = 1 // Select group.
+	OfpGroupType_OFPGT_INDIRECT OfpGroupType = 2 // Indirect group.
+	OfpGroupType_OFPGT_FF       OfpGroupType = 3 // Fast failover group.
 )
 
-var OfpGroupType_name = map[int32]string{
-	0: "OFPGT_ALL",
-	1: "OFPGT_SELECT",
-	2: "OFPGT_INDIRECT",
-	3: "OFPGT_FF",
-}
+// Enum value maps for OfpGroupType.
+var (
+	OfpGroupType_name = map[int32]string{
+		0: "OFPGT_ALL",
+		1: "OFPGT_SELECT",
+		2: "OFPGT_INDIRECT",
+		3: "OFPGT_FF",
+	}
+	OfpGroupType_value = map[string]int32{
+		"OFPGT_ALL":      0,
+		"OFPGT_SELECT":   1,
+		"OFPGT_INDIRECT": 2,
+		"OFPGT_FF":       3,
+	}
+)
 
-var OfpGroupType_value = map[string]int32{
-	"OFPGT_ALL":      0,
-	"OFPGT_SELECT":   1,
-	"OFPGT_INDIRECT": 2,
-	"OFPGT_FF":       3,
+func (x OfpGroupType) Enum() *OfpGroupType {
+	p := new(OfpGroupType)
+	*p = x
+	return p
 }
 
 func (x OfpGroupType) String() string {
-	return proto.EnumName(OfpGroupType_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OfpGroupType) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openflow_13_proto_enumTypes[24].Descriptor()
+}
+
+func (OfpGroupType) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openflow_13_proto_enumTypes[24]
+}
+
+func (x OfpGroupType) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OfpGroupType.Descriptor instead.
 func (OfpGroupType) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{24}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{24}
 }
 
 // Why is this packet being sent to the controller?
 type OfpPacketInReason int32
 
 const (
-	OfpPacketInReason_OFPR_NO_MATCH    OfpPacketInReason = 0
-	OfpPacketInReason_OFPR_ACTION      OfpPacketInReason = 1
-	OfpPacketInReason_OFPR_INVALID_TTL OfpPacketInReason = 2
+	OfpPacketInReason_OFPR_NO_MATCH    OfpPacketInReason = 0 // No matching flow (table-miss flow entry).
+	OfpPacketInReason_OFPR_ACTION      OfpPacketInReason = 1 // Action explicitly output to controller.
+	OfpPacketInReason_OFPR_INVALID_TTL OfpPacketInReason = 2 // Packet has invalid TTL
 )
 
-var OfpPacketInReason_name = map[int32]string{
-	0: "OFPR_NO_MATCH",
-	1: "OFPR_ACTION",
-	2: "OFPR_INVALID_TTL",
-}
+// Enum value maps for OfpPacketInReason.
+var (
+	OfpPacketInReason_name = map[int32]string{
+		0: "OFPR_NO_MATCH",
+		1: "OFPR_ACTION",
+		2: "OFPR_INVALID_TTL",
+	}
+	OfpPacketInReason_value = map[string]int32{
+		"OFPR_NO_MATCH":    0,
+		"OFPR_ACTION":      1,
+		"OFPR_INVALID_TTL": 2,
+	}
+)
 
-var OfpPacketInReason_value = map[string]int32{
-	"OFPR_NO_MATCH":    0,
-	"OFPR_ACTION":      1,
-	"OFPR_INVALID_TTL": 2,
+func (x OfpPacketInReason) Enum() *OfpPacketInReason {
+	p := new(OfpPacketInReason)
+	*p = x
+	return p
 }
 
 func (x OfpPacketInReason) String() string {
-	return proto.EnumName(OfpPacketInReason_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OfpPacketInReason) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openflow_13_proto_enumTypes[25].Descriptor()
+}
+
+func (OfpPacketInReason) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openflow_13_proto_enumTypes[25]
+}
+
+func (x OfpPacketInReason) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OfpPacketInReason.Descriptor instead.
 func (OfpPacketInReason) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{25}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{25}
 }
 
 // Why was this flow removed?
 type OfpFlowRemovedReason int32
 
 const (
-	OfpFlowRemovedReason_OFPRR_IDLE_TIMEOUT OfpFlowRemovedReason = 0
-	OfpFlowRemovedReason_OFPRR_HARD_TIMEOUT OfpFlowRemovedReason = 1
-	OfpFlowRemovedReason_OFPRR_DELETE       OfpFlowRemovedReason = 2
-	OfpFlowRemovedReason_OFPRR_GROUP_DELETE OfpFlowRemovedReason = 3
-	OfpFlowRemovedReason_OFPRR_METER_DELETE OfpFlowRemovedReason = 4
+	OfpFlowRemovedReason_OFPRR_IDLE_TIMEOUT OfpFlowRemovedReason = 0 // Flow idle time exceeded idle_timeout.
+	OfpFlowRemovedReason_OFPRR_HARD_TIMEOUT OfpFlowRemovedReason = 1 // Time exceeded hard_timeout.
+	OfpFlowRemovedReason_OFPRR_DELETE       OfpFlowRemovedReason = 2 // Evicted by a DELETE flow mod.
+	OfpFlowRemovedReason_OFPRR_GROUP_DELETE OfpFlowRemovedReason = 3 // Group was removed.
+	OfpFlowRemovedReason_OFPRR_METER_DELETE OfpFlowRemovedReason = 4 // Meter was removed
 )
 
-var OfpFlowRemovedReason_name = map[int32]string{
-	0: "OFPRR_IDLE_TIMEOUT",
-	1: "OFPRR_HARD_TIMEOUT",
-	2: "OFPRR_DELETE",
-	3: "OFPRR_GROUP_DELETE",
-	4: "OFPRR_METER_DELETE",
-}
+// Enum value maps for OfpFlowRemovedReason.
+var (
+	OfpFlowRemovedReason_name = map[int32]string{
+		0: "OFPRR_IDLE_TIMEOUT",
+		1: "OFPRR_HARD_TIMEOUT",
+		2: "OFPRR_DELETE",
+		3: "OFPRR_GROUP_DELETE",
+		4: "OFPRR_METER_DELETE",
+	}
+	OfpFlowRemovedReason_value = map[string]int32{
+		"OFPRR_IDLE_TIMEOUT": 0,
+		"OFPRR_HARD_TIMEOUT": 1,
+		"OFPRR_DELETE":       2,
+		"OFPRR_GROUP_DELETE": 3,
+		"OFPRR_METER_DELETE": 4,
+	}
+)
 
-var OfpFlowRemovedReason_value = map[string]int32{
-	"OFPRR_IDLE_TIMEOUT": 0,
-	"OFPRR_HARD_TIMEOUT": 1,
-	"OFPRR_DELETE":       2,
-	"OFPRR_GROUP_DELETE": 3,
-	"OFPRR_METER_DELETE": 4,
+func (x OfpFlowRemovedReason) Enum() *OfpFlowRemovedReason {
+	p := new(OfpFlowRemovedReason)
+	*p = x
+	return p
 }
 
 func (x OfpFlowRemovedReason) String() string {
-	return proto.EnumName(OfpFlowRemovedReason_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OfpFlowRemovedReason) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openflow_13_proto_enumTypes[26].Descriptor()
+}
+
+func (OfpFlowRemovedReason) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openflow_13_proto_enumTypes[26]
+}
+
+func (x OfpFlowRemovedReason) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OfpFlowRemovedReason.Descriptor instead.
 func (OfpFlowRemovedReason) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{26}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{26}
 }
 
 // Meter numbering. Flow meters can use any number up to OFPM_MAX.
@@ -1210,33 +1834,54 @@
 	// Last usable meter.
 	OfpMeter_OFPM_MAX OfpMeter = 2147418112
 	// Virtual meters.
-	OfpMeter_OFPM_SLOWPATH   OfpMeter = 2147483645
-	OfpMeter_OFPM_CONTROLLER OfpMeter = 2147483646
+	OfpMeter_OFPM_SLOWPATH   OfpMeter = 2147483645 // Meter for slow datapath.
+	OfpMeter_OFPM_CONTROLLER OfpMeter = 2147483646 // Meter for controller connection.
 	OfpMeter_OFPM_ALL        OfpMeter = 2147483647
 )
 
-var OfpMeter_name = map[int32]string{
-	0:          "OFPM_ZERO",
-	2147418112: "OFPM_MAX",
-	2147483645: "OFPM_SLOWPATH",
-	2147483646: "OFPM_CONTROLLER",
-	2147483647: "OFPM_ALL",
-}
+// Enum value maps for OfpMeter.
+var (
+	OfpMeter_name = map[int32]string{
+		0:          "OFPM_ZERO",
+		2147418112: "OFPM_MAX",
+		2147483645: "OFPM_SLOWPATH",
+		2147483646: "OFPM_CONTROLLER",
+		2147483647: "OFPM_ALL",
+	}
+	OfpMeter_value = map[string]int32{
+		"OFPM_ZERO":       0,
+		"OFPM_MAX":        2147418112,
+		"OFPM_SLOWPATH":   2147483645,
+		"OFPM_CONTROLLER": 2147483646,
+		"OFPM_ALL":        2147483647,
+	}
+)
 
-var OfpMeter_value = map[string]int32{
-	"OFPM_ZERO":       0,
-	"OFPM_MAX":        2147418112,
-	"OFPM_SLOWPATH":   2147483645,
-	"OFPM_CONTROLLER": 2147483646,
-	"OFPM_ALL":        2147483647,
+func (x OfpMeter) Enum() *OfpMeter {
+	p := new(OfpMeter)
+	*p = x
+	return p
 }
 
 func (x OfpMeter) String() string {
-	return proto.EnumName(OfpMeter_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OfpMeter) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openflow_13_proto_enumTypes[27].Descriptor()
+}
+
+func (OfpMeter) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openflow_13_proto_enumTypes[27]
+}
+
+func (x OfpMeter) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OfpMeter.Descriptor instead.
 func (OfpMeter) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{27}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{27}
 }
 
 // Meter band types
@@ -1244,60 +1889,102 @@
 
 const (
 	OfpMeterBandType_OFPMBT_INVALID      OfpMeterBandType = 0
-	OfpMeterBandType_OFPMBT_DROP         OfpMeterBandType = 1
-	OfpMeterBandType_OFPMBT_DSCP_REMARK  OfpMeterBandType = 2
-	OfpMeterBandType_OFPMBT_EXPERIMENTER OfpMeterBandType = 65535
+	OfpMeterBandType_OFPMBT_DROP         OfpMeterBandType = 1     // Drop packet.
+	OfpMeterBandType_OFPMBT_DSCP_REMARK  OfpMeterBandType = 2     // Remark DSCP in the IP header.
+	OfpMeterBandType_OFPMBT_EXPERIMENTER OfpMeterBandType = 65535 // Experimenter meter band.
 )
 
-var OfpMeterBandType_name = map[int32]string{
-	0:     "OFPMBT_INVALID",
-	1:     "OFPMBT_DROP",
-	2:     "OFPMBT_DSCP_REMARK",
-	65535: "OFPMBT_EXPERIMENTER",
-}
+// Enum value maps for OfpMeterBandType.
+var (
+	OfpMeterBandType_name = map[int32]string{
+		0:     "OFPMBT_INVALID",
+		1:     "OFPMBT_DROP",
+		2:     "OFPMBT_DSCP_REMARK",
+		65535: "OFPMBT_EXPERIMENTER",
+	}
+	OfpMeterBandType_value = map[string]int32{
+		"OFPMBT_INVALID":      0,
+		"OFPMBT_DROP":         1,
+		"OFPMBT_DSCP_REMARK":  2,
+		"OFPMBT_EXPERIMENTER": 65535,
+	}
+)
 
-var OfpMeterBandType_value = map[string]int32{
-	"OFPMBT_INVALID":      0,
-	"OFPMBT_DROP":         1,
-	"OFPMBT_DSCP_REMARK":  2,
-	"OFPMBT_EXPERIMENTER": 65535,
+func (x OfpMeterBandType) Enum() *OfpMeterBandType {
+	p := new(OfpMeterBandType)
+	*p = x
+	return p
 }
 
 func (x OfpMeterBandType) String() string {
-	return proto.EnumName(OfpMeterBandType_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OfpMeterBandType) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openflow_13_proto_enumTypes[28].Descriptor()
+}
+
+func (OfpMeterBandType) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openflow_13_proto_enumTypes[28]
+}
+
+func (x OfpMeterBandType) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OfpMeterBandType.Descriptor instead.
 func (OfpMeterBandType) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{28}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{28}
 }
 
 // Meter commands
 type OfpMeterModCommand int32
 
 const (
-	OfpMeterModCommand_OFPMC_ADD    OfpMeterModCommand = 0
-	OfpMeterModCommand_OFPMC_MODIFY OfpMeterModCommand = 1
-	OfpMeterModCommand_OFPMC_DELETE OfpMeterModCommand = 2
+	OfpMeterModCommand_OFPMC_ADD    OfpMeterModCommand = 0 // New meter.
+	OfpMeterModCommand_OFPMC_MODIFY OfpMeterModCommand = 1 // Modify specified meter.
+	OfpMeterModCommand_OFPMC_DELETE OfpMeterModCommand = 2 // Delete specified meter.
 )
 
-var OfpMeterModCommand_name = map[int32]string{
-	0: "OFPMC_ADD",
-	1: "OFPMC_MODIFY",
-	2: "OFPMC_DELETE",
-}
+// Enum value maps for OfpMeterModCommand.
+var (
+	OfpMeterModCommand_name = map[int32]string{
+		0: "OFPMC_ADD",
+		1: "OFPMC_MODIFY",
+		2: "OFPMC_DELETE",
+	}
+	OfpMeterModCommand_value = map[string]int32{
+		"OFPMC_ADD":    0,
+		"OFPMC_MODIFY": 1,
+		"OFPMC_DELETE": 2,
+	}
+)
 
-var OfpMeterModCommand_value = map[string]int32{
-	"OFPMC_ADD":    0,
-	"OFPMC_MODIFY": 1,
-	"OFPMC_DELETE": 2,
+func (x OfpMeterModCommand) Enum() *OfpMeterModCommand {
+	p := new(OfpMeterModCommand)
+	*p = x
+	return p
 }
 
 func (x OfpMeterModCommand) String() string {
-	return proto.EnumName(OfpMeterModCommand_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OfpMeterModCommand) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openflow_13_proto_enumTypes[29].Descriptor()
+}
+
+func (OfpMeterModCommand) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openflow_13_proto_enumTypes[29]
+}
+
+func (x OfpMeterModCommand) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OfpMeterModCommand.Descriptor instead.
 func (OfpMeterModCommand) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{29}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{29}
 }
 
 // Meter configuration flags
@@ -1305,34 +1992,55 @@
 
 const (
 	OfpMeterFlags_OFPMF_INVALID OfpMeterFlags = 0
-	OfpMeterFlags_OFPMF_KBPS    OfpMeterFlags = 1
-	OfpMeterFlags_OFPMF_PKTPS   OfpMeterFlags = 2
-	OfpMeterFlags_OFPMF_BURST   OfpMeterFlags = 4
-	OfpMeterFlags_OFPMF_STATS   OfpMeterFlags = 8
+	OfpMeterFlags_OFPMF_KBPS    OfpMeterFlags = 1 // Rate value in kb/s (kilo-bit per second).
+	OfpMeterFlags_OFPMF_PKTPS   OfpMeterFlags = 2 // Rate value in packet/sec.
+	OfpMeterFlags_OFPMF_BURST   OfpMeterFlags = 4 // Do burst size.
+	OfpMeterFlags_OFPMF_STATS   OfpMeterFlags = 8 // Collect statistics.
 )
 
-var OfpMeterFlags_name = map[int32]string{
-	0: "OFPMF_INVALID",
-	1: "OFPMF_KBPS",
-	2: "OFPMF_PKTPS",
-	4: "OFPMF_BURST",
-	8: "OFPMF_STATS",
-}
+// Enum value maps for OfpMeterFlags.
+var (
+	OfpMeterFlags_name = map[int32]string{
+		0: "OFPMF_INVALID",
+		1: "OFPMF_KBPS",
+		2: "OFPMF_PKTPS",
+		4: "OFPMF_BURST",
+		8: "OFPMF_STATS",
+	}
+	OfpMeterFlags_value = map[string]int32{
+		"OFPMF_INVALID": 0,
+		"OFPMF_KBPS":    1,
+		"OFPMF_PKTPS":   2,
+		"OFPMF_BURST":   4,
+		"OFPMF_STATS":   8,
+	}
+)
 
-var OfpMeterFlags_value = map[string]int32{
-	"OFPMF_INVALID": 0,
-	"OFPMF_KBPS":    1,
-	"OFPMF_PKTPS":   2,
-	"OFPMF_BURST":   4,
-	"OFPMF_STATS":   8,
+func (x OfpMeterFlags) Enum() *OfpMeterFlags {
+	p := new(OfpMeterFlags)
+	*p = x
+	return p
 }
 
 func (x OfpMeterFlags) String() string {
-	return proto.EnumName(OfpMeterFlags_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OfpMeterFlags) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openflow_13_proto_enumTypes[30].Descriptor()
+}
+
+func (OfpMeterFlags) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openflow_13_proto_enumTypes[30]
+}
+
+func (x OfpMeterFlags) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OfpMeterFlags.Descriptor instead.
 func (OfpMeterFlags) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{30}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{30}
 }
 
 // Values for 'type' in ofp_error_message.  These values are immutable: they
@@ -1341,65 +2049,86 @@
 type OfpErrorType int32
 
 const (
-	OfpErrorType_OFPET_HELLO_FAILED          OfpErrorType = 0
-	OfpErrorType_OFPET_BAD_REQUEST           OfpErrorType = 1
-	OfpErrorType_OFPET_BAD_ACTION            OfpErrorType = 2
-	OfpErrorType_OFPET_BAD_INSTRUCTION       OfpErrorType = 3
-	OfpErrorType_OFPET_BAD_MATCH             OfpErrorType = 4
-	OfpErrorType_OFPET_FLOW_MOD_FAILED       OfpErrorType = 5
-	OfpErrorType_OFPET_GROUP_MOD_FAILED      OfpErrorType = 6
-	OfpErrorType_OFPET_PORT_MOD_FAILED       OfpErrorType = 7
-	OfpErrorType_OFPET_TABLE_MOD_FAILED      OfpErrorType = 8
-	OfpErrorType_OFPET_QUEUE_OP_FAILED       OfpErrorType = 9
-	OfpErrorType_OFPET_SWITCH_CONFIG_FAILED  OfpErrorType = 10
-	OfpErrorType_OFPET_ROLE_REQUEST_FAILED   OfpErrorType = 11
-	OfpErrorType_OFPET_METER_MOD_FAILED      OfpErrorType = 12
-	OfpErrorType_OFPET_TABLE_FEATURES_FAILED OfpErrorType = 13
-	OfpErrorType_OFPET_EXPERIMENTER          OfpErrorType = 65535
+	OfpErrorType_OFPET_HELLO_FAILED          OfpErrorType = 0     // Hello protocol failed.
+	OfpErrorType_OFPET_BAD_REQUEST           OfpErrorType = 1     // Request was not understood.
+	OfpErrorType_OFPET_BAD_ACTION            OfpErrorType = 2     // Error in action description.
+	OfpErrorType_OFPET_BAD_INSTRUCTION       OfpErrorType = 3     // Error in instruction list.
+	OfpErrorType_OFPET_BAD_MATCH             OfpErrorType = 4     // Error in match.
+	OfpErrorType_OFPET_FLOW_MOD_FAILED       OfpErrorType = 5     // Problem modifying flow entry.
+	OfpErrorType_OFPET_GROUP_MOD_FAILED      OfpErrorType = 6     // Problem modifying group entry.
+	OfpErrorType_OFPET_PORT_MOD_FAILED       OfpErrorType = 7     // Port mod request failed.
+	OfpErrorType_OFPET_TABLE_MOD_FAILED      OfpErrorType = 8     // Table mod request failed.
+	OfpErrorType_OFPET_QUEUE_OP_FAILED       OfpErrorType = 9     // Queue operation failed.
+	OfpErrorType_OFPET_SWITCH_CONFIG_FAILED  OfpErrorType = 10    // Switch config request failed.
+	OfpErrorType_OFPET_ROLE_REQUEST_FAILED   OfpErrorType = 11    // Controller Role request failed.
+	OfpErrorType_OFPET_METER_MOD_FAILED      OfpErrorType = 12    // Error in meter.
+	OfpErrorType_OFPET_TABLE_FEATURES_FAILED OfpErrorType = 13    // Setting table features failed.
+	OfpErrorType_OFPET_EXPERIMENTER          OfpErrorType = 65535 // Experimenter error messages.
 )
 
-var OfpErrorType_name = map[int32]string{
-	0:     "OFPET_HELLO_FAILED",
-	1:     "OFPET_BAD_REQUEST",
-	2:     "OFPET_BAD_ACTION",
-	3:     "OFPET_BAD_INSTRUCTION",
-	4:     "OFPET_BAD_MATCH",
-	5:     "OFPET_FLOW_MOD_FAILED",
-	6:     "OFPET_GROUP_MOD_FAILED",
-	7:     "OFPET_PORT_MOD_FAILED",
-	8:     "OFPET_TABLE_MOD_FAILED",
-	9:     "OFPET_QUEUE_OP_FAILED",
-	10:    "OFPET_SWITCH_CONFIG_FAILED",
-	11:    "OFPET_ROLE_REQUEST_FAILED",
-	12:    "OFPET_METER_MOD_FAILED",
-	13:    "OFPET_TABLE_FEATURES_FAILED",
-	65535: "OFPET_EXPERIMENTER",
-}
+// Enum value maps for OfpErrorType.
+var (
+	OfpErrorType_name = map[int32]string{
+		0:     "OFPET_HELLO_FAILED",
+		1:     "OFPET_BAD_REQUEST",
+		2:     "OFPET_BAD_ACTION",
+		3:     "OFPET_BAD_INSTRUCTION",
+		4:     "OFPET_BAD_MATCH",
+		5:     "OFPET_FLOW_MOD_FAILED",
+		6:     "OFPET_GROUP_MOD_FAILED",
+		7:     "OFPET_PORT_MOD_FAILED",
+		8:     "OFPET_TABLE_MOD_FAILED",
+		9:     "OFPET_QUEUE_OP_FAILED",
+		10:    "OFPET_SWITCH_CONFIG_FAILED",
+		11:    "OFPET_ROLE_REQUEST_FAILED",
+		12:    "OFPET_METER_MOD_FAILED",
+		13:    "OFPET_TABLE_FEATURES_FAILED",
+		65535: "OFPET_EXPERIMENTER",
+	}
+	OfpErrorType_value = map[string]int32{
+		"OFPET_HELLO_FAILED":          0,
+		"OFPET_BAD_REQUEST":           1,
+		"OFPET_BAD_ACTION":            2,
+		"OFPET_BAD_INSTRUCTION":       3,
+		"OFPET_BAD_MATCH":             4,
+		"OFPET_FLOW_MOD_FAILED":       5,
+		"OFPET_GROUP_MOD_FAILED":      6,
+		"OFPET_PORT_MOD_FAILED":       7,
+		"OFPET_TABLE_MOD_FAILED":      8,
+		"OFPET_QUEUE_OP_FAILED":       9,
+		"OFPET_SWITCH_CONFIG_FAILED":  10,
+		"OFPET_ROLE_REQUEST_FAILED":   11,
+		"OFPET_METER_MOD_FAILED":      12,
+		"OFPET_TABLE_FEATURES_FAILED": 13,
+		"OFPET_EXPERIMENTER":          65535,
+	}
+)
 
-var OfpErrorType_value = map[string]int32{
-	"OFPET_HELLO_FAILED":          0,
-	"OFPET_BAD_REQUEST":           1,
-	"OFPET_BAD_ACTION":            2,
-	"OFPET_BAD_INSTRUCTION":       3,
-	"OFPET_BAD_MATCH":             4,
-	"OFPET_FLOW_MOD_FAILED":       5,
-	"OFPET_GROUP_MOD_FAILED":      6,
-	"OFPET_PORT_MOD_FAILED":       7,
-	"OFPET_TABLE_MOD_FAILED":      8,
-	"OFPET_QUEUE_OP_FAILED":       9,
-	"OFPET_SWITCH_CONFIG_FAILED":  10,
-	"OFPET_ROLE_REQUEST_FAILED":   11,
-	"OFPET_METER_MOD_FAILED":      12,
-	"OFPET_TABLE_FEATURES_FAILED": 13,
-	"OFPET_EXPERIMENTER":          65535,
+func (x OfpErrorType) Enum() *OfpErrorType {
+	p := new(OfpErrorType)
+	*p = x
+	return p
 }
 
 func (x OfpErrorType) String() string {
-	return proto.EnumName(OfpErrorType_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OfpErrorType) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openflow_13_proto_enumTypes[31].Descriptor()
+}
+
+func (OfpErrorType) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openflow_13_proto_enumTypes[31]
+}
+
+func (x OfpErrorType) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OfpErrorType.Descriptor instead.
 func (OfpErrorType) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{31}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{31}
 }
 
 // ofp_error_msg 'code' values for OFPET_HELLO_FAILED.  'data' contains an
@@ -1407,26 +2136,47 @@
 type OfpHelloFailedCode int32
 
 const (
-	OfpHelloFailedCode_OFPHFC_INCOMPATIBLE OfpHelloFailedCode = 0
-	OfpHelloFailedCode_OFPHFC_EPERM        OfpHelloFailedCode = 1
+	OfpHelloFailedCode_OFPHFC_INCOMPATIBLE OfpHelloFailedCode = 0 // No compatible version.
+	OfpHelloFailedCode_OFPHFC_EPERM        OfpHelloFailedCode = 1 // Permissions error.
 )
 
-var OfpHelloFailedCode_name = map[int32]string{
-	0: "OFPHFC_INCOMPATIBLE",
-	1: "OFPHFC_EPERM",
-}
+// Enum value maps for OfpHelloFailedCode.
+var (
+	OfpHelloFailedCode_name = map[int32]string{
+		0: "OFPHFC_INCOMPATIBLE",
+		1: "OFPHFC_EPERM",
+	}
+	OfpHelloFailedCode_value = map[string]int32{
+		"OFPHFC_INCOMPATIBLE": 0,
+		"OFPHFC_EPERM":        1,
+	}
+)
 
-var OfpHelloFailedCode_value = map[string]int32{
-	"OFPHFC_INCOMPATIBLE": 0,
-	"OFPHFC_EPERM":        1,
+func (x OfpHelloFailedCode) Enum() *OfpHelloFailedCode {
+	p := new(OfpHelloFailedCode)
+	*p = x
+	return p
 }
 
 func (x OfpHelloFailedCode) String() string {
-	return proto.EnumName(OfpHelloFailedCode_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OfpHelloFailedCode) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openflow_13_proto_enumTypes[32].Descriptor()
+}
+
+func (OfpHelloFailedCode) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openflow_13_proto_enumTypes[32]
+}
+
+func (x OfpHelloFailedCode) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OfpHelloFailedCode.Descriptor instead.
 func (OfpHelloFailedCode) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{32}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{32}
 }
 
 // ofp_error_msg 'code' values for OFPET_BAD_REQUEST.  'data' contains at least
@@ -1434,62 +2184,83 @@
 type OfpBadRequestCode int32
 
 const (
-	OfpBadRequestCode_OFPBRC_BAD_VERSION               OfpBadRequestCode = 0
-	OfpBadRequestCode_OFPBRC_BAD_TYPE                  OfpBadRequestCode = 1
-	OfpBadRequestCode_OFPBRC_BAD_MULTIPART             OfpBadRequestCode = 2
+	OfpBadRequestCode_OFPBRC_BAD_VERSION               OfpBadRequestCode = 0 // ofp_header.version not supported.
+	OfpBadRequestCode_OFPBRC_BAD_TYPE                  OfpBadRequestCode = 1 // ofp_header.type not supported.
+	OfpBadRequestCode_OFPBRC_BAD_MULTIPART             OfpBadRequestCode = 2 // ofp_multipart_request.type not supported.
 	OfpBadRequestCode_OFPBRC_BAD_EXPERIMENTER          OfpBadRequestCode = 3
-	OfpBadRequestCode_OFPBRC_BAD_EXP_TYPE              OfpBadRequestCode = 4
-	OfpBadRequestCode_OFPBRC_EPERM                     OfpBadRequestCode = 5
-	OfpBadRequestCode_OFPBRC_BAD_LEN                   OfpBadRequestCode = 6
-	OfpBadRequestCode_OFPBRC_BUFFER_EMPTY              OfpBadRequestCode = 7
-	OfpBadRequestCode_OFPBRC_BUFFER_UNKNOWN            OfpBadRequestCode = 8
+	OfpBadRequestCode_OFPBRC_BAD_EXP_TYPE              OfpBadRequestCode = 4 // Experimenter type not supported.
+	OfpBadRequestCode_OFPBRC_EPERM                     OfpBadRequestCode = 5 // Permissions error.
+	OfpBadRequestCode_OFPBRC_BAD_LEN                   OfpBadRequestCode = 6 // Wrong request length for type.
+	OfpBadRequestCode_OFPBRC_BUFFER_EMPTY              OfpBadRequestCode = 7 // Specified buffer has already been used.
+	OfpBadRequestCode_OFPBRC_BUFFER_UNKNOWN            OfpBadRequestCode = 8 // Specified buffer does not exist.
 	OfpBadRequestCode_OFPBRC_BAD_TABLE_ID              OfpBadRequestCode = 9
-	OfpBadRequestCode_OFPBRC_IS_SLAVE                  OfpBadRequestCode = 10
-	OfpBadRequestCode_OFPBRC_BAD_PORT                  OfpBadRequestCode = 11
-	OfpBadRequestCode_OFPBRC_BAD_PACKET                OfpBadRequestCode = 12
+	OfpBadRequestCode_OFPBRC_IS_SLAVE                  OfpBadRequestCode = 10 // Denied because controller is slave.
+	OfpBadRequestCode_OFPBRC_BAD_PORT                  OfpBadRequestCode = 11 // Invalid port.
+	OfpBadRequestCode_OFPBRC_BAD_PACKET                OfpBadRequestCode = 12 // Invalid packet in packet-out.
 	OfpBadRequestCode_OFPBRC_MULTIPART_BUFFER_OVERFLOW OfpBadRequestCode = 13
 )
 
-var OfpBadRequestCode_name = map[int32]string{
-	0:  "OFPBRC_BAD_VERSION",
-	1:  "OFPBRC_BAD_TYPE",
-	2:  "OFPBRC_BAD_MULTIPART",
-	3:  "OFPBRC_BAD_EXPERIMENTER",
-	4:  "OFPBRC_BAD_EXP_TYPE",
-	5:  "OFPBRC_EPERM",
-	6:  "OFPBRC_BAD_LEN",
-	7:  "OFPBRC_BUFFER_EMPTY",
-	8:  "OFPBRC_BUFFER_UNKNOWN",
-	9:  "OFPBRC_BAD_TABLE_ID",
-	10: "OFPBRC_IS_SLAVE",
-	11: "OFPBRC_BAD_PORT",
-	12: "OFPBRC_BAD_PACKET",
-	13: "OFPBRC_MULTIPART_BUFFER_OVERFLOW",
-}
+// Enum value maps for OfpBadRequestCode.
+var (
+	OfpBadRequestCode_name = map[int32]string{
+		0:  "OFPBRC_BAD_VERSION",
+		1:  "OFPBRC_BAD_TYPE",
+		2:  "OFPBRC_BAD_MULTIPART",
+		3:  "OFPBRC_BAD_EXPERIMENTER",
+		4:  "OFPBRC_BAD_EXP_TYPE",
+		5:  "OFPBRC_EPERM",
+		6:  "OFPBRC_BAD_LEN",
+		7:  "OFPBRC_BUFFER_EMPTY",
+		8:  "OFPBRC_BUFFER_UNKNOWN",
+		9:  "OFPBRC_BAD_TABLE_ID",
+		10: "OFPBRC_IS_SLAVE",
+		11: "OFPBRC_BAD_PORT",
+		12: "OFPBRC_BAD_PACKET",
+		13: "OFPBRC_MULTIPART_BUFFER_OVERFLOW",
+	}
+	OfpBadRequestCode_value = map[string]int32{
+		"OFPBRC_BAD_VERSION":               0,
+		"OFPBRC_BAD_TYPE":                  1,
+		"OFPBRC_BAD_MULTIPART":             2,
+		"OFPBRC_BAD_EXPERIMENTER":          3,
+		"OFPBRC_BAD_EXP_TYPE":              4,
+		"OFPBRC_EPERM":                     5,
+		"OFPBRC_BAD_LEN":                   6,
+		"OFPBRC_BUFFER_EMPTY":              7,
+		"OFPBRC_BUFFER_UNKNOWN":            8,
+		"OFPBRC_BAD_TABLE_ID":              9,
+		"OFPBRC_IS_SLAVE":                  10,
+		"OFPBRC_BAD_PORT":                  11,
+		"OFPBRC_BAD_PACKET":                12,
+		"OFPBRC_MULTIPART_BUFFER_OVERFLOW": 13,
+	}
+)
 
-var OfpBadRequestCode_value = map[string]int32{
-	"OFPBRC_BAD_VERSION":               0,
-	"OFPBRC_BAD_TYPE":                  1,
-	"OFPBRC_BAD_MULTIPART":             2,
-	"OFPBRC_BAD_EXPERIMENTER":          3,
-	"OFPBRC_BAD_EXP_TYPE":              4,
-	"OFPBRC_EPERM":                     5,
-	"OFPBRC_BAD_LEN":                   6,
-	"OFPBRC_BUFFER_EMPTY":              7,
-	"OFPBRC_BUFFER_UNKNOWN":            8,
-	"OFPBRC_BAD_TABLE_ID":              9,
-	"OFPBRC_IS_SLAVE":                  10,
-	"OFPBRC_BAD_PORT":                  11,
-	"OFPBRC_BAD_PACKET":                12,
-	"OFPBRC_MULTIPART_BUFFER_OVERFLOW": 13,
+func (x OfpBadRequestCode) Enum() *OfpBadRequestCode {
+	p := new(OfpBadRequestCode)
+	*p = x
+	return p
 }
 
 func (x OfpBadRequestCode) String() string {
-	return proto.EnumName(OfpBadRequestCode_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OfpBadRequestCode) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openflow_13_proto_enumTypes[33].Descriptor()
+}
+
+func (OfpBadRequestCode) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openflow_13_proto_enumTypes[33]
+}
+
+func (x OfpBadRequestCode) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OfpBadRequestCode.Descriptor instead.
 func (OfpBadRequestCode) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{33}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{33}
 }
 
 // ofp_error_msg 'code' values for OFPET_BAD_ACTION.  'data' contains at least
@@ -1497,68 +2268,89 @@
 type OfpBadActionCode int32
 
 const (
-	OfpBadActionCode_OFPBAC_BAD_TYPE           OfpBadActionCode = 0
-	OfpBadActionCode_OFPBAC_BAD_LEN            OfpBadActionCode = 1
-	OfpBadActionCode_OFPBAC_BAD_EXPERIMENTER   OfpBadActionCode = 2
-	OfpBadActionCode_OFPBAC_BAD_EXP_TYPE       OfpBadActionCode = 3
-	OfpBadActionCode_OFPBAC_BAD_OUT_PORT       OfpBadActionCode = 4
-	OfpBadActionCode_OFPBAC_BAD_ARGUMENT       OfpBadActionCode = 5
-	OfpBadActionCode_OFPBAC_EPERM              OfpBadActionCode = 6
-	OfpBadActionCode_OFPBAC_TOO_MANY           OfpBadActionCode = 7
-	OfpBadActionCode_OFPBAC_BAD_QUEUE          OfpBadActionCode = 8
-	OfpBadActionCode_OFPBAC_BAD_OUT_GROUP      OfpBadActionCode = 9
+	OfpBadActionCode_OFPBAC_BAD_TYPE           OfpBadActionCode = 0 // Unknown or unsupported action type.
+	OfpBadActionCode_OFPBAC_BAD_LEN            OfpBadActionCode = 1 // Length problem in actions.
+	OfpBadActionCode_OFPBAC_BAD_EXPERIMENTER   OfpBadActionCode = 2 // Unknown experimenter id specified.
+	OfpBadActionCode_OFPBAC_BAD_EXP_TYPE       OfpBadActionCode = 3 // Unknown action for experimenter id.
+	OfpBadActionCode_OFPBAC_BAD_OUT_PORT       OfpBadActionCode = 4 // Problem validating output port.
+	OfpBadActionCode_OFPBAC_BAD_ARGUMENT       OfpBadActionCode = 5 // Bad action argument.
+	OfpBadActionCode_OFPBAC_EPERM              OfpBadActionCode = 6 // Permissions error.
+	OfpBadActionCode_OFPBAC_TOO_MANY           OfpBadActionCode = 7 // Can't handle this many actions.
+	OfpBadActionCode_OFPBAC_BAD_QUEUE          OfpBadActionCode = 8 // Problem validating output queue.
+	OfpBadActionCode_OFPBAC_BAD_OUT_GROUP      OfpBadActionCode = 9 // Invalid group id in forward action.
 	OfpBadActionCode_OFPBAC_MATCH_INCONSISTENT OfpBadActionCode = 10
 	OfpBadActionCode_OFPBAC_UNSUPPORTED_ORDER  OfpBadActionCode = 11
 	OfpBadActionCode_OFPBAC_BAD_TAG            OfpBadActionCode = 12
-	OfpBadActionCode_OFPBAC_BAD_SET_TYPE       OfpBadActionCode = 13
-	OfpBadActionCode_OFPBAC_BAD_SET_LEN        OfpBadActionCode = 14
-	OfpBadActionCode_OFPBAC_BAD_SET_ARGUMENT   OfpBadActionCode = 15
+	OfpBadActionCode_OFPBAC_BAD_SET_TYPE       OfpBadActionCode = 13 // Unsupported type in SET_FIELD action.
+	OfpBadActionCode_OFPBAC_BAD_SET_LEN        OfpBadActionCode = 14 // Length problem in SET_FIELD action.
+	OfpBadActionCode_OFPBAC_BAD_SET_ARGUMENT   OfpBadActionCode = 15 // Bad argument in SET_FIELD action.
 )
 
-var OfpBadActionCode_name = map[int32]string{
-	0:  "OFPBAC_BAD_TYPE",
-	1:  "OFPBAC_BAD_LEN",
-	2:  "OFPBAC_BAD_EXPERIMENTER",
-	3:  "OFPBAC_BAD_EXP_TYPE",
-	4:  "OFPBAC_BAD_OUT_PORT",
-	5:  "OFPBAC_BAD_ARGUMENT",
-	6:  "OFPBAC_EPERM",
-	7:  "OFPBAC_TOO_MANY",
-	8:  "OFPBAC_BAD_QUEUE",
-	9:  "OFPBAC_BAD_OUT_GROUP",
-	10: "OFPBAC_MATCH_INCONSISTENT",
-	11: "OFPBAC_UNSUPPORTED_ORDER",
-	12: "OFPBAC_BAD_TAG",
-	13: "OFPBAC_BAD_SET_TYPE",
-	14: "OFPBAC_BAD_SET_LEN",
-	15: "OFPBAC_BAD_SET_ARGUMENT",
-}
+// Enum value maps for OfpBadActionCode.
+var (
+	OfpBadActionCode_name = map[int32]string{
+		0:  "OFPBAC_BAD_TYPE",
+		1:  "OFPBAC_BAD_LEN",
+		2:  "OFPBAC_BAD_EXPERIMENTER",
+		3:  "OFPBAC_BAD_EXP_TYPE",
+		4:  "OFPBAC_BAD_OUT_PORT",
+		5:  "OFPBAC_BAD_ARGUMENT",
+		6:  "OFPBAC_EPERM",
+		7:  "OFPBAC_TOO_MANY",
+		8:  "OFPBAC_BAD_QUEUE",
+		9:  "OFPBAC_BAD_OUT_GROUP",
+		10: "OFPBAC_MATCH_INCONSISTENT",
+		11: "OFPBAC_UNSUPPORTED_ORDER",
+		12: "OFPBAC_BAD_TAG",
+		13: "OFPBAC_BAD_SET_TYPE",
+		14: "OFPBAC_BAD_SET_LEN",
+		15: "OFPBAC_BAD_SET_ARGUMENT",
+	}
+	OfpBadActionCode_value = map[string]int32{
+		"OFPBAC_BAD_TYPE":           0,
+		"OFPBAC_BAD_LEN":            1,
+		"OFPBAC_BAD_EXPERIMENTER":   2,
+		"OFPBAC_BAD_EXP_TYPE":       3,
+		"OFPBAC_BAD_OUT_PORT":       4,
+		"OFPBAC_BAD_ARGUMENT":       5,
+		"OFPBAC_EPERM":              6,
+		"OFPBAC_TOO_MANY":           7,
+		"OFPBAC_BAD_QUEUE":          8,
+		"OFPBAC_BAD_OUT_GROUP":      9,
+		"OFPBAC_MATCH_INCONSISTENT": 10,
+		"OFPBAC_UNSUPPORTED_ORDER":  11,
+		"OFPBAC_BAD_TAG":            12,
+		"OFPBAC_BAD_SET_TYPE":       13,
+		"OFPBAC_BAD_SET_LEN":        14,
+		"OFPBAC_BAD_SET_ARGUMENT":   15,
+	}
+)
 
-var OfpBadActionCode_value = map[string]int32{
-	"OFPBAC_BAD_TYPE":           0,
-	"OFPBAC_BAD_LEN":            1,
-	"OFPBAC_BAD_EXPERIMENTER":   2,
-	"OFPBAC_BAD_EXP_TYPE":       3,
-	"OFPBAC_BAD_OUT_PORT":       4,
-	"OFPBAC_BAD_ARGUMENT":       5,
-	"OFPBAC_EPERM":              6,
-	"OFPBAC_TOO_MANY":           7,
-	"OFPBAC_BAD_QUEUE":          8,
-	"OFPBAC_BAD_OUT_GROUP":      9,
-	"OFPBAC_MATCH_INCONSISTENT": 10,
-	"OFPBAC_UNSUPPORTED_ORDER":  11,
-	"OFPBAC_BAD_TAG":            12,
-	"OFPBAC_BAD_SET_TYPE":       13,
-	"OFPBAC_BAD_SET_LEN":        14,
-	"OFPBAC_BAD_SET_ARGUMENT":   15,
+func (x OfpBadActionCode) Enum() *OfpBadActionCode {
+	p := new(OfpBadActionCode)
+	*p = x
+	return p
 }
 
 func (x OfpBadActionCode) String() string {
-	return proto.EnumName(OfpBadActionCode_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OfpBadActionCode) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openflow_13_proto_enumTypes[34].Descriptor()
+}
+
+func (OfpBadActionCode) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openflow_13_proto_enumTypes[34]
+}
+
+func (x OfpBadActionCode) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OfpBadActionCode.Descriptor instead.
 func (OfpBadActionCode) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{34}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{34}
 }
 
 // ofp_error_msg 'code' values for OFPET_BAD_INSTRUCTION.  'data' contains at
@@ -1566,47 +2358,68 @@
 type OfpBadInstructionCode int32
 
 const (
-	OfpBadInstructionCode_OFPBIC_UNKNOWN_INST        OfpBadInstructionCode = 0
+	OfpBadInstructionCode_OFPBIC_UNKNOWN_INST        OfpBadInstructionCode = 0 // Unknown instruction.
 	OfpBadInstructionCode_OFPBIC_UNSUP_INST          OfpBadInstructionCode = 1
-	OfpBadInstructionCode_OFPBIC_BAD_TABLE_ID        OfpBadInstructionCode = 2
-	OfpBadInstructionCode_OFPBIC_UNSUP_METADATA      OfpBadInstructionCode = 3
+	OfpBadInstructionCode_OFPBIC_BAD_TABLE_ID        OfpBadInstructionCode = 2 // Invalid Table-ID specified.
+	OfpBadInstructionCode_OFPBIC_UNSUP_METADATA      OfpBadInstructionCode = 3 // Metadata value unsupported by datapath.
 	OfpBadInstructionCode_OFPBIC_UNSUP_METADATA_MASK OfpBadInstructionCode = 4
-	OfpBadInstructionCode_OFPBIC_BAD_EXPERIMENTER    OfpBadInstructionCode = 5
-	OfpBadInstructionCode_OFPBIC_BAD_EXP_TYPE        OfpBadInstructionCode = 6
-	OfpBadInstructionCode_OFPBIC_BAD_LEN             OfpBadInstructionCode = 7
-	OfpBadInstructionCode_OFPBIC_EPERM               OfpBadInstructionCode = 8
+	OfpBadInstructionCode_OFPBIC_BAD_EXPERIMENTER    OfpBadInstructionCode = 5 // Unknown experimenter id specified.
+	OfpBadInstructionCode_OFPBIC_BAD_EXP_TYPE        OfpBadInstructionCode = 6 // Unknown instruction for experimenter id.
+	OfpBadInstructionCode_OFPBIC_BAD_LEN             OfpBadInstructionCode = 7 // Length problem in instructions.
+	OfpBadInstructionCode_OFPBIC_EPERM               OfpBadInstructionCode = 8 // Permissions error.
 )
 
-var OfpBadInstructionCode_name = map[int32]string{
-	0: "OFPBIC_UNKNOWN_INST",
-	1: "OFPBIC_UNSUP_INST",
-	2: "OFPBIC_BAD_TABLE_ID",
-	3: "OFPBIC_UNSUP_METADATA",
-	4: "OFPBIC_UNSUP_METADATA_MASK",
-	5: "OFPBIC_BAD_EXPERIMENTER",
-	6: "OFPBIC_BAD_EXP_TYPE",
-	7: "OFPBIC_BAD_LEN",
-	8: "OFPBIC_EPERM",
-}
+// Enum value maps for OfpBadInstructionCode.
+var (
+	OfpBadInstructionCode_name = map[int32]string{
+		0: "OFPBIC_UNKNOWN_INST",
+		1: "OFPBIC_UNSUP_INST",
+		2: "OFPBIC_BAD_TABLE_ID",
+		3: "OFPBIC_UNSUP_METADATA",
+		4: "OFPBIC_UNSUP_METADATA_MASK",
+		5: "OFPBIC_BAD_EXPERIMENTER",
+		6: "OFPBIC_BAD_EXP_TYPE",
+		7: "OFPBIC_BAD_LEN",
+		8: "OFPBIC_EPERM",
+	}
+	OfpBadInstructionCode_value = map[string]int32{
+		"OFPBIC_UNKNOWN_INST":        0,
+		"OFPBIC_UNSUP_INST":          1,
+		"OFPBIC_BAD_TABLE_ID":        2,
+		"OFPBIC_UNSUP_METADATA":      3,
+		"OFPBIC_UNSUP_METADATA_MASK": 4,
+		"OFPBIC_BAD_EXPERIMENTER":    5,
+		"OFPBIC_BAD_EXP_TYPE":        6,
+		"OFPBIC_BAD_LEN":             7,
+		"OFPBIC_EPERM":               8,
+	}
+)
 
-var OfpBadInstructionCode_value = map[string]int32{
-	"OFPBIC_UNKNOWN_INST":        0,
-	"OFPBIC_UNSUP_INST":          1,
-	"OFPBIC_BAD_TABLE_ID":        2,
-	"OFPBIC_UNSUP_METADATA":      3,
-	"OFPBIC_UNSUP_METADATA_MASK": 4,
-	"OFPBIC_BAD_EXPERIMENTER":    5,
-	"OFPBIC_BAD_EXP_TYPE":        6,
-	"OFPBIC_BAD_LEN":             7,
-	"OFPBIC_EPERM":               8,
+func (x OfpBadInstructionCode) Enum() *OfpBadInstructionCode {
+	p := new(OfpBadInstructionCode)
+	*p = x
+	return p
 }
 
 func (x OfpBadInstructionCode) String() string {
-	return proto.EnumName(OfpBadInstructionCode_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OfpBadInstructionCode) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openflow_13_proto_enumTypes[35].Descriptor()
+}
+
+func (OfpBadInstructionCode) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openflow_13_proto_enumTypes[35]
+}
+
+func (x OfpBadInstructionCode) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OfpBadInstructionCode.Descriptor instead.
 func (OfpBadInstructionCode) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{35}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{35}
 }
 
 // ofp_error_msg 'code' values for OFPET_BAD_MATCH.  'data' contains at least
@@ -1615,55 +2428,76 @@
 
 const (
 	OfpBadMatchCode_OFPBMC_BAD_TYPE         OfpBadMatchCode = 0
-	OfpBadMatchCode_OFPBMC_BAD_LEN          OfpBadMatchCode = 1
-	OfpBadMatchCode_OFPBMC_BAD_TAG          OfpBadMatchCode = 2
+	OfpBadMatchCode_OFPBMC_BAD_LEN          OfpBadMatchCode = 1 // Length problem in match.
+	OfpBadMatchCode_OFPBMC_BAD_TAG          OfpBadMatchCode = 2 // Match uses an unsupported tag/encap.
 	OfpBadMatchCode_OFPBMC_BAD_DL_ADDR_MASK OfpBadMatchCode = 3
 	OfpBadMatchCode_OFPBMC_BAD_NW_ADDR_MASK OfpBadMatchCode = 4
 	OfpBadMatchCode_OFPBMC_BAD_WILDCARDS    OfpBadMatchCode = 5
-	OfpBadMatchCode_OFPBMC_BAD_FIELD        OfpBadMatchCode = 6
-	OfpBadMatchCode_OFPBMC_BAD_VALUE        OfpBadMatchCode = 7
+	OfpBadMatchCode_OFPBMC_BAD_FIELD        OfpBadMatchCode = 6 // Unsupported field type in the match.
+	OfpBadMatchCode_OFPBMC_BAD_VALUE        OfpBadMatchCode = 7 // Unsupported value in a match field.
 	OfpBadMatchCode_OFPBMC_BAD_MASK         OfpBadMatchCode = 8
-	OfpBadMatchCode_OFPBMC_BAD_PREREQ       OfpBadMatchCode = 9
-	OfpBadMatchCode_OFPBMC_DUP_FIELD        OfpBadMatchCode = 10
-	OfpBadMatchCode_OFPBMC_EPERM            OfpBadMatchCode = 11
+	OfpBadMatchCode_OFPBMC_BAD_PREREQ       OfpBadMatchCode = 9  // A prerequisite was not met.
+	OfpBadMatchCode_OFPBMC_DUP_FIELD        OfpBadMatchCode = 10 // A field type was duplicated.
+	OfpBadMatchCode_OFPBMC_EPERM            OfpBadMatchCode = 11 // Permissions error.
 )
 
-var OfpBadMatchCode_name = map[int32]string{
-	0:  "OFPBMC_BAD_TYPE",
-	1:  "OFPBMC_BAD_LEN",
-	2:  "OFPBMC_BAD_TAG",
-	3:  "OFPBMC_BAD_DL_ADDR_MASK",
-	4:  "OFPBMC_BAD_NW_ADDR_MASK",
-	5:  "OFPBMC_BAD_WILDCARDS",
-	6:  "OFPBMC_BAD_FIELD",
-	7:  "OFPBMC_BAD_VALUE",
-	8:  "OFPBMC_BAD_MASK",
-	9:  "OFPBMC_BAD_PREREQ",
-	10: "OFPBMC_DUP_FIELD",
-	11: "OFPBMC_EPERM",
-}
+// Enum value maps for OfpBadMatchCode.
+var (
+	OfpBadMatchCode_name = map[int32]string{
+		0:  "OFPBMC_BAD_TYPE",
+		1:  "OFPBMC_BAD_LEN",
+		2:  "OFPBMC_BAD_TAG",
+		3:  "OFPBMC_BAD_DL_ADDR_MASK",
+		4:  "OFPBMC_BAD_NW_ADDR_MASK",
+		5:  "OFPBMC_BAD_WILDCARDS",
+		6:  "OFPBMC_BAD_FIELD",
+		7:  "OFPBMC_BAD_VALUE",
+		8:  "OFPBMC_BAD_MASK",
+		9:  "OFPBMC_BAD_PREREQ",
+		10: "OFPBMC_DUP_FIELD",
+		11: "OFPBMC_EPERM",
+	}
+	OfpBadMatchCode_value = map[string]int32{
+		"OFPBMC_BAD_TYPE":         0,
+		"OFPBMC_BAD_LEN":          1,
+		"OFPBMC_BAD_TAG":          2,
+		"OFPBMC_BAD_DL_ADDR_MASK": 3,
+		"OFPBMC_BAD_NW_ADDR_MASK": 4,
+		"OFPBMC_BAD_WILDCARDS":    5,
+		"OFPBMC_BAD_FIELD":        6,
+		"OFPBMC_BAD_VALUE":        7,
+		"OFPBMC_BAD_MASK":         8,
+		"OFPBMC_BAD_PREREQ":       9,
+		"OFPBMC_DUP_FIELD":        10,
+		"OFPBMC_EPERM":            11,
+	}
+)
 
-var OfpBadMatchCode_value = map[string]int32{
-	"OFPBMC_BAD_TYPE":         0,
-	"OFPBMC_BAD_LEN":          1,
-	"OFPBMC_BAD_TAG":          2,
-	"OFPBMC_BAD_DL_ADDR_MASK": 3,
-	"OFPBMC_BAD_NW_ADDR_MASK": 4,
-	"OFPBMC_BAD_WILDCARDS":    5,
-	"OFPBMC_BAD_FIELD":        6,
-	"OFPBMC_BAD_VALUE":        7,
-	"OFPBMC_BAD_MASK":         8,
-	"OFPBMC_BAD_PREREQ":       9,
-	"OFPBMC_DUP_FIELD":        10,
-	"OFPBMC_EPERM":            11,
+func (x OfpBadMatchCode) Enum() *OfpBadMatchCode {
+	p := new(OfpBadMatchCode)
+	*p = x
+	return p
 }
 
 func (x OfpBadMatchCode) String() string {
-	return proto.EnumName(OfpBadMatchCode_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OfpBadMatchCode) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openflow_13_proto_enumTypes[36].Descriptor()
+}
+
+func (OfpBadMatchCode) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openflow_13_proto_enumTypes[36]
+}
+
+func (x OfpBadMatchCode) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OfpBadMatchCode.Descriptor instead.
 func (OfpBadMatchCode) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{36}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{36}
 }
 
 // ofp_error_msg 'code' values for OFPET_FLOW_MOD_FAILED.  'data' contains
@@ -1671,44 +2505,65 @@
 type OfpFlowModFailedCode int32
 
 const (
-	OfpFlowModFailedCode_OFPFMFC_UNKNOWN      OfpFlowModFailedCode = 0
-	OfpFlowModFailedCode_OFPFMFC_TABLE_FULL   OfpFlowModFailedCode = 1
-	OfpFlowModFailedCode_OFPFMFC_BAD_TABLE_ID OfpFlowModFailedCode = 2
+	OfpFlowModFailedCode_OFPFMFC_UNKNOWN      OfpFlowModFailedCode = 0 // Unspecified error.
+	OfpFlowModFailedCode_OFPFMFC_TABLE_FULL   OfpFlowModFailedCode = 1 // Flow not added because table was full.
+	OfpFlowModFailedCode_OFPFMFC_BAD_TABLE_ID OfpFlowModFailedCode = 2 // Table does not exist
 	OfpFlowModFailedCode_OFPFMFC_OVERLAP      OfpFlowModFailedCode = 3
-	OfpFlowModFailedCode_OFPFMFC_EPERM        OfpFlowModFailedCode = 4
+	OfpFlowModFailedCode_OFPFMFC_EPERM        OfpFlowModFailedCode = 4 // Permissions error.
 	OfpFlowModFailedCode_OFPFMFC_BAD_TIMEOUT  OfpFlowModFailedCode = 5
-	OfpFlowModFailedCode_OFPFMFC_BAD_COMMAND  OfpFlowModFailedCode = 6
-	OfpFlowModFailedCode_OFPFMFC_BAD_FLAGS    OfpFlowModFailedCode = 7
+	OfpFlowModFailedCode_OFPFMFC_BAD_COMMAND  OfpFlowModFailedCode = 6 // Unsupported or unknown command.
+	OfpFlowModFailedCode_OFPFMFC_BAD_FLAGS    OfpFlowModFailedCode = 7 // Unsupported or unknown flags.
 )
 
-var OfpFlowModFailedCode_name = map[int32]string{
-	0: "OFPFMFC_UNKNOWN",
-	1: "OFPFMFC_TABLE_FULL",
-	2: "OFPFMFC_BAD_TABLE_ID",
-	3: "OFPFMFC_OVERLAP",
-	4: "OFPFMFC_EPERM",
-	5: "OFPFMFC_BAD_TIMEOUT",
-	6: "OFPFMFC_BAD_COMMAND",
-	7: "OFPFMFC_BAD_FLAGS",
-}
+// Enum value maps for OfpFlowModFailedCode.
+var (
+	OfpFlowModFailedCode_name = map[int32]string{
+		0: "OFPFMFC_UNKNOWN",
+		1: "OFPFMFC_TABLE_FULL",
+		2: "OFPFMFC_BAD_TABLE_ID",
+		3: "OFPFMFC_OVERLAP",
+		4: "OFPFMFC_EPERM",
+		5: "OFPFMFC_BAD_TIMEOUT",
+		6: "OFPFMFC_BAD_COMMAND",
+		7: "OFPFMFC_BAD_FLAGS",
+	}
+	OfpFlowModFailedCode_value = map[string]int32{
+		"OFPFMFC_UNKNOWN":      0,
+		"OFPFMFC_TABLE_FULL":   1,
+		"OFPFMFC_BAD_TABLE_ID": 2,
+		"OFPFMFC_OVERLAP":      3,
+		"OFPFMFC_EPERM":        4,
+		"OFPFMFC_BAD_TIMEOUT":  5,
+		"OFPFMFC_BAD_COMMAND":  6,
+		"OFPFMFC_BAD_FLAGS":    7,
+	}
+)
 
-var OfpFlowModFailedCode_value = map[string]int32{
-	"OFPFMFC_UNKNOWN":      0,
-	"OFPFMFC_TABLE_FULL":   1,
-	"OFPFMFC_BAD_TABLE_ID": 2,
-	"OFPFMFC_OVERLAP":      3,
-	"OFPFMFC_EPERM":        4,
-	"OFPFMFC_BAD_TIMEOUT":  5,
-	"OFPFMFC_BAD_COMMAND":  6,
-	"OFPFMFC_BAD_FLAGS":    7,
+func (x OfpFlowModFailedCode) Enum() *OfpFlowModFailedCode {
+	p := new(OfpFlowModFailedCode)
+	*p = x
+	return p
 }
 
 func (x OfpFlowModFailedCode) String() string {
-	return proto.EnumName(OfpFlowModFailedCode_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OfpFlowModFailedCode) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openflow_13_proto_enumTypes[37].Descriptor()
+}
+
+func (OfpFlowModFailedCode) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openflow_13_proto_enumTypes[37]
+}
+
+func (x OfpFlowModFailedCode) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OfpFlowModFailedCode.Descriptor instead.
 func (OfpFlowModFailedCode) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{37}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{37}
 }
 
 // ofp_error_msg 'code' values for OFPET_GROUP_MOD_FAILED.  'data' contains
@@ -1719,62 +2574,83 @@
 	OfpGroupModFailedCode_OFPGMFC_GROUP_EXISTS         OfpGroupModFailedCode = 0
 	OfpGroupModFailedCode_OFPGMFC_INVALID_GROUP        OfpGroupModFailedCode = 1
 	OfpGroupModFailedCode_OFPGMFC_WEIGHT_UNSUPPORTED   OfpGroupModFailedCode = 2
-	OfpGroupModFailedCode_OFPGMFC_OUT_OF_GROUPS        OfpGroupModFailedCode = 3
+	OfpGroupModFailedCode_OFPGMFC_OUT_OF_GROUPS        OfpGroupModFailedCode = 3 // The group table is full.
 	OfpGroupModFailedCode_OFPGMFC_OUT_OF_BUCKETS       OfpGroupModFailedCode = 4
 	OfpGroupModFailedCode_OFPGMFC_CHAINING_UNSUPPORTED OfpGroupModFailedCode = 5
 	OfpGroupModFailedCode_OFPGMFC_WATCH_UNSUPPORTED    OfpGroupModFailedCode = 6
-	OfpGroupModFailedCode_OFPGMFC_LOOP                 OfpGroupModFailedCode = 7
+	OfpGroupModFailedCode_OFPGMFC_LOOP                 OfpGroupModFailedCode = 7 // Group entry would cause a loop.
 	OfpGroupModFailedCode_OFPGMFC_UNKNOWN_GROUP        OfpGroupModFailedCode = 8
 	OfpGroupModFailedCode_OFPGMFC_CHAINED_GROUP        OfpGroupModFailedCode = 9
-	OfpGroupModFailedCode_OFPGMFC_BAD_TYPE             OfpGroupModFailedCode = 10
-	OfpGroupModFailedCode_OFPGMFC_BAD_COMMAND          OfpGroupModFailedCode = 11
-	OfpGroupModFailedCode_OFPGMFC_BAD_BUCKET           OfpGroupModFailedCode = 12
-	OfpGroupModFailedCode_OFPGMFC_BAD_WATCH            OfpGroupModFailedCode = 13
-	OfpGroupModFailedCode_OFPGMFC_EPERM                OfpGroupModFailedCode = 14
+	OfpGroupModFailedCode_OFPGMFC_BAD_TYPE             OfpGroupModFailedCode = 10 // Unsupported or unknown group type.
+	OfpGroupModFailedCode_OFPGMFC_BAD_COMMAND          OfpGroupModFailedCode = 11 // Unsupported or unknown command.
+	OfpGroupModFailedCode_OFPGMFC_BAD_BUCKET           OfpGroupModFailedCode = 12 // Error in bucket.
+	OfpGroupModFailedCode_OFPGMFC_BAD_WATCH            OfpGroupModFailedCode = 13 // Error in watch port/group.
+	OfpGroupModFailedCode_OFPGMFC_EPERM                OfpGroupModFailedCode = 14 // Permissions error.
 )
 
-var OfpGroupModFailedCode_name = map[int32]string{
-	0:  "OFPGMFC_GROUP_EXISTS",
-	1:  "OFPGMFC_INVALID_GROUP",
-	2:  "OFPGMFC_WEIGHT_UNSUPPORTED",
-	3:  "OFPGMFC_OUT_OF_GROUPS",
-	4:  "OFPGMFC_OUT_OF_BUCKETS",
-	5:  "OFPGMFC_CHAINING_UNSUPPORTED",
-	6:  "OFPGMFC_WATCH_UNSUPPORTED",
-	7:  "OFPGMFC_LOOP",
-	8:  "OFPGMFC_UNKNOWN_GROUP",
-	9:  "OFPGMFC_CHAINED_GROUP",
-	10: "OFPGMFC_BAD_TYPE",
-	11: "OFPGMFC_BAD_COMMAND",
-	12: "OFPGMFC_BAD_BUCKET",
-	13: "OFPGMFC_BAD_WATCH",
-	14: "OFPGMFC_EPERM",
-}
+// Enum value maps for OfpGroupModFailedCode.
+var (
+	OfpGroupModFailedCode_name = map[int32]string{
+		0:  "OFPGMFC_GROUP_EXISTS",
+		1:  "OFPGMFC_INVALID_GROUP",
+		2:  "OFPGMFC_WEIGHT_UNSUPPORTED",
+		3:  "OFPGMFC_OUT_OF_GROUPS",
+		4:  "OFPGMFC_OUT_OF_BUCKETS",
+		5:  "OFPGMFC_CHAINING_UNSUPPORTED",
+		6:  "OFPGMFC_WATCH_UNSUPPORTED",
+		7:  "OFPGMFC_LOOP",
+		8:  "OFPGMFC_UNKNOWN_GROUP",
+		9:  "OFPGMFC_CHAINED_GROUP",
+		10: "OFPGMFC_BAD_TYPE",
+		11: "OFPGMFC_BAD_COMMAND",
+		12: "OFPGMFC_BAD_BUCKET",
+		13: "OFPGMFC_BAD_WATCH",
+		14: "OFPGMFC_EPERM",
+	}
+	OfpGroupModFailedCode_value = map[string]int32{
+		"OFPGMFC_GROUP_EXISTS":         0,
+		"OFPGMFC_INVALID_GROUP":        1,
+		"OFPGMFC_WEIGHT_UNSUPPORTED":   2,
+		"OFPGMFC_OUT_OF_GROUPS":        3,
+		"OFPGMFC_OUT_OF_BUCKETS":       4,
+		"OFPGMFC_CHAINING_UNSUPPORTED": 5,
+		"OFPGMFC_WATCH_UNSUPPORTED":    6,
+		"OFPGMFC_LOOP":                 7,
+		"OFPGMFC_UNKNOWN_GROUP":        8,
+		"OFPGMFC_CHAINED_GROUP":        9,
+		"OFPGMFC_BAD_TYPE":             10,
+		"OFPGMFC_BAD_COMMAND":          11,
+		"OFPGMFC_BAD_BUCKET":           12,
+		"OFPGMFC_BAD_WATCH":            13,
+		"OFPGMFC_EPERM":                14,
+	}
+)
 
-var OfpGroupModFailedCode_value = map[string]int32{
-	"OFPGMFC_GROUP_EXISTS":         0,
-	"OFPGMFC_INVALID_GROUP":        1,
-	"OFPGMFC_WEIGHT_UNSUPPORTED":   2,
-	"OFPGMFC_OUT_OF_GROUPS":        3,
-	"OFPGMFC_OUT_OF_BUCKETS":       4,
-	"OFPGMFC_CHAINING_UNSUPPORTED": 5,
-	"OFPGMFC_WATCH_UNSUPPORTED":    6,
-	"OFPGMFC_LOOP":                 7,
-	"OFPGMFC_UNKNOWN_GROUP":        8,
-	"OFPGMFC_CHAINED_GROUP":        9,
-	"OFPGMFC_BAD_TYPE":             10,
-	"OFPGMFC_BAD_COMMAND":          11,
-	"OFPGMFC_BAD_BUCKET":           12,
-	"OFPGMFC_BAD_WATCH":            13,
-	"OFPGMFC_EPERM":                14,
+func (x OfpGroupModFailedCode) Enum() *OfpGroupModFailedCode {
+	p := new(OfpGroupModFailedCode)
+	*p = x
+	return p
 }
 
 func (x OfpGroupModFailedCode) String() string {
-	return proto.EnumName(OfpGroupModFailedCode_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OfpGroupModFailedCode) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openflow_13_proto_enumTypes[38].Descriptor()
+}
+
+func (OfpGroupModFailedCode) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openflow_13_proto_enumTypes[38]
+}
+
+func (x OfpGroupModFailedCode) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OfpGroupModFailedCode.Descriptor instead.
 func (OfpGroupModFailedCode) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{38}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{38}
 }
 
 // ofp_error_msg 'code' values for OFPET_PORT_MOD_FAILED.  'data' contains
@@ -1782,35 +2658,56 @@
 type OfpPortModFailedCode int32
 
 const (
-	OfpPortModFailedCode_OFPPMFC_BAD_PORT      OfpPortModFailedCode = 0
+	OfpPortModFailedCode_OFPPMFC_BAD_PORT      OfpPortModFailedCode = 0 // Specified port number does not exist.
 	OfpPortModFailedCode_OFPPMFC_BAD_HW_ADDR   OfpPortModFailedCode = 1
-	OfpPortModFailedCode_OFPPMFC_BAD_CONFIG    OfpPortModFailedCode = 2
-	OfpPortModFailedCode_OFPPMFC_BAD_ADVERTISE OfpPortModFailedCode = 3
-	OfpPortModFailedCode_OFPPMFC_EPERM         OfpPortModFailedCode = 4
+	OfpPortModFailedCode_OFPPMFC_BAD_CONFIG    OfpPortModFailedCode = 2 // Specified config is invalid.
+	OfpPortModFailedCode_OFPPMFC_BAD_ADVERTISE OfpPortModFailedCode = 3 // Specified advertise is invalid.
+	OfpPortModFailedCode_OFPPMFC_EPERM         OfpPortModFailedCode = 4 // Permissions error.
 )
 
-var OfpPortModFailedCode_name = map[int32]string{
-	0: "OFPPMFC_BAD_PORT",
-	1: "OFPPMFC_BAD_HW_ADDR",
-	2: "OFPPMFC_BAD_CONFIG",
-	3: "OFPPMFC_BAD_ADVERTISE",
-	4: "OFPPMFC_EPERM",
-}
+// Enum value maps for OfpPortModFailedCode.
+var (
+	OfpPortModFailedCode_name = map[int32]string{
+		0: "OFPPMFC_BAD_PORT",
+		1: "OFPPMFC_BAD_HW_ADDR",
+		2: "OFPPMFC_BAD_CONFIG",
+		3: "OFPPMFC_BAD_ADVERTISE",
+		4: "OFPPMFC_EPERM",
+	}
+	OfpPortModFailedCode_value = map[string]int32{
+		"OFPPMFC_BAD_PORT":      0,
+		"OFPPMFC_BAD_HW_ADDR":   1,
+		"OFPPMFC_BAD_CONFIG":    2,
+		"OFPPMFC_BAD_ADVERTISE": 3,
+		"OFPPMFC_EPERM":         4,
+	}
+)
 
-var OfpPortModFailedCode_value = map[string]int32{
-	"OFPPMFC_BAD_PORT":      0,
-	"OFPPMFC_BAD_HW_ADDR":   1,
-	"OFPPMFC_BAD_CONFIG":    2,
-	"OFPPMFC_BAD_ADVERTISE": 3,
-	"OFPPMFC_EPERM":         4,
+func (x OfpPortModFailedCode) Enum() *OfpPortModFailedCode {
+	p := new(OfpPortModFailedCode)
+	*p = x
+	return p
 }
 
 func (x OfpPortModFailedCode) String() string {
-	return proto.EnumName(OfpPortModFailedCode_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OfpPortModFailedCode) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openflow_13_proto_enumTypes[39].Descriptor()
+}
+
+func (OfpPortModFailedCode) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openflow_13_proto_enumTypes[39]
+}
+
+func (x OfpPortModFailedCode) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OfpPortModFailedCode.Descriptor instead.
 func (OfpPortModFailedCode) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{39}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{39}
 }
 
 // ofp_error_msg 'code' values for OFPET_TABLE_MOD_FAILED.  'data' contains
@@ -1818,29 +2715,50 @@
 type OfpTableModFailedCode int32
 
 const (
-	OfpTableModFailedCode_OFPTMFC_BAD_TABLE  OfpTableModFailedCode = 0
-	OfpTableModFailedCode_OFPTMFC_BAD_CONFIG OfpTableModFailedCode = 1
-	OfpTableModFailedCode_OFPTMFC_EPERM      OfpTableModFailedCode = 2
+	OfpTableModFailedCode_OFPTMFC_BAD_TABLE  OfpTableModFailedCode = 0 // Specified table does not exist.
+	OfpTableModFailedCode_OFPTMFC_BAD_CONFIG OfpTableModFailedCode = 1 // Specified config is invalid.
+	OfpTableModFailedCode_OFPTMFC_EPERM      OfpTableModFailedCode = 2 // Permissions error.
 )
 
-var OfpTableModFailedCode_name = map[int32]string{
-	0: "OFPTMFC_BAD_TABLE",
-	1: "OFPTMFC_BAD_CONFIG",
-	2: "OFPTMFC_EPERM",
-}
+// Enum value maps for OfpTableModFailedCode.
+var (
+	OfpTableModFailedCode_name = map[int32]string{
+		0: "OFPTMFC_BAD_TABLE",
+		1: "OFPTMFC_BAD_CONFIG",
+		2: "OFPTMFC_EPERM",
+	}
+	OfpTableModFailedCode_value = map[string]int32{
+		"OFPTMFC_BAD_TABLE":  0,
+		"OFPTMFC_BAD_CONFIG": 1,
+		"OFPTMFC_EPERM":      2,
+	}
+)
 
-var OfpTableModFailedCode_value = map[string]int32{
-	"OFPTMFC_BAD_TABLE":  0,
-	"OFPTMFC_BAD_CONFIG": 1,
-	"OFPTMFC_EPERM":      2,
+func (x OfpTableModFailedCode) Enum() *OfpTableModFailedCode {
+	p := new(OfpTableModFailedCode)
+	*p = x
+	return p
 }
 
 func (x OfpTableModFailedCode) String() string {
-	return proto.EnumName(OfpTableModFailedCode_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OfpTableModFailedCode) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openflow_13_proto_enumTypes[40].Descriptor()
+}
+
+func (OfpTableModFailedCode) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openflow_13_proto_enumTypes[40]
+}
+
+func (x OfpTableModFailedCode) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OfpTableModFailedCode.Descriptor instead.
 func (OfpTableModFailedCode) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{40}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{40}
 }
 
 // ofp_error msg 'code' values for OFPET_QUEUE_OP_FAILED. 'data' contains
@@ -1848,29 +2766,50 @@
 type OfpQueueOpFailedCode int32
 
 const (
-	OfpQueueOpFailedCode_OFPQOFC_BAD_PORT  OfpQueueOpFailedCode = 0
-	OfpQueueOpFailedCode_OFPQOFC_BAD_QUEUE OfpQueueOpFailedCode = 1
-	OfpQueueOpFailedCode_OFPQOFC_EPERM     OfpQueueOpFailedCode = 2
+	OfpQueueOpFailedCode_OFPQOFC_BAD_PORT  OfpQueueOpFailedCode = 0 // Invalid port (or port does not exist).
+	OfpQueueOpFailedCode_OFPQOFC_BAD_QUEUE OfpQueueOpFailedCode = 1 // Queue does not exist.
+	OfpQueueOpFailedCode_OFPQOFC_EPERM     OfpQueueOpFailedCode = 2 // Permissions error.
 )
 
-var OfpQueueOpFailedCode_name = map[int32]string{
-	0: "OFPQOFC_BAD_PORT",
-	1: "OFPQOFC_BAD_QUEUE",
-	2: "OFPQOFC_EPERM",
-}
+// Enum value maps for OfpQueueOpFailedCode.
+var (
+	OfpQueueOpFailedCode_name = map[int32]string{
+		0: "OFPQOFC_BAD_PORT",
+		1: "OFPQOFC_BAD_QUEUE",
+		2: "OFPQOFC_EPERM",
+	}
+	OfpQueueOpFailedCode_value = map[string]int32{
+		"OFPQOFC_BAD_PORT":  0,
+		"OFPQOFC_BAD_QUEUE": 1,
+		"OFPQOFC_EPERM":     2,
+	}
+)
 
-var OfpQueueOpFailedCode_value = map[string]int32{
-	"OFPQOFC_BAD_PORT":  0,
-	"OFPQOFC_BAD_QUEUE": 1,
-	"OFPQOFC_EPERM":     2,
+func (x OfpQueueOpFailedCode) Enum() *OfpQueueOpFailedCode {
+	p := new(OfpQueueOpFailedCode)
+	*p = x
+	return p
 }
 
 func (x OfpQueueOpFailedCode) String() string {
-	return proto.EnumName(OfpQueueOpFailedCode_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OfpQueueOpFailedCode) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openflow_13_proto_enumTypes[41].Descriptor()
+}
+
+func (OfpQueueOpFailedCode) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openflow_13_proto_enumTypes[41]
+}
+
+func (x OfpQueueOpFailedCode) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OfpQueueOpFailedCode.Descriptor instead.
 func (OfpQueueOpFailedCode) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{41}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{41}
 }
 
 // ofp_error_msg 'code' values for OFPET_SWITCH_CONFIG_FAILED. 'data' contains
@@ -1878,29 +2817,50 @@
 type OfpSwitchConfigFailedCode int32
 
 const (
-	OfpSwitchConfigFailedCode_OFPSCFC_BAD_FLAGS OfpSwitchConfigFailedCode = 0
-	OfpSwitchConfigFailedCode_OFPSCFC_BAD_LEN   OfpSwitchConfigFailedCode = 1
-	OfpSwitchConfigFailedCode_OFPSCFC_EPERM     OfpSwitchConfigFailedCode = 2
+	OfpSwitchConfigFailedCode_OFPSCFC_BAD_FLAGS OfpSwitchConfigFailedCode = 0 // Specified flags is invalid.
+	OfpSwitchConfigFailedCode_OFPSCFC_BAD_LEN   OfpSwitchConfigFailedCode = 1 // Specified len is invalid.
+	OfpSwitchConfigFailedCode_OFPSCFC_EPERM     OfpSwitchConfigFailedCode = 2 // Permissions error.
 )
 
-var OfpSwitchConfigFailedCode_name = map[int32]string{
-	0: "OFPSCFC_BAD_FLAGS",
-	1: "OFPSCFC_BAD_LEN",
-	2: "OFPSCFC_EPERM",
-}
+// Enum value maps for OfpSwitchConfigFailedCode.
+var (
+	OfpSwitchConfigFailedCode_name = map[int32]string{
+		0: "OFPSCFC_BAD_FLAGS",
+		1: "OFPSCFC_BAD_LEN",
+		2: "OFPSCFC_EPERM",
+	}
+	OfpSwitchConfigFailedCode_value = map[string]int32{
+		"OFPSCFC_BAD_FLAGS": 0,
+		"OFPSCFC_BAD_LEN":   1,
+		"OFPSCFC_EPERM":     2,
+	}
+)
 
-var OfpSwitchConfigFailedCode_value = map[string]int32{
-	"OFPSCFC_BAD_FLAGS": 0,
-	"OFPSCFC_BAD_LEN":   1,
-	"OFPSCFC_EPERM":     2,
+func (x OfpSwitchConfigFailedCode) Enum() *OfpSwitchConfigFailedCode {
+	p := new(OfpSwitchConfigFailedCode)
+	*p = x
+	return p
 }
 
 func (x OfpSwitchConfigFailedCode) String() string {
-	return proto.EnumName(OfpSwitchConfigFailedCode_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OfpSwitchConfigFailedCode) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openflow_13_proto_enumTypes[42].Descriptor()
+}
+
+func (OfpSwitchConfigFailedCode) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openflow_13_proto_enumTypes[42]
+}
+
+func (x OfpSwitchConfigFailedCode) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OfpSwitchConfigFailedCode.Descriptor instead.
 func (OfpSwitchConfigFailedCode) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{42}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{42}
 }
 
 // ofp_error_msg 'code' values for OFPET_ROLE_REQUEST_FAILED. 'data' contains
@@ -1908,29 +2868,50 @@
 type OfpRoleRequestFailedCode int32
 
 const (
-	OfpRoleRequestFailedCode_OFPRRFC_STALE    OfpRoleRequestFailedCode = 0
-	OfpRoleRequestFailedCode_OFPRRFC_UNSUP    OfpRoleRequestFailedCode = 1
-	OfpRoleRequestFailedCode_OFPRRFC_BAD_ROLE OfpRoleRequestFailedCode = 2
+	OfpRoleRequestFailedCode_OFPRRFC_STALE    OfpRoleRequestFailedCode = 0 // Stale Message: old generation_id.
+	OfpRoleRequestFailedCode_OFPRRFC_UNSUP    OfpRoleRequestFailedCode = 1 // Controller role change unsupported.
+	OfpRoleRequestFailedCode_OFPRRFC_BAD_ROLE OfpRoleRequestFailedCode = 2 // Invalid role.
 )
 
-var OfpRoleRequestFailedCode_name = map[int32]string{
-	0: "OFPRRFC_STALE",
-	1: "OFPRRFC_UNSUP",
-	2: "OFPRRFC_BAD_ROLE",
-}
+// Enum value maps for OfpRoleRequestFailedCode.
+var (
+	OfpRoleRequestFailedCode_name = map[int32]string{
+		0: "OFPRRFC_STALE",
+		1: "OFPRRFC_UNSUP",
+		2: "OFPRRFC_BAD_ROLE",
+	}
+	OfpRoleRequestFailedCode_value = map[string]int32{
+		"OFPRRFC_STALE":    0,
+		"OFPRRFC_UNSUP":    1,
+		"OFPRRFC_BAD_ROLE": 2,
+	}
+)
 
-var OfpRoleRequestFailedCode_value = map[string]int32{
-	"OFPRRFC_STALE":    0,
-	"OFPRRFC_UNSUP":    1,
-	"OFPRRFC_BAD_ROLE": 2,
+func (x OfpRoleRequestFailedCode) Enum() *OfpRoleRequestFailedCode {
+	p := new(OfpRoleRequestFailedCode)
+	*p = x
+	return p
 }
 
 func (x OfpRoleRequestFailedCode) String() string {
-	return proto.EnumName(OfpRoleRequestFailedCode_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OfpRoleRequestFailedCode) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openflow_13_proto_enumTypes[43].Descriptor()
+}
+
+func (OfpRoleRequestFailedCode) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openflow_13_proto_enumTypes[43]
+}
+
+func (x OfpRoleRequestFailedCode) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OfpRoleRequestFailedCode.Descriptor instead.
 func (OfpRoleRequestFailedCode) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{43}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{43}
 }
 
 // ofp_error_msg 'code' values for OFPET_METER_MOD_FAILED.  'data' contains
@@ -1938,56 +2919,77 @@
 type OfpMeterModFailedCode int32
 
 const (
-	OfpMeterModFailedCode_OFPMMFC_UNKNOWN         OfpMeterModFailedCode = 0
+	OfpMeterModFailedCode_OFPMMFC_UNKNOWN         OfpMeterModFailedCode = 0 // Unspecified error.
 	OfpMeterModFailedCode_OFPMMFC_METER_EXISTS    OfpMeterModFailedCode = 1
 	OfpMeterModFailedCode_OFPMMFC_INVALID_METER   OfpMeterModFailedCode = 2
 	OfpMeterModFailedCode_OFPMMFC_UNKNOWN_METER   OfpMeterModFailedCode = 3
-	OfpMeterModFailedCode_OFPMMFC_BAD_COMMAND     OfpMeterModFailedCode = 4
-	OfpMeterModFailedCode_OFPMMFC_BAD_FLAGS       OfpMeterModFailedCode = 5
-	OfpMeterModFailedCode_OFPMMFC_BAD_RATE        OfpMeterModFailedCode = 6
-	OfpMeterModFailedCode_OFPMMFC_BAD_BURST       OfpMeterModFailedCode = 7
-	OfpMeterModFailedCode_OFPMMFC_BAD_BAND        OfpMeterModFailedCode = 8
-	OfpMeterModFailedCode_OFPMMFC_BAD_BAND_DETAIL OfpMeterModFailedCode = 9
-	OfpMeterModFailedCode_OFPMMFC_OUT_OF_METERS   OfpMeterModFailedCode = 10
+	OfpMeterModFailedCode_OFPMMFC_BAD_COMMAND     OfpMeterModFailedCode = 4  // Unsupported or unknown command.
+	OfpMeterModFailedCode_OFPMMFC_BAD_FLAGS       OfpMeterModFailedCode = 5  // Flag configuration unsupported.
+	OfpMeterModFailedCode_OFPMMFC_BAD_RATE        OfpMeterModFailedCode = 6  // Rate unsupported.
+	OfpMeterModFailedCode_OFPMMFC_BAD_BURST       OfpMeterModFailedCode = 7  // Burst size unsupported.
+	OfpMeterModFailedCode_OFPMMFC_BAD_BAND        OfpMeterModFailedCode = 8  // Band unsupported.
+	OfpMeterModFailedCode_OFPMMFC_BAD_BAND_DETAIL OfpMeterModFailedCode = 9  // Band value unsupported.
+	OfpMeterModFailedCode_OFPMMFC_OUT_OF_METERS   OfpMeterModFailedCode = 10 // No more meters available.
 	OfpMeterModFailedCode_OFPMMFC_OUT_OF_BANDS    OfpMeterModFailedCode = 11
 )
 
-var OfpMeterModFailedCode_name = map[int32]string{
-	0:  "OFPMMFC_UNKNOWN",
-	1:  "OFPMMFC_METER_EXISTS",
-	2:  "OFPMMFC_INVALID_METER",
-	3:  "OFPMMFC_UNKNOWN_METER",
-	4:  "OFPMMFC_BAD_COMMAND",
-	5:  "OFPMMFC_BAD_FLAGS",
-	6:  "OFPMMFC_BAD_RATE",
-	7:  "OFPMMFC_BAD_BURST",
-	8:  "OFPMMFC_BAD_BAND",
-	9:  "OFPMMFC_BAD_BAND_DETAIL",
-	10: "OFPMMFC_OUT_OF_METERS",
-	11: "OFPMMFC_OUT_OF_BANDS",
-}
+// Enum value maps for OfpMeterModFailedCode.
+var (
+	OfpMeterModFailedCode_name = map[int32]string{
+		0:  "OFPMMFC_UNKNOWN",
+		1:  "OFPMMFC_METER_EXISTS",
+		2:  "OFPMMFC_INVALID_METER",
+		3:  "OFPMMFC_UNKNOWN_METER",
+		4:  "OFPMMFC_BAD_COMMAND",
+		5:  "OFPMMFC_BAD_FLAGS",
+		6:  "OFPMMFC_BAD_RATE",
+		7:  "OFPMMFC_BAD_BURST",
+		8:  "OFPMMFC_BAD_BAND",
+		9:  "OFPMMFC_BAD_BAND_DETAIL",
+		10: "OFPMMFC_OUT_OF_METERS",
+		11: "OFPMMFC_OUT_OF_BANDS",
+	}
+	OfpMeterModFailedCode_value = map[string]int32{
+		"OFPMMFC_UNKNOWN":         0,
+		"OFPMMFC_METER_EXISTS":    1,
+		"OFPMMFC_INVALID_METER":   2,
+		"OFPMMFC_UNKNOWN_METER":   3,
+		"OFPMMFC_BAD_COMMAND":     4,
+		"OFPMMFC_BAD_FLAGS":       5,
+		"OFPMMFC_BAD_RATE":        6,
+		"OFPMMFC_BAD_BURST":       7,
+		"OFPMMFC_BAD_BAND":        8,
+		"OFPMMFC_BAD_BAND_DETAIL": 9,
+		"OFPMMFC_OUT_OF_METERS":   10,
+		"OFPMMFC_OUT_OF_BANDS":    11,
+	}
+)
 
-var OfpMeterModFailedCode_value = map[string]int32{
-	"OFPMMFC_UNKNOWN":         0,
-	"OFPMMFC_METER_EXISTS":    1,
-	"OFPMMFC_INVALID_METER":   2,
-	"OFPMMFC_UNKNOWN_METER":   3,
-	"OFPMMFC_BAD_COMMAND":     4,
-	"OFPMMFC_BAD_FLAGS":       5,
-	"OFPMMFC_BAD_RATE":        6,
-	"OFPMMFC_BAD_BURST":       7,
-	"OFPMMFC_BAD_BAND":        8,
-	"OFPMMFC_BAD_BAND_DETAIL": 9,
-	"OFPMMFC_OUT_OF_METERS":   10,
-	"OFPMMFC_OUT_OF_BANDS":    11,
+func (x OfpMeterModFailedCode) Enum() *OfpMeterModFailedCode {
+	p := new(OfpMeterModFailedCode)
+	*p = x
+	return p
 }
 
 func (x OfpMeterModFailedCode) String() string {
-	return proto.EnumName(OfpMeterModFailedCode_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OfpMeterModFailedCode) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openflow_13_proto_enumTypes[44].Descriptor()
+}
+
+func (OfpMeterModFailedCode) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openflow_13_proto_enumTypes[44]
+}
+
+func (x OfpMeterModFailedCode) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OfpMeterModFailedCode.Descriptor instead.
 func (OfpMeterModFailedCode) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{44}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{44}
 }
 
 // ofp_error_msg 'code' values for OFPET_TABLE_FEATURES_FAILED. 'data' contains
@@ -1995,38 +2997,59 @@
 type OfpTableFeaturesFailedCode int32
 
 const (
-	OfpTableFeaturesFailedCode_OFPTFFC_BAD_TABLE    OfpTableFeaturesFailedCode = 0
-	OfpTableFeaturesFailedCode_OFPTFFC_BAD_METADATA OfpTableFeaturesFailedCode = 1
-	OfpTableFeaturesFailedCode_OFPTFFC_BAD_TYPE     OfpTableFeaturesFailedCode = 2
-	OfpTableFeaturesFailedCode_OFPTFFC_BAD_LEN      OfpTableFeaturesFailedCode = 3
-	OfpTableFeaturesFailedCode_OFPTFFC_BAD_ARGUMENT OfpTableFeaturesFailedCode = 4
-	OfpTableFeaturesFailedCode_OFPTFFC_EPERM        OfpTableFeaturesFailedCode = 5
+	OfpTableFeaturesFailedCode_OFPTFFC_BAD_TABLE    OfpTableFeaturesFailedCode = 0 // Specified table does not exist.
+	OfpTableFeaturesFailedCode_OFPTFFC_BAD_METADATA OfpTableFeaturesFailedCode = 1 // Invalid metadata mask.
+	OfpTableFeaturesFailedCode_OFPTFFC_BAD_TYPE     OfpTableFeaturesFailedCode = 2 // Unknown property type.
+	OfpTableFeaturesFailedCode_OFPTFFC_BAD_LEN      OfpTableFeaturesFailedCode = 3 // Length problem in properties.
+	OfpTableFeaturesFailedCode_OFPTFFC_BAD_ARGUMENT OfpTableFeaturesFailedCode = 4 // Unsupported property value.
+	OfpTableFeaturesFailedCode_OFPTFFC_EPERM        OfpTableFeaturesFailedCode = 5 // Permissions error.
 )
 
-var OfpTableFeaturesFailedCode_name = map[int32]string{
-	0: "OFPTFFC_BAD_TABLE",
-	1: "OFPTFFC_BAD_METADATA",
-	2: "OFPTFFC_BAD_TYPE",
-	3: "OFPTFFC_BAD_LEN",
-	4: "OFPTFFC_BAD_ARGUMENT",
-	5: "OFPTFFC_EPERM",
-}
+// Enum value maps for OfpTableFeaturesFailedCode.
+var (
+	OfpTableFeaturesFailedCode_name = map[int32]string{
+		0: "OFPTFFC_BAD_TABLE",
+		1: "OFPTFFC_BAD_METADATA",
+		2: "OFPTFFC_BAD_TYPE",
+		3: "OFPTFFC_BAD_LEN",
+		4: "OFPTFFC_BAD_ARGUMENT",
+		5: "OFPTFFC_EPERM",
+	}
+	OfpTableFeaturesFailedCode_value = map[string]int32{
+		"OFPTFFC_BAD_TABLE":    0,
+		"OFPTFFC_BAD_METADATA": 1,
+		"OFPTFFC_BAD_TYPE":     2,
+		"OFPTFFC_BAD_LEN":      3,
+		"OFPTFFC_BAD_ARGUMENT": 4,
+		"OFPTFFC_EPERM":        5,
+	}
+)
 
-var OfpTableFeaturesFailedCode_value = map[string]int32{
-	"OFPTFFC_BAD_TABLE":    0,
-	"OFPTFFC_BAD_METADATA": 1,
-	"OFPTFFC_BAD_TYPE":     2,
-	"OFPTFFC_BAD_LEN":      3,
-	"OFPTFFC_BAD_ARGUMENT": 4,
-	"OFPTFFC_EPERM":        5,
+func (x OfpTableFeaturesFailedCode) Enum() *OfpTableFeaturesFailedCode {
+	p := new(OfpTableFeaturesFailedCode)
+	*p = x
+	return p
 }
 
 func (x OfpTableFeaturesFailedCode) String() string {
-	return proto.EnumName(OfpTableFeaturesFailedCode_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OfpTableFeaturesFailedCode) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openflow_13_proto_enumTypes[45].Descriptor()
+}
+
+func (OfpTableFeaturesFailedCode) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openflow_13_proto_enumTypes[45]
+}
+
+func (x OfpTableFeaturesFailedCode) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OfpTableFeaturesFailedCode.Descriptor instead.
 func (OfpTableFeaturesFailedCode) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{45}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{45}
 }
 
 type OfpMultipartType int32
@@ -2098,98 +3121,161 @@
 	OfpMultipartType_OFPMP_EXPERIMENTER OfpMultipartType = 65535
 )
 
-var OfpMultipartType_name = map[int32]string{
-	0:     "OFPMP_DESC",
-	1:     "OFPMP_FLOW",
-	2:     "OFPMP_AGGREGATE",
-	3:     "OFPMP_TABLE",
-	4:     "OFPMP_PORT_STATS",
-	5:     "OFPMP_QUEUE",
-	6:     "OFPMP_GROUP",
-	7:     "OFPMP_GROUP_DESC",
-	8:     "OFPMP_GROUP_FEATURES",
-	9:     "OFPMP_METER",
-	10:    "OFPMP_METER_CONFIG",
-	11:    "OFPMP_METER_FEATURES",
-	12:    "OFPMP_TABLE_FEATURES",
-	13:    "OFPMP_PORT_DESC",
-	65535: "OFPMP_EXPERIMENTER",
-}
+// Enum value maps for OfpMultipartType.
+var (
+	OfpMultipartType_name = map[int32]string{
+		0:     "OFPMP_DESC",
+		1:     "OFPMP_FLOW",
+		2:     "OFPMP_AGGREGATE",
+		3:     "OFPMP_TABLE",
+		4:     "OFPMP_PORT_STATS",
+		5:     "OFPMP_QUEUE",
+		6:     "OFPMP_GROUP",
+		7:     "OFPMP_GROUP_DESC",
+		8:     "OFPMP_GROUP_FEATURES",
+		9:     "OFPMP_METER",
+		10:    "OFPMP_METER_CONFIG",
+		11:    "OFPMP_METER_FEATURES",
+		12:    "OFPMP_TABLE_FEATURES",
+		13:    "OFPMP_PORT_DESC",
+		65535: "OFPMP_EXPERIMENTER",
+	}
+	OfpMultipartType_value = map[string]int32{
+		"OFPMP_DESC":           0,
+		"OFPMP_FLOW":           1,
+		"OFPMP_AGGREGATE":      2,
+		"OFPMP_TABLE":          3,
+		"OFPMP_PORT_STATS":     4,
+		"OFPMP_QUEUE":          5,
+		"OFPMP_GROUP":          6,
+		"OFPMP_GROUP_DESC":     7,
+		"OFPMP_GROUP_FEATURES": 8,
+		"OFPMP_METER":          9,
+		"OFPMP_METER_CONFIG":   10,
+		"OFPMP_METER_FEATURES": 11,
+		"OFPMP_TABLE_FEATURES": 12,
+		"OFPMP_PORT_DESC":      13,
+		"OFPMP_EXPERIMENTER":   65535,
+	}
+)
 
-var OfpMultipartType_value = map[string]int32{
-	"OFPMP_DESC":           0,
-	"OFPMP_FLOW":           1,
-	"OFPMP_AGGREGATE":      2,
-	"OFPMP_TABLE":          3,
-	"OFPMP_PORT_STATS":     4,
-	"OFPMP_QUEUE":          5,
-	"OFPMP_GROUP":          6,
-	"OFPMP_GROUP_DESC":     7,
-	"OFPMP_GROUP_FEATURES": 8,
-	"OFPMP_METER":          9,
-	"OFPMP_METER_CONFIG":   10,
-	"OFPMP_METER_FEATURES": 11,
-	"OFPMP_TABLE_FEATURES": 12,
-	"OFPMP_PORT_DESC":      13,
-	"OFPMP_EXPERIMENTER":   65535,
+func (x OfpMultipartType) Enum() *OfpMultipartType {
+	p := new(OfpMultipartType)
+	*p = x
+	return p
 }
 
 func (x OfpMultipartType) String() string {
-	return proto.EnumName(OfpMultipartType_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OfpMultipartType) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openflow_13_proto_enumTypes[46].Descriptor()
+}
+
+func (OfpMultipartType) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openflow_13_proto_enumTypes[46]
+}
+
+func (x OfpMultipartType) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OfpMultipartType.Descriptor instead.
 func (OfpMultipartType) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{46}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{46}
 }
 
 type OfpMultipartRequestFlags int32
 
 const (
 	OfpMultipartRequestFlags_OFPMPF_REQ_INVALID OfpMultipartRequestFlags = 0
-	OfpMultipartRequestFlags_OFPMPF_REQ_MORE    OfpMultipartRequestFlags = 1
+	OfpMultipartRequestFlags_OFPMPF_REQ_MORE    OfpMultipartRequestFlags = 1 // More requests to follow.
 )
 
-var OfpMultipartRequestFlags_name = map[int32]string{
-	0: "OFPMPF_REQ_INVALID",
-	1: "OFPMPF_REQ_MORE",
-}
+// Enum value maps for OfpMultipartRequestFlags.
+var (
+	OfpMultipartRequestFlags_name = map[int32]string{
+		0: "OFPMPF_REQ_INVALID",
+		1: "OFPMPF_REQ_MORE",
+	}
+	OfpMultipartRequestFlags_value = map[string]int32{
+		"OFPMPF_REQ_INVALID": 0,
+		"OFPMPF_REQ_MORE":    1,
+	}
+)
 
-var OfpMultipartRequestFlags_value = map[string]int32{
-	"OFPMPF_REQ_INVALID": 0,
-	"OFPMPF_REQ_MORE":    1,
+func (x OfpMultipartRequestFlags) Enum() *OfpMultipartRequestFlags {
+	p := new(OfpMultipartRequestFlags)
+	*p = x
+	return p
 }
 
 func (x OfpMultipartRequestFlags) String() string {
-	return proto.EnumName(OfpMultipartRequestFlags_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OfpMultipartRequestFlags) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openflow_13_proto_enumTypes[47].Descriptor()
+}
+
+func (OfpMultipartRequestFlags) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openflow_13_proto_enumTypes[47]
+}
+
+func (x OfpMultipartRequestFlags) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OfpMultipartRequestFlags.Descriptor instead.
 func (OfpMultipartRequestFlags) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{47}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{47}
 }
 
 type OfpMultipartReplyFlags int32
 
 const (
 	OfpMultipartReplyFlags_OFPMPF_REPLY_INVALID OfpMultipartReplyFlags = 0
-	OfpMultipartReplyFlags_OFPMPF_REPLY_MORE    OfpMultipartReplyFlags = 1
+	OfpMultipartReplyFlags_OFPMPF_REPLY_MORE    OfpMultipartReplyFlags = 1 // More replies to follow.
 )
 
-var OfpMultipartReplyFlags_name = map[int32]string{
-	0: "OFPMPF_REPLY_INVALID",
-	1: "OFPMPF_REPLY_MORE",
-}
+// Enum value maps for OfpMultipartReplyFlags.
+var (
+	OfpMultipartReplyFlags_name = map[int32]string{
+		0: "OFPMPF_REPLY_INVALID",
+		1: "OFPMPF_REPLY_MORE",
+	}
+	OfpMultipartReplyFlags_value = map[string]int32{
+		"OFPMPF_REPLY_INVALID": 0,
+		"OFPMPF_REPLY_MORE":    1,
+	}
+)
 
-var OfpMultipartReplyFlags_value = map[string]int32{
-	"OFPMPF_REPLY_INVALID": 0,
-	"OFPMPF_REPLY_MORE":    1,
+func (x OfpMultipartReplyFlags) Enum() *OfpMultipartReplyFlags {
+	p := new(OfpMultipartReplyFlags)
+	*p = x
+	return p
 }
 
 func (x OfpMultipartReplyFlags) String() string {
-	return proto.EnumName(OfpMultipartReplyFlags_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OfpMultipartReplyFlags) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openflow_13_proto_enumTypes[48].Descriptor()
+}
+
+func (OfpMultipartReplyFlags) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openflow_13_proto_enumTypes[48]
+}
+
+func (x OfpMultipartReplyFlags) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OfpMultipartReplyFlags.Descriptor instead.
 func (OfpMultipartReplyFlags) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{48}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{48}
 }
 
 // Table Feature property types.
@@ -2198,68 +3284,89 @@
 type OfpTableFeaturePropType int32
 
 const (
-	OfpTableFeaturePropType_OFPTFPT_INSTRUCTIONS        OfpTableFeaturePropType = 0
-	OfpTableFeaturePropType_OFPTFPT_INSTRUCTIONS_MISS   OfpTableFeaturePropType = 1
-	OfpTableFeaturePropType_OFPTFPT_NEXT_TABLES         OfpTableFeaturePropType = 2
-	OfpTableFeaturePropType_OFPTFPT_NEXT_TABLES_MISS    OfpTableFeaturePropType = 3
-	OfpTableFeaturePropType_OFPTFPT_WRITE_ACTIONS       OfpTableFeaturePropType = 4
-	OfpTableFeaturePropType_OFPTFPT_WRITE_ACTIONS_MISS  OfpTableFeaturePropType = 5
-	OfpTableFeaturePropType_OFPTFPT_APPLY_ACTIONS       OfpTableFeaturePropType = 6
-	OfpTableFeaturePropType_OFPTFPT_APPLY_ACTIONS_MISS  OfpTableFeaturePropType = 7
-	OfpTableFeaturePropType_OFPTFPT_MATCH               OfpTableFeaturePropType = 8
-	OfpTableFeaturePropType_OFPTFPT_WILDCARDS           OfpTableFeaturePropType = 10
-	OfpTableFeaturePropType_OFPTFPT_WRITE_SETFIELD      OfpTableFeaturePropType = 12
-	OfpTableFeaturePropType_OFPTFPT_WRITE_SETFIELD_MISS OfpTableFeaturePropType = 13
-	OfpTableFeaturePropType_OFPTFPT_APPLY_SETFIELD      OfpTableFeaturePropType = 14
-	OfpTableFeaturePropType_OFPTFPT_APPLY_SETFIELD_MISS OfpTableFeaturePropType = 15
-	OfpTableFeaturePropType_OFPTFPT_EXPERIMENTER        OfpTableFeaturePropType = 65534
-	OfpTableFeaturePropType_OFPTFPT_EXPERIMENTER_MISS   OfpTableFeaturePropType = 65535
+	OfpTableFeaturePropType_OFPTFPT_INSTRUCTIONS        OfpTableFeaturePropType = 0     // Instructions property.
+	OfpTableFeaturePropType_OFPTFPT_INSTRUCTIONS_MISS   OfpTableFeaturePropType = 1     // Instructions for table-miss.
+	OfpTableFeaturePropType_OFPTFPT_NEXT_TABLES         OfpTableFeaturePropType = 2     // Next Table property.
+	OfpTableFeaturePropType_OFPTFPT_NEXT_TABLES_MISS    OfpTableFeaturePropType = 3     // Next Table for table-miss.
+	OfpTableFeaturePropType_OFPTFPT_WRITE_ACTIONS       OfpTableFeaturePropType = 4     // Write Actions property.
+	OfpTableFeaturePropType_OFPTFPT_WRITE_ACTIONS_MISS  OfpTableFeaturePropType = 5     // Write Actions for table-miss.
+	OfpTableFeaturePropType_OFPTFPT_APPLY_ACTIONS       OfpTableFeaturePropType = 6     // Apply Actions property.
+	OfpTableFeaturePropType_OFPTFPT_APPLY_ACTIONS_MISS  OfpTableFeaturePropType = 7     // Apply Actions for table-miss.
+	OfpTableFeaturePropType_OFPTFPT_MATCH               OfpTableFeaturePropType = 8     // Match property.
+	OfpTableFeaturePropType_OFPTFPT_WILDCARDS           OfpTableFeaturePropType = 10    // Wildcards property.
+	OfpTableFeaturePropType_OFPTFPT_WRITE_SETFIELD      OfpTableFeaturePropType = 12    // Write Set-Field property.
+	OfpTableFeaturePropType_OFPTFPT_WRITE_SETFIELD_MISS OfpTableFeaturePropType = 13    // Write Set-Field for table-miss.
+	OfpTableFeaturePropType_OFPTFPT_APPLY_SETFIELD      OfpTableFeaturePropType = 14    // Apply Set-Field property.
+	OfpTableFeaturePropType_OFPTFPT_APPLY_SETFIELD_MISS OfpTableFeaturePropType = 15    // Apply Set-Field for table-miss.
+	OfpTableFeaturePropType_OFPTFPT_EXPERIMENTER        OfpTableFeaturePropType = 65534 // Experimenter property.
+	OfpTableFeaturePropType_OFPTFPT_EXPERIMENTER_MISS   OfpTableFeaturePropType = 65535 // Experimenter for table-miss.
 )
 
-var OfpTableFeaturePropType_name = map[int32]string{
-	0:     "OFPTFPT_INSTRUCTIONS",
-	1:     "OFPTFPT_INSTRUCTIONS_MISS",
-	2:     "OFPTFPT_NEXT_TABLES",
-	3:     "OFPTFPT_NEXT_TABLES_MISS",
-	4:     "OFPTFPT_WRITE_ACTIONS",
-	5:     "OFPTFPT_WRITE_ACTIONS_MISS",
-	6:     "OFPTFPT_APPLY_ACTIONS",
-	7:     "OFPTFPT_APPLY_ACTIONS_MISS",
-	8:     "OFPTFPT_MATCH",
-	10:    "OFPTFPT_WILDCARDS",
-	12:    "OFPTFPT_WRITE_SETFIELD",
-	13:    "OFPTFPT_WRITE_SETFIELD_MISS",
-	14:    "OFPTFPT_APPLY_SETFIELD",
-	15:    "OFPTFPT_APPLY_SETFIELD_MISS",
-	65534: "OFPTFPT_EXPERIMENTER",
-	65535: "OFPTFPT_EXPERIMENTER_MISS",
-}
+// Enum value maps for OfpTableFeaturePropType.
+var (
+	OfpTableFeaturePropType_name = map[int32]string{
+		0:     "OFPTFPT_INSTRUCTIONS",
+		1:     "OFPTFPT_INSTRUCTIONS_MISS",
+		2:     "OFPTFPT_NEXT_TABLES",
+		3:     "OFPTFPT_NEXT_TABLES_MISS",
+		4:     "OFPTFPT_WRITE_ACTIONS",
+		5:     "OFPTFPT_WRITE_ACTIONS_MISS",
+		6:     "OFPTFPT_APPLY_ACTIONS",
+		7:     "OFPTFPT_APPLY_ACTIONS_MISS",
+		8:     "OFPTFPT_MATCH",
+		10:    "OFPTFPT_WILDCARDS",
+		12:    "OFPTFPT_WRITE_SETFIELD",
+		13:    "OFPTFPT_WRITE_SETFIELD_MISS",
+		14:    "OFPTFPT_APPLY_SETFIELD",
+		15:    "OFPTFPT_APPLY_SETFIELD_MISS",
+		65534: "OFPTFPT_EXPERIMENTER",
+		65535: "OFPTFPT_EXPERIMENTER_MISS",
+	}
+	OfpTableFeaturePropType_value = map[string]int32{
+		"OFPTFPT_INSTRUCTIONS":        0,
+		"OFPTFPT_INSTRUCTIONS_MISS":   1,
+		"OFPTFPT_NEXT_TABLES":         2,
+		"OFPTFPT_NEXT_TABLES_MISS":    3,
+		"OFPTFPT_WRITE_ACTIONS":       4,
+		"OFPTFPT_WRITE_ACTIONS_MISS":  5,
+		"OFPTFPT_APPLY_ACTIONS":       6,
+		"OFPTFPT_APPLY_ACTIONS_MISS":  7,
+		"OFPTFPT_MATCH":               8,
+		"OFPTFPT_WILDCARDS":           10,
+		"OFPTFPT_WRITE_SETFIELD":      12,
+		"OFPTFPT_WRITE_SETFIELD_MISS": 13,
+		"OFPTFPT_APPLY_SETFIELD":      14,
+		"OFPTFPT_APPLY_SETFIELD_MISS": 15,
+		"OFPTFPT_EXPERIMENTER":        65534,
+		"OFPTFPT_EXPERIMENTER_MISS":   65535,
+	}
+)
 
-var OfpTableFeaturePropType_value = map[string]int32{
-	"OFPTFPT_INSTRUCTIONS":        0,
-	"OFPTFPT_INSTRUCTIONS_MISS":   1,
-	"OFPTFPT_NEXT_TABLES":         2,
-	"OFPTFPT_NEXT_TABLES_MISS":    3,
-	"OFPTFPT_WRITE_ACTIONS":       4,
-	"OFPTFPT_WRITE_ACTIONS_MISS":  5,
-	"OFPTFPT_APPLY_ACTIONS":       6,
-	"OFPTFPT_APPLY_ACTIONS_MISS":  7,
-	"OFPTFPT_MATCH":               8,
-	"OFPTFPT_WILDCARDS":           10,
-	"OFPTFPT_WRITE_SETFIELD":      12,
-	"OFPTFPT_WRITE_SETFIELD_MISS": 13,
-	"OFPTFPT_APPLY_SETFIELD":      14,
-	"OFPTFPT_APPLY_SETFIELD_MISS": 15,
-	"OFPTFPT_EXPERIMENTER":        65534,
-	"OFPTFPT_EXPERIMENTER_MISS":   65535,
+func (x OfpTableFeaturePropType) Enum() *OfpTableFeaturePropType {
+	p := new(OfpTableFeaturePropType)
+	*p = x
+	return p
 }
 
 func (x OfpTableFeaturePropType) String() string {
-	return proto.EnumName(OfpTableFeaturePropType_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OfpTableFeaturePropType) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openflow_13_proto_enumTypes[49].Descriptor()
+}
+
+func (OfpTableFeaturePropType) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openflow_13_proto_enumTypes[49]
+}
+
+func (x OfpTableFeaturePropType) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OfpTableFeaturePropType.Descriptor instead.
 func (OfpTableFeaturePropType) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{49}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{49}
 }
 
 // Group configuration flags
@@ -2267,198 +3374,288 @@
 
 const (
 	OfpGroupCapabilities_OFPGFC_INVALID         OfpGroupCapabilities = 0
-	OfpGroupCapabilities_OFPGFC_SELECT_WEIGHT   OfpGroupCapabilities = 1
-	OfpGroupCapabilities_OFPGFC_SELECT_LIVENESS OfpGroupCapabilities = 2
-	OfpGroupCapabilities_OFPGFC_CHAINING        OfpGroupCapabilities = 4
-	OfpGroupCapabilities_OFPGFC_CHAINING_CHECKS OfpGroupCapabilities = 8
+	OfpGroupCapabilities_OFPGFC_SELECT_WEIGHT   OfpGroupCapabilities = 1 // Support weight for select groups
+	OfpGroupCapabilities_OFPGFC_SELECT_LIVENESS OfpGroupCapabilities = 2 // Support liveness for select groups
+	OfpGroupCapabilities_OFPGFC_CHAINING        OfpGroupCapabilities = 4 // Support chaining groups
+	OfpGroupCapabilities_OFPGFC_CHAINING_CHECKS OfpGroupCapabilities = 8 // Check chaining for loops and delete
 )
 
-var OfpGroupCapabilities_name = map[int32]string{
-	0: "OFPGFC_INVALID",
-	1: "OFPGFC_SELECT_WEIGHT",
-	2: "OFPGFC_SELECT_LIVENESS",
-	4: "OFPGFC_CHAINING",
-	8: "OFPGFC_CHAINING_CHECKS",
-}
+// Enum value maps for OfpGroupCapabilities.
+var (
+	OfpGroupCapabilities_name = map[int32]string{
+		0: "OFPGFC_INVALID",
+		1: "OFPGFC_SELECT_WEIGHT",
+		2: "OFPGFC_SELECT_LIVENESS",
+		4: "OFPGFC_CHAINING",
+		8: "OFPGFC_CHAINING_CHECKS",
+	}
+	OfpGroupCapabilities_value = map[string]int32{
+		"OFPGFC_INVALID":         0,
+		"OFPGFC_SELECT_WEIGHT":   1,
+		"OFPGFC_SELECT_LIVENESS": 2,
+		"OFPGFC_CHAINING":        4,
+		"OFPGFC_CHAINING_CHECKS": 8,
+	}
+)
 
-var OfpGroupCapabilities_value = map[string]int32{
-	"OFPGFC_INVALID":         0,
-	"OFPGFC_SELECT_WEIGHT":   1,
-	"OFPGFC_SELECT_LIVENESS": 2,
-	"OFPGFC_CHAINING":        4,
-	"OFPGFC_CHAINING_CHECKS": 8,
+func (x OfpGroupCapabilities) Enum() *OfpGroupCapabilities {
+	p := new(OfpGroupCapabilities)
+	*p = x
+	return p
 }
 
 func (x OfpGroupCapabilities) String() string {
-	return proto.EnumName(OfpGroupCapabilities_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OfpGroupCapabilities) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openflow_13_proto_enumTypes[50].Descriptor()
+}
+
+func (OfpGroupCapabilities) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openflow_13_proto_enumTypes[50]
+}
+
+func (x OfpGroupCapabilities) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OfpGroupCapabilities.Descriptor instead.
 func (OfpGroupCapabilities) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{50}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{50}
 }
 
 type OfpQueueProperties int32
 
 const (
 	OfpQueueProperties_OFPQT_INVALID      OfpQueueProperties = 0
-	OfpQueueProperties_OFPQT_MIN_RATE     OfpQueueProperties = 1
-	OfpQueueProperties_OFPQT_MAX_RATE     OfpQueueProperties = 2
-	OfpQueueProperties_OFPQT_EXPERIMENTER OfpQueueProperties = 65535
+	OfpQueueProperties_OFPQT_MIN_RATE     OfpQueueProperties = 1     // Minimum datarate guaranteed.
+	OfpQueueProperties_OFPQT_MAX_RATE     OfpQueueProperties = 2     // Maximum datarate.
+	OfpQueueProperties_OFPQT_EXPERIMENTER OfpQueueProperties = 65535 // Experimenter defined property.
 )
 
-var OfpQueueProperties_name = map[int32]string{
-	0:     "OFPQT_INVALID",
-	1:     "OFPQT_MIN_RATE",
-	2:     "OFPQT_MAX_RATE",
-	65535: "OFPQT_EXPERIMENTER",
-}
+// Enum value maps for OfpQueueProperties.
+var (
+	OfpQueueProperties_name = map[int32]string{
+		0:     "OFPQT_INVALID",
+		1:     "OFPQT_MIN_RATE",
+		2:     "OFPQT_MAX_RATE",
+		65535: "OFPQT_EXPERIMENTER",
+	}
+	OfpQueueProperties_value = map[string]int32{
+		"OFPQT_INVALID":      0,
+		"OFPQT_MIN_RATE":     1,
+		"OFPQT_MAX_RATE":     2,
+		"OFPQT_EXPERIMENTER": 65535,
+	}
+)
 
-var OfpQueueProperties_value = map[string]int32{
-	"OFPQT_INVALID":      0,
-	"OFPQT_MIN_RATE":     1,
-	"OFPQT_MAX_RATE":     2,
-	"OFPQT_EXPERIMENTER": 65535,
+func (x OfpQueueProperties) Enum() *OfpQueueProperties {
+	p := new(OfpQueueProperties)
+	*p = x
+	return p
 }
 
 func (x OfpQueueProperties) String() string {
-	return proto.EnumName(OfpQueueProperties_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OfpQueueProperties) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openflow_13_proto_enumTypes[51].Descriptor()
+}
+
+func (OfpQueueProperties) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openflow_13_proto_enumTypes[51]
+}
+
+func (x OfpQueueProperties) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OfpQueueProperties.Descriptor instead.
 func (OfpQueueProperties) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{51}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{51}
 }
 
 // Controller roles.
 type OfpControllerRole int32
 
 const (
-	OfpControllerRole_OFPCR_ROLE_NOCHANGE OfpControllerRole = 0
-	OfpControllerRole_OFPCR_ROLE_EQUAL    OfpControllerRole = 1
-	OfpControllerRole_OFPCR_ROLE_MASTER   OfpControllerRole = 2
-	OfpControllerRole_OFPCR_ROLE_SLAVE    OfpControllerRole = 3
+	OfpControllerRole_OFPCR_ROLE_NOCHANGE OfpControllerRole = 0 // Don't change current role.
+	OfpControllerRole_OFPCR_ROLE_EQUAL    OfpControllerRole = 1 // Default role, full access.
+	OfpControllerRole_OFPCR_ROLE_MASTER   OfpControllerRole = 2 // Full access, at most one master.
+	OfpControllerRole_OFPCR_ROLE_SLAVE    OfpControllerRole = 3 // Read-only access.
 )
 
-var OfpControllerRole_name = map[int32]string{
-	0: "OFPCR_ROLE_NOCHANGE",
-	1: "OFPCR_ROLE_EQUAL",
-	2: "OFPCR_ROLE_MASTER",
-	3: "OFPCR_ROLE_SLAVE",
-}
+// Enum value maps for OfpControllerRole.
+var (
+	OfpControllerRole_name = map[int32]string{
+		0: "OFPCR_ROLE_NOCHANGE",
+		1: "OFPCR_ROLE_EQUAL",
+		2: "OFPCR_ROLE_MASTER",
+		3: "OFPCR_ROLE_SLAVE",
+	}
+	OfpControllerRole_value = map[string]int32{
+		"OFPCR_ROLE_NOCHANGE": 0,
+		"OFPCR_ROLE_EQUAL":    1,
+		"OFPCR_ROLE_MASTER":   2,
+		"OFPCR_ROLE_SLAVE":    3,
+	}
+)
 
-var OfpControllerRole_value = map[string]int32{
-	"OFPCR_ROLE_NOCHANGE": 0,
-	"OFPCR_ROLE_EQUAL":    1,
-	"OFPCR_ROLE_MASTER":   2,
-	"OFPCR_ROLE_SLAVE":    3,
+func (x OfpControllerRole) Enum() *OfpControllerRole {
+	p := new(OfpControllerRole)
+	*p = x
+	return p
 }
 
 func (x OfpControllerRole) String() string {
-	return proto.EnumName(OfpControllerRole_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OfpControllerRole) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openflow_13_proto_enumTypes[52].Descriptor()
+}
+
+func (OfpControllerRole) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openflow_13_proto_enumTypes[52]
+}
+
+func (x OfpControllerRole) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OfpControllerRole.Descriptor instead.
 func (OfpControllerRole) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{52}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{52}
 }
 
 // Header on all OpenFlow packets.
 type OfpHeader struct {
-	Version              uint32   `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"`
-	Type                 OfpType  `protobuf:"varint,2,opt,name=type,proto3,enum=openflow_13.OfpType" json:"type,omitempty"`
-	Xid                  uint32   `protobuf:"varint,3,opt,name=xid,proto3" json:"xid,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Version       uint32                 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"`                    // OFP_VERSION.
+	Type          OfpType                `protobuf:"varint,2,opt,name=type,proto3,enum=openflow_13.OfpType" json:"type,omitempty"` // One of the OFPT_ constants.
+	Xid           uint32                 `protobuf:"varint,3,opt,name=xid,proto3" json:"xid,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *OfpHeader) Reset()         { *m = OfpHeader{} }
-func (m *OfpHeader) String() string { return proto.CompactTextString(m) }
-func (*OfpHeader) ProtoMessage()    {}
+func (x *OfpHeader) Reset() {
+	*x = OfpHeader{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpHeader) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpHeader) ProtoMessage() {}
+
+func (x *OfpHeader) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[0]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpHeader.ProtoReflect.Descriptor instead.
 func (*OfpHeader) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{0}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{0}
 }
 
-func (m *OfpHeader) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpHeader.Unmarshal(m, b)
-}
-func (m *OfpHeader) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpHeader.Marshal(b, m, deterministic)
-}
-func (m *OfpHeader) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpHeader.Merge(m, src)
-}
-func (m *OfpHeader) XXX_Size() int {
-	return xxx_messageInfo_OfpHeader.Size(m)
-}
-func (m *OfpHeader) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpHeader.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpHeader proto.InternalMessageInfo
-
-func (m *OfpHeader) GetVersion() uint32 {
-	if m != nil {
-		return m.Version
+func (x *OfpHeader) GetVersion() uint32 {
+	if x != nil {
+		return x.Version
 	}
 	return 0
 }
 
-func (m *OfpHeader) GetType() OfpType {
-	if m != nil {
-		return m.Type
+func (x *OfpHeader) GetType() OfpType {
+	if x != nil {
+		return x.Type
 	}
 	return OfpType_OFPT_HELLO
 }
 
-func (m *OfpHeader) GetXid() uint32 {
-	if m != nil {
-		return m.Xid
+func (x *OfpHeader) GetXid() uint32 {
+	if x != nil {
+		return x.Xid
 	}
 	return 0
 }
 
 // Common header for all Hello Elements
 type OfpHelloElemHeader struct {
-	Type OfpHelloElemType `protobuf:"varint,1,opt,name=type,proto3,enum=openflow_13.OfpHelloElemType" json:"type,omitempty"`
+	state protoimpl.MessageState `protogen:"open.v1"`
+	Type  OfpHelloElemType       `protobuf:"varint,1,opt,name=type,proto3,enum=openflow_13.OfpHelloElemType" json:"type,omitempty"` // One of OFPHET_*.
 	// Types that are valid to be assigned to Element:
+	//
 	//	*OfpHelloElemHeader_Versionbitmap
-	Element              isOfpHelloElemHeader_Element `protobuf_oneof:"element"`
-	XXX_NoUnkeyedLiteral struct{}                     `json:"-"`
-	XXX_unrecognized     []byte                       `json:"-"`
-	XXX_sizecache        int32                        `json:"-"`
+	Element       isOfpHelloElemHeader_Element `protobuf_oneof:"element"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *OfpHelloElemHeader) Reset()         { *m = OfpHelloElemHeader{} }
-func (m *OfpHelloElemHeader) String() string { return proto.CompactTextString(m) }
-func (*OfpHelloElemHeader) ProtoMessage()    {}
+func (x *OfpHelloElemHeader) Reset() {
+	*x = OfpHelloElemHeader{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpHelloElemHeader) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpHelloElemHeader) ProtoMessage() {}
+
+func (x *OfpHelloElemHeader) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[1]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpHelloElemHeader.ProtoReflect.Descriptor instead.
 func (*OfpHelloElemHeader) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{1}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{1}
 }
 
-func (m *OfpHelloElemHeader) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpHelloElemHeader.Unmarshal(m, b)
-}
-func (m *OfpHelloElemHeader) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpHelloElemHeader.Marshal(b, m, deterministic)
-}
-func (m *OfpHelloElemHeader) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpHelloElemHeader.Merge(m, src)
-}
-func (m *OfpHelloElemHeader) XXX_Size() int {
-	return xxx_messageInfo_OfpHelloElemHeader.Size(m)
-}
-func (m *OfpHelloElemHeader) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpHelloElemHeader.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpHelloElemHeader proto.InternalMessageInfo
-
-func (m *OfpHelloElemHeader) GetType() OfpHelloElemType {
-	if m != nil {
-		return m.Type
+func (x *OfpHelloElemHeader) GetType() OfpHelloElemType {
+	if x != nil {
+		return x.Type
 	}
 	return OfpHelloElemType_OFPHET_INVALID
 }
 
+func (x *OfpHelloElemHeader) GetElement() isOfpHelloElemHeader_Element {
+	if x != nil {
+		return x.Element
+	}
+	return nil
+}
+
+func (x *OfpHelloElemHeader) GetVersionbitmap() *OfpHelloElemVersionbitmap {
+	if x != nil {
+		if x, ok := x.Element.(*OfpHelloElemHeader_Versionbitmap); ok {
+			return x.Versionbitmap
+		}
+	}
+	return nil
+}
+
 type isOfpHelloElemHeader_Element interface {
 	isOfpHelloElemHeader_Element()
 }
@@ -2469,63 +3666,47 @@
 
 func (*OfpHelloElemHeader_Versionbitmap) isOfpHelloElemHeader_Element() {}
 
-func (m *OfpHelloElemHeader) GetElement() isOfpHelloElemHeader_Element {
-	if m != nil {
-		return m.Element
-	}
-	return nil
-}
-
-func (m *OfpHelloElemHeader) GetVersionbitmap() *OfpHelloElemVersionbitmap {
-	if x, ok := m.GetElement().(*OfpHelloElemHeader_Versionbitmap); ok {
-		return x.Versionbitmap
-	}
-	return nil
-}
-
-// XXX_OneofWrappers is for the internal use of the proto package.
-func (*OfpHelloElemHeader) XXX_OneofWrappers() []interface{} {
-	return []interface{}{
-		(*OfpHelloElemHeader_Versionbitmap)(nil),
-	}
-}
-
 // Version bitmap Hello Element
 type OfpHelloElemVersionbitmap struct {
-	Bitmaps              []uint32 `protobuf:"varint,2,rep,packed,name=bitmaps,proto3" json:"bitmaps,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Bitmaps       []uint32               `protobuf:"varint,2,rep,packed,name=bitmaps,proto3" json:"bitmaps,omitempty"` // List of bitmaps - supported versions
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *OfpHelloElemVersionbitmap) Reset()         { *m = OfpHelloElemVersionbitmap{} }
-func (m *OfpHelloElemVersionbitmap) String() string { return proto.CompactTextString(m) }
-func (*OfpHelloElemVersionbitmap) ProtoMessage()    {}
+func (x *OfpHelloElemVersionbitmap) Reset() {
+	*x = OfpHelloElemVersionbitmap{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpHelloElemVersionbitmap) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpHelloElemVersionbitmap) ProtoMessage() {}
+
+func (x *OfpHelloElemVersionbitmap) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[2]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpHelloElemVersionbitmap.ProtoReflect.Descriptor instead.
 func (*OfpHelloElemVersionbitmap) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{2}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{2}
 }
 
-func (m *OfpHelloElemVersionbitmap) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpHelloElemVersionbitmap.Unmarshal(m, b)
-}
-func (m *OfpHelloElemVersionbitmap) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpHelloElemVersionbitmap.Marshal(b, m, deterministic)
-}
-func (m *OfpHelloElemVersionbitmap) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpHelloElemVersionbitmap.Merge(m, src)
-}
-func (m *OfpHelloElemVersionbitmap) XXX_Size() int {
-	return xxx_messageInfo_OfpHelloElemVersionbitmap.Size(m)
-}
-func (m *OfpHelloElemVersionbitmap) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpHelloElemVersionbitmap.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpHelloElemVersionbitmap proto.InternalMessageInfo
-
-func (m *OfpHelloElemVersionbitmap) GetBitmaps() []uint32 {
-	if m != nil {
-		return m.Bitmaps
+func (x *OfpHelloElemVersionbitmap) GetBitmaps() []uint32 {
+	if x != nil {
+		return x.Bitmaps
 	}
 	return nil
 }
@@ -2534,604 +3715,681 @@
 // variable size. Unknown elements types must be ignored/skipped, to allow
 // for future extensions.
 type OfpHello struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
 	// Hello element list
-	Elements             []*OfpHelloElemHeader `protobuf:"bytes,1,rep,name=elements,proto3" json:"elements,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
-	XXX_unrecognized     []byte                `json:"-"`
-	XXX_sizecache        int32                 `json:"-"`
+	Elements      []*OfpHelloElemHeader `protobuf:"bytes,1,rep,name=elements,proto3" json:"elements,omitempty"` // 0 or more
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *OfpHello) Reset()         { *m = OfpHello{} }
-func (m *OfpHello) String() string { return proto.CompactTextString(m) }
-func (*OfpHello) ProtoMessage()    {}
+func (x *OfpHello) Reset() {
+	*x = OfpHello{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpHello) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpHello) ProtoMessage() {}
+
+func (x *OfpHello) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[3]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpHello.ProtoReflect.Descriptor instead.
 func (*OfpHello) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{3}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{3}
 }
 
-func (m *OfpHello) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpHello.Unmarshal(m, b)
-}
-func (m *OfpHello) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpHello.Marshal(b, m, deterministic)
-}
-func (m *OfpHello) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpHello.Merge(m, src)
-}
-func (m *OfpHello) XXX_Size() int {
-	return xxx_messageInfo_OfpHello.Size(m)
-}
-func (m *OfpHello) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpHello.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpHello proto.InternalMessageInfo
-
-func (m *OfpHello) GetElements() []*OfpHelloElemHeader {
-	if m != nil {
-		return m.Elements
+func (x *OfpHello) GetElements() []*OfpHelloElemHeader {
+	if x != nil {
+		return x.Elements
 	}
 	return nil
 }
 
 // Switch configuration.
 type OfpSwitchConfig struct {
-	//ofp_header header;
-	Flags                uint32   `protobuf:"varint,1,opt,name=flags,proto3" json:"flags,omitempty"`
-	MissSendLen          uint32   `protobuf:"varint,2,opt,name=miss_send_len,json=missSendLen,proto3" json:"miss_send_len,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// ofp_header header;
+	Flags         uint32 `protobuf:"varint,1,opt,name=flags,proto3" json:"flags,omitempty"` // Bitmap of OFPC_* flags.
+	MissSendLen   uint32 `protobuf:"varint,2,opt,name=miss_send_len,json=missSendLen,proto3" json:"miss_send_len,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *OfpSwitchConfig) Reset()         { *m = OfpSwitchConfig{} }
-func (m *OfpSwitchConfig) String() string { return proto.CompactTextString(m) }
-func (*OfpSwitchConfig) ProtoMessage()    {}
+func (x *OfpSwitchConfig) Reset() {
+	*x = OfpSwitchConfig{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpSwitchConfig) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpSwitchConfig) ProtoMessage() {}
+
+func (x *OfpSwitchConfig) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[4]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpSwitchConfig.ProtoReflect.Descriptor instead.
 func (*OfpSwitchConfig) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{4}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{4}
 }
 
-func (m *OfpSwitchConfig) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpSwitchConfig.Unmarshal(m, b)
-}
-func (m *OfpSwitchConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpSwitchConfig.Marshal(b, m, deterministic)
-}
-func (m *OfpSwitchConfig) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpSwitchConfig.Merge(m, src)
-}
-func (m *OfpSwitchConfig) XXX_Size() int {
-	return xxx_messageInfo_OfpSwitchConfig.Size(m)
-}
-func (m *OfpSwitchConfig) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpSwitchConfig.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpSwitchConfig proto.InternalMessageInfo
-
-func (m *OfpSwitchConfig) GetFlags() uint32 {
-	if m != nil {
-		return m.Flags
+func (x *OfpSwitchConfig) GetFlags() uint32 {
+	if x != nil {
+		return x.Flags
 	}
 	return 0
 }
 
-func (m *OfpSwitchConfig) GetMissSendLen() uint32 {
-	if m != nil {
-		return m.MissSendLen
+func (x *OfpSwitchConfig) GetMissSendLen() uint32 {
+	if x != nil {
+		return x.MissSendLen
 	}
 	return 0
 }
 
 // Configure/Modify behavior of a flow table
 type OfpTableMod struct {
-	//ofp_header header;
-	TableId              uint32   `protobuf:"varint,1,opt,name=table_id,json=tableId,proto3" json:"table_id,omitempty"`
-	Config               uint32   `protobuf:"varint,2,opt,name=config,proto3" json:"config,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// ofp_header header;
+	TableId       uint32 `protobuf:"varint,1,opt,name=table_id,json=tableId,proto3" json:"table_id,omitempty"` // ID of the table, OFPTT_ALL indicates all tables
+	Config        uint32 `protobuf:"varint,2,opt,name=config,proto3" json:"config,omitempty"`                  // Bitmap of OFPTC_* flags
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *OfpTableMod) Reset()         { *m = OfpTableMod{} }
-func (m *OfpTableMod) String() string { return proto.CompactTextString(m) }
-func (*OfpTableMod) ProtoMessage()    {}
+func (x *OfpTableMod) Reset() {
+	*x = OfpTableMod{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpTableMod) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpTableMod) ProtoMessage() {}
+
+func (x *OfpTableMod) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[5]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpTableMod.ProtoReflect.Descriptor instead.
 func (*OfpTableMod) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{5}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{5}
 }
 
-func (m *OfpTableMod) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpTableMod.Unmarshal(m, b)
-}
-func (m *OfpTableMod) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpTableMod.Marshal(b, m, deterministic)
-}
-func (m *OfpTableMod) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpTableMod.Merge(m, src)
-}
-func (m *OfpTableMod) XXX_Size() int {
-	return xxx_messageInfo_OfpTableMod.Size(m)
-}
-func (m *OfpTableMod) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpTableMod.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpTableMod proto.InternalMessageInfo
-
-func (m *OfpTableMod) GetTableId() uint32 {
-	if m != nil {
-		return m.TableId
+func (x *OfpTableMod) GetTableId() uint32 {
+	if x != nil {
+		return x.TableId
 	}
 	return 0
 }
 
-func (m *OfpTableMod) GetConfig() uint32 {
-	if m != nil {
-		return m.Config
+func (x *OfpTableMod) GetConfig() uint32 {
+	if x != nil {
+		return x.Config
 	}
 	return 0
 }
 
 // Description of a port
 type OfpPort struct {
-	PortNo uint32   `protobuf:"varint,1,opt,name=port_no,json=portNo,proto3" json:"port_no,omitempty"`
-	HwAddr []uint32 `protobuf:"varint,2,rep,packed,name=hw_addr,json=hwAddr,proto3" json:"hw_addr,omitempty"`
-	Name   string   `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
-	Config uint32   `protobuf:"varint,4,opt,name=config,proto3" json:"config,omitempty"`
-	State  uint32   `protobuf:"varint,5,opt,name=state,proto3" json:"state,omitempty"`
+	state  protoimpl.MessageState `protogen:"open.v1"`
+	PortNo uint32                 `protobuf:"varint,1,opt,name=port_no,json=portNo,proto3" json:"port_no,omitempty"`
+	HwAddr []uint32               `protobuf:"varint,2,rep,packed,name=hw_addr,json=hwAddr,proto3" json:"hw_addr,omitempty"` // [OFP_ETH_ALEN];
+	Name   string                 `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`                           // Null-terminated
+	Config uint32                 `protobuf:"varint,4,opt,name=config,proto3" json:"config,omitempty"`                      // Bitmap of OFPPC_* flags.
+	State  uint32                 `protobuf:"varint,5,opt,name=state,proto3" json:"state,omitempty"`                        // Bitmap of OFPPS_* flags.
 	// Bitmaps of OFPPF_* that describe features.  All bits zeroed if
 	// unsupported or unavailable.
-	Curr                 uint32   `protobuf:"varint,6,opt,name=curr,proto3" json:"curr,omitempty"`
-	Advertised           uint32   `protobuf:"varint,7,opt,name=advertised,proto3" json:"advertised,omitempty"`
-	Supported            uint32   `protobuf:"varint,8,opt,name=supported,proto3" json:"supported,omitempty"`
-	Peer                 uint32   `protobuf:"varint,9,opt,name=peer,proto3" json:"peer,omitempty"`
-	CurrSpeed            uint32   `protobuf:"varint,10,opt,name=curr_speed,json=currSpeed,proto3" json:"curr_speed,omitempty"`
-	MaxSpeed             uint32   `protobuf:"varint,11,opt,name=max_speed,json=maxSpeed,proto3" json:"max_speed,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	Curr          uint32 `protobuf:"varint,6,opt,name=curr,proto3" json:"curr,omitempty"`                             // Current features.
+	Advertised    uint32 `protobuf:"varint,7,opt,name=advertised,proto3" json:"advertised,omitempty"`                 // Features being advertised by the port.
+	Supported     uint32 `protobuf:"varint,8,opt,name=supported,proto3" json:"supported,omitempty"`                   // Features supported by the port.
+	Peer          uint32 `protobuf:"varint,9,opt,name=peer,proto3" json:"peer,omitempty"`                             // Features advertised by peer.
+	CurrSpeed     uint32 `protobuf:"varint,10,opt,name=curr_speed,json=currSpeed,proto3" json:"curr_speed,omitempty"` // Current port bitrate in kbps.
+	MaxSpeed      uint32 `protobuf:"varint,11,opt,name=max_speed,json=maxSpeed,proto3" json:"max_speed,omitempty"`    // Max port bitrate in kbps
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *OfpPort) Reset()         { *m = OfpPort{} }
-func (m *OfpPort) String() string { return proto.CompactTextString(m) }
-func (*OfpPort) ProtoMessage()    {}
+func (x *OfpPort) Reset() {
+	*x = OfpPort{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpPort) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpPort) ProtoMessage() {}
+
+func (x *OfpPort) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[6]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpPort.ProtoReflect.Descriptor instead.
 func (*OfpPort) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{6}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{6}
 }
 
-func (m *OfpPort) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpPort.Unmarshal(m, b)
-}
-func (m *OfpPort) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpPort.Marshal(b, m, deterministic)
-}
-func (m *OfpPort) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpPort.Merge(m, src)
-}
-func (m *OfpPort) XXX_Size() int {
-	return xxx_messageInfo_OfpPort.Size(m)
-}
-func (m *OfpPort) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpPort.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpPort proto.InternalMessageInfo
-
-func (m *OfpPort) GetPortNo() uint32 {
-	if m != nil {
-		return m.PortNo
+func (x *OfpPort) GetPortNo() uint32 {
+	if x != nil {
+		return x.PortNo
 	}
 	return 0
 }
 
-func (m *OfpPort) GetHwAddr() []uint32 {
-	if m != nil {
-		return m.HwAddr
+func (x *OfpPort) GetHwAddr() []uint32 {
+	if x != nil {
+		return x.HwAddr
 	}
 	return nil
 }
 
-func (m *OfpPort) GetName() string {
-	if m != nil {
-		return m.Name
+func (x *OfpPort) GetName() string {
+	if x != nil {
+		return x.Name
 	}
 	return ""
 }
 
-func (m *OfpPort) GetConfig() uint32 {
-	if m != nil {
-		return m.Config
+func (x *OfpPort) GetConfig() uint32 {
+	if x != nil {
+		return x.Config
 	}
 	return 0
 }
 
-func (m *OfpPort) GetState() uint32 {
-	if m != nil {
-		return m.State
+func (x *OfpPort) GetState() uint32 {
+	if x != nil {
+		return x.State
 	}
 	return 0
 }
 
-func (m *OfpPort) GetCurr() uint32 {
-	if m != nil {
-		return m.Curr
+func (x *OfpPort) GetCurr() uint32 {
+	if x != nil {
+		return x.Curr
 	}
 	return 0
 }
 
-func (m *OfpPort) GetAdvertised() uint32 {
-	if m != nil {
-		return m.Advertised
+func (x *OfpPort) GetAdvertised() uint32 {
+	if x != nil {
+		return x.Advertised
 	}
 	return 0
 }
 
-func (m *OfpPort) GetSupported() uint32 {
-	if m != nil {
-		return m.Supported
+func (x *OfpPort) GetSupported() uint32 {
+	if x != nil {
+		return x.Supported
 	}
 	return 0
 }
 
-func (m *OfpPort) GetPeer() uint32 {
-	if m != nil {
-		return m.Peer
+func (x *OfpPort) GetPeer() uint32 {
+	if x != nil {
+		return x.Peer
 	}
 	return 0
 }
 
-func (m *OfpPort) GetCurrSpeed() uint32 {
-	if m != nil {
-		return m.CurrSpeed
+func (x *OfpPort) GetCurrSpeed() uint32 {
+	if x != nil {
+		return x.CurrSpeed
 	}
 	return 0
 }
 
-func (m *OfpPort) GetMaxSpeed() uint32 {
-	if m != nil {
-		return m.MaxSpeed
+func (x *OfpPort) GetMaxSpeed() uint32 {
+	if x != nil {
+		return x.MaxSpeed
 	}
 	return 0
 }
 
 // Switch features.
 type OfpSwitchFeatures struct {
-	//ofp_header header;
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// ofp_header header;
 	DatapathId  uint64 `protobuf:"varint,1,opt,name=datapath_id,json=datapathId,proto3" json:"datapath_id,omitempty"`
-	NBuffers    uint32 `protobuf:"varint,2,opt,name=n_buffers,json=nBuffers,proto3" json:"n_buffers,omitempty"`
-	NTables     uint32 `protobuf:"varint,3,opt,name=n_tables,json=nTables,proto3" json:"n_tables,omitempty"`
-	AuxiliaryId uint32 `protobuf:"varint,4,opt,name=auxiliary_id,json=auxiliaryId,proto3" json:"auxiliary_id,omitempty"`
+	NBuffers    uint32 `protobuf:"varint,2,opt,name=n_buffers,json=nBuffers,proto3" json:"n_buffers,omitempty"`          // Max packets buffered at once.
+	NTables     uint32 `protobuf:"varint,3,opt,name=n_tables,json=nTables,proto3" json:"n_tables,omitempty"`             // Number of tables supported by datapath.
+	AuxiliaryId uint32 `protobuf:"varint,4,opt,name=auxiliary_id,json=auxiliaryId,proto3" json:"auxiliary_id,omitempty"` // Identify auxiliary connections
 	// Features.
-	Capabilities         uint32   `protobuf:"varint,5,opt,name=capabilities,proto3" json:"capabilities,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	Capabilities  uint32 `protobuf:"varint,5,opt,name=capabilities,proto3" json:"capabilities,omitempty"` // Bitmap of support "ofp_capabilities".
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *OfpSwitchFeatures) Reset()         { *m = OfpSwitchFeatures{} }
-func (m *OfpSwitchFeatures) String() string { return proto.CompactTextString(m) }
-func (*OfpSwitchFeatures) ProtoMessage()    {}
+func (x *OfpSwitchFeatures) Reset() {
+	*x = OfpSwitchFeatures{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[7]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpSwitchFeatures) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpSwitchFeatures) ProtoMessage() {}
+
+func (x *OfpSwitchFeatures) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[7]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpSwitchFeatures.ProtoReflect.Descriptor instead.
 func (*OfpSwitchFeatures) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{7}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{7}
 }
 
-func (m *OfpSwitchFeatures) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpSwitchFeatures.Unmarshal(m, b)
-}
-func (m *OfpSwitchFeatures) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpSwitchFeatures.Marshal(b, m, deterministic)
-}
-func (m *OfpSwitchFeatures) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpSwitchFeatures.Merge(m, src)
-}
-func (m *OfpSwitchFeatures) XXX_Size() int {
-	return xxx_messageInfo_OfpSwitchFeatures.Size(m)
-}
-func (m *OfpSwitchFeatures) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpSwitchFeatures.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpSwitchFeatures proto.InternalMessageInfo
-
-func (m *OfpSwitchFeatures) GetDatapathId() uint64 {
-	if m != nil {
-		return m.DatapathId
+func (x *OfpSwitchFeatures) GetDatapathId() uint64 {
+	if x != nil {
+		return x.DatapathId
 	}
 	return 0
 }
 
-func (m *OfpSwitchFeatures) GetNBuffers() uint32 {
-	if m != nil {
-		return m.NBuffers
+func (x *OfpSwitchFeatures) GetNBuffers() uint32 {
+	if x != nil {
+		return x.NBuffers
 	}
 	return 0
 }
 
-func (m *OfpSwitchFeatures) GetNTables() uint32 {
-	if m != nil {
-		return m.NTables
+func (x *OfpSwitchFeatures) GetNTables() uint32 {
+	if x != nil {
+		return x.NTables
 	}
 	return 0
 }
 
-func (m *OfpSwitchFeatures) GetAuxiliaryId() uint32 {
-	if m != nil {
-		return m.AuxiliaryId
+func (x *OfpSwitchFeatures) GetAuxiliaryId() uint32 {
+	if x != nil {
+		return x.AuxiliaryId
 	}
 	return 0
 }
 
-func (m *OfpSwitchFeatures) GetCapabilities() uint32 {
-	if m != nil {
-		return m.Capabilities
+func (x *OfpSwitchFeatures) GetCapabilities() uint32 {
+	if x != nil {
+		return x.Capabilities
 	}
 	return 0
 }
 
 // A physical port has changed in the datapath
 type OfpPortStatus struct {
-	//ofp_header header;
-	Reason               OfpPortReason `protobuf:"varint,1,opt,name=reason,proto3,enum=openflow_13.OfpPortReason" json:"reason,omitempty"`
-	Desc                 *OfpPort      `protobuf:"bytes,2,opt,name=desc,proto3" json:"desc,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
-	XXX_unrecognized     []byte        `json:"-"`
-	XXX_sizecache        int32         `json:"-"`
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// ofp_header header;
+	Reason        OfpPortReason `protobuf:"varint,1,opt,name=reason,proto3,enum=openflow_13.OfpPortReason" json:"reason,omitempty"` // One of OFPPR_*.
+	Desc          *OfpPort      `protobuf:"bytes,2,opt,name=desc,proto3" json:"desc,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *OfpPortStatus) Reset()         { *m = OfpPortStatus{} }
-func (m *OfpPortStatus) String() string { return proto.CompactTextString(m) }
-func (*OfpPortStatus) ProtoMessage()    {}
+func (x *OfpPortStatus) Reset() {
+	*x = OfpPortStatus{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[8]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpPortStatus) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpPortStatus) ProtoMessage() {}
+
+func (x *OfpPortStatus) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[8]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpPortStatus.ProtoReflect.Descriptor instead.
 func (*OfpPortStatus) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{8}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{8}
 }
 
-func (m *OfpPortStatus) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpPortStatus.Unmarshal(m, b)
-}
-func (m *OfpPortStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpPortStatus.Marshal(b, m, deterministic)
-}
-func (m *OfpPortStatus) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpPortStatus.Merge(m, src)
-}
-func (m *OfpPortStatus) XXX_Size() int {
-	return xxx_messageInfo_OfpPortStatus.Size(m)
-}
-func (m *OfpPortStatus) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpPortStatus.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpPortStatus proto.InternalMessageInfo
-
-func (m *OfpPortStatus) GetReason() OfpPortReason {
-	if m != nil {
-		return m.Reason
+func (x *OfpPortStatus) GetReason() OfpPortReason {
+	if x != nil {
+		return x.Reason
 	}
 	return OfpPortReason_OFPPR_ADD
 }
 
-func (m *OfpPortStatus) GetDesc() *OfpPort {
-	if m != nil {
-		return m.Desc
+func (x *OfpPortStatus) GetDesc() *OfpPort {
+	if x != nil {
+		return x.Desc
 	}
 	return nil
 }
 
 // A physical device has changed in the datapath
 type OfpDeviceStatus struct {
-	//ofp_header header;
-	Status               OfpDeviceConnection `protobuf:"varint,1,opt,name=status,proto3,enum=openflow_13.OfpDeviceConnection" json:"status,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
-	XXX_unrecognized     []byte              `json:"-"`
-	XXX_sizecache        int32               `json:"-"`
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// ofp_header header;
+	Status        OfpDeviceConnection `protobuf:"varint,1,opt,name=status,proto3,enum=openflow_13.OfpDeviceConnection" json:"status,omitempty"` // One of OFPDEV_*.
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *OfpDeviceStatus) Reset()         { *m = OfpDeviceStatus{} }
-func (m *OfpDeviceStatus) String() string { return proto.CompactTextString(m) }
-func (*OfpDeviceStatus) ProtoMessage()    {}
+func (x *OfpDeviceStatus) Reset() {
+	*x = OfpDeviceStatus{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[9]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpDeviceStatus) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpDeviceStatus) ProtoMessage() {}
+
+func (x *OfpDeviceStatus) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[9]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpDeviceStatus.ProtoReflect.Descriptor instead.
 func (*OfpDeviceStatus) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{9}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{9}
 }
 
-func (m *OfpDeviceStatus) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpDeviceStatus.Unmarshal(m, b)
-}
-func (m *OfpDeviceStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpDeviceStatus.Marshal(b, m, deterministic)
-}
-func (m *OfpDeviceStatus) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpDeviceStatus.Merge(m, src)
-}
-func (m *OfpDeviceStatus) XXX_Size() int {
-	return xxx_messageInfo_OfpDeviceStatus.Size(m)
-}
-func (m *OfpDeviceStatus) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpDeviceStatus.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpDeviceStatus proto.InternalMessageInfo
-
-func (m *OfpDeviceStatus) GetStatus() OfpDeviceConnection {
-	if m != nil {
-		return m.Status
+func (x *OfpDeviceStatus) GetStatus() OfpDeviceConnection {
+	if x != nil {
+		return x.Status
 	}
 	return OfpDeviceConnection_OFPDEV_CONNECTED
 }
 
 // Modify behavior of the physical port
 type OfpPortMod struct {
-	//ofp_header header;
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// ofp_header header;
 	PortNo uint32   `protobuf:"varint,1,opt,name=port_no,json=portNo,proto3" json:"port_no,omitempty"`
-	HwAddr []uint32 `protobuf:"varint,2,rep,packed,name=hw_addr,json=hwAddr,proto3" json:"hw_addr,omitempty"`
+	HwAddr []uint32 `protobuf:"varint,2,rep,packed,name=hw_addr,json=hwAddr,proto3" json:"hw_addr,omitempty"` //[OFP_ETH_ALEN];
 	// The hardware address is not
-	//configurable.  This is used to
-	//sanity-check the request, so it must
-	//be the same as returned in an
-	//ofp_port struct.
-	Config               uint32   `protobuf:"varint,3,opt,name=config,proto3" json:"config,omitempty"`
-	Mask                 uint32   `protobuf:"varint,4,opt,name=mask,proto3" json:"mask,omitempty"`
-	Advertise            uint32   `protobuf:"varint,5,opt,name=advertise,proto3" json:"advertise,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	// configurable.  This is used to
+	// sanity-check the request, so it must
+	// be the same as returned in an
+	// ofp_port struct.
+	Config        uint32 `protobuf:"varint,3,opt,name=config,proto3" json:"config,omitempty"` // Bitmap of OFPPC_* flags.
+	Mask          uint32 `protobuf:"varint,4,opt,name=mask,proto3" json:"mask,omitempty"`     // Bitmap of OFPPC_* flags to be changed.
+	Advertise     uint32 `protobuf:"varint,5,opt,name=advertise,proto3" json:"advertise,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *OfpPortMod) Reset()         { *m = OfpPortMod{} }
-func (m *OfpPortMod) String() string { return proto.CompactTextString(m) }
-func (*OfpPortMod) ProtoMessage()    {}
+func (x *OfpPortMod) Reset() {
+	*x = OfpPortMod{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[10]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpPortMod) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpPortMod) ProtoMessage() {}
+
+func (x *OfpPortMod) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[10]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpPortMod.ProtoReflect.Descriptor instead.
 func (*OfpPortMod) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{10}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{10}
 }
 
-func (m *OfpPortMod) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpPortMod.Unmarshal(m, b)
-}
-func (m *OfpPortMod) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpPortMod.Marshal(b, m, deterministic)
-}
-func (m *OfpPortMod) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpPortMod.Merge(m, src)
-}
-func (m *OfpPortMod) XXX_Size() int {
-	return xxx_messageInfo_OfpPortMod.Size(m)
-}
-func (m *OfpPortMod) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpPortMod.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpPortMod proto.InternalMessageInfo
-
-func (m *OfpPortMod) GetPortNo() uint32 {
-	if m != nil {
-		return m.PortNo
+func (x *OfpPortMod) GetPortNo() uint32 {
+	if x != nil {
+		return x.PortNo
 	}
 	return 0
 }
 
-func (m *OfpPortMod) GetHwAddr() []uint32 {
-	if m != nil {
-		return m.HwAddr
+func (x *OfpPortMod) GetHwAddr() []uint32 {
+	if x != nil {
+		return x.HwAddr
 	}
 	return nil
 }
 
-func (m *OfpPortMod) GetConfig() uint32 {
-	if m != nil {
-		return m.Config
+func (x *OfpPortMod) GetConfig() uint32 {
+	if x != nil {
+		return x.Config
 	}
 	return 0
 }
 
-func (m *OfpPortMod) GetMask() uint32 {
-	if m != nil {
-		return m.Mask
+func (x *OfpPortMod) GetMask() uint32 {
+	if x != nil {
+		return x.Mask
 	}
 	return 0
 }
 
-func (m *OfpPortMod) GetAdvertise() uint32 {
-	if m != nil {
-		return m.Advertise
+func (x *OfpPortMod) GetAdvertise() uint32 {
+	if x != nil {
+		return x.Advertise
 	}
 	return 0
 }
 
 // Fields to match against flows
 type OfpMatch struct {
-	Type                 OfpMatchType   `protobuf:"varint,1,opt,name=type,proto3,enum=openflow_13.OfpMatchType" json:"type,omitempty"`
-	OxmFields            []*OfpOxmField `protobuf:"bytes,2,rep,name=oxm_fields,json=oxmFields,proto3" json:"oxm_fields,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
-	XXX_unrecognized     []byte         `json:"-"`
-	XXX_sizecache        int32          `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Type          OfpMatchType           `protobuf:"varint,1,opt,name=type,proto3,enum=openflow_13.OfpMatchType" json:"type,omitempty"` // One of OFPMT_*
+	OxmFields     []*OfpOxmField         `protobuf:"bytes,2,rep,name=oxm_fields,json=oxmFields,proto3" json:"oxm_fields,omitempty"`     // 0 or more
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *OfpMatch) Reset()         { *m = OfpMatch{} }
-func (m *OfpMatch) String() string { return proto.CompactTextString(m) }
-func (*OfpMatch) ProtoMessage()    {}
+func (x *OfpMatch) Reset() {
+	*x = OfpMatch{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[11]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpMatch) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpMatch) ProtoMessage() {}
+
+func (x *OfpMatch) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[11]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpMatch.ProtoReflect.Descriptor instead.
 func (*OfpMatch) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{11}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{11}
 }
 
-func (m *OfpMatch) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpMatch.Unmarshal(m, b)
-}
-func (m *OfpMatch) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpMatch.Marshal(b, m, deterministic)
-}
-func (m *OfpMatch) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpMatch.Merge(m, src)
-}
-func (m *OfpMatch) XXX_Size() int {
-	return xxx_messageInfo_OfpMatch.Size(m)
-}
-func (m *OfpMatch) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpMatch.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpMatch proto.InternalMessageInfo
-
-func (m *OfpMatch) GetType() OfpMatchType {
-	if m != nil {
-		return m.Type
+func (x *OfpMatch) GetType() OfpMatchType {
+	if x != nil {
+		return x.Type
 	}
 	return OfpMatchType_OFPMT_STANDARD
 }
 
-func (m *OfpMatch) GetOxmFields() []*OfpOxmField {
-	if m != nil {
-		return m.OxmFields
+func (x *OfpMatch) GetOxmFields() []*OfpOxmField {
+	if x != nil {
+		return x.OxmFields
 	}
 	return nil
 }
 
 // OXM Flow match fields
 type OfpOxmField struct {
-	OxmClass OfpOxmClass `protobuf:"varint,1,opt,name=oxm_class,json=oxmClass,proto3,enum=openflow_13.OfpOxmClass" json:"oxm_class,omitempty"`
+	state    protoimpl.MessageState `protogen:"open.v1"`
+	OxmClass OfpOxmClass            `protobuf:"varint,1,opt,name=oxm_class,json=oxmClass,proto3,enum=openflow_13.OfpOxmClass" json:"oxm_class,omitempty"`
 	// Types that are valid to be assigned to Field:
+	//
 	//	*OfpOxmField_OfbField
 	//	*OfpOxmField_ExperimenterField
-	Field                isOfpOxmField_Field `protobuf_oneof:"field"`
-	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
-	XXX_unrecognized     []byte              `json:"-"`
-	XXX_sizecache        int32               `json:"-"`
+	Field         isOfpOxmField_Field `protobuf_oneof:"field"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *OfpOxmField) Reset()         { *m = OfpOxmField{} }
-func (m *OfpOxmField) String() string { return proto.CompactTextString(m) }
-func (*OfpOxmField) ProtoMessage()    {}
+func (x *OfpOxmField) Reset() {
+	*x = OfpOxmField{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[12]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpOxmField) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpOxmField) ProtoMessage() {}
+
+func (x *OfpOxmField) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[12]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpOxmField.ProtoReflect.Descriptor instead.
 func (*OfpOxmField) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{12}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{12}
 }
 
-func (m *OfpOxmField) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpOxmField.Unmarshal(m, b)
-}
-func (m *OfpOxmField) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpOxmField.Marshal(b, m, deterministic)
-}
-func (m *OfpOxmField) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpOxmField.Merge(m, src)
-}
-func (m *OfpOxmField) XXX_Size() int {
-	return xxx_messageInfo_OfpOxmField.Size(m)
-}
-func (m *OfpOxmField) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpOxmField.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpOxmField proto.InternalMessageInfo
-
-func (m *OfpOxmField) GetOxmClass() OfpOxmClass {
-	if m != nil {
-		return m.OxmClass
+func (x *OfpOxmField) GetOxmClass() OfpOxmClass {
+	if x != nil {
+		return x.OxmClass
 	}
 	return OfpOxmClass_OFPXMC_NXM_0
 }
 
+func (x *OfpOxmField) GetField() isOfpOxmField_Field {
+	if x != nil {
+		return x.Field
+	}
+	return nil
+}
+
+func (x *OfpOxmField) GetOfbField() *OfpOxmOfbField {
+	if x != nil {
+		if x, ok := x.Field.(*OfpOxmField_OfbField); ok {
+			return x.OfbField
+		}
+	}
+	return nil
+}
+
+func (x *OfpOxmField) GetExperimenterField() *OfpOxmExperimenterField {
+	if x != nil {
+		if x, ok := x.Field.(*OfpOxmField_ExperimenterField); ok {
+			return x.ExperimenterField
+		}
+	}
+	return nil
+}
+
 type isOfpOxmField_Field interface {
 	isOfpOxmField_Field()
 }
 
 type OfpOxmField_OfbField struct {
+	// 2 and 3 reserved for NXM_0 and NXM-1 OXM classes
 	OfbField *OfpOxmOfbField `protobuf:"bytes,4,opt,name=ofb_field,json=ofbField,proto3,oneof"`
 }
 
@@ -3143,40 +4401,13 @@
 
 func (*OfpOxmField_ExperimenterField) isOfpOxmField_Field() {}
 
-func (m *OfpOxmField) GetField() isOfpOxmField_Field {
-	if m != nil {
-		return m.Field
-	}
-	return nil
-}
-
-func (m *OfpOxmField) GetOfbField() *OfpOxmOfbField {
-	if x, ok := m.GetField().(*OfpOxmField_OfbField); ok {
-		return x.OfbField
-	}
-	return nil
-}
-
-func (m *OfpOxmField) GetExperimenterField() *OfpOxmExperimenterField {
-	if x, ok := m.GetField().(*OfpOxmField_ExperimenterField); ok {
-		return x.ExperimenterField
-	}
-	return nil
-}
-
-// XXX_OneofWrappers is for the internal use of the proto package.
-func (*OfpOxmField) XXX_OneofWrappers() []interface{} {
-	return []interface{}{
-		(*OfpOxmField_OfbField)(nil),
-		(*OfpOxmField_ExperimenterField)(nil),
-	}
-}
-
 // OXM OpenFlow Basic Match Field
 type OfpOxmOfbField struct {
-	Type    OxmOfbFieldTypes `protobuf:"varint,1,opt,name=type,proto3,enum=openflow_13.OxmOfbFieldTypes" json:"type,omitempty"`
-	HasMask bool             `protobuf:"varint,2,opt,name=has_mask,json=hasMask,proto3" json:"has_mask,omitempty"`
+	state   protoimpl.MessageState `protogen:"open.v1"`
+	Type    OxmOfbFieldTypes       `protobuf:"varint,1,opt,name=type,proto3,enum=openflow_13.OxmOfbFieldTypes" json:"type,omitempty"`
+	HasMask bool                   `protobuf:"varint,2,opt,name=has_mask,json=hasMask,proto3" json:"has_mask,omitempty"`
 	// Types that are valid to be assigned to Value:
+	//
 	//	*OfpOxmOfbField_Port
 	//	*OfpOxmOfbField_PhysicalPort
 	//	*OfpOxmOfbField_TableMetadata
@@ -3219,8 +4450,8 @@
 	//	*OfpOxmOfbField_Ipv6Exthdr
 	Value isOfpOxmOfbField_Value `protobuf_oneof:"value"`
 	// Optional mask values (must be present when has_mask is true
-	//
 	// Types that are valid to be assigned to Mask:
+	//
 	//	*OfpOxmOfbField_TableMetadataMask
 	//	*OfpOxmOfbField_EthDstMask
 	//	*OfpOxmOfbField_EthSrcMask
@@ -3235,213 +4466,774 @@
 	//	*OfpOxmOfbField_PbbIsidMask
 	//	*OfpOxmOfbField_TunnelIdMask
 	//	*OfpOxmOfbField_Ipv6ExthdrMask
-	Mask                 isOfpOxmOfbField_Mask `protobuf_oneof:"mask"`
-	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
-	XXX_unrecognized     []byte                `json:"-"`
-	XXX_sizecache        int32                 `json:"-"`
+	Mask          isOfpOxmOfbField_Mask `protobuf_oneof:"mask"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *OfpOxmOfbField) Reset()         { *m = OfpOxmOfbField{} }
-func (m *OfpOxmOfbField) String() string { return proto.CompactTextString(m) }
-func (*OfpOxmOfbField) ProtoMessage()    {}
+func (x *OfpOxmOfbField) Reset() {
+	*x = OfpOxmOfbField{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[13]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpOxmOfbField) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpOxmOfbField) ProtoMessage() {}
+
+func (x *OfpOxmOfbField) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[13]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpOxmOfbField.ProtoReflect.Descriptor instead.
 func (*OfpOxmOfbField) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{13}
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{13}
 }
 
-func (m *OfpOxmOfbField) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpOxmOfbField.Unmarshal(m, b)
-}
-func (m *OfpOxmOfbField) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpOxmOfbField.Marshal(b, m, deterministic)
-}
-func (m *OfpOxmOfbField) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpOxmOfbField.Merge(m, src)
-}
-func (m *OfpOxmOfbField) XXX_Size() int {
-	return xxx_messageInfo_OfpOxmOfbField.Size(m)
-}
-func (m *OfpOxmOfbField) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpOxmOfbField.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpOxmOfbField proto.InternalMessageInfo
-
-func (m *OfpOxmOfbField) GetType() OxmOfbFieldTypes {
-	if m != nil {
-		return m.Type
+func (x *OfpOxmOfbField) GetType() OxmOfbFieldTypes {
+	if x != nil {
+		return x.Type
 	}
 	return OxmOfbFieldTypes_OFPXMT_OFB_IN_PORT
 }
 
-func (m *OfpOxmOfbField) GetHasMask() bool {
-	if m != nil {
-		return m.HasMask
+func (x *OfpOxmOfbField) GetHasMask() bool {
+	if x != nil {
+		return x.HasMask
 	}
 	return false
 }
 
+func (x *OfpOxmOfbField) GetValue() isOfpOxmOfbField_Value {
+	if x != nil {
+		return x.Value
+	}
+	return nil
+}
+
+func (x *OfpOxmOfbField) GetPort() uint32 {
+	if x != nil {
+		if x, ok := x.Value.(*OfpOxmOfbField_Port); ok {
+			return x.Port
+		}
+	}
+	return 0
+}
+
+func (x *OfpOxmOfbField) GetPhysicalPort() uint32 {
+	if x != nil {
+		if x, ok := x.Value.(*OfpOxmOfbField_PhysicalPort); ok {
+			return x.PhysicalPort
+		}
+	}
+	return 0
+}
+
+func (x *OfpOxmOfbField) GetTableMetadata() uint64 {
+	if x != nil {
+		if x, ok := x.Value.(*OfpOxmOfbField_TableMetadata); ok {
+			return x.TableMetadata
+		}
+	}
+	return 0
+}
+
+func (x *OfpOxmOfbField) GetEthDst() []byte {
+	if x != nil {
+		if x, ok := x.Value.(*OfpOxmOfbField_EthDst); ok {
+			return x.EthDst
+		}
+	}
+	return nil
+}
+
+func (x *OfpOxmOfbField) GetEthSrc() []byte {
+	if x != nil {
+		if x, ok := x.Value.(*OfpOxmOfbField_EthSrc); ok {
+			return x.EthSrc
+		}
+	}
+	return nil
+}
+
+func (x *OfpOxmOfbField) GetEthType() uint32 {
+	if x != nil {
+		if x, ok := x.Value.(*OfpOxmOfbField_EthType); ok {
+			return x.EthType
+		}
+	}
+	return 0
+}
+
+func (x *OfpOxmOfbField) GetVlanVid() uint32 {
+	if x != nil {
+		if x, ok := x.Value.(*OfpOxmOfbField_VlanVid); ok {
+			return x.VlanVid
+		}
+	}
+	return 0
+}
+
+func (x *OfpOxmOfbField) GetVlanPcp() uint32 {
+	if x != nil {
+		if x, ok := x.Value.(*OfpOxmOfbField_VlanPcp); ok {
+			return x.VlanPcp
+		}
+	}
+	return 0
+}
+
+func (x *OfpOxmOfbField) GetIpDscp() uint32 {
+	if x != nil {
+		if x, ok := x.Value.(*OfpOxmOfbField_IpDscp); ok {
+			return x.IpDscp
+		}
+	}
+	return 0
+}
+
+func (x *OfpOxmOfbField) GetIpEcn() uint32 {
+	if x != nil {
+		if x, ok := x.Value.(*OfpOxmOfbField_IpEcn); ok {
+			return x.IpEcn
+		}
+	}
+	return 0
+}
+
+func (x *OfpOxmOfbField) GetIpProto() uint32 {
+	if x != nil {
+		if x, ok := x.Value.(*OfpOxmOfbField_IpProto); ok {
+			return x.IpProto
+		}
+	}
+	return 0
+}
+
+func (x *OfpOxmOfbField) GetIpv4Src() uint32 {
+	if x != nil {
+		if x, ok := x.Value.(*OfpOxmOfbField_Ipv4Src); ok {
+			return x.Ipv4Src
+		}
+	}
+	return 0
+}
+
+func (x *OfpOxmOfbField) GetIpv4Dst() uint32 {
+	if x != nil {
+		if x, ok := x.Value.(*OfpOxmOfbField_Ipv4Dst); ok {
+			return x.Ipv4Dst
+		}
+	}
+	return 0
+}
+
+func (x *OfpOxmOfbField) GetTcpSrc() uint32 {
+	if x != nil {
+		if x, ok := x.Value.(*OfpOxmOfbField_TcpSrc); ok {
+			return x.TcpSrc
+		}
+	}
+	return 0
+}
+
+func (x *OfpOxmOfbField) GetTcpDst() uint32 {
+	if x != nil {
+		if x, ok := x.Value.(*OfpOxmOfbField_TcpDst); ok {
+			return x.TcpDst
+		}
+	}
+	return 0
+}
+
+func (x *OfpOxmOfbField) GetUdpSrc() uint32 {
+	if x != nil {
+		if x, ok := x.Value.(*OfpOxmOfbField_UdpSrc); ok {
+			return x.UdpSrc
+		}
+	}
+	return 0
+}
+
+func (x *OfpOxmOfbField) GetUdpDst() uint32 {
+	if x != nil {
+		if x, ok := x.Value.(*OfpOxmOfbField_UdpDst); ok {
+			return x.UdpDst
+		}
+	}
+	return 0
+}
+
+func (x *OfpOxmOfbField) GetSctpSrc() uint32 {
+	if x != nil {
+		if x, ok := x.Value.(*OfpOxmOfbField_SctpSrc); ok {
+			return x.SctpSrc
+		}
+	}
+	return 0
+}
+
+func (x *OfpOxmOfbField) GetSctpDst() uint32 {
+	if x != nil {
+		if x, ok := x.Value.(*OfpOxmOfbField_SctpDst); ok {
+			return x.SctpDst
+		}
+	}
+	return 0
+}
+
+func (x *OfpOxmOfbField) GetIcmpv4Type() uint32 {
+	if x != nil {
+		if x, ok := x.Value.(*OfpOxmOfbField_Icmpv4Type); ok {
+			return x.Icmpv4Type
+		}
+	}
+	return 0
+}
+
+func (x *OfpOxmOfbField) GetIcmpv4Code() uint32 {
+	if x != nil {
+		if x, ok := x.Value.(*OfpOxmOfbField_Icmpv4Code); ok {
+			return x.Icmpv4Code
+		}
+	}
+	return 0
+}
+
+func (x *OfpOxmOfbField) GetArpOp() uint32 {
+	if x != nil {
+		if x, ok := x.Value.(*OfpOxmOfbField_ArpOp); ok {
+			return x.ArpOp
+		}
+	}
+	return 0
+}
+
+func (x *OfpOxmOfbField) GetArpSpa() uint32 {
+	if x != nil {
+		if x, ok := x.Value.(*OfpOxmOfbField_ArpSpa); ok {
+			return x.ArpSpa
+		}
+	}
+	return 0
+}
+
+func (x *OfpOxmOfbField) GetArpTpa() uint32 {
+	if x != nil {
+		if x, ok := x.Value.(*OfpOxmOfbField_ArpTpa); ok {
+			return x.ArpTpa
+		}
+	}
+	return 0
+}
+
+func (x *OfpOxmOfbField) GetArpSha() []byte {
+	if x != nil {
+		if x, ok := x.Value.(*OfpOxmOfbField_ArpSha); ok {
+			return x.ArpSha
+		}
+	}
+	return nil
+}
+
+func (x *OfpOxmOfbField) GetArpTha() []byte {
+	if x != nil {
+		if x, ok := x.Value.(*OfpOxmOfbField_ArpTha); ok {
+			return x.ArpTha
+		}
+	}
+	return nil
+}
+
+func (x *OfpOxmOfbField) GetIpv6Src() []byte {
+	if x != nil {
+		if x, ok := x.Value.(*OfpOxmOfbField_Ipv6Src); ok {
+			return x.Ipv6Src
+		}
+	}
+	return nil
+}
+
+func (x *OfpOxmOfbField) GetIpv6Dst() []byte {
+	if x != nil {
+		if x, ok := x.Value.(*OfpOxmOfbField_Ipv6Dst); ok {
+			return x.Ipv6Dst
+		}
+	}
+	return nil
+}
+
+func (x *OfpOxmOfbField) GetIpv6Flabel() uint32 {
+	if x != nil {
+		if x, ok := x.Value.(*OfpOxmOfbField_Ipv6Flabel); ok {
+			return x.Ipv6Flabel
+		}
+	}
+	return 0
+}
+
+func (x *OfpOxmOfbField) GetIcmpv6Type() uint32 {
+	if x != nil {
+		if x, ok := x.Value.(*OfpOxmOfbField_Icmpv6Type); ok {
+			return x.Icmpv6Type
+		}
+	}
+	return 0
+}
+
+func (x *OfpOxmOfbField) GetIcmpv6Code() uint32 {
+	if x != nil {
+		if x, ok := x.Value.(*OfpOxmOfbField_Icmpv6Code); ok {
+			return x.Icmpv6Code
+		}
+	}
+	return 0
+}
+
+func (x *OfpOxmOfbField) GetIpv6NdTarget() []byte {
+	if x != nil {
+		if x, ok := x.Value.(*OfpOxmOfbField_Ipv6NdTarget); ok {
+			return x.Ipv6NdTarget
+		}
+	}
+	return nil
+}
+
+func (x *OfpOxmOfbField) GetIpv6NdSsl() []byte {
+	if x != nil {
+		if x, ok := x.Value.(*OfpOxmOfbField_Ipv6NdSsl); ok {
+			return x.Ipv6NdSsl
+		}
+	}
+	return nil
+}
+
+func (x *OfpOxmOfbField) GetIpv6NdTll() []byte {
+	if x != nil {
+		if x, ok := x.Value.(*OfpOxmOfbField_Ipv6NdTll); ok {
+			return x.Ipv6NdTll
+		}
+	}
+	return nil
+}
+
+func (x *OfpOxmOfbField) GetMplsLabel() uint32 {
+	if x != nil {
+		if x, ok := x.Value.(*OfpOxmOfbField_MplsLabel); ok {
+			return x.MplsLabel
+		}
+	}
+	return 0
+}
+
+func (x *OfpOxmOfbField) GetMplsTc() uint32 {
+	if x != nil {
+		if x, ok := x.Value.(*OfpOxmOfbField_MplsTc); ok {
+			return x.MplsTc
+		}
+	}
+	return 0
+}
+
+func (x *OfpOxmOfbField) GetMplsBos() uint32 {
+	if x != nil {
+		if x, ok := x.Value.(*OfpOxmOfbField_MplsBos); ok {
+			return x.MplsBos
+		}
+	}
+	return 0
+}
+
+func (x *OfpOxmOfbField) GetPbbIsid() uint32 {
+	if x != nil {
+		if x, ok := x.Value.(*OfpOxmOfbField_PbbIsid); ok {
+			return x.PbbIsid
+		}
+	}
+	return 0
+}
+
+func (x *OfpOxmOfbField) GetTunnelId() uint64 {
+	if x != nil {
+		if x, ok := x.Value.(*OfpOxmOfbField_TunnelId); ok {
+			return x.TunnelId
+		}
+	}
+	return 0
+}
+
+func (x *OfpOxmOfbField) GetIpv6Exthdr() uint32 {
+	if x != nil {
+		if x, ok := x.Value.(*OfpOxmOfbField_Ipv6Exthdr); ok {
+			return x.Ipv6Exthdr
+		}
+	}
+	return 0
+}
+
+func (x *OfpOxmOfbField) GetMask() isOfpOxmOfbField_Mask {
+	if x != nil {
+		return x.Mask
+	}
+	return nil
+}
+
+func (x *OfpOxmOfbField) GetTableMetadataMask() uint64 {
+	if x != nil {
+		if x, ok := x.Mask.(*OfpOxmOfbField_TableMetadataMask); ok {
+			return x.TableMetadataMask
+		}
+	}
+	return 0
+}
+
+func (x *OfpOxmOfbField) GetEthDstMask() []byte {
+	if x != nil {
+		if x, ok := x.Mask.(*OfpOxmOfbField_EthDstMask); ok {
+			return x.EthDstMask
+		}
+	}
+	return nil
+}
+
+func (x *OfpOxmOfbField) GetEthSrcMask() []byte {
+	if x != nil {
+		if x, ok := x.Mask.(*OfpOxmOfbField_EthSrcMask); ok {
+			return x.EthSrcMask
+		}
+	}
+	return nil
+}
+
+func (x *OfpOxmOfbField) GetVlanVidMask() uint32 {
+	if x != nil {
+		if x, ok := x.Mask.(*OfpOxmOfbField_VlanVidMask); ok {
+			return x.VlanVidMask
+		}
+	}
+	return 0
+}
+
+func (x *OfpOxmOfbField) GetIpv4SrcMask() uint32 {
+	if x != nil {
+		if x, ok := x.Mask.(*OfpOxmOfbField_Ipv4SrcMask); ok {
+			return x.Ipv4SrcMask
+		}
+	}
+	return 0
+}
+
+func (x *OfpOxmOfbField) GetIpv4DstMask() uint32 {
+	if x != nil {
+		if x, ok := x.Mask.(*OfpOxmOfbField_Ipv4DstMask); ok {
+			return x.Ipv4DstMask
+		}
+	}
+	return 0
+}
+
+func (x *OfpOxmOfbField) GetArpSpaMask() uint32 {
+	if x != nil {
+		if x, ok := x.Mask.(*OfpOxmOfbField_ArpSpaMask); ok {
+			return x.ArpSpaMask
+		}
+	}
+	return 0
+}
+
+func (x *OfpOxmOfbField) GetArpTpaMask() uint32 {
+	if x != nil {
+		if x, ok := x.Mask.(*OfpOxmOfbField_ArpTpaMask); ok {
+			return x.ArpTpaMask
+		}
+	}
+	return 0
+}
+
+func (x *OfpOxmOfbField) GetIpv6SrcMask() []byte {
+	if x != nil {
+		if x, ok := x.Mask.(*OfpOxmOfbField_Ipv6SrcMask); ok {
+			return x.Ipv6SrcMask
+		}
+	}
+	return nil
+}
+
+func (x *OfpOxmOfbField) GetIpv6DstMask() []byte {
+	if x != nil {
+		if x, ok := x.Mask.(*OfpOxmOfbField_Ipv6DstMask); ok {
+			return x.Ipv6DstMask
+		}
+	}
+	return nil
+}
+
+func (x *OfpOxmOfbField) GetIpv6FlabelMask() uint32 {
+	if x != nil {
+		if x, ok := x.Mask.(*OfpOxmOfbField_Ipv6FlabelMask); ok {
+			return x.Ipv6FlabelMask
+		}
+	}
+	return 0
+}
+
+func (x *OfpOxmOfbField) GetPbbIsidMask() uint32 {
+	if x != nil {
+		if x, ok := x.Mask.(*OfpOxmOfbField_PbbIsidMask); ok {
+			return x.PbbIsidMask
+		}
+	}
+	return 0
+}
+
+func (x *OfpOxmOfbField) GetTunnelIdMask() uint64 {
+	if x != nil {
+		if x, ok := x.Mask.(*OfpOxmOfbField_TunnelIdMask); ok {
+			return x.TunnelIdMask
+		}
+	}
+	return 0
+}
+
+func (x *OfpOxmOfbField) GetIpv6ExthdrMask() uint32 {
+	if x != nil {
+		if x, ok := x.Mask.(*OfpOxmOfbField_Ipv6ExthdrMask); ok {
+			return x.Ipv6ExthdrMask
+		}
+	}
+	return 0
+}
+
 type isOfpOxmOfbField_Value interface {
 	isOfpOxmOfbField_Value()
 }
 
 type OfpOxmOfbField_Port struct {
-	Port uint32 `protobuf:"varint,3,opt,name=port,proto3,oneof"`
+	// #define OXM_OF_IN_PORT    OXM_HEADER  (0x8000, OFPXMT_OFB_IN_PORT, 4)
+	Port uint32 `protobuf:"varint,3,opt,name=port,proto3,oneof"` // Used for OFPXMT_OFB_IN_PORT
 }
 
 type OfpOxmOfbField_PhysicalPort struct {
-	PhysicalPort uint32 `protobuf:"varint,4,opt,name=physical_port,json=physicalPort,proto3,oneof"`
+	// #define OXM_OF_IN_PHY_PORT OXM_HEADER  (0x8000, OFPXMT_OFB_IN_PHY_PORT, 4)
+	PhysicalPort uint32 `protobuf:"varint,4,opt,name=physical_port,json=physicalPort,proto3,oneof"` // Used for OFPXMT_OF_IN_PHY_PORT
 }
 
 type OfpOxmOfbField_TableMetadata struct {
-	TableMetadata uint64 `protobuf:"varint,5,opt,name=table_metadata,json=tableMetadata,proto3,oneof"`
+	// #define OXM_OF_METADATA   OXM_HEADER  (0x8000, OFPXMT_OFB_METADATA, 8)
+	// #define OXM_OF_METADATA_W OXM_HEADER_W(0x8000, OFPXMT_OFB_METADATA, 8)
+	TableMetadata uint64 `protobuf:"varint,5,opt,name=table_metadata,json=tableMetadata,proto3,oneof"` // Used for OFPXMT_OFB_METADATA
 }
 
 type OfpOxmOfbField_EthDst struct {
-	EthDst []byte `protobuf:"bytes,6,opt,name=eth_dst,json=ethDst,proto3,oneof"`
+	// #define OXM_OF_ETH_DST    OXM_HEADER  (0x8000, OFPXMT_OFB_ETH_DST, 6)
+	// #define OXM_OF_ETH_DST_W  OXM_HEADER_W(0x8000, OFPXMT_OFB_ETH_DST, 6)
+	// #define OXM_OF_ETH_SRC    OXM_HEADER  (0x8000, OFPXMT_OFB_ETH_SRC, 6)
+	// #define OXM_OF_ETH_SRC_W  OXM_HEADER_W(0x8000, OFPXMT_OFB_ETH_SRC, 6)
+	EthDst []byte `protobuf:"bytes,6,opt,name=eth_dst,json=ethDst,proto3,oneof"` // Used for OFPXMT_OFB_ETH_DST (exactly 6 bytes)
 }
 
 type OfpOxmOfbField_EthSrc struct {
-	EthSrc []byte `protobuf:"bytes,7,opt,name=eth_src,json=ethSrc,proto3,oneof"`
+	EthSrc []byte `protobuf:"bytes,7,opt,name=eth_src,json=ethSrc,proto3,oneof"` // Used for OFPXMT_OFB_ETH_SRC (exactly 6 bytes)
 }
 
 type OfpOxmOfbField_EthType struct {
-	EthType uint32 `protobuf:"varint,8,opt,name=eth_type,json=ethType,proto3,oneof"`
+	// #define OXM_OF_ETH_TYPE   OXM_HEADER  (0x8000, OFPXMT_OFB_ETH_TYPE,2)
+	EthType uint32 `protobuf:"varint,8,opt,name=eth_type,json=ethType,proto3,oneof"` // Used for OFPXMT_OFB_ETH_TYPE
 }
 
 type OfpOxmOfbField_VlanVid struct {
-	VlanVid uint32 `protobuf:"varint,9,opt,name=vlan_vid,json=vlanVid,proto3,oneof"`
+	// #define OXM_OF_VLAN_VID   OXM_HEADER  (0x8000, OFPXMT_OFB_VLAN_VID, 2)
+	// #define OXM_OF_VLAN_VID_W OXM_HEADER_W(0x8000, OFPXMT_OFB_VLAN_VID, 2)
+	VlanVid uint32 `protobuf:"varint,9,opt,name=vlan_vid,json=vlanVid,proto3,oneof"` // Used for OFPXMT_OFB_VLAN_VID
 }
 
 type OfpOxmOfbField_VlanPcp struct {
-	VlanPcp uint32 `protobuf:"varint,10,opt,name=vlan_pcp,json=vlanPcp,proto3,oneof"`
+	// #define OXM_OF_VLAN_PCP   OXM_HEADER  (0x8000, OFPXMT_OFB_VLAN_PCP, 1)
+	VlanPcp uint32 `protobuf:"varint,10,opt,name=vlan_pcp,json=vlanPcp,proto3,oneof"` // Used for OFPXMT_OFB_VLAN_PCP
 }
 
 type OfpOxmOfbField_IpDscp struct {
-	IpDscp uint32 `protobuf:"varint,11,opt,name=ip_dscp,json=ipDscp,proto3,oneof"`
+	// #define OXM_OF_IP_DSCP     OXM_HEADER  (0x8000, OFPXMT_OFB_IP_DSCP, 1)
+	IpDscp uint32 `protobuf:"varint,11,opt,name=ip_dscp,json=ipDscp,proto3,oneof"` // Used for OFPXMT_OFB_IP_DSCP
 }
 
 type OfpOxmOfbField_IpEcn struct {
-	IpEcn uint32 `protobuf:"varint,12,opt,name=ip_ecn,json=ipEcn,proto3,oneof"`
+	// #define OXM_OF_IP_ECN     OXM_HEADER  (0x8000, OFPXMT_OFB_IP_ECN, 1)
+	IpEcn uint32 `protobuf:"varint,12,opt,name=ip_ecn,json=ipEcn,proto3,oneof"` // Used for OFPXMT_OFB_IP_ECN
 }
 
 type OfpOxmOfbField_IpProto struct {
-	IpProto uint32 `protobuf:"varint,13,opt,name=ip_proto,json=ipProto,proto3,oneof"`
+	// #define OXM_OF_IP_PROTO   OXM_HEADER  (0x8000, OFPXMT_OFB_IP_PROTO, 1)
+	IpProto uint32 `protobuf:"varint,13,opt,name=ip_proto,json=ipProto,proto3,oneof"` // Used for OFPXMT_OFB_IP_PROTO
 }
 
 type OfpOxmOfbField_Ipv4Src struct {
-	Ipv4Src uint32 `protobuf:"varint,14,opt,name=ipv4_src,json=ipv4Src,proto3,oneof"`
+	// #define OXM_OF_IPV4_SRC     OXM_HEADER  (0x8000, OFPXMT_OFB_IPV4_SRC, 4)
+	// #define OXM_OF_IPV4_SRC_W   OXM_HEADER_W(0x8000, OFPXMT_OFB_IPV4_SRC, 4)
+	// #define OXM_OF_IPV4_DST     OXM_HEADER  (0x8000, OFPXMT_OFB_IPV4_DST, 4)
+	// #define OXM_OF_IPV4_DST_W   OXM_HEADER_W(0x8000, OFPXMT_OFB_IPV4_DST, 4)
+	Ipv4Src uint32 `protobuf:"varint,14,opt,name=ipv4_src,json=ipv4Src,proto3,oneof"` // Used for OFPXMT_OFB_IPV4_SRC
 }
 
 type OfpOxmOfbField_Ipv4Dst struct {
-	Ipv4Dst uint32 `protobuf:"varint,15,opt,name=ipv4_dst,json=ipv4Dst,proto3,oneof"`
+	Ipv4Dst uint32 `protobuf:"varint,15,opt,name=ipv4_dst,json=ipv4Dst,proto3,oneof"` // Used for OFPXMT_OFB_IPV4_DST
 }
 
 type OfpOxmOfbField_TcpSrc struct {
-	TcpSrc uint32 `protobuf:"varint,16,opt,name=tcp_src,json=tcpSrc,proto3,oneof"`
+	// #define OXM_OF_TCP_SRC    OXM_HEADER  (0x8000, OFPXMT_OFB_TCP_SRC, 2)
+	// #define OXM_OF_TCP_DST    OXM_HEADER  (0x8000, OFPXMT_OFB_TCP_DST, 2)
+	TcpSrc uint32 `protobuf:"varint,16,opt,name=tcp_src,json=tcpSrc,proto3,oneof"` // Used for OFPXMT_OFB_TCP_SRC
 }
 
 type OfpOxmOfbField_TcpDst struct {
-	TcpDst uint32 `protobuf:"varint,17,opt,name=tcp_dst,json=tcpDst,proto3,oneof"`
+	TcpDst uint32 `protobuf:"varint,17,opt,name=tcp_dst,json=tcpDst,proto3,oneof"` // Used for OFPXMT_OFB_TCP_DST
 }
 
 type OfpOxmOfbField_UdpSrc struct {
-	UdpSrc uint32 `protobuf:"varint,18,opt,name=udp_src,json=udpSrc,proto3,oneof"`
+	// #define OXM_OF_UDP_SRC    OXM_HEADER  (0x8000, OFPXMT_OFB_UDP_SRC, 2)
+	// #define OXM_OF_UDP_DST    OXM_HEADER  (0x8000, OFPXMT_OFB_UDP_DST, 2)
+	UdpSrc uint32 `protobuf:"varint,18,opt,name=udp_src,json=udpSrc,proto3,oneof"` // Used for OFPXMT_OFB_UDP_SRC
 }
 
 type OfpOxmOfbField_UdpDst struct {
-	UdpDst uint32 `protobuf:"varint,19,opt,name=udp_dst,json=udpDst,proto3,oneof"`
+	UdpDst uint32 `protobuf:"varint,19,opt,name=udp_dst,json=udpDst,proto3,oneof"` // Used for OFPXMT_OFB_UDP_DST
 }
 
 type OfpOxmOfbField_SctpSrc struct {
-	SctpSrc uint32 `protobuf:"varint,20,opt,name=sctp_src,json=sctpSrc,proto3,oneof"`
+	// #define OXM_OF_SCTP_SRC   OXM_HEADER  (0x8000, OFPXMT_OFB_SCTP_SRC, 2)
+	// #define OXM_OF_SCTP_DST   OXM_HEADER  (0x8000, OFPXMT_OFB_SCTP_DST, 2)
+	SctpSrc uint32 `protobuf:"varint,20,opt,name=sctp_src,json=sctpSrc,proto3,oneof"` // Used for OFPXMT_OFB_SCTP_SRC
 }
 
 type OfpOxmOfbField_SctpDst struct {
-	SctpDst uint32 `protobuf:"varint,21,opt,name=sctp_dst,json=sctpDst,proto3,oneof"`
+	SctpDst uint32 `protobuf:"varint,21,opt,name=sctp_dst,json=sctpDst,proto3,oneof"` // Used for OFPXMT_OFB_SCTP_DST
 }
 
 type OfpOxmOfbField_Icmpv4Type struct {
-	Icmpv4Type uint32 `protobuf:"varint,22,opt,name=icmpv4_type,json=icmpv4Type,proto3,oneof"`
+	// #define OXM_OF_ICMPV4_TYPE  OXM_HEADER  (0x8000, OFPXMT_OFB_ICMPV4_TYPE, 1)
+	// #define OXM_OF_ICMPV4_CODE  OXM_HEADER  (0x8000, OFPXMT_OFB_ICMPV4_CODE, 1)
+	Icmpv4Type uint32 `protobuf:"varint,22,opt,name=icmpv4_type,json=icmpv4Type,proto3,oneof"` // Used for OFPXMT_OFB_ICMPV4_TYPE
 }
 
 type OfpOxmOfbField_Icmpv4Code struct {
-	Icmpv4Code uint32 `protobuf:"varint,23,opt,name=icmpv4_code,json=icmpv4Code,proto3,oneof"`
+	Icmpv4Code uint32 `protobuf:"varint,23,opt,name=icmpv4_code,json=icmpv4Code,proto3,oneof"` // Used for OFPXMT_OFB_ICMPV4_CODE
 }
 
 type OfpOxmOfbField_ArpOp struct {
-	ArpOp uint32 `protobuf:"varint,24,opt,name=arp_op,json=arpOp,proto3,oneof"`
+	// #define OXM_OF_ARP_OP     OXM_HEADER  (0x8000, OFPXMT_OFB_ARP_OP, 2)
+	ArpOp uint32 `protobuf:"varint,24,opt,name=arp_op,json=arpOp,proto3,oneof"` // Used for OFPXMT_OFB_ARP_OP
 }
 
 type OfpOxmOfbField_ArpSpa struct {
-	ArpSpa uint32 `protobuf:"varint,25,opt,name=arp_spa,json=arpSpa,proto3,oneof"`
+	// #define OXM_OF_ARP_SPA    OXM_HEADER  (0x8000, OFPXMT_OFB_ARP_SPA, 4)
+	// #define OXM_OF_ARP_SPA_W  OXM_HEADER_W(0x8000, OFPXMT_OFB_ARP_SPA, 4)
+	// #define OXM_OF_ARP_TPA    OXM_HEADER  (0x8000, OFPXMT_OFB_ARP_TPA, 4)
+	// #define OXM_OF_ARP_TPA_W  OXM_HEADER_W(0x8000, OFPXMT_OFB_ARP_TPA, 4)
+	ArpSpa uint32 `protobuf:"varint,25,opt,name=arp_spa,json=arpSpa,proto3,oneof"` // For OFPXMT_OFB_ARP_SPA
 }
 
 type OfpOxmOfbField_ArpTpa struct {
-	ArpTpa uint32 `protobuf:"varint,26,opt,name=arp_tpa,json=arpTpa,proto3,oneof"`
+	ArpTpa uint32 `protobuf:"varint,26,opt,name=arp_tpa,json=arpTpa,proto3,oneof"` // For OFPXMT_OFB_ARP_TPA
 }
 
 type OfpOxmOfbField_ArpSha struct {
-	ArpSha []byte `protobuf:"bytes,27,opt,name=arp_sha,json=arpSha,proto3,oneof"`
+	// #define OXM_OF_ARP_SHA    OXM_HEADER   (0x8000, OFPXMT_OFB_ARP_SHA, 6)
+	// #define OXM_OF_ARP_SHA_W  OXM_HEADER_W (0x8000, OFPXMT_OFB_ARP_SHA, 6)
+	// #define OXM_OF_ARP_THA    OXM_HEADER   (0x8000, OFPXMT_OFB_ARP_THA, 6)
+	// #define OXM_OF_ARP_THA_W  OXM_HEADER_W (0x8000, OFPXMT_OFB_ARP_THA, 6)
+	ArpSha []byte `protobuf:"bytes,27,opt,name=arp_sha,json=arpSha,proto3,oneof"` // For OFPXMT_OFB_ARP_SHA (6 bytes)
 }
 
 type OfpOxmOfbField_ArpTha struct {
-	ArpTha []byte `protobuf:"bytes,28,opt,name=arp_tha,json=arpTha,proto3,oneof"`
+	ArpTha []byte `protobuf:"bytes,28,opt,name=arp_tha,json=arpTha,proto3,oneof"` // For OFPXMT_OFB_ARP_THA (6 bytes)
 }
 
 type OfpOxmOfbField_Ipv6Src struct {
-	Ipv6Src []byte `protobuf:"bytes,29,opt,name=ipv6_src,json=ipv6Src,proto3,oneof"`
+	// #define OXM_OF_IPV6_SRC    OXM_HEADER  (0x8000, OFPXMT_OFB_IPV6_SRC, 16)
+	// #define OXM_OF_IPV6_SRC_W  OXM_HEADER_W(0x8000, OFPXMT_OFB_IPV6_SRC, 16)
+	// #define OXM_OF_IPV6_DST    OXM_HEADER  (0x8000, OFPXMT_OFB_IPV6_DST, 16)
+	// #define OXM_OF_IPV6_DST_W  OXM_HEADER_W(0x8000, OFPXMT_OFB_IPV6_DST, 16)
+	Ipv6Src []byte `protobuf:"bytes,29,opt,name=ipv6_src,json=ipv6Src,proto3,oneof"` // For OFPXMT_OFB_IPV6_SRC
 }
 
 type OfpOxmOfbField_Ipv6Dst struct {
-	Ipv6Dst []byte `protobuf:"bytes,30,opt,name=ipv6_dst,json=ipv6Dst,proto3,oneof"`
+	Ipv6Dst []byte `protobuf:"bytes,30,opt,name=ipv6_dst,json=ipv6Dst,proto3,oneof"` // For OFPXMT_OFB_IPV6_DST
 }
 
 type OfpOxmOfbField_Ipv6Flabel struct {
-	Ipv6Flabel uint32 `protobuf:"varint,31,opt,name=ipv6_flabel,json=ipv6Flabel,proto3,oneof"`
+	// #define OXM_OF_IPV6_FLABEL   OXM_HEADER  (0x8000, OFPXMT_OFB_IPV6_FLABEL, 4)
+	// #define OXM_OF_IPV6_FLABEL_W OXM_HEADER_W(0x8000, OFPXMT_OFB_IPV6_FLABEL, 4)
+	Ipv6Flabel uint32 `protobuf:"varint,31,opt,name=ipv6_flabel,json=ipv6Flabel,proto3,oneof"` // For OFPXMT_OFB_IPV6_FLABEL
 }
 
 type OfpOxmOfbField_Icmpv6Type struct {
-	Icmpv6Type uint32 `protobuf:"varint,32,opt,name=icmpv6_type,json=icmpv6Type,proto3,oneof"`
+	// #define OXM_OF_ICMPV6_TYPE OXM_HEADER  (0x8000, OFPXMT_OFB_ICMPV6_TYPE, 1)
+	// #define OXM_OF_ICMPV6_CODE OXM_HEADER  (0x8000, OFPXMT_OFB_ICMPV6_CODE, 1)
+	Icmpv6Type uint32 `protobuf:"varint,32,opt,name=icmpv6_type,json=icmpv6Type,proto3,oneof"` // For OFPXMT_OFB_ICMPV6_TYPE
 }
 
 type OfpOxmOfbField_Icmpv6Code struct {
-	Icmpv6Code uint32 `protobuf:"varint,33,opt,name=icmpv6_code,json=icmpv6Code,proto3,oneof"`
+	Icmpv6Code uint32 `protobuf:"varint,33,opt,name=icmpv6_code,json=icmpv6Code,proto3,oneof"` // For OFPXMT_OFB_ICMPV6_CODE
 }
 
 type OfpOxmOfbField_Ipv6NdTarget struct {
-	Ipv6NdTarget []byte `protobuf:"bytes,34,opt,name=ipv6_nd_target,json=ipv6NdTarget,proto3,oneof"`
+	//	#define OXM_OF_IPV6_ND_TARGET OXM_HEADER \
+	//	   (0x8000, OFPXMT_OFB_IPV6_ND_TARGET, 16)
+	Ipv6NdTarget []byte `protobuf:"bytes,34,opt,name=ipv6_nd_target,json=ipv6NdTarget,proto3,oneof"` // For OFPXMT_OFB_IPV6_ND_TARGET
 }
 
 type OfpOxmOfbField_Ipv6NdSsl struct {
-	Ipv6NdSsl []byte `protobuf:"bytes,35,opt,name=ipv6_nd_ssl,json=ipv6NdSsl,proto3,oneof"`
+	// #define OXM_OF_IPV6_ND_SLL  OXM_HEADER  (0x8000, OFPXMT_OFB_IPV6_ND_SLL, 6)
+	Ipv6NdSsl []byte `protobuf:"bytes,35,opt,name=ipv6_nd_ssl,json=ipv6NdSsl,proto3,oneof"` // For OFPXMT_OFB_IPV6_ND_SLL
 }
 
 type OfpOxmOfbField_Ipv6NdTll struct {
-	Ipv6NdTll []byte `protobuf:"bytes,36,opt,name=ipv6_nd_tll,json=ipv6NdTll,proto3,oneof"`
+	// #define OXM_OF_IPV6_ND_TLL  OXM_HEADER  (0x8000, OFPXMT_OFB_IPV6_ND_TLL, 6)
+	Ipv6NdTll []byte `protobuf:"bytes,36,opt,name=ipv6_nd_tll,json=ipv6NdTll,proto3,oneof"` // For OFPXMT_OFB_IPV6_ND_TLL
 }
 
 type OfpOxmOfbField_MplsLabel struct {
-	MplsLabel uint32 `protobuf:"varint,37,opt,name=mpls_label,json=mplsLabel,proto3,oneof"`
+	// #define OXM_OF_MPLS_LABEL  OXM_HEADER  (0x8000, OFPXMT_OFB_MPLS_LABEL, 4)
+	MplsLabel uint32 `protobuf:"varint,37,opt,name=mpls_label,json=mplsLabel,proto3,oneof"` // For OFPXMT_OFB_MPLS_LABEL
 }
 
 type OfpOxmOfbField_MplsTc struct {
-	MplsTc uint32 `protobuf:"varint,38,opt,name=mpls_tc,json=mplsTc,proto3,oneof"`
+	// #define OXM_OF_MPLS_TC     OXM_HEADER  (0x8000, OFPXMT_OFB_MPLS_TC, 1)
+	MplsTc uint32 `protobuf:"varint,38,opt,name=mpls_tc,json=mplsTc,proto3,oneof"` // For OFPXMT_OFB_MPLS_TC
 }
 
 type OfpOxmOfbField_MplsBos struct {
-	MplsBos uint32 `protobuf:"varint,39,opt,name=mpls_bos,json=mplsBos,proto3,oneof"`
+	// #define OXM_OF_MPLS_BOS     OXM_HEADER  (0x8000, OFPXMT_OFB_MPLS_BOS, 1)
+	MplsBos uint32 `protobuf:"varint,39,opt,name=mpls_bos,json=mplsBos,proto3,oneof"` // For OFPXMT_OFB_MPLS_BOS
 }
 
 type OfpOxmOfbField_PbbIsid struct {
-	PbbIsid uint32 `protobuf:"varint,40,opt,name=pbb_isid,json=pbbIsid,proto3,oneof"`
+	// #define OXM_OF_PBB_ISID   OXM_HEADER  (0x8000, OFPXMT_OFB_PBB_ISID, 3)
+	// #define OXM_OF_PBB_ISID_W OXM_HEADER_W(0x8000, OFPXMT_OFB_PBB_ISID, 3)
+	PbbIsid uint32 `protobuf:"varint,40,opt,name=pbb_isid,json=pbbIsid,proto3,oneof"` // For OFPXMT_OFB_PBB_ISID
 }
 
 type OfpOxmOfbField_TunnelId struct {
-	TunnelId uint64 `protobuf:"varint,41,opt,name=tunnel_id,json=tunnelId,proto3,oneof"`
+	// #define OXM_OF_TUNNEL_ID    OXM_HEADER  (0x8000, OFPXMT_OFB_TUNNEL_ID, 8)
+	// #define OXM_OF_TUNNEL_ID_W  OXM_HEADER_W(0x8000, OFPXMT_OFB_TUNNEL_ID, 8)
+	TunnelId uint64 `protobuf:"varint,41,opt,name=tunnel_id,json=tunnelId,proto3,oneof"` // For OFPXMT_OFB_TUNNEL_ID
 }
 
 type OfpOxmOfbField_Ipv6Exthdr struct {
-	Ipv6Exthdr uint32 `protobuf:"varint,42,opt,name=ipv6_exthdr,json=ipv6Exthdr,proto3,oneof"`
+	// #define OXM_OF_IPV6_EXTHDR   OXM_HEADER  (0x8000, OFPXMT_OFB_IPV6_EXTHDR, 2)
+	// #define OXM_OF_IPV6_EXTHDR_W OXM_HEADER_W(0x8000, OFPXMT_OFB_IPV6_EXTHDR, 2)
+	Ipv6Exthdr uint32 `protobuf:"varint,42,opt,name=ipv6_exthdr,json=ipv6Exthdr,proto3,oneof"` // For OFPXMT_OFB_IPV6_EXTHDR
 }
 
 func (*OfpOxmOfbField_Port) isOfpOxmOfbField_Value() {}
@@ -3524,351 +5316,64 @@
 
 func (*OfpOxmOfbField_Ipv6Exthdr) isOfpOxmOfbField_Value() {}
 
-func (m *OfpOxmOfbField) GetValue() isOfpOxmOfbField_Value {
-	if m != nil {
-		return m.Value
-	}
-	return nil
-}
-
-func (m *OfpOxmOfbField) GetPort() uint32 {
-	if x, ok := m.GetValue().(*OfpOxmOfbField_Port); ok {
-		return x.Port
-	}
-	return 0
-}
-
-func (m *OfpOxmOfbField) GetPhysicalPort() uint32 {
-	if x, ok := m.GetValue().(*OfpOxmOfbField_PhysicalPort); ok {
-		return x.PhysicalPort
-	}
-	return 0
-}
-
-func (m *OfpOxmOfbField) GetTableMetadata() uint64 {
-	if x, ok := m.GetValue().(*OfpOxmOfbField_TableMetadata); ok {
-		return x.TableMetadata
-	}
-	return 0
-}
-
-func (m *OfpOxmOfbField) GetEthDst() []byte {
-	if x, ok := m.GetValue().(*OfpOxmOfbField_EthDst); ok {
-		return x.EthDst
-	}
-	return nil
-}
-
-func (m *OfpOxmOfbField) GetEthSrc() []byte {
-	if x, ok := m.GetValue().(*OfpOxmOfbField_EthSrc); ok {
-		return x.EthSrc
-	}
-	return nil
-}
-
-func (m *OfpOxmOfbField) GetEthType() uint32 {
-	if x, ok := m.GetValue().(*OfpOxmOfbField_EthType); ok {
-		return x.EthType
-	}
-	return 0
-}
-
-func (m *OfpOxmOfbField) GetVlanVid() uint32 {
-	if x, ok := m.GetValue().(*OfpOxmOfbField_VlanVid); ok {
-		return x.VlanVid
-	}
-	return 0
-}
-
-func (m *OfpOxmOfbField) GetVlanPcp() uint32 {
-	if x, ok := m.GetValue().(*OfpOxmOfbField_VlanPcp); ok {
-		return x.VlanPcp
-	}
-	return 0
-}
-
-func (m *OfpOxmOfbField) GetIpDscp() uint32 {
-	if x, ok := m.GetValue().(*OfpOxmOfbField_IpDscp); ok {
-		return x.IpDscp
-	}
-	return 0
-}
-
-func (m *OfpOxmOfbField) GetIpEcn() uint32 {
-	if x, ok := m.GetValue().(*OfpOxmOfbField_IpEcn); ok {
-		return x.IpEcn
-	}
-	return 0
-}
-
-func (m *OfpOxmOfbField) GetIpProto() uint32 {
-	if x, ok := m.GetValue().(*OfpOxmOfbField_IpProto); ok {
-		return x.IpProto
-	}
-	return 0
-}
-
-func (m *OfpOxmOfbField) GetIpv4Src() uint32 {
-	if x, ok := m.GetValue().(*OfpOxmOfbField_Ipv4Src); ok {
-		return x.Ipv4Src
-	}
-	return 0
-}
-
-func (m *OfpOxmOfbField) GetIpv4Dst() uint32 {
-	if x, ok := m.GetValue().(*OfpOxmOfbField_Ipv4Dst); ok {
-		return x.Ipv4Dst
-	}
-	return 0
-}
-
-func (m *OfpOxmOfbField) GetTcpSrc() uint32 {
-	if x, ok := m.GetValue().(*OfpOxmOfbField_TcpSrc); ok {
-		return x.TcpSrc
-	}
-	return 0
-}
-
-func (m *OfpOxmOfbField) GetTcpDst() uint32 {
-	if x, ok := m.GetValue().(*OfpOxmOfbField_TcpDst); ok {
-		return x.TcpDst
-	}
-	return 0
-}
-
-func (m *OfpOxmOfbField) GetUdpSrc() uint32 {
-	if x, ok := m.GetValue().(*OfpOxmOfbField_UdpSrc); ok {
-		return x.UdpSrc
-	}
-	return 0
-}
-
-func (m *OfpOxmOfbField) GetUdpDst() uint32 {
-	if x, ok := m.GetValue().(*OfpOxmOfbField_UdpDst); ok {
-		return x.UdpDst
-	}
-	return 0
-}
-
-func (m *OfpOxmOfbField) GetSctpSrc() uint32 {
-	if x, ok := m.GetValue().(*OfpOxmOfbField_SctpSrc); ok {
-		return x.SctpSrc
-	}
-	return 0
-}
-
-func (m *OfpOxmOfbField) GetSctpDst() uint32 {
-	if x, ok := m.GetValue().(*OfpOxmOfbField_SctpDst); ok {
-		return x.SctpDst
-	}
-	return 0
-}
-
-func (m *OfpOxmOfbField) GetIcmpv4Type() uint32 {
-	if x, ok := m.GetValue().(*OfpOxmOfbField_Icmpv4Type); ok {
-		return x.Icmpv4Type
-	}
-	return 0
-}
-
-func (m *OfpOxmOfbField) GetIcmpv4Code() uint32 {
-	if x, ok := m.GetValue().(*OfpOxmOfbField_Icmpv4Code); ok {
-		return x.Icmpv4Code
-	}
-	return 0
-}
-
-func (m *OfpOxmOfbField) GetArpOp() uint32 {
-	if x, ok := m.GetValue().(*OfpOxmOfbField_ArpOp); ok {
-		return x.ArpOp
-	}
-	return 0
-}
-
-func (m *OfpOxmOfbField) GetArpSpa() uint32 {
-	if x, ok := m.GetValue().(*OfpOxmOfbField_ArpSpa); ok {
-		return x.ArpSpa
-	}
-	return 0
-}
-
-func (m *OfpOxmOfbField) GetArpTpa() uint32 {
-	if x, ok := m.GetValue().(*OfpOxmOfbField_ArpTpa); ok {
-		return x.ArpTpa
-	}
-	return 0
-}
-
-func (m *OfpOxmOfbField) GetArpSha() []byte {
-	if x, ok := m.GetValue().(*OfpOxmOfbField_ArpSha); ok {
-		return x.ArpSha
-	}
-	return nil
-}
-
-func (m *OfpOxmOfbField) GetArpTha() []byte {
-	if x, ok := m.GetValue().(*OfpOxmOfbField_ArpTha); ok {
-		return x.ArpTha
-	}
-	return nil
-}
-
-func (m *OfpOxmOfbField) GetIpv6Src() []byte {
-	if x, ok := m.GetValue().(*OfpOxmOfbField_Ipv6Src); ok {
-		return x.Ipv6Src
-	}
-	return nil
-}
-
-func (m *OfpOxmOfbField) GetIpv6Dst() []byte {
-	if x, ok := m.GetValue().(*OfpOxmOfbField_Ipv6Dst); ok {
-		return x.Ipv6Dst
-	}
-	return nil
-}
-
-func (m *OfpOxmOfbField) GetIpv6Flabel() uint32 {
-	if x, ok := m.GetValue().(*OfpOxmOfbField_Ipv6Flabel); ok {
-		return x.Ipv6Flabel
-	}
-	return 0
-}
-
-func (m *OfpOxmOfbField) GetIcmpv6Type() uint32 {
-	if x, ok := m.GetValue().(*OfpOxmOfbField_Icmpv6Type); ok {
-		return x.Icmpv6Type
-	}
-	return 0
-}
-
-func (m *OfpOxmOfbField) GetIcmpv6Code() uint32 {
-	if x, ok := m.GetValue().(*OfpOxmOfbField_Icmpv6Code); ok {
-		return x.Icmpv6Code
-	}
-	return 0
-}
-
-func (m *OfpOxmOfbField) GetIpv6NdTarget() []byte {
-	if x, ok := m.GetValue().(*OfpOxmOfbField_Ipv6NdTarget); ok {
-		return x.Ipv6NdTarget
-	}
-	return nil
-}
-
-func (m *OfpOxmOfbField) GetIpv6NdSsl() []byte {
-	if x, ok := m.GetValue().(*OfpOxmOfbField_Ipv6NdSsl); ok {
-		return x.Ipv6NdSsl
-	}
-	return nil
-}
-
-func (m *OfpOxmOfbField) GetIpv6NdTll() []byte {
-	if x, ok := m.GetValue().(*OfpOxmOfbField_Ipv6NdTll); ok {
-		return x.Ipv6NdTll
-	}
-	return nil
-}
-
-func (m *OfpOxmOfbField) GetMplsLabel() uint32 {
-	if x, ok := m.GetValue().(*OfpOxmOfbField_MplsLabel); ok {
-		return x.MplsLabel
-	}
-	return 0
-}
-
-func (m *OfpOxmOfbField) GetMplsTc() uint32 {
-	if x, ok := m.GetValue().(*OfpOxmOfbField_MplsTc); ok {
-		return x.MplsTc
-	}
-	return 0
-}
-
-func (m *OfpOxmOfbField) GetMplsBos() uint32 {
-	if x, ok := m.GetValue().(*OfpOxmOfbField_MplsBos); ok {
-		return x.MplsBos
-	}
-	return 0
-}
-
-func (m *OfpOxmOfbField) GetPbbIsid() uint32 {
-	if x, ok := m.GetValue().(*OfpOxmOfbField_PbbIsid); ok {
-		return x.PbbIsid
-	}
-	return 0
-}
-
-func (m *OfpOxmOfbField) GetTunnelId() uint64 {
-	if x, ok := m.GetValue().(*OfpOxmOfbField_TunnelId); ok {
-		return x.TunnelId
-	}
-	return 0
-}
-
-func (m *OfpOxmOfbField) GetIpv6Exthdr() uint32 {
-	if x, ok := m.GetValue().(*OfpOxmOfbField_Ipv6Exthdr); ok {
-		return x.Ipv6Exthdr
-	}
-	return 0
-}
-
 type isOfpOxmOfbField_Mask interface {
 	isOfpOxmOfbField_Mask()
 }
 
 type OfpOxmOfbField_TableMetadataMask struct {
-	TableMetadataMask uint64 `protobuf:"varint,105,opt,name=table_metadata_mask,json=tableMetadataMask,proto3,oneof"`
+	TableMetadataMask uint64 `protobuf:"varint,105,opt,name=table_metadata_mask,json=tableMetadataMask,proto3,oneof"` // For OFPXMT_OFB_METADATA
 }
 
 type OfpOxmOfbField_EthDstMask struct {
-	EthDstMask []byte `protobuf:"bytes,106,opt,name=eth_dst_mask,json=ethDstMask,proto3,oneof"`
+	EthDstMask []byte `protobuf:"bytes,106,opt,name=eth_dst_mask,json=ethDstMask,proto3,oneof"` // For OFPXMT_OFB_ETH_DST (exactly 6 bytes)
 }
 
 type OfpOxmOfbField_EthSrcMask struct {
-	EthSrcMask []byte `protobuf:"bytes,107,opt,name=eth_src_mask,json=ethSrcMask,proto3,oneof"`
+	EthSrcMask []byte `protobuf:"bytes,107,opt,name=eth_src_mask,json=ethSrcMask,proto3,oneof"` // For OFPXMT_OFB_ETH_SRC (exactly 6 bytes)
 }
 
 type OfpOxmOfbField_VlanVidMask struct {
-	VlanVidMask uint32 `protobuf:"varint,109,opt,name=vlan_vid_mask,json=vlanVidMask,proto3,oneof"`
+	VlanVidMask uint32 `protobuf:"varint,109,opt,name=vlan_vid_mask,json=vlanVidMask,proto3,oneof"` // For OFPXMT_OFB_VLAN_VID
 }
 
 type OfpOxmOfbField_Ipv4SrcMask struct {
-	Ipv4SrcMask uint32 `protobuf:"varint,114,opt,name=ipv4_src_mask,json=ipv4SrcMask,proto3,oneof"`
+	Ipv4SrcMask uint32 `protobuf:"varint,114,opt,name=ipv4_src_mask,json=ipv4SrcMask,proto3,oneof"` // For OFPXMT_OFB_IPV4_SRC
 }
 
 type OfpOxmOfbField_Ipv4DstMask struct {
-	Ipv4DstMask uint32 `protobuf:"varint,115,opt,name=ipv4_dst_mask,json=ipv4DstMask,proto3,oneof"`
+	Ipv4DstMask uint32 `protobuf:"varint,115,opt,name=ipv4_dst_mask,json=ipv4DstMask,proto3,oneof"` // For OFPXMT_OFB_IPV4_DST
 }
 
 type OfpOxmOfbField_ArpSpaMask struct {
-	ArpSpaMask uint32 `protobuf:"varint,125,opt,name=arp_spa_mask,json=arpSpaMask,proto3,oneof"`
+	ArpSpaMask uint32 `protobuf:"varint,125,opt,name=arp_spa_mask,json=arpSpaMask,proto3,oneof"` // For OFPXMT_OFB_ARP_SPA
 }
 
 type OfpOxmOfbField_ArpTpaMask struct {
-	ArpTpaMask uint32 `protobuf:"varint,126,opt,name=arp_tpa_mask,json=arpTpaMask,proto3,oneof"`
+	ArpTpaMask uint32 `protobuf:"varint,126,opt,name=arp_tpa_mask,json=arpTpaMask,proto3,oneof"` // For OFPXMT_OFB_ARP_TPA
 }
 
 type OfpOxmOfbField_Ipv6SrcMask struct {
-	Ipv6SrcMask []byte `protobuf:"bytes,129,opt,name=ipv6_src_mask,json=ipv6SrcMask,proto3,oneof"`
+	Ipv6SrcMask []byte `protobuf:"bytes,129,opt,name=ipv6_src_mask,json=ipv6SrcMask,proto3,oneof"` // For OFPXMT_OFB_IPV6_SRC
 }
 
 type OfpOxmOfbField_Ipv6DstMask struct {
-	Ipv6DstMask []byte `protobuf:"bytes,130,opt,name=ipv6_dst_mask,json=ipv6DstMask,proto3,oneof"`
+	Ipv6DstMask []byte `protobuf:"bytes,130,opt,name=ipv6_dst_mask,json=ipv6DstMask,proto3,oneof"` // For OFPXMT_OFB_IPV6_DST
 }
 
 type OfpOxmOfbField_Ipv6FlabelMask struct {
-	Ipv6FlabelMask uint32 `protobuf:"varint,131,opt,name=ipv6_flabel_mask,json=ipv6FlabelMask,proto3,oneof"`
+	Ipv6FlabelMask uint32 `protobuf:"varint,131,opt,name=ipv6_flabel_mask,json=ipv6FlabelMask,proto3,oneof"` // For OFPXMT_OFB_IPV6_FLABEL
 }
 
 type OfpOxmOfbField_PbbIsidMask struct {
-	PbbIsidMask uint32 `protobuf:"varint,140,opt,name=pbb_isid_mask,json=pbbIsidMask,proto3,oneof"`
+	PbbIsidMask uint32 `protobuf:"varint,140,opt,name=pbb_isid_mask,json=pbbIsidMask,proto3,oneof"` // For OFPXMT_OFB_PBB_ISID
 }
 
 type OfpOxmOfbField_TunnelIdMask struct {
-	TunnelIdMask uint64 `protobuf:"varint,141,opt,name=tunnel_id_mask,json=tunnelIdMask,proto3,oneof"`
+	TunnelIdMask uint64 `protobuf:"varint,141,opt,name=tunnel_id_mask,json=tunnelIdMask,proto3,oneof"` // For OFPXMT_OFB_TUNNEL_ID
 }
 
 type OfpOxmOfbField_Ipv6ExthdrMask struct {
-	Ipv6ExthdrMask uint32 `protobuf:"varint,142,opt,name=ipv6_exthdr_mask,json=ipv6ExthdrMask,proto3,oneof"`
+	Ipv6ExthdrMask uint32 `protobuf:"varint,142,opt,name=ipv6_exthdr_mask,json=ipv6ExthdrMask,proto3,oneof"` // For OFPXMT_OFB_IPV6_EXTHDR
 }
 
 func (*OfpOxmOfbField_TableMetadataMask) isOfpOxmOfbField_Mask() {}
@@ -3899,114 +5404,6977 @@
 
 func (*OfpOxmOfbField_Ipv6ExthdrMask) isOfpOxmOfbField_Mask() {}
 
-func (m *OfpOxmOfbField) GetMask() isOfpOxmOfbField_Mask {
-	if m != nil {
-		return m.Mask
+// Header for OXM experimenter match fields.
+// The experimenter class should not use OXM_HEADER() macros for defining
+// fields due to this extra header.
+type OfpOxmExperimenterField struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	OxmHeader     uint32                 `protobuf:"varint,1,opt,name=oxm_header,json=oxmHeader,proto3" json:"oxm_header,omitempty"` // oxm_class = OFPXMC_EXPERIMENTER
+	Experimenter  uint32                 `protobuf:"varint,2,opt,name=experimenter,proto3" json:"experimenter,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpOxmExperimenterField) Reset() {
+	*x = OfpOxmExperimenterField{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[14]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpOxmExperimenterField) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpOxmExperimenterField) ProtoMessage() {}
+
+func (x *OfpOxmExperimenterField) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[14]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpOxmExperimenterField.ProtoReflect.Descriptor instead.
+func (*OfpOxmExperimenterField) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{14}
+}
+
+func (x *OfpOxmExperimenterField) GetOxmHeader() uint32 {
+	if x != nil {
+		return x.OxmHeader
+	}
+	return 0
+}
+
+func (x *OfpOxmExperimenterField) GetExperimenter() uint32 {
+	if x != nil {
+		return x.Experimenter
+	}
+	return 0
+}
+
+// Action header that is common to all actions.  The length includes the
+// header and any padding used to make the action 64-bit aligned.
+// NB: The length of an action *must* always be a multiple of eight.
+type OfpAction struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
+	Type  OfpActionType          `protobuf:"varint,1,opt,name=type,proto3,enum=openflow_13.OfpActionType" json:"type,omitempty"` // One of OFPAT_*.
+	// Types that are valid to be assigned to Action:
+	//
+	//	*OfpAction_Output
+	//	*OfpAction_MplsTtl
+	//	*OfpAction_Push
+	//	*OfpAction_PopMpls
+	//	*OfpAction_Group
+	//	*OfpAction_NwTtl
+	//	*OfpAction_SetField
+	//	*OfpAction_Experimenter
+	Action        isOfpAction_Action `protobuf_oneof:"action"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpAction) Reset() {
+	*x = OfpAction{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[15]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpAction) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpAction) ProtoMessage() {}
+
+func (x *OfpAction) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[15]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpAction.ProtoReflect.Descriptor instead.
+func (*OfpAction) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{15}
+}
+
+func (x *OfpAction) GetType() OfpActionType {
+	if x != nil {
+		return x.Type
+	}
+	return OfpActionType_OFPAT_OUTPUT
+}
+
+func (x *OfpAction) GetAction() isOfpAction_Action {
+	if x != nil {
+		return x.Action
 	}
 	return nil
 }
 
-func (m *OfpOxmOfbField) GetTableMetadataMask() uint64 {
-	if x, ok := m.GetMask().(*OfpOxmOfbField_TableMetadataMask); ok {
-		return x.TableMetadataMask
-	}
-	return 0
-}
-
-func (m *OfpOxmOfbField) GetEthDstMask() []byte {
-	if x, ok := m.GetMask().(*OfpOxmOfbField_EthDstMask); ok {
-		return x.EthDstMask
+func (x *OfpAction) GetOutput() *OfpActionOutput {
+	if x != nil {
+		if x, ok := x.Action.(*OfpAction_Output); ok {
+			return x.Output
+		}
 	}
 	return nil
 }
 
-func (m *OfpOxmOfbField) GetEthSrcMask() []byte {
-	if x, ok := m.GetMask().(*OfpOxmOfbField_EthSrcMask); ok {
-		return x.EthSrcMask
+func (x *OfpAction) GetMplsTtl() *OfpActionMplsTtl {
+	if x != nil {
+		if x, ok := x.Action.(*OfpAction_MplsTtl); ok {
+			return x.MplsTtl
+		}
 	}
 	return nil
 }
 
-func (m *OfpOxmOfbField) GetVlanVidMask() uint32 {
-	if x, ok := m.GetMask().(*OfpOxmOfbField_VlanVidMask); ok {
-		return x.VlanVidMask
-	}
-	return 0
-}
-
-func (m *OfpOxmOfbField) GetIpv4SrcMask() uint32 {
-	if x, ok := m.GetMask().(*OfpOxmOfbField_Ipv4SrcMask); ok {
-		return x.Ipv4SrcMask
-	}
-	return 0
-}
-
-func (m *OfpOxmOfbField) GetIpv4DstMask() uint32 {
-	if x, ok := m.GetMask().(*OfpOxmOfbField_Ipv4DstMask); ok {
-		return x.Ipv4DstMask
-	}
-	return 0
-}
-
-func (m *OfpOxmOfbField) GetArpSpaMask() uint32 {
-	if x, ok := m.GetMask().(*OfpOxmOfbField_ArpSpaMask); ok {
-		return x.ArpSpaMask
-	}
-	return 0
-}
-
-func (m *OfpOxmOfbField) GetArpTpaMask() uint32 {
-	if x, ok := m.GetMask().(*OfpOxmOfbField_ArpTpaMask); ok {
-		return x.ArpTpaMask
-	}
-	return 0
-}
-
-func (m *OfpOxmOfbField) GetIpv6SrcMask() []byte {
-	if x, ok := m.GetMask().(*OfpOxmOfbField_Ipv6SrcMask); ok {
-		return x.Ipv6SrcMask
+func (x *OfpAction) GetPush() *OfpActionPush {
+	if x != nil {
+		if x, ok := x.Action.(*OfpAction_Push); ok {
+			return x.Push
+		}
 	}
 	return nil
 }
 
-func (m *OfpOxmOfbField) GetIpv6DstMask() []byte {
-	if x, ok := m.GetMask().(*OfpOxmOfbField_Ipv6DstMask); ok {
-		return x.Ipv6DstMask
+func (x *OfpAction) GetPopMpls() *OfpActionPopMpls {
+	if x != nil {
+		if x, ok := x.Action.(*OfpAction_PopMpls); ok {
+			return x.PopMpls
+		}
 	}
 	return nil
 }
 
-func (m *OfpOxmOfbField) GetIpv6FlabelMask() uint32 {
-	if x, ok := m.GetMask().(*OfpOxmOfbField_Ipv6FlabelMask); ok {
-		return x.Ipv6FlabelMask
+func (x *OfpAction) GetGroup() *OfpActionGroup {
+	if x != nil {
+		if x, ok := x.Action.(*OfpAction_Group); ok {
+			return x.Group
+		}
+	}
+	return nil
+}
+
+func (x *OfpAction) GetNwTtl() *OfpActionNwTtl {
+	if x != nil {
+		if x, ok := x.Action.(*OfpAction_NwTtl); ok {
+			return x.NwTtl
+		}
+	}
+	return nil
+}
+
+func (x *OfpAction) GetSetField() *OfpActionSetField {
+	if x != nil {
+		if x, ok := x.Action.(*OfpAction_SetField); ok {
+			return x.SetField
+		}
+	}
+	return nil
+}
+
+func (x *OfpAction) GetExperimenter() *OfpActionExperimenter {
+	if x != nil {
+		if x, ok := x.Action.(*OfpAction_Experimenter); ok {
+			return x.Experimenter
+		}
+	}
+	return nil
+}
+
+type isOfpAction_Action interface {
+	isOfpAction_Action()
+}
+
+type OfpAction_Output struct {
+	Output *OfpActionOutput `protobuf:"bytes,2,opt,name=output,proto3,oneof"`
+}
+
+type OfpAction_MplsTtl struct {
+	MplsTtl *OfpActionMplsTtl `protobuf:"bytes,3,opt,name=mpls_ttl,json=mplsTtl,proto3,oneof"`
+}
+
+type OfpAction_Push struct {
+	Push *OfpActionPush `protobuf:"bytes,4,opt,name=push,proto3,oneof"`
+}
+
+type OfpAction_PopMpls struct {
+	PopMpls *OfpActionPopMpls `protobuf:"bytes,5,opt,name=pop_mpls,json=popMpls,proto3,oneof"`
+}
+
+type OfpAction_Group struct {
+	Group *OfpActionGroup `protobuf:"bytes,6,opt,name=group,proto3,oneof"`
+}
+
+type OfpAction_NwTtl struct {
+	NwTtl *OfpActionNwTtl `protobuf:"bytes,7,opt,name=nw_ttl,json=nwTtl,proto3,oneof"`
+}
+
+type OfpAction_SetField struct {
+	SetField *OfpActionSetField `protobuf:"bytes,8,opt,name=set_field,json=setField,proto3,oneof"`
+}
+
+type OfpAction_Experimenter struct {
+	Experimenter *OfpActionExperimenter `protobuf:"bytes,9,opt,name=experimenter,proto3,oneof"`
+}
+
+func (*OfpAction_Output) isOfpAction_Action() {}
+
+func (*OfpAction_MplsTtl) isOfpAction_Action() {}
+
+func (*OfpAction_Push) isOfpAction_Action() {}
+
+func (*OfpAction_PopMpls) isOfpAction_Action() {}
+
+func (*OfpAction_Group) isOfpAction_Action() {}
+
+func (*OfpAction_NwTtl) isOfpAction_Action() {}
+
+func (*OfpAction_SetField) isOfpAction_Action() {}
+
+func (*OfpAction_Experimenter) isOfpAction_Action() {}
+
+// Action structure for OFPAT_OUTPUT, which sends packets out 'port'.
+// When the 'port' is the OFPP_CONTROLLER, 'max_len' indicates the max
+// number of bytes to send.  A 'max_len' of zero means no bytes of the
+// packet should be sent. A 'max_len' of OFPCML_NO_BUFFER means that
+// the packet is not buffered and the complete packet is to be sent to
+// the controller.
+type OfpActionOutput struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Port          uint32                 `protobuf:"varint,1,opt,name=port,proto3" json:"port,omitempty"`                   // Output port.
+	MaxLen        uint32                 `protobuf:"varint,2,opt,name=max_len,json=maxLen,proto3" json:"max_len,omitempty"` // Max length to send to controller.
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpActionOutput) Reset() {
+	*x = OfpActionOutput{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[16]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpActionOutput) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpActionOutput) ProtoMessage() {}
+
+func (x *OfpActionOutput) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[16]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpActionOutput.ProtoReflect.Descriptor instead.
+func (*OfpActionOutput) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{16}
+}
+
+func (x *OfpActionOutput) GetPort() uint32 {
+	if x != nil {
+		return x.Port
 	}
 	return 0
 }
 
-func (m *OfpOxmOfbField) GetPbbIsidMask() uint32 {
-	if x, ok := m.GetMask().(*OfpOxmOfbField_PbbIsidMask); ok {
-		return x.PbbIsidMask
+func (x *OfpActionOutput) GetMaxLen() uint32 {
+	if x != nil {
+		return x.MaxLen
 	}
 	return 0
 }
 
-func (m *OfpOxmOfbField) GetTunnelIdMask() uint64 {
-	if x, ok := m.GetMask().(*OfpOxmOfbField_TunnelIdMask); ok {
-		return x.TunnelIdMask
+// Action structure for OFPAT_SET_MPLS_TTL.
+type OfpActionMplsTtl struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	MplsTtl       uint32                 `protobuf:"varint,1,opt,name=mpls_ttl,json=mplsTtl,proto3" json:"mpls_ttl,omitempty"` // MPLS TTL
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpActionMplsTtl) Reset() {
+	*x = OfpActionMplsTtl{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[17]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpActionMplsTtl) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpActionMplsTtl) ProtoMessage() {}
+
+func (x *OfpActionMplsTtl) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[17]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpActionMplsTtl.ProtoReflect.Descriptor instead.
+func (*OfpActionMplsTtl) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{17}
+}
+
+func (x *OfpActionMplsTtl) GetMplsTtl() uint32 {
+	if x != nil {
+		return x.MplsTtl
 	}
 	return 0
 }
 
-func (m *OfpOxmOfbField) GetIpv6ExthdrMask() uint32 {
-	if x, ok := m.GetMask().(*OfpOxmOfbField_Ipv6ExthdrMask); ok {
-		return x.Ipv6ExthdrMask
+// Action structure for OFPAT_PUSH_VLAN/MPLS/PBB.
+type OfpActionPush struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Ethertype     uint32                 `protobuf:"varint,1,opt,name=ethertype,proto3" json:"ethertype,omitempty"` // Ethertype
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpActionPush) Reset() {
+	*x = OfpActionPush{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[18]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpActionPush) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpActionPush) ProtoMessage() {}
+
+func (x *OfpActionPush) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[18]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpActionPush.ProtoReflect.Descriptor instead.
+func (*OfpActionPush) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{18}
+}
+
+func (x *OfpActionPush) GetEthertype() uint32 {
+	if x != nil {
+		return x.Ethertype
 	}
 	return 0
 }
 
-// XXX_OneofWrappers is for the internal use of the proto package.
-func (*OfpOxmOfbField) XXX_OneofWrappers() []interface{} {
-	return []interface{}{
+// Action structure for OFPAT_POP_MPLS.
+type OfpActionPopMpls struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Ethertype     uint32                 `protobuf:"varint,1,opt,name=ethertype,proto3" json:"ethertype,omitempty"` // Ethertype
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpActionPopMpls) Reset() {
+	*x = OfpActionPopMpls{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[19]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpActionPopMpls) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpActionPopMpls) ProtoMessage() {}
+
+func (x *OfpActionPopMpls) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[19]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpActionPopMpls.ProtoReflect.Descriptor instead.
+func (*OfpActionPopMpls) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{19}
+}
+
+func (x *OfpActionPopMpls) GetEthertype() uint32 {
+	if x != nil {
+		return x.Ethertype
+	}
+	return 0
+}
+
+// Action structure for OFPAT_GROUP.
+type OfpActionGroup struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	GroupId       uint32                 `protobuf:"varint,1,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"` // Group identifier.
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpActionGroup) Reset() {
+	*x = OfpActionGroup{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[20]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpActionGroup) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpActionGroup) ProtoMessage() {}
+
+func (x *OfpActionGroup) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[20]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpActionGroup.ProtoReflect.Descriptor instead.
+func (*OfpActionGroup) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{20}
+}
+
+func (x *OfpActionGroup) GetGroupId() uint32 {
+	if x != nil {
+		return x.GroupId
+	}
+	return 0
+}
+
+// Action structure for OFPAT_SET_NW_TTL.
+type OfpActionNwTtl struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	NwTtl         uint32                 `protobuf:"varint,1,opt,name=nw_ttl,json=nwTtl,proto3" json:"nw_ttl,omitempty"` // IP TTL
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpActionNwTtl) Reset() {
+	*x = OfpActionNwTtl{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[21]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpActionNwTtl) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpActionNwTtl) ProtoMessage() {}
+
+func (x *OfpActionNwTtl) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[21]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpActionNwTtl.ProtoReflect.Descriptor instead.
+func (*OfpActionNwTtl) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{21}
+}
+
+func (x *OfpActionNwTtl) GetNwTtl() uint32 {
+	if x != nil {
+		return x.NwTtl
+	}
+	return 0
+}
+
+// Action structure for OFPAT_SET_FIELD.
+type OfpActionSetField struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Field         *OfpOxmField           `protobuf:"bytes,1,opt,name=field,proto3" json:"field,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpActionSetField) Reset() {
+	*x = OfpActionSetField{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[22]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpActionSetField) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpActionSetField) ProtoMessage() {}
+
+func (x *OfpActionSetField) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[22]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpActionSetField.ProtoReflect.Descriptor instead.
+func (*OfpActionSetField) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{22}
+}
+
+func (x *OfpActionSetField) GetField() *OfpOxmField {
+	if x != nil {
+		return x.Field
+	}
+	return nil
+}
+
+// Action header for OFPAT_EXPERIMENTER.
+// The rest of the body is experimenter-defined.
+type OfpActionExperimenter struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Experimenter  uint32                 `protobuf:"varint,1,opt,name=experimenter,proto3" json:"experimenter,omitempty"`
+	Data          []byte                 `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpActionExperimenter) Reset() {
+	*x = OfpActionExperimenter{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[23]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpActionExperimenter) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpActionExperimenter) ProtoMessage() {}
+
+func (x *OfpActionExperimenter) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[23]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpActionExperimenter.ProtoReflect.Descriptor instead.
+func (*OfpActionExperimenter) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{23}
+}
+
+func (x *OfpActionExperimenter) GetExperimenter() uint32 {
+	if x != nil {
+		return x.Experimenter
+	}
+	return 0
+}
+
+func (x *OfpActionExperimenter) GetData() []byte {
+	if x != nil {
+		return x.Data
+	}
+	return nil
+}
+
+// Instruction header that is common to all instructions.  The length includes
+// the header and any padding used to make the instruction 64-bit aligned.
+// NB: The length of an instruction *must* always be a multiple of eight.
+type OfpInstruction struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
+	Type  uint32                 `protobuf:"varint,1,opt,name=type,proto3" json:"type,omitempty"` // Instruction type
+	// Types that are valid to be assigned to Data:
+	//
+	//	*OfpInstruction_GotoTable
+	//	*OfpInstruction_WriteMetadata
+	//	*OfpInstruction_Actions
+	//	*OfpInstruction_Meter
+	//	*OfpInstruction_Experimenter
+	Data          isOfpInstruction_Data `protobuf_oneof:"data"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpInstruction) Reset() {
+	*x = OfpInstruction{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[24]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpInstruction) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpInstruction) ProtoMessage() {}
+
+func (x *OfpInstruction) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[24]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpInstruction.ProtoReflect.Descriptor instead.
+func (*OfpInstruction) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{24}
+}
+
+func (x *OfpInstruction) GetType() uint32 {
+	if x != nil {
+		return x.Type
+	}
+	return 0
+}
+
+func (x *OfpInstruction) GetData() isOfpInstruction_Data {
+	if x != nil {
+		return x.Data
+	}
+	return nil
+}
+
+func (x *OfpInstruction) GetGotoTable() *OfpInstructionGotoTable {
+	if x != nil {
+		if x, ok := x.Data.(*OfpInstruction_GotoTable); ok {
+			return x.GotoTable
+		}
+	}
+	return nil
+}
+
+func (x *OfpInstruction) GetWriteMetadata() *OfpInstructionWriteMetadata {
+	if x != nil {
+		if x, ok := x.Data.(*OfpInstruction_WriteMetadata); ok {
+			return x.WriteMetadata
+		}
+	}
+	return nil
+}
+
+func (x *OfpInstruction) GetActions() *OfpInstructionActions {
+	if x != nil {
+		if x, ok := x.Data.(*OfpInstruction_Actions); ok {
+			return x.Actions
+		}
+	}
+	return nil
+}
+
+func (x *OfpInstruction) GetMeter() *OfpInstructionMeter {
+	if x != nil {
+		if x, ok := x.Data.(*OfpInstruction_Meter); ok {
+			return x.Meter
+		}
+	}
+	return nil
+}
+
+func (x *OfpInstruction) GetExperimenter() *OfpInstructionExperimenter {
+	if x != nil {
+		if x, ok := x.Data.(*OfpInstruction_Experimenter); ok {
+			return x.Experimenter
+		}
+	}
+	return nil
+}
+
+type isOfpInstruction_Data interface {
+	isOfpInstruction_Data()
+}
+
+type OfpInstruction_GotoTable struct {
+	GotoTable *OfpInstructionGotoTable `protobuf:"bytes,2,opt,name=goto_table,json=gotoTable,proto3,oneof"`
+}
+
+type OfpInstruction_WriteMetadata struct {
+	WriteMetadata *OfpInstructionWriteMetadata `protobuf:"bytes,3,opt,name=write_metadata,json=writeMetadata,proto3,oneof"`
+}
+
+type OfpInstruction_Actions struct {
+	Actions *OfpInstructionActions `protobuf:"bytes,4,opt,name=actions,proto3,oneof"`
+}
+
+type OfpInstruction_Meter struct {
+	Meter *OfpInstructionMeter `protobuf:"bytes,5,opt,name=meter,proto3,oneof"`
+}
+
+type OfpInstruction_Experimenter struct {
+	Experimenter *OfpInstructionExperimenter `protobuf:"bytes,6,opt,name=experimenter,proto3,oneof"`
+}
+
+func (*OfpInstruction_GotoTable) isOfpInstruction_Data() {}
+
+func (*OfpInstruction_WriteMetadata) isOfpInstruction_Data() {}
+
+func (*OfpInstruction_Actions) isOfpInstruction_Data() {}
+
+func (*OfpInstruction_Meter) isOfpInstruction_Data() {}
+
+func (*OfpInstruction_Experimenter) isOfpInstruction_Data() {}
+
+// Instruction structure for OFPIT_GOTO_TABLE
+type OfpInstructionGotoTable struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	TableId       uint32                 `protobuf:"varint,1,opt,name=table_id,json=tableId,proto3" json:"table_id,omitempty"` // Set next table in the lookup pipeline
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpInstructionGotoTable) Reset() {
+	*x = OfpInstructionGotoTable{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[25]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpInstructionGotoTable) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpInstructionGotoTable) ProtoMessage() {}
+
+func (x *OfpInstructionGotoTable) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[25]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpInstructionGotoTable.ProtoReflect.Descriptor instead.
+func (*OfpInstructionGotoTable) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{25}
+}
+
+func (x *OfpInstructionGotoTable) GetTableId() uint32 {
+	if x != nil {
+		return x.TableId
+	}
+	return 0
+}
+
+// Instruction structure for OFPIT_WRITE_METADATA
+type OfpInstructionWriteMetadata struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Metadata      uint64                 `protobuf:"varint,1,opt,name=metadata,proto3" json:"metadata,omitempty"`                             // Metadata value to write
+	MetadataMask  uint64                 `protobuf:"varint,2,opt,name=metadata_mask,json=metadataMask,proto3" json:"metadata_mask,omitempty"` // Metadata write bitmask
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpInstructionWriteMetadata) Reset() {
+	*x = OfpInstructionWriteMetadata{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[26]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpInstructionWriteMetadata) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpInstructionWriteMetadata) ProtoMessage() {}
+
+func (x *OfpInstructionWriteMetadata) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[26]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpInstructionWriteMetadata.ProtoReflect.Descriptor instead.
+func (*OfpInstructionWriteMetadata) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{26}
+}
+
+func (x *OfpInstructionWriteMetadata) GetMetadata() uint64 {
+	if x != nil {
+		return x.Metadata
+	}
+	return 0
+}
+
+func (x *OfpInstructionWriteMetadata) GetMetadataMask() uint64 {
+	if x != nil {
+		return x.MetadataMask
+	}
+	return 0
+}
+
+// Instruction structure for OFPIT_WRITE/APPLY/CLEAR_ACTIONS
+type OfpInstructionActions struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Actions       []*OfpAction           `protobuf:"bytes,1,rep,name=actions,proto3" json:"actions,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpInstructionActions) Reset() {
+	*x = OfpInstructionActions{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[27]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpInstructionActions) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpInstructionActions) ProtoMessage() {}
+
+func (x *OfpInstructionActions) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[27]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpInstructionActions.ProtoReflect.Descriptor instead.
+func (*OfpInstructionActions) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{27}
+}
+
+func (x *OfpInstructionActions) GetActions() []*OfpAction {
+	if x != nil {
+		return x.Actions
+	}
+	return nil
+}
+
+// Instruction structure for OFPIT_METER
+type OfpInstructionMeter struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	MeterId       uint32                 `protobuf:"varint,1,opt,name=meter_id,json=meterId,proto3" json:"meter_id,omitempty"` // Meter instance.
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpInstructionMeter) Reset() {
+	*x = OfpInstructionMeter{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[28]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpInstructionMeter) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpInstructionMeter) ProtoMessage() {}
+
+func (x *OfpInstructionMeter) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[28]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpInstructionMeter.ProtoReflect.Descriptor instead.
+func (*OfpInstructionMeter) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{28}
+}
+
+func (x *OfpInstructionMeter) GetMeterId() uint32 {
+	if x != nil {
+		return x.MeterId
+	}
+	return 0
+}
+
+// Instruction structure for experimental instructions
+type OfpInstructionExperimenter struct {
+	state        protoimpl.MessageState `protogen:"open.v1"`
+	Experimenter uint32                 `protobuf:"varint,1,opt,name=experimenter,proto3" json:"experimenter,omitempty"`
+	// Experimenter-defined arbitrary additional data.
+	Data          []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpInstructionExperimenter) Reset() {
+	*x = OfpInstructionExperimenter{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[29]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpInstructionExperimenter) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpInstructionExperimenter) ProtoMessage() {}
+
+func (x *OfpInstructionExperimenter) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[29]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpInstructionExperimenter.ProtoReflect.Descriptor instead.
+func (*OfpInstructionExperimenter) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{29}
+}
+
+func (x *OfpInstructionExperimenter) GetExperimenter() uint32 {
+	if x != nil {
+		return x.Experimenter
+	}
+	return 0
+}
+
+func (x *OfpInstructionExperimenter) GetData() []byte {
+	if x != nil {
+		return x.Data
+	}
+	return nil
+}
+
+// Flow setup and teardown (controller -> datapath).
+type OfpFlowMod struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// ofp_header header;
+	Cookie        uint64            `protobuf:"varint,1,opt,name=cookie,proto3" json:"cookie,omitempty"` // Opaque controller-issued identifier.
+	CookieMask    uint64            `protobuf:"varint,2,opt,name=cookie_mask,json=cookieMask,proto3" json:"cookie_mask,omitempty"`
+	TableId       uint32            `protobuf:"varint,3,opt,name=table_id,json=tableId,proto3" json:"table_id,omitempty"`
+	Command       OfpFlowModCommand `protobuf:"varint,4,opt,name=command,proto3,enum=openflow_13.OfpFlowModCommand" json:"command,omitempty"` // One of OFPFC_*.
+	IdleTimeout   uint32            `protobuf:"varint,5,opt,name=idle_timeout,json=idleTimeout,proto3" json:"idle_timeout,omitempty"`         // Idle time before discarding (seconds).
+	HardTimeout   uint32            `protobuf:"varint,6,opt,name=hard_timeout,json=hardTimeout,proto3" json:"hard_timeout,omitempty"`         // Max time before discarding (seconds).
+	Priority      uint32            `protobuf:"varint,7,opt,name=priority,proto3" json:"priority,omitempty"`                                  // Priority level of flow entry.
+	BufferId      uint32            `protobuf:"varint,8,opt,name=buffer_id,json=bufferId,proto3" json:"buffer_id,omitempty"`
+	OutPort       uint32            `protobuf:"varint,9,opt,name=out_port,json=outPort,proto3" json:"out_port,omitempty"`
+	OutGroup      uint32            `protobuf:"varint,10,opt,name=out_group,json=outGroup,proto3" json:"out_group,omitempty"`
+	Flags         uint32            `protobuf:"varint,11,opt,name=flags,proto3" json:"flags,omitempty"`              // Bitmap of OFPFF_* flags.
+	Match         *OfpMatch         `protobuf:"bytes,12,opt,name=match,proto3" json:"match,omitempty"`               // Fields to match. Variable size.
+	Instructions  []*OfpInstruction `protobuf:"bytes,13,rep,name=instructions,proto3" json:"instructions,omitempty"` // 0 or more.
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpFlowMod) Reset() {
+	*x = OfpFlowMod{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[30]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpFlowMod) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpFlowMod) ProtoMessage() {}
+
+func (x *OfpFlowMod) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[30]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpFlowMod.ProtoReflect.Descriptor instead.
+func (*OfpFlowMod) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{30}
+}
+
+func (x *OfpFlowMod) GetCookie() uint64 {
+	if x != nil {
+		return x.Cookie
+	}
+	return 0
+}
+
+func (x *OfpFlowMod) GetCookieMask() uint64 {
+	if x != nil {
+		return x.CookieMask
+	}
+	return 0
+}
+
+func (x *OfpFlowMod) GetTableId() uint32 {
+	if x != nil {
+		return x.TableId
+	}
+	return 0
+}
+
+func (x *OfpFlowMod) GetCommand() OfpFlowModCommand {
+	if x != nil {
+		return x.Command
+	}
+	return OfpFlowModCommand_OFPFC_ADD
+}
+
+func (x *OfpFlowMod) GetIdleTimeout() uint32 {
+	if x != nil {
+		return x.IdleTimeout
+	}
+	return 0
+}
+
+func (x *OfpFlowMod) GetHardTimeout() uint32 {
+	if x != nil {
+		return x.HardTimeout
+	}
+	return 0
+}
+
+func (x *OfpFlowMod) GetPriority() uint32 {
+	if x != nil {
+		return x.Priority
+	}
+	return 0
+}
+
+func (x *OfpFlowMod) GetBufferId() uint32 {
+	if x != nil {
+		return x.BufferId
+	}
+	return 0
+}
+
+func (x *OfpFlowMod) GetOutPort() uint32 {
+	if x != nil {
+		return x.OutPort
+	}
+	return 0
+}
+
+func (x *OfpFlowMod) GetOutGroup() uint32 {
+	if x != nil {
+		return x.OutGroup
+	}
+	return 0
+}
+
+func (x *OfpFlowMod) GetFlags() uint32 {
+	if x != nil {
+		return x.Flags
+	}
+	return 0
+}
+
+func (x *OfpFlowMod) GetMatch() *OfpMatch {
+	if x != nil {
+		return x.Match
+	}
+	return nil
+}
+
+func (x *OfpFlowMod) GetInstructions() []*OfpInstruction {
+	if x != nil {
+		return x.Instructions
+	}
+	return nil
+}
+
+// Bucket for use in groups.
+type OfpBucket struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Weight        uint32                 `protobuf:"varint,1,opt,name=weight,proto3" json:"weight,omitempty"`
+	WatchPort     uint32                 `protobuf:"varint,2,opt,name=watch_port,json=watchPort,proto3" json:"watch_port,omitempty"`
+	WatchGroup    uint32                 `protobuf:"varint,3,opt,name=watch_group,json=watchGroup,proto3" json:"watch_group,omitempty"`
+	Actions       []*OfpAction           `protobuf:"bytes,4,rep,name=actions,proto3" json:"actions,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpBucket) Reset() {
+	*x = OfpBucket{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[31]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpBucket) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpBucket) ProtoMessage() {}
+
+func (x *OfpBucket) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[31]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpBucket.ProtoReflect.Descriptor instead.
+func (*OfpBucket) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{31}
+}
+
+func (x *OfpBucket) GetWeight() uint32 {
+	if x != nil {
+		return x.Weight
+	}
+	return 0
+}
+
+func (x *OfpBucket) GetWatchPort() uint32 {
+	if x != nil {
+		return x.WatchPort
+	}
+	return 0
+}
+
+func (x *OfpBucket) GetWatchGroup() uint32 {
+	if x != nil {
+		return x.WatchGroup
+	}
+	return 0
+}
+
+func (x *OfpBucket) GetActions() []*OfpAction {
+	if x != nil {
+		return x.Actions
+	}
+	return nil
+}
+
+// Group setup and teardown (controller -> datapath).
+type OfpGroupMod struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// ofp_header header;
+	Command       OfpGroupModCommand `protobuf:"varint,1,opt,name=command,proto3,enum=openflow_13.OfpGroupModCommand" json:"command,omitempty"` // One of OFPGC_*.
+	Type          OfpGroupType       `protobuf:"varint,2,opt,name=type,proto3,enum=openflow_13.OfpGroupType" json:"type,omitempty"`             // One of OFPGT_*.
+	GroupId       uint32             `protobuf:"varint,3,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`                      // Group identifier.
+	Buckets       []*OfpBucket       `protobuf:"bytes,4,rep,name=buckets,proto3" json:"buckets,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpGroupMod) Reset() {
+	*x = OfpGroupMod{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[32]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpGroupMod) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpGroupMod) ProtoMessage() {}
+
+func (x *OfpGroupMod) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[32]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpGroupMod.ProtoReflect.Descriptor instead.
+func (*OfpGroupMod) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{32}
+}
+
+func (x *OfpGroupMod) GetCommand() OfpGroupModCommand {
+	if x != nil {
+		return x.Command
+	}
+	return OfpGroupModCommand_OFPGC_ADD
+}
+
+func (x *OfpGroupMod) GetType() OfpGroupType {
+	if x != nil {
+		return x.Type
+	}
+	return OfpGroupType_OFPGT_ALL
+}
+
+func (x *OfpGroupMod) GetGroupId() uint32 {
+	if x != nil {
+		return x.GroupId
+	}
+	return 0
+}
+
+func (x *OfpGroupMod) GetBuckets() []*OfpBucket {
+	if x != nil {
+		return x.Buckets
+	}
+	return nil
+}
+
+// Send packet (controller -> datapath).
+type OfpPacketOut struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// ofp_header header;
+	BufferId uint32       `protobuf:"varint,1,opt,name=buffer_id,json=bufferId,proto3" json:"buffer_id,omitempty"`
+	InPort   uint32       `protobuf:"varint,2,opt,name=in_port,json=inPort,proto3" json:"in_port,omitempty"` // Packet's input port or OFPP_CONTROLLER.
+	Actions  []*OfpAction `protobuf:"bytes,3,rep,name=actions,proto3" json:"actions,omitempty"`              // Action list - 0 or more.
+	// The variable size action list is optionally followed by packet data.
+	// This data is only present and meaningful if buffer_id == -1.
+	Data          []byte `protobuf:"bytes,4,opt,name=data,proto3" json:"data,omitempty"` // Packet data.
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpPacketOut) Reset() {
+	*x = OfpPacketOut{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[33]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpPacketOut) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpPacketOut) ProtoMessage() {}
+
+func (x *OfpPacketOut) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[33]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpPacketOut.ProtoReflect.Descriptor instead.
+func (*OfpPacketOut) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{33}
+}
+
+func (x *OfpPacketOut) GetBufferId() uint32 {
+	if x != nil {
+		return x.BufferId
+	}
+	return 0
+}
+
+func (x *OfpPacketOut) GetInPort() uint32 {
+	if x != nil {
+		return x.InPort
+	}
+	return 0
+}
+
+func (x *OfpPacketOut) GetActions() []*OfpAction {
+	if x != nil {
+		return x.Actions
+	}
+	return nil
+}
+
+func (x *OfpPacketOut) GetData() []byte {
+	if x != nil {
+		return x.Data
+	}
+	return nil
+}
+
+// Packet received on port (datapath -> controller).
+type OfpPacketIn struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// ofp_header header;
+	BufferId      uint32            `protobuf:"varint,1,opt,name=buffer_id,json=bufferId,proto3" json:"buffer_id,omitempty"`                // ID assigned by datapath.
+	Reason        OfpPacketInReason `protobuf:"varint,2,opt,name=reason,proto3,enum=openflow_13.OfpPacketInReason" json:"reason,omitempty"` // Reason packet is being sent
+	TableId       uint32            `protobuf:"varint,3,opt,name=table_id,json=tableId,proto3" json:"table_id,omitempty"`                   // ID of the table that was looked up
+	Cookie        uint64            `protobuf:"varint,4,opt,name=cookie,proto3" json:"cookie,omitempty"`                                    // Cookie of the flow entry that was looked up.
+	Match         *OfpMatch         `protobuf:"bytes,5,opt,name=match,proto3" json:"match,omitempty"`                                       // Packet metadata. Variable size.
+	Data          []byte            `protobuf:"bytes,6,opt,name=data,proto3" json:"data,omitempty"`                                         // Ethernet frame
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpPacketIn) Reset() {
+	*x = OfpPacketIn{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[34]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpPacketIn) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpPacketIn) ProtoMessage() {}
+
+func (x *OfpPacketIn) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[34]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpPacketIn.ProtoReflect.Descriptor instead.
+func (*OfpPacketIn) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{34}
+}
+
+func (x *OfpPacketIn) GetBufferId() uint32 {
+	if x != nil {
+		return x.BufferId
+	}
+	return 0
+}
+
+func (x *OfpPacketIn) GetReason() OfpPacketInReason {
+	if x != nil {
+		return x.Reason
+	}
+	return OfpPacketInReason_OFPR_NO_MATCH
+}
+
+func (x *OfpPacketIn) GetTableId() uint32 {
+	if x != nil {
+		return x.TableId
+	}
+	return 0
+}
+
+func (x *OfpPacketIn) GetCookie() uint64 {
+	if x != nil {
+		return x.Cookie
+	}
+	return 0
+}
+
+func (x *OfpPacketIn) GetMatch() *OfpMatch {
+	if x != nil {
+		return x.Match
+	}
+	return nil
+}
+
+func (x *OfpPacketIn) GetData() []byte {
+	if x != nil {
+		return x.Data
+	}
+	return nil
+}
+
+// Flow removed (datapath -> controller).
+type OfpFlowRemoved struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// ofp_header header;
+	Cookie        uint64               `protobuf:"varint,1,opt,name=cookie,proto3" json:"cookie,omitempty"`                                       // Opaque controller-issued identifier.
+	Priority      uint32               `protobuf:"varint,2,opt,name=priority,proto3" json:"priority,omitempty"`                                   // Priority level of flow entry.
+	Reason        OfpFlowRemovedReason `protobuf:"varint,3,opt,name=reason,proto3,enum=openflow_13.OfpFlowRemovedReason" json:"reason,omitempty"` // One of OFPRR_*.
+	TableId       uint32               `protobuf:"varint,4,opt,name=table_id,json=tableId,proto3" json:"table_id,omitempty"`                      // ID of the table
+	DurationSec   uint32               `protobuf:"varint,5,opt,name=duration_sec,json=durationSec,proto3" json:"duration_sec,omitempty"`          // Time flow was alive in seconds.
+	DurationNsec  uint32               `protobuf:"varint,6,opt,name=duration_nsec,json=durationNsec,proto3" json:"duration_nsec,omitempty"`
+	IdleTimeout   uint32               `protobuf:"varint,7,opt,name=idle_timeout,json=idleTimeout,proto3" json:"idle_timeout,omitempty"` // Idle timeout from original flow mod.
+	HardTimeout   uint32               `protobuf:"varint,8,opt,name=hard_timeout,json=hardTimeout,proto3" json:"hard_timeout,omitempty"` // Hard timeout from original flow mod.
+	PacketCount   uint64               `protobuf:"varint,9,opt,name=packet_count,json=packetCount,proto3" json:"packet_count,omitempty"`
+	ByteCount     uint64               `protobuf:"varint,10,opt,name=byte_count,json=byteCount,proto3" json:"byte_count,omitempty"`
+	Match         *OfpMatch            `protobuf:"bytes,121,opt,name=match,proto3" json:"match,omitempty"` // Description of fields. Variable size.
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpFlowRemoved) Reset() {
+	*x = OfpFlowRemoved{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[35]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpFlowRemoved) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpFlowRemoved) ProtoMessage() {}
+
+func (x *OfpFlowRemoved) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[35]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpFlowRemoved.ProtoReflect.Descriptor instead.
+func (*OfpFlowRemoved) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{35}
+}
+
+func (x *OfpFlowRemoved) GetCookie() uint64 {
+	if x != nil {
+		return x.Cookie
+	}
+	return 0
+}
+
+func (x *OfpFlowRemoved) GetPriority() uint32 {
+	if x != nil {
+		return x.Priority
+	}
+	return 0
+}
+
+func (x *OfpFlowRemoved) GetReason() OfpFlowRemovedReason {
+	if x != nil {
+		return x.Reason
+	}
+	return OfpFlowRemovedReason_OFPRR_IDLE_TIMEOUT
+}
+
+func (x *OfpFlowRemoved) GetTableId() uint32 {
+	if x != nil {
+		return x.TableId
+	}
+	return 0
+}
+
+func (x *OfpFlowRemoved) GetDurationSec() uint32 {
+	if x != nil {
+		return x.DurationSec
+	}
+	return 0
+}
+
+func (x *OfpFlowRemoved) GetDurationNsec() uint32 {
+	if x != nil {
+		return x.DurationNsec
+	}
+	return 0
+}
+
+func (x *OfpFlowRemoved) GetIdleTimeout() uint32 {
+	if x != nil {
+		return x.IdleTimeout
+	}
+	return 0
+}
+
+func (x *OfpFlowRemoved) GetHardTimeout() uint32 {
+	if x != nil {
+		return x.HardTimeout
+	}
+	return 0
+}
+
+func (x *OfpFlowRemoved) GetPacketCount() uint64 {
+	if x != nil {
+		return x.PacketCount
+	}
+	return 0
+}
+
+func (x *OfpFlowRemoved) GetByteCount() uint64 {
+	if x != nil {
+		return x.ByteCount
+	}
+	return 0
+}
+
+func (x *OfpFlowRemoved) GetMatch() *OfpMatch {
+	if x != nil {
+		return x.Match
+	}
+	return nil
+}
+
+// Common header for all meter bands
+type OfpMeterBandHeader struct {
+	state     protoimpl.MessageState `protogen:"open.v1"`
+	Type      OfpMeterBandType       `protobuf:"varint,1,opt,name=type,proto3,enum=openflow_13.OfpMeterBandType" json:"type,omitempty"` // One of OFPMBT_*.
+	Rate      uint32                 `protobuf:"varint,2,opt,name=rate,proto3" json:"rate,omitempty"`                                   // Rate for this band.
+	BurstSize uint32                 `protobuf:"varint,3,opt,name=burst_size,json=burstSize,proto3" json:"burst_size,omitempty"`        // Size of bursts.
+	// Types that are valid to be assigned to Data:
+	//
+	//	*OfpMeterBandHeader_Drop
+	//	*OfpMeterBandHeader_DscpRemark
+	//	*OfpMeterBandHeader_Experimenter
+	Data          isOfpMeterBandHeader_Data `protobuf_oneof:"data"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpMeterBandHeader) Reset() {
+	*x = OfpMeterBandHeader{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[36]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpMeterBandHeader) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpMeterBandHeader) ProtoMessage() {}
+
+func (x *OfpMeterBandHeader) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[36]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpMeterBandHeader.ProtoReflect.Descriptor instead.
+func (*OfpMeterBandHeader) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{36}
+}
+
+func (x *OfpMeterBandHeader) GetType() OfpMeterBandType {
+	if x != nil {
+		return x.Type
+	}
+	return OfpMeterBandType_OFPMBT_INVALID
+}
+
+func (x *OfpMeterBandHeader) GetRate() uint32 {
+	if x != nil {
+		return x.Rate
+	}
+	return 0
+}
+
+func (x *OfpMeterBandHeader) GetBurstSize() uint32 {
+	if x != nil {
+		return x.BurstSize
+	}
+	return 0
+}
+
+func (x *OfpMeterBandHeader) GetData() isOfpMeterBandHeader_Data {
+	if x != nil {
+		return x.Data
+	}
+	return nil
+}
+
+func (x *OfpMeterBandHeader) GetDrop() *OfpMeterBandDrop {
+	if x != nil {
+		if x, ok := x.Data.(*OfpMeterBandHeader_Drop); ok {
+			return x.Drop
+		}
+	}
+	return nil
+}
+
+func (x *OfpMeterBandHeader) GetDscpRemark() *OfpMeterBandDscpRemark {
+	if x != nil {
+		if x, ok := x.Data.(*OfpMeterBandHeader_DscpRemark); ok {
+			return x.DscpRemark
+		}
+	}
+	return nil
+}
+
+func (x *OfpMeterBandHeader) GetExperimenter() *OfpMeterBandExperimenter {
+	if x != nil {
+		if x, ok := x.Data.(*OfpMeterBandHeader_Experimenter); ok {
+			return x.Experimenter
+		}
+	}
+	return nil
+}
+
+type isOfpMeterBandHeader_Data interface {
+	isOfpMeterBandHeader_Data()
+}
+
+type OfpMeterBandHeader_Drop struct {
+	Drop *OfpMeterBandDrop `protobuf:"bytes,4,opt,name=drop,proto3,oneof"`
+}
+
+type OfpMeterBandHeader_DscpRemark struct {
+	DscpRemark *OfpMeterBandDscpRemark `protobuf:"bytes,5,opt,name=dscp_remark,json=dscpRemark,proto3,oneof"`
+}
+
+type OfpMeterBandHeader_Experimenter struct {
+	Experimenter *OfpMeterBandExperimenter `protobuf:"bytes,6,opt,name=experimenter,proto3,oneof"`
+}
+
+func (*OfpMeterBandHeader_Drop) isOfpMeterBandHeader_Data() {}
+
+func (*OfpMeterBandHeader_DscpRemark) isOfpMeterBandHeader_Data() {}
+
+func (*OfpMeterBandHeader_Experimenter) isOfpMeterBandHeader_Data() {}
+
+// OFPMBT_DROP band - drop packets
+type OfpMeterBandDrop struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpMeterBandDrop) Reset() {
+	*x = OfpMeterBandDrop{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[37]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpMeterBandDrop) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpMeterBandDrop) ProtoMessage() {}
+
+func (x *OfpMeterBandDrop) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[37]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpMeterBandDrop.ProtoReflect.Descriptor instead.
+func (*OfpMeterBandDrop) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{37}
+}
+
+// OFPMBT_DSCP_REMARK band - Remark DSCP in the IP header
+type OfpMeterBandDscpRemark struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	PrecLevel     uint32                 `protobuf:"varint,1,opt,name=prec_level,json=precLevel,proto3" json:"prec_level,omitempty"` // Number of drop precedence level to add.
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpMeterBandDscpRemark) Reset() {
+	*x = OfpMeterBandDscpRemark{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[38]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpMeterBandDscpRemark) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpMeterBandDscpRemark) ProtoMessage() {}
+
+func (x *OfpMeterBandDscpRemark) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[38]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpMeterBandDscpRemark.ProtoReflect.Descriptor instead.
+func (*OfpMeterBandDscpRemark) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{38}
+}
+
+func (x *OfpMeterBandDscpRemark) GetPrecLevel() uint32 {
+	if x != nil {
+		return x.PrecLevel
+	}
+	return 0
+}
+
+// OFPMBT_EXPERIMENTER band - Experimenter type.
+// The rest of the band is experimenter-defined.
+type OfpMeterBandExperimenter struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Experimenter  uint32                 `protobuf:"varint,1,opt,name=experimenter,proto3" json:"experimenter,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpMeterBandExperimenter) Reset() {
+	*x = OfpMeterBandExperimenter{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[39]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpMeterBandExperimenter) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpMeterBandExperimenter) ProtoMessage() {}
+
+func (x *OfpMeterBandExperimenter) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[39]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpMeterBandExperimenter.ProtoReflect.Descriptor instead.
+func (*OfpMeterBandExperimenter) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{39}
+}
+
+func (x *OfpMeterBandExperimenter) GetExperimenter() uint32 {
+	if x != nil {
+		return x.Experimenter
+	}
+	return 0
+}
+
+// Meter configuration. OFPT_METER_MOD.
+type OfpMeterMod struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Command       OfpMeterModCommand     `protobuf:"varint,1,opt,name=command,proto3,enum=openflow_13.OfpMeterModCommand" json:"command,omitempty"` // One of OFPMC_*.
+	Flags         uint32                 `protobuf:"varint,2,opt,name=flags,proto3" json:"flags,omitempty"`                                         // Bitmap of OFPMF_* flags.
+	MeterId       uint32                 `protobuf:"varint,3,opt,name=meter_id,json=meterId,proto3" json:"meter_id,omitempty"`                      // Meter instance.
+	Bands         []*OfpMeterBandHeader  `protobuf:"bytes,4,rep,name=bands,proto3" json:"bands,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpMeterMod) Reset() {
+	*x = OfpMeterMod{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[40]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpMeterMod) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpMeterMod) ProtoMessage() {}
+
+func (x *OfpMeterMod) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[40]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpMeterMod.ProtoReflect.Descriptor instead.
+func (*OfpMeterMod) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{40}
+}
+
+func (x *OfpMeterMod) GetCommand() OfpMeterModCommand {
+	if x != nil {
+		return x.Command
+	}
+	return OfpMeterModCommand_OFPMC_ADD
+}
+
+func (x *OfpMeterMod) GetFlags() uint32 {
+	if x != nil {
+		return x.Flags
+	}
+	return 0
+}
+
+func (x *OfpMeterMod) GetMeterId() uint32 {
+	if x != nil {
+		return x.MeterId
+	}
+	return 0
+}
+
+func (x *OfpMeterMod) GetBands() []*OfpMeterBandHeader {
+	if x != nil {
+		return x.Bands
+	}
+	return nil
+}
+
+// OFPT_ERROR: Error message (datapath -> controller).
+type OfpErrorMsg struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Header        *OfpHeader             `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"`
+	Type          uint32                 `protobuf:"varint,2,opt,name=type,proto3" json:"type,omitempty"`
+	Code          uint32                 `protobuf:"varint,3,opt,name=code,proto3" json:"code,omitempty"`
+	Data          []byte                 `protobuf:"bytes,4,opt,name=data,proto3" json:"data,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpErrorMsg) Reset() {
+	*x = OfpErrorMsg{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[41]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpErrorMsg) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpErrorMsg) ProtoMessage() {}
+
+func (x *OfpErrorMsg) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[41]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpErrorMsg.ProtoReflect.Descriptor instead.
+func (*OfpErrorMsg) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{41}
+}
+
+func (x *OfpErrorMsg) GetHeader() *OfpHeader {
+	if x != nil {
+		return x.Header
+	}
+	return nil
+}
+
+func (x *OfpErrorMsg) GetType() uint32 {
+	if x != nil {
+		return x.Type
+	}
+	return 0
+}
+
+func (x *OfpErrorMsg) GetCode() uint32 {
+	if x != nil {
+		return x.Code
+	}
+	return 0
+}
+
+func (x *OfpErrorMsg) GetData() []byte {
+	if x != nil {
+		return x.Data
+	}
+	return nil
+}
+
+// OFPET_EXPERIMENTER: Error message (datapath -> controller).
+type OfpErrorExperimenterMsg struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Type          uint32                 `protobuf:"varint,1,opt,name=type,proto3" json:"type,omitempty"`                      // OFPET_EXPERIMENTER.
+	ExpType       uint32                 `protobuf:"varint,2,opt,name=exp_type,json=expType,proto3" json:"exp_type,omitempty"` // Experimenter defined.
+	Experimenter  uint32                 `protobuf:"varint,3,opt,name=experimenter,proto3" json:"experimenter,omitempty"`
+	Data          []byte                 `protobuf:"bytes,4,opt,name=data,proto3" json:"data,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpErrorExperimenterMsg) Reset() {
+	*x = OfpErrorExperimenterMsg{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[42]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpErrorExperimenterMsg) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpErrorExperimenterMsg) ProtoMessage() {}
+
+func (x *OfpErrorExperimenterMsg) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[42]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpErrorExperimenterMsg.ProtoReflect.Descriptor instead.
+func (*OfpErrorExperimenterMsg) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{42}
+}
+
+func (x *OfpErrorExperimenterMsg) GetType() uint32 {
+	if x != nil {
+		return x.Type
+	}
+	return 0
+}
+
+func (x *OfpErrorExperimenterMsg) GetExpType() uint32 {
+	if x != nil {
+		return x.ExpType
+	}
+	return 0
+}
+
+func (x *OfpErrorExperimenterMsg) GetExperimenter() uint32 {
+	if x != nil {
+		return x.Experimenter
+	}
+	return 0
+}
+
+func (x *OfpErrorExperimenterMsg) GetData() []byte {
+	if x != nil {
+		return x.Data
+	}
+	return nil
+}
+
+type OfpMultipartRequest struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// ofp_header header;
+	Type          OfpMultipartType `protobuf:"varint,1,opt,name=type,proto3,enum=openflow_13.OfpMultipartType" json:"type,omitempty"` // One of the OFPMP_* constants.
+	Flags         uint32           `protobuf:"varint,2,opt,name=flags,proto3" json:"flags,omitempty"`                                 // OFPMPF_REQ_* flags.
+	Body          []byte           `protobuf:"bytes,3,opt,name=body,proto3" json:"body,omitempty"`                                    // Body of the request. 0 or more bytes.
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpMultipartRequest) Reset() {
+	*x = OfpMultipartRequest{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[43]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpMultipartRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpMultipartRequest) ProtoMessage() {}
+
+func (x *OfpMultipartRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[43]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpMultipartRequest.ProtoReflect.Descriptor instead.
+func (*OfpMultipartRequest) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{43}
+}
+
+func (x *OfpMultipartRequest) GetType() OfpMultipartType {
+	if x != nil {
+		return x.Type
+	}
+	return OfpMultipartType_OFPMP_DESC
+}
+
+func (x *OfpMultipartRequest) GetFlags() uint32 {
+	if x != nil {
+		return x.Flags
+	}
+	return 0
+}
+
+func (x *OfpMultipartRequest) GetBody() []byte {
+	if x != nil {
+		return x.Body
+	}
+	return nil
+}
+
+type OfpMultipartReply struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// ofp_header header;
+	Type          OfpMultipartType `protobuf:"varint,1,opt,name=type,proto3,enum=openflow_13.OfpMultipartType" json:"type,omitempty"` // One of the OFPMP_* constants.
+	Flags         uint32           `protobuf:"varint,2,opt,name=flags,proto3" json:"flags,omitempty"`                                 // OFPMPF_REPLY_* flags.
+	Body          []byte           `protobuf:"bytes,3,opt,name=body,proto3" json:"body,omitempty"`                                    // Body of the reply. 0 or more bytes.
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpMultipartReply) Reset() {
+	*x = OfpMultipartReply{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[44]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpMultipartReply) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpMultipartReply) ProtoMessage() {}
+
+func (x *OfpMultipartReply) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[44]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpMultipartReply.ProtoReflect.Descriptor instead.
+func (*OfpMultipartReply) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{44}
+}
+
+func (x *OfpMultipartReply) GetType() OfpMultipartType {
+	if x != nil {
+		return x.Type
+	}
+	return OfpMultipartType_OFPMP_DESC
+}
+
+func (x *OfpMultipartReply) GetFlags() uint32 {
+	if x != nil {
+		return x.Flags
+	}
+	return 0
+}
+
+func (x *OfpMultipartReply) GetBody() []byte {
+	if x != nil {
+		return x.Body
+	}
+	return nil
+}
+
+// Body of reply to OFPMP_DESC request.  Each entry is a NULL-terminated
+// ASCII string.
+type OfpDesc struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	MfrDesc       string                 `protobuf:"bytes,1,opt,name=mfr_desc,json=mfrDesc,proto3" json:"mfr_desc,omitempty"`       // Manufacturer description.
+	HwDesc        string                 `protobuf:"bytes,2,opt,name=hw_desc,json=hwDesc,proto3" json:"hw_desc,omitempty"`          // Hardware description.
+	SwDesc        string                 `protobuf:"bytes,3,opt,name=sw_desc,json=swDesc,proto3" json:"sw_desc,omitempty"`          // Software description.
+	SerialNum     string                 `protobuf:"bytes,4,opt,name=serial_num,json=serialNum,proto3" json:"serial_num,omitempty"` // Serial number.
+	DpDesc        string                 `protobuf:"bytes,5,opt,name=dp_desc,json=dpDesc,proto3" json:"dp_desc,omitempty"`          // Human readable description of datapath.
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpDesc) Reset() {
+	*x = OfpDesc{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[45]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpDesc) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpDesc) ProtoMessage() {}
+
+func (x *OfpDesc) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[45]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpDesc.ProtoReflect.Descriptor instead.
+func (*OfpDesc) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{45}
+}
+
+func (x *OfpDesc) GetMfrDesc() string {
+	if x != nil {
+		return x.MfrDesc
+	}
+	return ""
+}
+
+func (x *OfpDesc) GetHwDesc() string {
+	if x != nil {
+		return x.HwDesc
+	}
+	return ""
+}
+
+func (x *OfpDesc) GetSwDesc() string {
+	if x != nil {
+		return x.SwDesc
+	}
+	return ""
+}
+
+func (x *OfpDesc) GetSerialNum() string {
+	if x != nil {
+		return x.SerialNum
+	}
+	return ""
+}
+
+func (x *OfpDesc) GetDpDesc() string {
+	if x != nil {
+		return x.DpDesc
+	}
+	return ""
+}
+
+// Body for ofp_multipart_request of type OFPMP_FLOW.
+type OfpFlowStatsRequest struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	TableId       uint32                 `protobuf:"varint,1,opt,name=table_id,json=tableId,proto3" json:"table_id,omitempty"`
+	OutPort       uint32                 `protobuf:"varint,2,opt,name=out_port,json=outPort,proto3" json:"out_port,omitempty"`
+	OutGroup      uint32                 `protobuf:"varint,3,opt,name=out_group,json=outGroup,proto3" json:"out_group,omitempty"`
+	Cookie        uint64                 `protobuf:"varint,4,opt,name=cookie,proto3" json:"cookie,omitempty"`
+	CookieMask    uint64                 `protobuf:"varint,5,opt,name=cookie_mask,json=cookieMask,proto3" json:"cookie_mask,omitempty"`
+	Match         *OfpMatch              `protobuf:"bytes,6,opt,name=match,proto3" json:"match,omitempty"` // Fields to match. Variable size.
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpFlowStatsRequest) Reset() {
+	*x = OfpFlowStatsRequest{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[46]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpFlowStatsRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpFlowStatsRequest) ProtoMessage() {}
+
+func (x *OfpFlowStatsRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[46]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpFlowStatsRequest.ProtoReflect.Descriptor instead.
+func (*OfpFlowStatsRequest) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{46}
+}
+
+func (x *OfpFlowStatsRequest) GetTableId() uint32 {
+	if x != nil {
+		return x.TableId
+	}
+	return 0
+}
+
+func (x *OfpFlowStatsRequest) GetOutPort() uint32 {
+	if x != nil {
+		return x.OutPort
+	}
+	return 0
+}
+
+func (x *OfpFlowStatsRequest) GetOutGroup() uint32 {
+	if x != nil {
+		return x.OutGroup
+	}
+	return 0
+}
+
+func (x *OfpFlowStatsRequest) GetCookie() uint64 {
+	if x != nil {
+		return x.Cookie
+	}
+	return 0
+}
+
+func (x *OfpFlowStatsRequest) GetCookieMask() uint64 {
+	if x != nil {
+		return x.CookieMask
+	}
+	return 0
+}
+
+func (x *OfpFlowStatsRequest) GetMatch() *OfpMatch {
+	if x != nil {
+		return x.Match
+	}
+	return nil
+}
+
+// Body of reply to OFPMP_FLOW request.
+type OfpFlowStats struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            uint64                 `protobuf:"varint,14,opt,name=id,proto3" json:"id,omitempty"`                                     // Unique ID of flow within device.
+	TableId       uint32                 `protobuf:"varint,1,opt,name=table_id,json=tableId,proto3" json:"table_id,omitempty"`             // ID of table flow came from.
+	DurationSec   uint32                 `protobuf:"varint,2,opt,name=duration_sec,json=durationSec,proto3" json:"duration_sec,omitempty"` // Time flow has been alive in seconds.
+	DurationNsec  uint32                 `protobuf:"varint,3,opt,name=duration_nsec,json=durationNsec,proto3" json:"duration_nsec,omitempty"`
+	Priority      uint32                 `protobuf:"varint,4,opt,name=priority,proto3" json:"priority,omitempty"`                          // Priority of the entry.
+	IdleTimeout   uint32                 `protobuf:"varint,5,opt,name=idle_timeout,json=idleTimeout,proto3" json:"idle_timeout,omitempty"` // Number of seconds idle before expiration.
+	HardTimeout   uint32                 `protobuf:"varint,6,opt,name=hard_timeout,json=hardTimeout,proto3" json:"hard_timeout,omitempty"` // Number of seconds before expiration.
+	Flags         uint32                 `protobuf:"varint,7,opt,name=flags,proto3" json:"flags,omitempty"`                                // Bitmap of OFPFF_* flags.
+	Cookie        uint64                 `protobuf:"varint,8,opt,name=cookie,proto3" json:"cookie,omitempty"`                              // Opaque controller-issued identifier.
+	PacketCount   uint64                 `protobuf:"varint,9,opt,name=packet_count,json=packetCount,proto3" json:"packet_count,omitempty"` // Number of packets in flow.
+	ByteCount     uint64                 `protobuf:"varint,10,opt,name=byte_count,json=byteCount,proto3" json:"byte_count,omitempty"`      // Number of bytes in flow.
+	Match         *OfpMatch              `protobuf:"bytes,12,opt,name=match,proto3" json:"match,omitempty"`                                // Description of fields. Variable size.
+	Instructions  []*OfpInstruction      `protobuf:"bytes,13,rep,name=instructions,proto3" json:"instructions,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpFlowStats) Reset() {
+	*x = OfpFlowStats{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[47]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpFlowStats) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpFlowStats) ProtoMessage() {}
+
+func (x *OfpFlowStats) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[47]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpFlowStats.ProtoReflect.Descriptor instead.
+func (*OfpFlowStats) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{47}
+}
+
+func (x *OfpFlowStats) GetId() uint64 {
+	if x != nil {
+		return x.Id
+	}
+	return 0
+}
+
+func (x *OfpFlowStats) GetTableId() uint32 {
+	if x != nil {
+		return x.TableId
+	}
+	return 0
+}
+
+func (x *OfpFlowStats) GetDurationSec() uint32 {
+	if x != nil {
+		return x.DurationSec
+	}
+	return 0
+}
+
+func (x *OfpFlowStats) GetDurationNsec() uint32 {
+	if x != nil {
+		return x.DurationNsec
+	}
+	return 0
+}
+
+func (x *OfpFlowStats) GetPriority() uint32 {
+	if x != nil {
+		return x.Priority
+	}
+	return 0
+}
+
+func (x *OfpFlowStats) GetIdleTimeout() uint32 {
+	if x != nil {
+		return x.IdleTimeout
+	}
+	return 0
+}
+
+func (x *OfpFlowStats) GetHardTimeout() uint32 {
+	if x != nil {
+		return x.HardTimeout
+	}
+	return 0
+}
+
+func (x *OfpFlowStats) GetFlags() uint32 {
+	if x != nil {
+		return x.Flags
+	}
+	return 0
+}
+
+func (x *OfpFlowStats) GetCookie() uint64 {
+	if x != nil {
+		return x.Cookie
+	}
+	return 0
+}
+
+func (x *OfpFlowStats) GetPacketCount() uint64 {
+	if x != nil {
+		return x.PacketCount
+	}
+	return 0
+}
+
+func (x *OfpFlowStats) GetByteCount() uint64 {
+	if x != nil {
+		return x.ByteCount
+	}
+	return 0
+}
+
+func (x *OfpFlowStats) GetMatch() *OfpMatch {
+	if x != nil {
+		return x.Match
+	}
+	return nil
+}
+
+func (x *OfpFlowStats) GetInstructions() []*OfpInstruction {
+	if x != nil {
+		return x.Instructions
+	}
+	return nil
+}
+
+// Body for ofp_multipart_request of type OFPMP_AGGREGATE.
+type OfpAggregateStatsRequest struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	TableId       uint32                 `protobuf:"varint,1,opt,name=table_id,json=tableId,proto3" json:"table_id,omitempty"`
+	OutPort       uint32                 `protobuf:"varint,2,opt,name=out_port,json=outPort,proto3" json:"out_port,omitempty"`
+	OutGroup      uint32                 `protobuf:"varint,3,opt,name=out_group,json=outGroup,proto3" json:"out_group,omitempty"`
+	Cookie        uint64                 `protobuf:"varint,4,opt,name=cookie,proto3" json:"cookie,omitempty"`
+	CookieMask    uint64                 `protobuf:"varint,5,opt,name=cookie_mask,json=cookieMask,proto3" json:"cookie_mask,omitempty"`
+	Match         *OfpMatch              `protobuf:"bytes,6,opt,name=match,proto3" json:"match,omitempty"` // Fields to match. Variable size.
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpAggregateStatsRequest) Reset() {
+	*x = OfpAggregateStatsRequest{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[48]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpAggregateStatsRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpAggregateStatsRequest) ProtoMessage() {}
+
+func (x *OfpAggregateStatsRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[48]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpAggregateStatsRequest.ProtoReflect.Descriptor instead.
+func (*OfpAggregateStatsRequest) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{48}
+}
+
+func (x *OfpAggregateStatsRequest) GetTableId() uint32 {
+	if x != nil {
+		return x.TableId
+	}
+	return 0
+}
+
+func (x *OfpAggregateStatsRequest) GetOutPort() uint32 {
+	if x != nil {
+		return x.OutPort
+	}
+	return 0
+}
+
+func (x *OfpAggregateStatsRequest) GetOutGroup() uint32 {
+	if x != nil {
+		return x.OutGroup
+	}
+	return 0
+}
+
+func (x *OfpAggregateStatsRequest) GetCookie() uint64 {
+	if x != nil {
+		return x.Cookie
+	}
+	return 0
+}
+
+func (x *OfpAggregateStatsRequest) GetCookieMask() uint64 {
+	if x != nil {
+		return x.CookieMask
+	}
+	return 0
+}
+
+func (x *OfpAggregateStatsRequest) GetMatch() *OfpMatch {
+	if x != nil {
+		return x.Match
+	}
+	return nil
+}
+
+// Body of reply to OFPMP_AGGREGATE request.
+type OfpAggregateStatsReply struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	PacketCount   uint64                 `protobuf:"varint,1,opt,name=packet_count,json=packetCount,proto3" json:"packet_count,omitempty"` // Number of packets in flows.
+	ByteCount     uint64                 `protobuf:"varint,2,opt,name=byte_count,json=byteCount,proto3" json:"byte_count,omitempty"`       // Number of bytes in flows.
+	FlowCount     uint32                 `protobuf:"varint,3,opt,name=flow_count,json=flowCount,proto3" json:"flow_count,omitempty"`       // Number of flows.
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpAggregateStatsReply) Reset() {
+	*x = OfpAggregateStatsReply{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[49]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpAggregateStatsReply) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpAggregateStatsReply) ProtoMessage() {}
+
+func (x *OfpAggregateStatsReply) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[49]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpAggregateStatsReply.ProtoReflect.Descriptor instead.
+func (*OfpAggregateStatsReply) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{49}
+}
+
+func (x *OfpAggregateStatsReply) GetPacketCount() uint64 {
+	if x != nil {
+		return x.PacketCount
+	}
+	return 0
+}
+
+func (x *OfpAggregateStatsReply) GetByteCount() uint64 {
+	if x != nil {
+		return x.ByteCount
+	}
+	return 0
+}
+
+func (x *OfpAggregateStatsReply) GetFlowCount() uint32 {
+	if x != nil {
+		return x.FlowCount
+	}
+	return 0
+}
+
+// Common header for all Table Feature Properties
+type OfpTableFeatureProperty struct {
+	state protoimpl.MessageState  `protogen:"open.v1"`
+	Type  OfpTableFeaturePropType `protobuf:"varint,1,opt,name=type,proto3,enum=openflow_13.OfpTableFeaturePropType" json:"type,omitempty"` // One of OFPTFPT_*.
+	// Types that are valid to be assigned to Value:
+	//
+	//	*OfpTableFeatureProperty_Instructions
+	//	*OfpTableFeatureProperty_NextTables
+	//	*OfpTableFeatureProperty_Actions
+	//	*OfpTableFeatureProperty_Oxm
+	//	*OfpTableFeatureProperty_Experimenter
+	Value         isOfpTableFeatureProperty_Value `protobuf_oneof:"value"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpTableFeatureProperty) Reset() {
+	*x = OfpTableFeatureProperty{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[50]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpTableFeatureProperty) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpTableFeatureProperty) ProtoMessage() {}
+
+func (x *OfpTableFeatureProperty) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[50]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpTableFeatureProperty.ProtoReflect.Descriptor instead.
+func (*OfpTableFeatureProperty) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{50}
+}
+
+func (x *OfpTableFeatureProperty) GetType() OfpTableFeaturePropType {
+	if x != nil {
+		return x.Type
+	}
+	return OfpTableFeaturePropType_OFPTFPT_INSTRUCTIONS
+}
+
+func (x *OfpTableFeatureProperty) GetValue() isOfpTableFeatureProperty_Value {
+	if x != nil {
+		return x.Value
+	}
+	return nil
+}
+
+func (x *OfpTableFeatureProperty) GetInstructions() *OfpTableFeaturePropInstructions {
+	if x != nil {
+		if x, ok := x.Value.(*OfpTableFeatureProperty_Instructions); ok {
+			return x.Instructions
+		}
+	}
+	return nil
+}
+
+func (x *OfpTableFeatureProperty) GetNextTables() *OfpTableFeaturePropNextTables {
+	if x != nil {
+		if x, ok := x.Value.(*OfpTableFeatureProperty_NextTables); ok {
+			return x.NextTables
+		}
+	}
+	return nil
+}
+
+func (x *OfpTableFeatureProperty) GetActions() *OfpTableFeaturePropActions {
+	if x != nil {
+		if x, ok := x.Value.(*OfpTableFeatureProperty_Actions); ok {
+			return x.Actions
+		}
+	}
+	return nil
+}
+
+func (x *OfpTableFeatureProperty) GetOxm() *OfpTableFeaturePropOxm {
+	if x != nil {
+		if x, ok := x.Value.(*OfpTableFeatureProperty_Oxm); ok {
+			return x.Oxm
+		}
+	}
+	return nil
+}
+
+func (x *OfpTableFeatureProperty) GetExperimenter() *OfpTableFeaturePropExperimenter {
+	if x != nil {
+		if x, ok := x.Value.(*OfpTableFeatureProperty_Experimenter); ok {
+			return x.Experimenter
+		}
+	}
+	return nil
+}
+
+type isOfpTableFeatureProperty_Value interface {
+	isOfpTableFeatureProperty_Value()
+}
+
+type OfpTableFeatureProperty_Instructions struct {
+	Instructions *OfpTableFeaturePropInstructions `protobuf:"bytes,2,opt,name=instructions,proto3,oneof"`
+}
+
+type OfpTableFeatureProperty_NextTables struct {
+	NextTables *OfpTableFeaturePropNextTables `protobuf:"bytes,3,opt,name=next_tables,json=nextTables,proto3,oneof"`
+}
+
+type OfpTableFeatureProperty_Actions struct {
+	Actions *OfpTableFeaturePropActions `protobuf:"bytes,4,opt,name=actions,proto3,oneof"`
+}
+
+type OfpTableFeatureProperty_Oxm struct {
+	Oxm *OfpTableFeaturePropOxm `protobuf:"bytes,5,opt,name=oxm,proto3,oneof"`
+}
+
+type OfpTableFeatureProperty_Experimenter struct {
+	Experimenter *OfpTableFeaturePropExperimenter `protobuf:"bytes,6,opt,name=experimenter,proto3,oneof"`
+}
+
+func (*OfpTableFeatureProperty_Instructions) isOfpTableFeatureProperty_Value() {}
+
+func (*OfpTableFeatureProperty_NextTables) isOfpTableFeatureProperty_Value() {}
+
+func (*OfpTableFeatureProperty_Actions) isOfpTableFeatureProperty_Value() {}
+
+func (*OfpTableFeatureProperty_Oxm) isOfpTableFeatureProperty_Value() {}
+
+func (*OfpTableFeatureProperty_Experimenter) isOfpTableFeatureProperty_Value() {}
+
+// Instructions property
+type OfpTableFeaturePropInstructions struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// One of OFPTFPT_INSTRUCTIONS,
+	// OFPTFPT_INSTRUCTIONS_MISS.
+	Instructions  []*OfpInstruction `protobuf:"bytes,1,rep,name=instructions,proto3" json:"instructions,omitempty"` // List of instructions
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpTableFeaturePropInstructions) Reset() {
+	*x = OfpTableFeaturePropInstructions{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[51]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpTableFeaturePropInstructions) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpTableFeaturePropInstructions) ProtoMessage() {}
+
+func (x *OfpTableFeaturePropInstructions) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[51]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpTableFeaturePropInstructions.ProtoReflect.Descriptor instead.
+func (*OfpTableFeaturePropInstructions) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{51}
+}
+
+func (x *OfpTableFeaturePropInstructions) GetInstructions() []*OfpInstruction {
+	if x != nil {
+		return x.Instructions
+	}
+	return nil
+}
+
+// Next Tables property
+type OfpTableFeaturePropNextTables struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// One of OFPTFPT_NEXT_TABLES,
+	// OFPTFPT_NEXT_TABLES_MISS.
+	NextTableIds  []uint32 `protobuf:"varint,1,rep,packed,name=next_table_ids,json=nextTableIds,proto3" json:"next_table_ids,omitempty"` // List of table ids.
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpTableFeaturePropNextTables) Reset() {
+	*x = OfpTableFeaturePropNextTables{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[52]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpTableFeaturePropNextTables) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpTableFeaturePropNextTables) ProtoMessage() {}
+
+func (x *OfpTableFeaturePropNextTables) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[52]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpTableFeaturePropNextTables.ProtoReflect.Descriptor instead.
+func (*OfpTableFeaturePropNextTables) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{52}
+}
+
+func (x *OfpTableFeaturePropNextTables) GetNextTableIds() []uint32 {
+	if x != nil {
+		return x.NextTableIds
+	}
+	return nil
+}
+
+// Actions property
+type OfpTableFeaturePropActions struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// One of OFPTFPT_WRITE_ACTIONS,
+	// OFPTFPT_WRITE_ACTIONS_MISS,
+	// OFPTFPT_APPLY_ACTIONS,
+	// OFPTFPT_APPLY_ACTIONS_MISS.
+	Actions       []*OfpAction `protobuf:"bytes,1,rep,name=actions,proto3" json:"actions,omitempty"` // List of actions
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpTableFeaturePropActions) Reset() {
+	*x = OfpTableFeaturePropActions{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[53]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpTableFeaturePropActions) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpTableFeaturePropActions) ProtoMessage() {}
+
+func (x *OfpTableFeaturePropActions) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[53]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpTableFeaturePropActions.ProtoReflect.Descriptor instead.
+func (*OfpTableFeaturePropActions) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{53}
+}
+
+func (x *OfpTableFeaturePropActions) GetActions() []*OfpAction {
+	if x != nil {
+		return x.Actions
+	}
+	return nil
+}
+
+// Match, Wildcard or Set-Field property
+type OfpTableFeaturePropOxm struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// TODO is this a uint32???
+	OxmIds        []uint32 `protobuf:"varint,3,rep,packed,name=oxm_ids,json=oxmIds,proto3" json:"oxm_ids,omitempty"` // Array of OXM headers
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpTableFeaturePropOxm) Reset() {
+	*x = OfpTableFeaturePropOxm{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[54]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpTableFeaturePropOxm) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpTableFeaturePropOxm) ProtoMessage() {}
+
+func (x *OfpTableFeaturePropOxm) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[54]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpTableFeaturePropOxm.ProtoReflect.Descriptor instead.
+func (*OfpTableFeaturePropOxm) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{54}
+}
+
+func (x *OfpTableFeaturePropOxm) GetOxmIds() []uint32 {
+	if x != nil {
+		return x.OxmIds
+	}
+	return nil
+}
+
+// Experimenter table feature property
+type OfpTableFeaturePropExperimenter struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// One of OFPTFPT_EXPERIMENTER,
+	// OFPTFPT_EXPERIMENTER_MISS.
+	Experimenter     uint32   `protobuf:"varint,2,opt,name=experimenter,proto3" json:"experimenter,omitempty"`
+	ExpType          uint32   `protobuf:"varint,3,opt,name=exp_type,json=expType,proto3" json:"exp_type,omitempty"` // Experimenter defined.
+	ExperimenterData []uint32 `protobuf:"varint,4,rep,packed,name=experimenter_data,json=experimenterData,proto3" json:"experimenter_data,omitempty"`
+	unknownFields    protoimpl.UnknownFields
+	sizeCache        protoimpl.SizeCache
+}
+
+func (x *OfpTableFeaturePropExperimenter) Reset() {
+	*x = OfpTableFeaturePropExperimenter{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[55]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpTableFeaturePropExperimenter) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpTableFeaturePropExperimenter) ProtoMessage() {}
+
+func (x *OfpTableFeaturePropExperimenter) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[55]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpTableFeaturePropExperimenter.ProtoReflect.Descriptor instead.
+func (*OfpTableFeaturePropExperimenter) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{55}
+}
+
+func (x *OfpTableFeaturePropExperimenter) GetExperimenter() uint32 {
+	if x != nil {
+		return x.Experimenter
+	}
+	return 0
+}
+
+func (x *OfpTableFeaturePropExperimenter) GetExpType() uint32 {
+	if x != nil {
+		return x.ExpType
+	}
+	return 0
+}
+
+func (x *OfpTableFeaturePropExperimenter) GetExperimenterData() []uint32 {
+	if x != nil {
+		return x.ExperimenterData
+	}
+	return nil
+}
+
+// Body for ofp_multipart_request of type OFPMP_TABLE_FEATURES./
+// Body of reply to OFPMP_TABLE_FEATURES request.
+type OfpTableFeatures struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	TableId       uint32                 `protobuf:"varint,1,opt,name=table_id,json=tableId,proto3" json:"table_id,omitempty"`
+	Name          string                 `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
+	MetadataMatch uint64                 `protobuf:"varint,3,opt,name=metadata_match,json=metadataMatch,proto3" json:"metadata_match,omitempty"` // Bits of metadata table can match.
+	MetadataWrite uint64                 `protobuf:"varint,4,opt,name=metadata_write,json=metadataWrite,proto3" json:"metadata_write,omitempty"` // Bits of metadata table can write.
+	Config        uint32                 `protobuf:"varint,5,opt,name=config,proto3" json:"config,omitempty"`                                    // Bitmap of OFPTC_* values
+	MaxEntries    uint32                 `protobuf:"varint,6,opt,name=max_entries,json=maxEntries,proto3" json:"max_entries,omitempty"`          // Max number of entries supported.
+	// Table Feature Property list
+	Properties    []*OfpTableFeatureProperty `protobuf:"bytes,7,rep,name=properties,proto3" json:"properties,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpTableFeatures) Reset() {
+	*x = OfpTableFeatures{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[56]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpTableFeatures) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpTableFeatures) ProtoMessage() {}
+
+func (x *OfpTableFeatures) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[56]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpTableFeatures.ProtoReflect.Descriptor instead.
+func (*OfpTableFeatures) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{56}
+}
+
+func (x *OfpTableFeatures) GetTableId() uint32 {
+	if x != nil {
+		return x.TableId
+	}
+	return 0
+}
+
+func (x *OfpTableFeatures) GetName() string {
+	if x != nil {
+		return x.Name
+	}
+	return ""
+}
+
+func (x *OfpTableFeatures) GetMetadataMatch() uint64 {
+	if x != nil {
+		return x.MetadataMatch
+	}
+	return 0
+}
+
+func (x *OfpTableFeatures) GetMetadataWrite() uint64 {
+	if x != nil {
+		return x.MetadataWrite
+	}
+	return 0
+}
+
+func (x *OfpTableFeatures) GetConfig() uint32 {
+	if x != nil {
+		return x.Config
+	}
+	return 0
+}
+
+func (x *OfpTableFeatures) GetMaxEntries() uint32 {
+	if x != nil {
+		return x.MaxEntries
+	}
+	return 0
+}
+
+func (x *OfpTableFeatures) GetProperties() []*OfpTableFeatureProperty {
+	if x != nil {
+		return x.Properties
+	}
+	return nil
+}
+
+// Body of reply to OFPMP_TABLE request.
+type OfpTableStats struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	TableId       uint32                 `protobuf:"varint,1,opt,name=table_id,json=tableId,proto3" json:"table_id,omitempty"`
+	ActiveCount   uint32                 `protobuf:"varint,2,opt,name=active_count,json=activeCount,proto3" json:"active_count,omitempty"`    // Number of active entries.
+	LookupCount   uint64                 `protobuf:"varint,3,opt,name=lookup_count,json=lookupCount,proto3" json:"lookup_count,omitempty"`    // Number of packets looked up in table.
+	MatchedCount  uint64                 `protobuf:"varint,4,opt,name=matched_count,json=matchedCount,proto3" json:"matched_count,omitempty"` // Number of packets that hit table.
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpTableStats) Reset() {
+	*x = OfpTableStats{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[57]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpTableStats) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpTableStats) ProtoMessage() {}
+
+func (x *OfpTableStats) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[57]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpTableStats.ProtoReflect.Descriptor instead.
+func (*OfpTableStats) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{57}
+}
+
+func (x *OfpTableStats) GetTableId() uint32 {
+	if x != nil {
+		return x.TableId
+	}
+	return 0
+}
+
+func (x *OfpTableStats) GetActiveCount() uint32 {
+	if x != nil {
+		return x.ActiveCount
+	}
+	return 0
+}
+
+func (x *OfpTableStats) GetLookupCount() uint64 {
+	if x != nil {
+		return x.LookupCount
+	}
+	return 0
+}
+
+func (x *OfpTableStats) GetMatchedCount() uint64 {
+	if x != nil {
+		return x.MatchedCount
+	}
+	return 0
+}
+
+// Body for ofp_multipart_request of type OFPMP_PORT.
+type OfpPortStatsRequest struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	PortNo        uint32                 `protobuf:"varint,1,opt,name=port_no,json=portNo,proto3" json:"port_no,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpPortStatsRequest) Reset() {
+	*x = OfpPortStatsRequest{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[58]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpPortStatsRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpPortStatsRequest) ProtoMessage() {}
+
+func (x *OfpPortStatsRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[58]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpPortStatsRequest.ProtoReflect.Descriptor instead.
+func (*OfpPortStatsRequest) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{58}
+}
+
+func (x *OfpPortStatsRequest) GetPortNo() uint32 {
+	if x != nil {
+		return x.PortNo
+	}
+	return 0
+}
+
+// Body of reply to OFPMP_PORT request. If a counter is unsupported, set
+// the field to all ones.
+type OfpPortStats struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	PortNo        uint32                 `protobuf:"varint,1,opt,name=port_no,json=portNo,proto3" json:"port_no,omitempty"`
+	RxPackets     uint64                 `protobuf:"varint,2,opt,name=rx_packets,json=rxPackets,proto3" json:"rx_packets,omitempty"` // Number of received packets.
+	TxPackets     uint64                 `protobuf:"varint,3,opt,name=tx_packets,json=txPackets,proto3" json:"tx_packets,omitempty"` // Number of transmitted packets.
+	RxBytes       uint64                 `protobuf:"varint,4,opt,name=rx_bytes,json=rxBytes,proto3" json:"rx_bytes,omitempty"`       // Number of received bytes.
+	TxBytes       uint64                 `protobuf:"varint,5,opt,name=tx_bytes,json=txBytes,proto3" json:"tx_bytes,omitempty"`       // Number of transmitted bytes.
+	RxDropped     uint64                 `protobuf:"varint,6,opt,name=rx_dropped,json=rxDropped,proto3" json:"rx_dropped,omitempty"` // Number of packets dropped by RX.
+	TxDropped     uint64                 `protobuf:"varint,7,opt,name=tx_dropped,json=txDropped,proto3" json:"tx_dropped,omitempty"` // Number of packets dropped by TX.
+	RxErrors      uint64                 `protobuf:"varint,8,opt,name=rx_errors,json=rxErrors,proto3" json:"rx_errors,omitempty"`
+	TxErrors      uint64                 `protobuf:"varint,9,opt,name=tx_errors,json=txErrors,proto3" json:"tx_errors,omitempty"`
+	RxFrameErr    uint64                 `protobuf:"varint,10,opt,name=rx_frame_err,json=rxFrameErr,proto3" json:"rx_frame_err,omitempty"`  // Number of frame alignment errors.
+	RxOverErr     uint64                 `protobuf:"varint,11,opt,name=rx_over_err,json=rxOverErr,proto3" json:"rx_over_err,omitempty"`     // Number of packets with RX overrun.
+	RxCrcErr      uint64                 `protobuf:"varint,12,opt,name=rx_crc_err,json=rxCrcErr,proto3" json:"rx_crc_err,omitempty"`        // Number of CRC errors.
+	Collisions    uint64                 `protobuf:"varint,13,opt,name=collisions,proto3" json:"collisions,omitempty"`                      // Number of collisions.
+	DurationSec   uint32                 `protobuf:"varint,14,opt,name=duration_sec,json=durationSec,proto3" json:"duration_sec,omitempty"` // Time port has been alive in seconds.
+	DurationNsec  uint32                 `protobuf:"varint,15,opt,name=duration_nsec,json=durationNsec,proto3" json:"duration_nsec,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpPortStats) Reset() {
+	*x = OfpPortStats{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[59]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpPortStats) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpPortStats) ProtoMessage() {}
+
+func (x *OfpPortStats) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[59]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpPortStats.ProtoReflect.Descriptor instead.
+func (*OfpPortStats) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{59}
+}
+
+func (x *OfpPortStats) GetPortNo() uint32 {
+	if x != nil {
+		return x.PortNo
+	}
+	return 0
+}
+
+func (x *OfpPortStats) GetRxPackets() uint64 {
+	if x != nil {
+		return x.RxPackets
+	}
+	return 0
+}
+
+func (x *OfpPortStats) GetTxPackets() uint64 {
+	if x != nil {
+		return x.TxPackets
+	}
+	return 0
+}
+
+func (x *OfpPortStats) GetRxBytes() uint64 {
+	if x != nil {
+		return x.RxBytes
+	}
+	return 0
+}
+
+func (x *OfpPortStats) GetTxBytes() uint64 {
+	if x != nil {
+		return x.TxBytes
+	}
+	return 0
+}
+
+func (x *OfpPortStats) GetRxDropped() uint64 {
+	if x != nil {
+		return x.RxDropped
+	}
+	return 0
+}
+
+func (x *OfpPortStats) GetTxDropped() uint64 {
+	if x != nil {
+		return x.TxDropped
+	}
+	return 0
+}
+
+func (x *OfpPortStats) GetRxErrors() uint64 {
+	if x != nil {
+		return x.RxErrors
+	}
+	return 0
+}
+
+func (x *OfpPortStats) GetTxErrors() uint64 {
+	if x != nil {
+		return x.TxErrors
+	}
+	return 0
+}
+
+func (x *OfpPortStats) GetRxFrameErr() uint64 {
+	if x != nil {
+		return x.RxFrameErr
+	}
+	return 0
+}
+
+func (x *OfpPortStats) GetRxOverErr() uint64 {
+	if x != nil {
+		return x.RxOverErr
+	}
+	return 0
+}
+
+func (x *OfpPortStats) GetRxCrcErr() uint64 {
+	if x != nil {
+		return x.RxCrcErr
+	}
+	return 0
+}
+
+func (x *OfpPortStats) GetCollisions() uint64 {
+	if x != nil {
+		return x.Collisions
+	}
+	return 0
+}
+
+func (x *OfpPortStats) GetDurationSec() uint32 {
+	if x != nil {
+		return x.DurationSec
+	}
+	return 0
+}
+
+func (x *OfpPortStats) GetDurationNsec() uint32 {
+	if x != nil {
+		return x.DurationNsec
+	}
+	return 0
+}
+
+// Body of OFPMP_GROUP request.
+type OfpGroupStatsRequest struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	GroupId       uint32                 `protobuf:"varint,1,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"` // All groups if OFPG_ALL.
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpGroupStatsRequest) Reset() {
+	*x = OfpGroupStatsRequest{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[60]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpGroupStatsRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpGroupStatsRequest) ProtoMessage() {}
+
+func (x *OfpGroupStatsRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[60]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpGroupStatsRequest.ProtoReflect.Descriptor instead.
+func (*OfpGroupStatsRequest) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{60}
+}
+
+func (x *OfpGroupStatsRequest) GetGroupId() uint32 {
+	if x != nil {
+		return x.GroupId
+	}
+	return 0
+}
+
+// Used in group stats replies.
+type OfpBucketCounter struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	PacketCount   uint64                 `protobuf:"varint,1,opt,name=packet_count,json=packetCount,proto3" json:"packet_count,omitempty"` // Number of packets processed by bucket.
+	ByteCount     uint64                 `protobuf:"varint,2,opt,name=byte_count,json=byteCount,proto3" json:"byte_count,omitempty"`       // Number of bytes processed by bucket.
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpBucketCounter) Reset() {
+	*x = OfpBucketCounter{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[61]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpBucketCounter) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpBucketCounter) ProtoMessage() {}
+
+func (x *OfpBucketCounter) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[61]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpBucketCounter.ProtoReflect.Descriptor instead.
+func (*OfpBucketCounter) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{61}
+}
+
+func (x *OfpBucketCounter) GetPacketCount() uint64 {
+	if x != nil {
+		return x.PacketCount
+	}
+	return 0
+}
+
+func (x *OfpBucketCounter) GetByteCount() uint64 {
+	if x != nil {
+		return x.ByteCount
+	}
+	return 0
+}
+
+// Body of reply to OFPMP_GROUP request.
+type OfpGroupStats struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	GroupId       uint32                 `protobuf:"varint,1,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"` // Group identifier.
+	RefCount      uint32                 `protobuf:"varint,2,opt,name=ref_count,json=refCount,proto3" json:"ref_count,omitempty"`
+	PacketCount   uint64                 `protobuf:"varint,3,opt,name=packet_count,json=packetCount,proto3" json:"packet_count,omitempty"` // Number of packets processed by group.
+	ByteCount     uint64                 `protobuf:"varint,4,opt,name=byte_count,json=byteCount,proto3" json:"byte_count,omitempty"`       // Number of bytes processed by group.
+	DurationSec   uint32                 `protobuf:"varint,5,opt,name=duration_sec,json=durationSec,proto3" json:"duration_sec,omitempty"` // Time group has been alive in seconds.
+	DurationNsec  uint32                 `protobuf:"varint,6,opt,name=duration_nsec,json=durationNsec,proto3" json:"duration_nsec,omitempty"`
+	BucketStats   []*OfpBucketCounter    `protobuf:"bytes,7,rep,name=bucket_stats,json=bucketStats,proto3" json:"bucket_stats,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpGroupStats) Reset() {
+	*x = OfpGroupStats{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[62]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpGroupStats) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpGroupStats) ProtoMessage() {}
+
+func (x *OfpGroupStats) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[62]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpGroupStats.ProtoReflect.Descriptor instead.
+func (*OfpGroupStats) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{62}
+}
+
+func (x *OfpGroupStats) GetGroupId() uint32 {
+	if x != nil {
+		return x.GroupId
+	}
+	return 0
+}
+
+func (x *OfpGroupStats) GetRefCount() uint32 {
+	if x != nil {
+		return x.RefCount
+	}
+	return 0
+}
+
+func (x *OfpGroupStats) GetPacketCount() uint64 {
+	if x != nil {
+		return x.PacketCount
+	}
+	return 0
+}
+
+func (x *OfpGroupStats) GetByteCount() uint64 {
+	if x != nil {
+		return x.ByteCount
+	}
+	return 0
+}
+
+func (x *OfpGroupStats) GetDurationSec() uint32 {
+	if x != nil {
+		return x.DurationSec
+	}
+	return 0
+}
+
+func (x *OfpGroupStats) GetDurationNsec() uint32 {
+	if x != nil {
+		return x.DurationNsec
+	}
+	return 0
+}
+
+func (x *OfpGroupStats) GetBucketStats() []*OfpBucketCounter {
+	if x != nil {
+		return x.BucketStats
+	}
+	return nil
+}
+
+// Body of reply to OFPMP_GROUP_DESC request.
+type OfpGroupDesc struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Type          OfpGroupType           `protobuf:"varint,1,opt,name=type,proto3,enum=openflow_13.OfpGroupType" json:"type,omitempty"` // One of OFPGT_*.
+	GroupId       uint32                 `protobuf:"varint,2,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`          // Group identifier.
+	Buckets       []*OfpBucket           `protobuf:"bytes,3,rep,name=buckets,proto3" json:"buckets,omitempty"`                          // List of buckets - 0 or more.
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpGroupDesc) Reset() {
+	*x = OfpGroupDesc{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[63]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpGroupDesc) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpGroupDesc) ProtoMessage() {}
+
+func (x *OfpGroupDesc) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[63]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpGroupDesc.ProtoReflect.Descriptor instead.
+func (*OfpGroupDesc) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{63}
+}
+
+func (x *OfpGroupDesc) GetType() OfpGroupType {
+	if x != nil {
+		return x.Type
+	}
+	return OfpGroupType_OFPGT_ALL
+}
+
+func (x *OfpGroupDesc) GetGroupId() uint32 {
+	if x != nil {
+		return x.GroupId
+	}
+	return 0
+}
+
+func (x *OfpGroupDesc) GetBuckets() []*OfpBucket {
+	if x != nil {
+		return x.Buckets
+	}
+	return nil
+}
+
+type OfpGroupEntry struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Desc          *OfpGroupDesc          `protobuf:"bytes,1,opt,name=desc,proto3" json:"desc,omitempty"`
+	Stats         *OfpGroupStats         `protobuf:"bytes,2,opt,name=stats,proto3" json:"stats,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpGroupEntry) Reset() {
+	*x = OfpGroupEntry{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[64]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpGroupEntry) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpGroupEntry) ProtoMessage() {}
+
+func (x *OfpGroupEntry) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[64]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpGroupEntry.ProtoReflect.Descriptor instead.
+func (*OfpGroupEntry) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{64}
+}
+
+func (x *OfpGroupEntry) GetDesc() *OfpGroupDesc {
+	if x != nil {
+		return x.Desc
+	}
+	return nil
+}
+
+func (x *OfpGroupEntry) GetStats() *OfpGroupStats {
+	if x != nil {
+		return x.Stats
+	}
+	return nil
+}
+
+// Body of reply to OFPMP_GROUP_FEATURES request. Group features.
+type OfpGroupFeatures struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Types         uint32                 `protobuf:"varint,1,opt,name=types,proto3" json:"types,omitempty"`                                 // Bitmap of (1 << OFPGT_*) values supported.
+	Capabilities  uint32                 `protobuf:"varint,2,opt,name=capabilities,proto3" json:"capabilities,omitempty"`                   // Bitmap of OFPGFC_* capability supported.
+	MaxGroups     []uint32               `protobuf:"varint,3,rep,packed,name=max_groups,json=maxGroups,proto3" json:"max_groups,omitempty"` // Maximum number of groups for each type.
+	Actions       []uint32               `protobuf:"varint,4,rep,packed,name=actions,proto3" json:"actions,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpGroupFeatures) Reset() {
+	*x = OfpGroupFeatures{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[65]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpGroupFeatures) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpGroupFeatures) ProtoMessage() {}
+
+func (x *OfpGroupFeatures) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[65]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpGroupFeatures.ProtoReflect.Descriptor instead.
+func (*OfpGroupFeatures) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{65}
+}
+
+func (x *OfpGroupFeatures) GetTypes() uint32 {
+	if x != nil {
+		return x.Types
+	}
+	return 0
+}
+
+func (x *OfpGroupFeatures) GetCapabilities() uint32 {
+	if x != nil {
+		return x.Capabilities
+	}
+	return 0
+}
+
+func (x *OfpGroupFeatures) GetMaxGroups() []uint32 {
+	if x != nil {
+		return x.MaxGroups
+	}
+	return nil
+}
+
+func (x *OfpGroupFeatures) GetActions() []uint32 {
+	if x != nil {
+		return x.Actions
+	}
+	return nil
+}
+
+// Body of OFPMP_METER and OFPMP_METER_CONFIG requests.
+type OfpMeterMultipartRequest struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	MeterId       uint32                 `protobuf:"varint,1,opt,name=meter_id,json=meterId,proto3" json:"meter_id,omitempty"` // Meter instance, or OFPM_ALL.
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpMeterMultipartRequest) Reset() {
+	*x = OfpMeterMultipartRequest{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[66]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpMeterMultipartRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpMeterMultipartRequest) ProtoMessage() {}
+
+func (x *OfpMeterMultipartRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[66]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpMeterMultipartRequest.ProtoReflect.Descriptor instead.
+func (*OfpMeterMultipartRequest) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{66}
+}
+
+func (x *OfpMeterMultipartRequest) GetMeterId() uint32 {
+	if x != nil {
+		return x.MeterId
+	}
+	return 0
+}
+
+// Statistics for each meter band
+type OfpMeterBandStats struct {
+	state           protoimpl.MessageState `protogen:"open.v1"`
+	PacketBandCount uint64                 `protobuf:"varint,1,opt,name=packet_band_count,json=packetBandCount,proto3" json:"packet_band_count,omitempty"` // Number of packets in band.
+	ByteBandCount   uint64                 `protobuf:"varint,2,opt,name=byte_band_count,json=byteBandCount,proto3" json:"byte_band_count,omitempty"`       // Number of bytes in band.
+	unknownFields   protoimpl.UnknownFields
+	sizeCache       protoimpl.SizeCache
+}
+
+func (x *OfpMeterBandStats) Reset() {
+	*x = OfpMeterBandStats{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[67]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpMeterBandStats) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpMeterBandStats) ProtoMessage() {}
+
+func (x *OfpMeterBandStats) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[67]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpMeterBandStats.ProtoReflect.Descriptor instead.
+func (*OfpMeterBandStats) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{67}
+}
+
+func (x *OfpMeterBandStats) GetPacketBandCount() uint64 {
+	if x != nil {
+		return x.PacketBandCount
+	}
+	return 0
+}
+
+func (x *OfpMeterBandStats) GetByteBandCount() uint64 {
+	if x != nil {
+		return x.ByteBandCount
+	}
+	return 0
+}
+
+// Body of reply to OFPMP_METER request. Meter statistics.
+type OfpMeterStats struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	MeterId       uint32                 `protobuf:"varint,1,opt,name=meter_id,json=meterId,proto3" json:"meter_id,omitempty"`                     // Meter instance.
+	FlowCount     uint32                 `protobuf:"varint,2,opt,name=flow_count,json=flowCount,proto3" json:"flow_count,omitempty"`               // Number of flows bound to meter.
+	PacketInCount uint64                 `protobuf:"varint,3,opt,name=packet_in_count,json=packetInCount,proto3" json:"packet_in_count,omitempty"` // Number of packets in input.
+	ByteInCount   uint64                 `protobuf:"varint,4,opt,name=byte_in_count,json=byteInCount,proto3" json:"byte_in_count,omitempty"`       // Number of bytes in input.
+	DurationSec   uint32                 `protobuf:"varint,5,opt,name=duration_sec,json=durationSec,proto3" json:"duration_sec,omitempty"`         // Time meter has been alive in seconds.
+	DurationNsec  uint32                 `protobuf:"varint,6,opt,name=duration_nsec,json=durationNsec,proto3" json:"duration_nsec,omitempty"`
+	BandStats     []*OfpMeterBandStats   `protobuf:"bytes,7,rep,name=band_stats,json=bandStats,proto3" json:"band_stats,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpMeterStats) Reset() {
+	*x = OfpMeterStats{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[68]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpMeterStats) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpMeterStats) ProtoMessage() {}
+
+func (x *OfpMeterStats) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[68]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpMeterStats.ProtoReflect.Descriptor instead.
+func (*OfpMeterStats) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{68}
+}
+
+func (x *OfpMeterStats) GetMeterId() uint32 {
+	if x != nil {
+		return x.MeterId
+	}
+	return 0
+}
+
+func (x *OfpMeterStats) GetFlowCount() uint32 {
+	if x != nil {
+		return x.FlowCount
+	}
+	return 0
+}
+
+func (x *OfpMeterStats) GetPacketInCount() uint64 {
+	if x != nil {
+		return x.PacketInCount
+	}
+	return 0
+}
+
+func (x *OfpMeterStats) GetByteInCount() uint64 {
+	if x != nil {
+		return x.ByteInCount
+	}
+	return 0
+}
+
+func (x *OfpMeterStats) GetDurationSec() uint32 {
+	if x != nil {
+		return x.DurationSec
+	}
+	return 0
+}
+
+func (x *OfpMeterStats) GetDurationNsec() uint32 {
+	if x != nil {
+		return x.DurationNsec
+	}
+	return 0
+}
+
+func (x *OfpMeterStats) GetBandStats() []*OfpMeterBandStats {
+	if x != nil {
+		return x.BandStats
+	}
+	return nil
+}
+
+// Body of reply to OFPMP_METER_CONFIG request. Meter configuration.
+type OfpMeterConfig struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Flags         uint32                 `protobuf:"varint,1,opt,name=flags,proto3" json:"flags,omitempty"`                    // All OFPMF_* that apply.
+	MeterId       uint32                 `protobuf:"varint,2,opt,name=meter_id,json=meterId,proto3" json:"meter_id,omitempty"` // Meter instance.
+	Bands         []*OfpMeterBandHeader  `protobuf:"bytes,3,rep,name=bands,proto3" json:"bands,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpMeterConfig) Reset() {
+	*x = OfpMeterConfig{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[69]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpMeterConfig) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpMeterConfig) ProtoMessage() {}
+
+func (x *OfpMeterConfig) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[69]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpMeterConfig.ProtoReflect.Descriptor instead.
+func (*OfpMeterConfig) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{69}
+}
+
+func (x *OfpMeterConfig) GetFlags() uint32 {
+	if x != nil {
+		return x.Flags
+	}
+	return 0
+}
+
+func (x *OfpMeterConfig) GetMeterId() uint32 {
+	if x != nil {
+		return x.MeterId
+	}
+	return 0
+}
+
+func (x *OfpMeterConfig) GetBands() []*OfpMeterBandHeader {
+	if x != nil {
+		return x.Bands
+	}
+	return nil
+}
+
+// Body of reply to OFPMP_METER_FEATURES request. Meter features.
+type OfpMeterFeatures struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	MaxMeter      uint32                 `protobuf:"varint,1,opt,name=max_meter,json=maxMeter,proto3" json:"max_meter,omitempty"`    // Maximum number of meters.
+	BandTypes     uint32                 `protobuf:"varint,2,opt,name=band_types,json=bandTypes,proto3" json:"band_types,omitempty"` // Bitmaps of (1 << OFPMBT_*) values supported.
+	Capabilities  uint32                 `protobuf:"varint,3,opt,name=capabilities,proto3" json:"capabilities,omitempty"`            // Bitmaps of "ofp_meter_flags".
+	MaxBands      uint32                 `protobuf:"varint,4,opt,name=max_bands,json=maxBands,proto3" json:"max_bands,omitempty"`    // Maximum bands per meters
+	MaxColor      uint32                 `protobuf:"varint,5,opt,name=max_color,json=maxColor,proto3" json:"max_color,omitempty"`    // Maximum color value
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpMeterFeatures) Reset() {
+	*x = OfpMeterFeatures{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[70]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpMeterFeatures) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpMeterFeatures) ProtoMessage() {}
+
+func (x *OfpMeterFeatures) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[70]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpMeterFeatures.ProtoReflect.Descriptor instead.
+func (*OfpMeterFeatures) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{70}
+}
+
+func (x *OfpMeterFeatures) GetMaxMeter() uint32 {
+	if x != nil {
+		return x.MaxMeter
+	}
+	return 0
+}
+
+func (x *OfpMeterFeatures) GetBandTypes() uint32 {
+	if x != nil {
+		return x.BandTypes
+	}
+	return 0
+}
+
+func (x *OfpMeterFeatures) GetCapabilities() uint32 {
+	if x != nil {
+		return x.Capabilities
+	}
+	return 0
+}
+
+func (x *OfpMeterFeatures) GetMaxBands() uint32 {
+	if x != nil {
+		return x.MaxBands
+	}
+	return 0
+}
+
+func (x *OfpMeterFeatures) GetMaxColor() uint32 {
+	if x != nil {
+		return x.MaxColor
+	}
+	return 0
+}
+
+type OfpMeterEntry struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Config        *OfpMeterConfig        `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
+	Stats         *OfpMeterStats         `protobuf:"bytes,2,opt,name=stats,proto3" json:"stats,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpMeterEntry) Reset() {
+	*x = OfpMeterEntry{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[71]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpMeterEntry) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpMeterEntry) ProtoMessage() {}
+
+func (x *OfpMeterEntry) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[71]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpMeterEntry.ProtoReflect.Descriptor instead.
+func (*OfpMeterEntry) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{71}
+}
+
+func (x *OfpMeterEntry) GetConfig() *OfpMeterConfig {
+	if x != nil {
+		return x.Config
+	}
+	return nil
+}
+
+func (x *OfpMeterEntry) GetStats() *OfpMeterStats {
+	if x != nil {
+		return x.Stats
+	}
+	return nil
+}
+
+// Body for ofp_multipart_request/reply of type OFPMP_EXPERIMENTER.
+type OfpExperimenterMultipartHeader struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Experimenter  uint32                 `protobuf:"varint,1,opt,name=experimenter,proto3" json:"experimenter,omitempty"`
+	ExpType       uint32                 `protobuf:"varint,2,opt,name=exp_type,json=expType,proto3" json:"exp_type,omitempty"` // Experimenter defined.
+	Data          []byte                 `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"`                       // Experimenter-defined arbitrary additional data.
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpExperimenterMultipartHeader) Reset() {
+	*x = OfpExperimenterMultipartHeader{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[72]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpExperimenterMultipartHeader) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpExperimenterMultipartHeader) ProtoMessage() {}
+
+func (x *OfpExperimenterMultipartHeader) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[72]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpExperimenterMultipartHeader.ProtoReflect.Descriptor instead.
+func (*OfpExperimenterMultipartHeader) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{72}
+}
+
+func (x *OfpExperimenterMultipartHeader) GetExperimenter() uint32 {
+	if x != nil {
+		return x.Experimenter
+	}
+	return 0
+}
+
+func (x *OfpExperimenterMultipartHeader) GetExpType() uint32 {
+	if x != nil {
+		return x.ExpType
+	}
+	return 0
+}
+
+func (x *OfpExperimenterMultipartHeader) GetData() []byte {
+	if x != nil {
+		return x.Data
+	}
+	return nil
+}
+
+// Experimenter extension.
+type OfpExperimenterHeader struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// ofp_header header;  /* Type OFPT_EXPERIMENTER. */
+	Experimenter  uint32 `protobuf:"varint,1,opt,name=experimenter,proto3" json:"experimenter,omitempty"`
+	ExpType       uint32 `protobuf:"varint,2,opt,name=exp_type,json=expType,proto3" json:"exp_type,omitempty"` // Experimenter defined.
+	Data          []byte `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"`                       // Experimenter-defined arbitrary additional data.
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpExperimenterHeader) Reset() {
+	*x = OfpExperimenterHeader{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[73]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpExperimenterHeader) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpExperimenterHeader) ProtoMessage() {}
+
+func (x *OfpExperimenterHeader) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[73]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpExperimenterHeader.ProtoReflect.Descriptor instead.
+func (*OfpExperimenterHeader) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{73}
+}
+
+func (x *OfpExperimenterHeader) GetExperimenter() uint32 {
+	if x != nil {
+		return x.Experimenter
+	}
+	return 0
+}
+
+func (x *OfpExperimenterHeader) GetExpType() uint32 {
+	if x != nil {
+		return x.ExpType
+	}
+	return 0
+}
+
+func (x *OfpExperimenterHeader) GetData() []byte {
+	if x != nil {
+		return x.Data
+	}
+	return nil
+}
+
+// Common description for a queue.
+type OfpQueuePropHeader struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Property      uint32                 `protobuf:"varint,1,opt,name=property,proto3" json:"property,omitempty"` // One of OFPQT_.
+	Len           uint32                 `protobuf:"varint,2,opt,name=len,proto3" json:"len,omitempty"`           // Length of property, including this header.
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpQueuePropHeader) Reset() {
+	*x = OfpQueuePropHeader{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[74]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpQueuePropHeader) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpQueuePropHeader) ProtoMessage() {}
+
+func (x *OfpQueuePropHeader) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[74]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpQueuePropHeader.ProtoReflect.Descriptor instead.
+func (*OfpQueuePropHeader) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{74}
+}
+
+func (x *OfpQueuePropHeader) GetProperty() uint32 {
+	if x != nil {
+		return x.Property
+	}
+	return 0
+}
+
+func (x *OfpQueuePropHeader) GetLen() uint32 {
+	if x != nil {
+		return x.Len
+	}
+	return 0
+}
+
+// Min-Rate queue property description.
+type OfpQueuePropMinRate struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	PropHeader    *OfpQueuePropHeader    `protobuf:"bytes,1,opt,name=prop_header,json=propHeader,proto3" json:"prop_header,omitempty"` // prop: OFPQT_MIN, len: 16.
+	Rate          uint32                 `protobuf:"varint,2,opt,name=rate,proto3" json:"rate,omitempty"`                              // In 1/10 of a percent = 0;>1000 -> disabled.
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpQueuePropMinRate) Reset() {
+	*x = OfpQueuePropMinRate{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[75]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpQueuePropMinRate) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpQueuePropMinRate) ProtoMessage() {}
+
+func (x *OfpQueuePropMinRate) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[75]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpQueuePropMinRate.ProtoReflect.Descriptor instead.
+func (*OfpQueuePropMinRate) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{75}
+}
+
+func (x *OfpQueuePropMinRate) GetPropHeader() *OfpQueuePropHeader {
+	if x != nil {
+		return x.PropHeader
+	}
+	return nil
+}
+
+func (x *OfpQueuePropMinRate) GetRate() uint32 {
+	if x != nil {
+		return x.Rate
+	}
+	return 0
+}
+
+// Max-Rate queue property description.
+type OfpQueuePropMaxRate struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	PropHeader    *OfpQueuePropHeader    `protobuf:"bytes,1,opt,name=prop_header,json=propHeader,proto3" json:"prop_header,omitempty"` // prop: OFPQT_MAX, len: 16.
+	Rate          uint32                 `protobuf:"varint,2,opt,name=rate,proto3" json:"rate,omitempty"`                              // In 1/10 of a percent = 0;>1000 -> disabled.
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpQueuePropMaxRate) Reset() {
+	*x = OfpQueuePropMaxRate{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[76]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpQueuePropMaxRate) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpQueuePropMaxRate) ProtoMessage() {}
+
+func (x *OfpQueuePropMaxRate) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[76]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpQueuePropMaxRate.ProtoReflect.Descriptor instead.
+func (*OfpQueuePropMaxRate) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{76}
+}
+
+func (x *OfpQueuePropMaxRate) GetPropHeader() *OfpQueuePropHeader {
+	if x != nil {
+		return x.PropHeader
+	}
+	return nil
+}
+
+func (x *OfpQueuePropMaxRate) GetRate() uint32 {
+	if x != nil {
+		return x.Rate
+	}
+	return 0
+}
+
+// Experimenter queue property description.
+type OfpQueuePropExperimenter struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	PropHeader    *OfpQueuePropHeader    `protobuf:"bytes,1,opt,name=prop_header,json=propHeader,proto3" json:"prop_header,omitempty"` // prop: OFPQT_EXPERIMENTER
+	Experimenter  uint32                 `protobuf:"varint,2,opt,name=experimenter,proto3" json:"experimenter,omitempty"`
+	Data          []byte                 `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` // Experimenter defined data.
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpQueuePropExperimenter) Reset() {
+	*x = OfpQueuePropExperimenter{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[77]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpQueuePropExperimenter) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpQueuePropExperimenter) ProtoMessage() {}
+
+func (x *OfpQueuePropExperimenter) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[77]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpQueuePropExperimenter.ProtoReflect.Descriptor instead.
+func (*OfpQueuePropExperimenter) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{77}
+}
+
+func (x *OfpQueuePropExperimenter) GetPropHeader() *OfpQueuePropHeader {
+	if x != nil {
+		return x.PropHeader
+	}
+	return nil
+}
+
+func (x *OfpQueuePropExperimenter) GetExperimenter() uint32 {
+	if x != nil {
+		return x.Experimenter
+	}
+	return 0
+}
+
+func (x *OfpQueuePropExperimenter) GetData() []byte {
+	if x != nil {
+		return x.Data
+	}
+	return nil
+}
+
+// Full description for a queue.
+type OfpPacketQueue struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	QueueId       uint32                 `protobuf:"varint,1,opt,name=queue_id,json=queueId,proto3" json:"queue_id,omitempty"` // id for the specific queue.
+	Port          uint32                 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`                      // Port this queue is attached to.
+	Properties    []*OfpQueuePropHeader  `protobuf:"bytes,4,rep,name=properties,proto3" json:"properties,omitempty"`           // List of properties.
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpPacketQueue) Reset() {
+	*x = OfpPacketQueue{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[78]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpPacketQueue) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpPacketQueue) ProtoMessage() {}
+
+func (x *OfpPacketQueue) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[78]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpPacketQueue.ProtoReflect.Descriptor instead.
+func (*OfpPacketQueue) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{78}
+}
+
+func (x *OfpPacketQueue) GetQueueId() uint32 {
+	if x != nil {
+		return x.QueueId
+	}
+	return 0
+}
+
+func (x *OfpPacketQueue) GetPort() uint32 {
+	if x != nil {
+		return x.Port
+	}
+	return 0
+}
+
+func (x *OfpPacketQueue) GetProperties() []*OfpQueuePropHeader {
+	if x != nil {
+		return x.Properties
+	}
+	return nil
+}
+
+// Query for port queue configuration.
+type OfpQueueGetConfigRequest struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// ofp_header header;
+	Port          uint32 `protobuf:"varint,1,opt,name=port,proto3" json:"port,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpQueueGetConfigRequest) Reset() {
+	*x = OfpQueueGetConfigRequest{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[79]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpQueueGetConfigRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpQueueGetConfigRequest) ProtoMessage() {}
+
+func (x *OfpQueueGetConfigRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[79]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpQueueGetConfigRequest.ProtoReflect.Descriptor instead.
+func (*OfpQueueGetConfigRequest) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{79}
+}
+
+func (x *OfpQueueGetConfigRequest) GetPort() uint32 {
+	if x != nil {
+		return x.Port
+	}
+	return 0
+}
+
+// Queue configuration for a given port.
+type OfpQueueGetConfigReply struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// ofp_header header;
+	Port          uint32            `protobuf:"varint,1,opt,name=port,proto3" json:"port,omitempty"`
+	Queues        []*OfpPacketQueue `protobuf:"bytes,2,rep,name=queues,proto3" json:"queues,omitempty"` // List of configured queues.
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpQueueGetConfigReply) Reset() {
+	*x = OfpQueueGetConfigReply{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[80]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpQueueGetConfigReply) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpQueueGetConfigReply) ProtoMessage() {}
+
+func (x *OfpQueueGetConfigReply) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[80]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpQueueGetConfigReply.ProtoReflect.Descriptor instead.
+func (*OfpQueueGetConfigReply) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{80}
+}
+
+func (x *OfpQueueGetConfigReply) GetPort() uint32 {
+	if x != nil {
+		return x.Port
+	}
+	return 0
+}
+
+func (x *OfpQueueGetConfigReply) GetQueues() []*OfpPacketQueue {
+	if x != nil {
+		return x.Queues
+	}
+	return nil
+}
+
+// OFPAT_SET_QUEUE action struct: send packets to given queue on port.
+type OfpActionSetQueue struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Type          uint32                 `protobuf:"varint,1,opt,name=type,proto3" json:"type,omitempty"`                      // OFPAT_SET_QUEUE.
+	QueueId       uint32                 `protobuf:"varint,3,opt,name=queue_id,json=queueId,proto3" json:"queue_id,omitempty"` // Queue id for the packets.
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpActionSetQueue) Reset() {
+	*x = OfpActionSetQueue{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[81]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpActionSetQueue) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpActionSetQueue) ProtoMessage() {}
+
+func (x *OfpActionSetQueue) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[81]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpActionSetQueue.ProtoReflect.Descriptor instead.
+func (*OfpActionSetQueue) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{81}
+}
+
+func (x *OfpActionSetQueue) GetType() uint32 {
+	if x != nil {
+		return x.Type
+	}
+	return 0
+}
+
+func (x *OfpActionSetQueue) GetQueueId() uint32 {
+	if x != nil {
+		return x.QueueId
+	}
+	return 0
+}
+
+type OfpQueueStatsRequest struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	PortNo        uint32                 `protobuf:"varint,1,opt,name=port_no,json=portNo,proto3" json:"port_no,omitempty"`    // All ports if OFPP_ANY.
+	QueueId       uint32                 `protobuf:"varint,2,opt,name=queue_id,json=queueId,proto3" json:"queue_id,omitempty"` // All queues if OFPQ_ALL.
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpQueueStatsRequest) Reset() {
+	*x = OfpQueueStatsRequest{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[82]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpQueueStatsRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpQueueStatsRequest) ProtoMessage() {}
+
+func (x *OfpQueueStatsRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[82]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpQueueStatsRequest.ProtoReflect.Descriptor instead.
+func (*OfpQueueStatsRequest) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{82}
+}
+
+func (x *OfpQueueStatsRequest) GetPortNo() uint32 {
+	if x != nil {
+		return x.PortNo
+	}
+	return 0
+}
+
+func (x *OfpQueueStatsRequest) GetQueueId() uint32 {
+	if x != nil {
+		return x.QueueId
+	}
+	return 0
+}
+
+type OfpQueueStats struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	PortNo        uint32                 `protobuf:"varint,1,opt,name=port_no,json=portNo,proto3" json:"port_no,omitempty"`
+	QueueId       uint32                 `protobuf:"varint,2,opt,name=queue_id,json=queueId,proto3" json:"queue_id,omitempty"`             // Queue i.d
+	TxBytes       uint64                 `protobuf:"varint,3,opt,name=tx_bytes,json=txBytes,proto3" json:"tx_bytes,omitempty"`             // Number of transmitted bytes.
+	TxPackets     uint64                 `protobuf:"varint,4,opt,name=tx_packets,json=txPackets,proto3" json:"tx_packets,omitempty"`       // Number of transmitted packets.
+	TxErrors      uint64                 `protobuf:"varint,5,opt,name=tx_errors,json=txErrors,proto3" json:"tx_errors,omitempty"`          // Number of packets dropped due to overrun.
+	DurationSec   uint32                 `protobuf:"varint,6,opt,name=duration_sec,json=durationSec,proto3" json:"duration_sec,omitempty"` // Time queue has been alive in seconds.
+	DurationNsec  uint32                 `protobuf:"varint,7,opt,name=duration_nsec,json=durationNsec,proto3" json:"duration_nsec,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpQueueStats) Reset() {
+	*x = OfpQueueStats{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[83]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpQueueStats) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpQueueStats) ProtoMessage() {}
+
+func (x *OfpQueueStats) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[83]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpQueueStats.ProtoReflect.Descriptor instead.
+func (*OfpQueueStats) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{83}
+}
+
+func (x *OfpQueueStats) GetPortNo() uint32 {
+	if x != nil {
+		return x.PortNo
+	}
+	return 0
+}
+
+func (x *OfpQueueStats) GetQueueId() uint32 {
+	if x != nil {
+		return x.QueueId
+	}
+	return 0
+}
+
+func (x *OfpQueueStats) GetTxBytes() uint64 {
+	if x != nil {
+		return x.TxBytes
+	}
+	return 0
+}
+
+func (x *OfpQueueStats) GetTxPackets() uint64 {
+	if x != nil {
+		return x.TxPackets
+	}
+	return 0
+}
+
+func (x *OfpQueueStats) GetTxErrors() uint64 {
+	if x != nil {
+		return x.TxErrors
+	}
+	return 0
+}
+
+func (x *OfpQueueStats) GetDurationSec() uint32 {
+	if x != nil {
+		return x.DurationSec
+	}
+	return 0
+}
+
+func (x *OfpQueueStats) GetDurationNsec() uint32 {
+	if x != nil {
+		return x.DurationNsec
+	}
+	return 0
+}
+
+// Role request and reply message.
+type OfpRoleRequest struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// ofp_header header;        /* Type OFPT_ROLE_REQUEST/OFPT_ROLE_REPLY. */
+	Role          OfpControllerRole `protobuf:"varint,1,opt,name=role,proto3,enum=openflow_13.OfpControllerRole" json:"role,omitempty"`  // One of OFPCR_ROLE_*.
+	GenerationId  uint64            `protobuf:"varint,2,opt,name=generation_id,json=generationId,proto3" json:"generation_id,omitempty"` // Master Election Generation Id
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OfpRoleRequest) Reset() {
+	*x = OfpRoleRequest{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[84]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpRoleRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpRoleRequest) ProtoMessage() {}
+
+func (x *OfpRoleRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[84]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpRoleRequest.ProtoReflect.Descriptor instead.
+func (*OfpRoleRequest) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{84}
+}
+
+func (x *OfpRoleRequest) GetRole() OfpControllerRole {
+	if x != nil {
+		return x.Role
+	}
+	return OfpControllerRole_OFPCR_ROLE_NOCHANGE
+}
+
+func (x *OfpRoleRequest) GetGenerationId() uint64 {
+	if x != nil {
+		return x.GenerationId
+	}
+	return 0
+}
+
+// Asynchronous message configuration.
+type OfpAsyncConfig struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// ofp_header header;    /* OFPT_GET_ASYNC_REPLY or OFPT_SET_ASYNC. */
+	PacketInMask    []uint32 `protobuf:"varint,1,rep,packed,name=packet_in_mask,json=packetInMask,proto3" json:"packet_in_mask,omitempty"`          // Bitmasks of OFPR_* values.
+	PortStatusMask  []uint32 `protobuf:"varint,2,rep,packed,name=port_status_mask,json=portStatusMask,proto3" json:"port_status_mask,omitempty"`    // Bitmasks of OFPPR_* values.
+	FlowRemovedMask []uint32 `protobuf:"varint,3,rep,packed,name=flow_removed_mask,json=flowRemovedMask,proto3" json:"flow_removed_mask,omitempty"` // Bitmasks of OFPRR_* values.
+	unknownFields   protoimpl.UnknownFields
+	sizeCache       protoimpl.SizeCache
+}
+
+func (x *OfpAsyncConfig) Reset() {
+	*x = OfpAsyncConfig{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[85]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OfpAsyncConfig) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OfpAsyncConfig) ProtoMessage() {}
+
+func (x *OfpAsyncConfig) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[85]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OfpAsyncConfig.ProtoReflect.Descriptor instead.
+func (*OfpAsyncConfig) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{85}
+}
+
+func (x *OfpAsyncConfig) GetPacketInMask() []uint32 {
+	if x != nil {
+		return x.PacketInMask
+	}
+	return nil
+}
+
+func (x *OfpAsyncConfig) GetPortStatusMask() []uint32 {
+	if x != nil {
+		return x.PortStatusMask
+	}
+	return nil
+}
+
+func (x *OfpAsyncConfig) GetFlowRemovedMask() []uint32 {
+	if x != nil {
+		return x.FlowRemovedMask
+	}
+	return nil
+}
+
+type MeterModUpdate struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // Device.id or LogicalDevice.id
+	MeterMod      *OfpMeterMod           `protobuf:"bytes,2,opt,name=meter_mod,json=meterMod,proto3" json:"meter_mod,omitempty"`
+	Xid           uint32                 `protobuf:"varint,3,opt,name=xid,proto3" json:"xid,omitempty"` //Transaction id associated with this request.
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *MeterModUpdate) Reset() {
+	*x = MeterModUpdate{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[86]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *MeterModUpdate) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*MeterModUpdate) ProtoMessage() {}
+
+func (x *MeterModUpdate) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[86]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use MeterModUpdate.ProtoReflect.Descriptor instead.
+func (*MeterModUpdate) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{86}
+}
+
+func (x *MeterModUpdate) GetId() string {
+	if x != nil {
+		return x.Id
+	}
+	return ""
+}
+
+func (x *MeterModUpdate) GetMeterMod() *OfpMeterMod {
+	if x != nil {
+		return x.MeterMod
+	}
+	return nil
+}
+
+func (x *MeterModUpdate) GetXid() uint32 {
+	if x != nil {
+		return x.Xid
+	}
+	return 0
+}
+
+type MeterStatsReply struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	MeterStats    []*OfpMeterStats       `protobuf:"bytes,1,rep,name=meter_stats,json=meterStats,proto3" json:"meter_stats,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *MeterStatsReply) Reset() {
+	*x = MeterStatsReply{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[87]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *MeterStatsReply) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*MeterStatsReply) ProtoMessage() {}
+
+func (x *MeterStatsReply) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[87]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use MeterStatsReply.ProtoReflect.Descriptor instead.
+func (*MeterStatsReply) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{87}
+}
+
+func (x *MeterStatsReply) GetMeterStats() []*OfpMeterStats {
+	if x != nil {
+		return x.MeterStats
+	}
+	return nil
+}
+
+type FlowTableUpdate struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // Device.id or LogicalDevice.id
+	FlowMod       *OfpFlowMod            `protobuf:"bytes,2,opt,name=flow_mod,json=flowMod,proto3" json:"flow_mod,omitempty"`
+	Xid           uint32                 `protobuf:"varint,3,opt,name=xid,proto3" json:"xid,omitempty"` //Transaction id associated with this request.
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *FlowTableUpdate) Reset() {
+	*x = FlowTableUpdate{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[88]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *FlowTableUpdate) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*FlowTableUpdate) ProtoMessage() {}
+
+func (x *FlowTableUpdate) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[88]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use FlowTableUpdate.ProtoReflect.Descriptor instead.
+func (*FlowTableUpdate) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{88}
+}
+
+func (x *FlowTableUpdate) GetId() string {
+	if x != nil {
+		return x.Id
+	}
+	return ""
+}
+
+func (x *FlowTableUpdate) GetFlowMod() *OfpFlowMod {
+	if x != nil {
+		return x.FlowMod
+	}
+	return nil
+}
+
+func (x *FlowTableUpdate) GetXid() uint32 {
+	if x != nil {
+		return x.Xid
+	}
+	return 0
+}
+
+type FlowGroupTableUpdate struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // Device.id or LogicalDevice.id
+	GroupMod      *OfpGroupMod           `protobuf:"bytes,2,opt,name=group_mod,json=groupMod,proto3" json:"group_mod,omitempty"`
+	Xid           uint32                 `protobuf:"varint,3,opt,name=xid,proto3" json:"xid,omitempty"` //Transaction id associated with this request.
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *FlowGroupTableUpdate) Reset() {
+	*x = FlowGroupTableUpdate{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[89]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *FlowGroupTableUpdate) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*FlowGroupTableUpdate) ProtoMessage() {}
+
+func (x *FlowGroupTableUpdate) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[89]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use FlowGroupTableUpdate.ProtoReflect.Descriptor instead.
+func (*FlowGroupTableUpdate) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{89}
+}
+
+func (x *FlowGroupTableUpdate) GetId() string {
+	if x != nil {
+		return x.Id
+	}
+	return ""
+}
+
+func (x *FlowGroupTableUpdate) GetGroupMod() *OfpGroupMod {
+	if x != nil {
+		return x.GroupMod
+	}
+	return nil
+}
+
+func (x *FlowGroupTableUpdate) GetXid() uint32 {
+	if x != nil {
+		return x.Xid
+	}
+	return 0
+}
+
+type Flows struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Items         []*OfpFlowStats        `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *Flows) Reset() {
+	*x = Flows{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[90]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *Flows) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Flows) ProtoMessage() {}
+
+func (x *Flows) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[90]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use Flows.ProtoReflect.Descriptor instead.
+func (*Flows) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{90}
+}
+
+func (x *Flows) GetItems() []*OfpFlowStats {
+	if x != nil {
+		return x.Items
+	}
+	return nil
+}
+
+type Meters struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Items         []*OfpMeterEntry       `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *Meters) Reset() {
+	*x = Meters{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[91]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *Meters) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Meters) ProtoMessage() {}
+
+func (x *Meters) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[91]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use Meters.ProtoReflect.Descriptor instead.
+func (*Meters) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{91}
+}
+
+func (x *Meters) GetItems() []*OfpMeterEntry {
+	if x != nil {
+		return x.Items
+	}
+	return nil
+}
+
+type FlowGroups struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Items         []*OfpGroupEntry       `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *FlowGroups) Reset() {
+	*x = FlowGroups{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[92]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *FlowGroups) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*FlowGroups) ProtoMessage() {}
+
+func (x *FlowGroups) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[92]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use FlowGroups.ProtoReflect.Descriptor instead.
+func (*FlowGroups) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{92}
+}
+
+func (x *FlowGroups) GetItems() []*OfpGroupEntry {
+	if x != nil {
+		return x.Items
+	}
+	return nil
+}
+
+type FlowChanges struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	ToAdd         *Flows                 `protobuf:"bytes,1,opt,name=to_add,json=toAdd,proto3" json:"to_add,omitempty"`
+	ToRemove      *Flows                 `protobuf:"bytes,2,opt,name=to_remove,json=toRemove,proto3" json:"to_remove,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *FlowChanges) Reset() {
+	*x = FlowChanges{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[93]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *FlowChanges) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*FlowChanges) ProtoMessage() {}
+
+func (x *FlowChanges) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[93]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use FlowChanges.ProtoReflect.Descriptor instead.
+func (*FlowChanges) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{93}
+}
+
+func (x *FlowChanges) GetToAdd() *Flows {
+	if x != nil {
+		return x.ToAdd
+	}
+	return nil
+}
+
+func (x *FlowChanges) GetToRemove() *Flows {
+	if x != nil {
+		return x.ToRemove
+	}
+	return nil
+}
+
+type FlowGroupChanges struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	ToAdd         *FlowGroups            `protobuf:"bytes,1,opt,name=to_add,json=toAdd,proto3" json:"to_add,omitempty"`
+	ToRemove      *FlowGroups            `protobuf:"bytes,2,opt,name=to_remove,json=toRemove,proto3" json:"to_remove,omitempty"`
+	ToUpdate      *FlowGroups            `protobuf:"bytes,3,opt,name=to_update,json=toUpdate,proto3" json:"to_update,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *FlowGroupChanges) Reset() {
+	*x = FlowGroupChanges{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[94]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *FlowGroupChanges) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*FlowGroupChanges) ProtoMessage() {}
+
+func (x *FlowGroupChanges) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[94]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use FlowGroupChanges.ProtoReflect.Descriptor instead.
+func (*FlowGroupChanges) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{94}
+}
+
+func (x *FlowGroupChanges) GetToAdd() *FlowGroups {
+	if x != nil {
+		return x.ToAdd
+	}
+	return nil
+}
+
+func (x *FlowGroupChanges) GetToRemove() *FlowGroups {
+	if x != nil {
+		return x.ToRemove
+	}
+	return nil
+}
+
+func (x *FlowGroupChanges) GetToUpdate() *FlowGroups {
+	if x != nil {
+		return x.ToUpdate
+	}
+	return nil
+}
+
+type PacketIn struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // LogicalDevice.id
+	PacketIn      *OfpPacketIn           `protobuf:"bytes,2,opt,name=packet_in,json=packetIn,proto3" json:"packet_in,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *PacketIn) Reset() {
+	*x = PacketIn{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[95]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *PacketIn) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PacketIn) ProtoMessage() {}
+
+func (x *PacketIn) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[95]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use PacketIn.ProtoReflect.Descriptor instead.
+func (*PacketIn) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{95}
+}
+
+func (x *PacketIn) GetId() string {
+	if x != nil {
+		return x.Id
+	}
+	return ""
+}
+
+func (x *PacketIn) GetPacketIn() *OfpPacketIn {
+	if x != nil {
+		return x.PacketIn
+	}
+	return nil
+}
+
+type PacketOut struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // LogicalDevice.id
+	PacketOut     *OfpPacketOut          `protobuf:"bytes,2,opt,name=packet_out,json=packetOut,proto3" json:"packet_out,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *PacketOut) Reset() {
+	*x = PacketOut{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[96]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *PacketOut) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PacketOut) ProtoMessage() {}
+
+func (x *PacketOut) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[96]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use PacketOut.ProtoReflect.Descriptor instead.
+func (*PacketOut) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{96}
+}
+
+func (x *PacketOut) GetId() string {
+	if x != nil {
+		return x.Id
+	}
+	return ""
+}
+
+func (x *PacketOut) GetPacketOut() *OfpPacketOut {
+	if x != nil {
+		return x.PacketOut
+	}
+	return nil
+}
+
+type ChangeEvent struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
+	Id    string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // LogicalDevice.id
+	// Types that are valid to be assigned to Event:
+	//
+	//	*ChangeEvent_PortStatus
+	//	*ChangeEvent_Error
+	//	*ChangeEvent_DeviceStatus
+	Event         isChangeEvent_Event `protobuf_oneof:"event"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *ChangeEvent) Reset() {
+	*x = ChangeEvent{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[97]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ChangeEvent) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ChangeEvent) ProtoMessage() {}
+
+func (x *ChangeEvent) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[97]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ChangeEvent.ProtoReflect.Descriptor instead.
+func (*ChangeEvent) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{97}
+}
+
+func (x *ChangeEvent) GetId() string {
+	if x != nil {
+		return x.Id
+	}
+	return ""
+}
+
+func (x *ChangeEvent) GetEvent() isChangeEvent_Event {
+	if x != nil {
+		return x.Event
+	}
+	return nil
+}
+
+func (x *ChangeEvent) GetPortStatus() *OfpPortStatus {
+	if x != nil {
+		if x, ok := x.Event.(*ChangeEvent_PortStatus); ok {
+			return x.PortStatus
+		}
+	}
+	return nil
+}
+
+func (x *ChangeEvent) GetError() *OfpErrorMsg {
+	if x != nil {
+		if x, ok := x.Event.(*ChangeEvent_Error); ok {
+			return x.Error
+		}
+	}
+	return nil
+}
+
+func (x *ChangeEvent) GetDeviceStatus() *OfpDeviceStatus {
+	if x != nil {
+		if x, ok := x.Event.(*ChangeEvent_DeviceStatus); ok {
+			return x.DeviceStatus
+		}
+	}
+	return nil
+}
+
+type isChangeEvent_Event interface {
+	isChangeEvent_Event()
+}
+
+type ChangeEvent_PortStatus struct {
+	PortStatus *OfpPortStatus `protobuf:"bytes,2,opt,name=port_status,json=portStatus,proto3,oneof"`
+}
+
+type ChangeEvent_Error struct {
+	Error *OfpErrorMsg `protobuf:"bytes,3,opt,name=error,proto3,oneof"`
+}
+
+type ChangeEvent_DeviceStatus struct {
+	DeviceStatus *OfpDeviceStatus `protobuf:"bytes,4,opt,name=device_status,json=deviceStatus,proto3,oneof"`
+}
+
+func (*ChangeEvent_PortStatus) isChangeEvent_Event() {}
+
+func (*ChangeEvent_Error) isChangeEvent_Event() {}
+
+func (*ChangeEvent_DeviceStatus) isChangeEvent_Event() {}
+
+// Additional information required to process flow at device adapters
+type FlowMetadata struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// Meters associated with flow-update to adapter
+	Meters        []*OfpMeterConfig `protobuf:"bytes,1,rep,name=meters,proto3" json:"meters,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *FlowMetadata) Reset() {
+	*x = FlowMetadata{}
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[98]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *FlowMetadata) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*FlowMetadata) ProtoMessage() {}
+
+func (x *FlowMetadata) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openflow_13_proto_msgTypes[98]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use FlowMetadata.ProtoReflect.Descriptor instead.
+func (*FlowMetadata) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openflow_13_proto_rawDescGZIP(), []int{98}
+}
+
+func (x *FlowMetadata) GetMeters() []*OfpMeterConfig {
+	if x != nil {
+		return x.Meters
+	}
+	return nil
+}
+
+var File_voltha_protos_openflow_13_proto protoreflect.FileDescriptor
+
+const file_voltha_protos_openflow_13_proto_rawDesc = "" +
+	"\n" +
+	"\x1fvoltha_protos/openflow_13.proto\x12\vopenflow_13\x1a\x1cgoogle/api/annotations.proto\"c\n" +
+	"\n" +
+	"ofp_header\x12\x18\n" +
+	"\aversion\x18\x01 \x01(\rR\aversion\x12)\n" +
+	"\x04type\x18\x02 \x01(\x0e2\x15.openflow_13.ofp_typeR\x04type\x12\x10\n" +
+	"\x03xid\x18\x03 \x01(\rR\x03xid\"\xab\x01\n" +
+	"\x15ofp_hello_elem_header\x124\n" +
+	"\x04type\x18\x01 \x01(\x0e2 .openflow_13.ofp_hello_elem_typeR\x04type\x12Q\n" +
+	"\rversionbitmap\x18\x02 \x01(\v2).openflow_13.ofp_hello_elem_versionbitmapH\x00R\rversionbitmapB\t\n" +
+	"\aelement\"8\n" +
+	"\x1cofp_hello_elem_versionbitmap\x12\x18\n" +
+	"\abitmaps\x18\x02 \x03(\rR\abitmaps\"K\n" +
+	"\tofp_hello\x12>\n" +
+	"\belements\x18\x01 \x03(\v2\".openflow_13.ofp_hello_elem_headerR\belements\"M\n" +
+	"\x11ofp_switch_config\x12\x14\n" +
+	"\x05flags\x18\x01 \x01(\rR\x05flags\x12\"\n" +
+	"\rmiss_send_len\x18\x02 \x01(\rR\vmissSendLen\"B\n" +
+	"\rofp_table_mod\x12\x19\n" +
+	"\btable_id\x18\x01 \x01(\rR\atableId\x12\x16\n" +
+	"\x06config\x18\x02 \x01(\rR\x06config\"\xa0\x02\n" +
+	"\bofp_port\x12\x17\n" +
+	"\aport_no\x18\x01 \x01(\rR\x06portNo\x12\x17\n" +
+	"\ahw_addr\x18\x02 \x03(\rR\x06hwAddr\x12\x12\n" +
+	"\x04name\x18\x03 \x01(\tR\x04name\x12\x16\n" +
+	"\x06config\x18\x04 \x01(\rR\x06config\x12\x14\n" +
+	"\x05state\x18\x05 \x01(\rR\x05state\x12\x12\n" +
+	"\x04curr\x18\x06 \x01(\rR\x04curr\x12\x1e\n" +
+	"\n" +
+	"advertised\x18\a \x01(\rR\n" +
+	"advertised\x12\x1c\n" +
+	"\tsupported\x18\b \x01(\rR\tsupported\x12\x12\n" +
+	"\x04peer\x18\t \x01(\rR\x04peer\x12\x1d\n" +
+	"\n" +
+	"curr_speed\x18\n" +
+	" \x01(\rR\tcurrSpeed\x12\x1b\n" +
+	"\tmax_speed\x18\v \x01(\rR\bmaxSpeed\"\xb5\x01\n" +
+	"\x13ofp_switch_features\x12\x1f\n" +
+	"\vdatapath_id\x18\x01 \x01(\x04R\n" +
+	"datapathId\x12\x1b\n" +
+	"\tn_buffers\x18\x02 \x01(\rR\bnBuffers\x12\x19\n" +
+	"\bn_tables\x18\x03 \x01(\rR\anTables\x12!\n" +
+	"\fauxiliary_id\x18\x04 \x01(\rR\vauxiliaryId\x12\"\n" +
+	"\fcapabilities\x18\x05 \x01(\rR\fcapabilities\"r\n" +
+	"\x0fofp_port_status\x124\n" +
+	"\x06reason\x18\x01 \x01(\x0e2\x1c.openflow_13.ofp_port_reasonR\x06reason\x12)\n" +
+	"\x04desc\x18\x02 \x01(\v2\x15.openflow_13.ofp_portR\x04desc\"O\n" +
+	"\x11ofp_device_status\x12:\n" +
+	"\x06status\x18\x01 \x01(\x0e2\".openflow_13.ofp_device_connectionR\x06status\"\x8a\x01\n" +
+	"\fofp_port_mod\x12\x17\n" +
+	"\aport_no\x18\x01 \x01(\rR\x06portNo\x12\x17\n" +
+	"\ahw_addr\x18\x02 \x03(\rR\x06hwAddr\x12\x16\n" +
+	"\x06config\x18\x03 \x01(\rR\x06config\x12\x12\n" +
+	"\x04mask\x18\x04 \x01(\rR\x04mask\x12\x1c\n" +
+	"\tadvertise\x18\x05 \x01(\rR\tadvertise\"w\n" +
+	"\tofp_match\x12/\n" +
+	"\x04type\x18\x01 \x01(\x0e2\x1b.openflow_13.ofp_match_typeR\x04type\x129\n" +
+	"\n" +
+	"oxm_fields\x18\x02 \x03(\v2\x1a.openflow_13.ofp_oxm_fieldR\toxmFields\"\xea\x01\n" +
+	"\rofp_oxm_field\x127\n" +
+	"\toxm_class\x18\x01 \x01(\x0e2\x1a.openflow_13.ofp_oxm_classR\boxmClass\x12=\n" +
+	"\tofb_field\x18\x04 \x01(\v2\x1e.openflow_13.ofp_oxm_ofb_fieldH\x00R\bofbField\x12X\n" +
+	"\x12experimenter_field\x18\x05 \x01(\v2'.openflow_13.ofp_oxm_experimenter_fieldH\x00R\x11experimenterFieldB\a\n" +
+	"\x05field\"\xd7\x0e\n" +
+	"\x11ofp_oxm_ofb_field\x124\n" +
+	"\x04type\x18\x01 \x01(\x0e2 .openflow_13.oxm_ofb_field_typesR\x04type\x12\x19\n" +
+	"\bhas_mask\x18\x02 \x01(\bR\ahasMask\x12\x14\n" +
+	"\x04port\x18\x03 \x01(\rH\x00R\x04port\x12%\n" +
+	"\rphysical_port\x18\x04 \x01(\rH\x00R\fphysicalPort\x12'\n" +
+	"\x0etable_metadata\x18\x05 \x01(\x04H\x00R\rtableMetadata\x12\x19\n" +
+	"\aeth_dst\x18\x06 \x01(\fH\x00R\x06ethDst\x12\x19\n" +
+	"\aeth_src\x18\a \x01(\fH\x00R\x06ethSrc\x12\x1b\n" +
+	"\beth_type\x18\b \x01(\rH\x00R\aethType\x12\x1b\n" +
+	"\bvlan_vid\x18\t \x01(\rH\x00R\avlanVid\x12\x1b\n" +
+	"\bvlan_pcp\x18\n" +
+	" \x01(\rH\x00R\avlanPcp\x12\x19\n" +
+	"\aip_dscp\x18\v \x01(\rH\x00R\x06ipDscp\x12\x17\n" +
+	"\x06ip_ecn\x18\f \x01(\rH\x00R\x05ipEcn\x12\x1b\n" +
+	"\bip_proto\x18\r \x01(\rH\x00R\aipProto\x12\x1b\n" +
+	"\bipv4_src\x18\x0e \x01(\rH\x00R\aipv4Src\x12\x1b\n" +
+	"\bipv4_dst\x18\x0f \x01(\rH\x00R\aipv4Dst\x12\x19\n" +
+	"\atcp_src\x18\x10 \x01(\rH\x00R\x06tcpSrc\x12\x19\n" +
+	"\atcp_dst\x18\x11 \x01(\rH\x00R\x06tcpDst\x12\x19\n" +
+	"\audp_src\x18\x12 \x01(\rH\x00R\x06udpSrc\x12\x19\n" +
+	"\audp_dst\x18\x13 \x01(\rH\x00R\x06udpDst\x12\x1b\n" +
+	"\bsctp_src\x18\x14 \x01(\rH\x00R\asctpSrc\x12\x1b\n" +
+	"\bsctp_dst\x18\x15 \x01(\rH\x00R\asctpDst\x12!\n" +
+	"\vicmpv4_type\x18\x16 \x01(\rH\x00R\n" +
+	"icmpv4Type\x12!\n" +
+	"\vicmpv4_code\x18\x17 \x01(\rH\x00R\n" +
+	"icmpv4Code\x12\x17\n" +
+	"\x06arp_op\x18\x18 \x01(\rH\x00R\x05arpOp\x12\x19\n" +
+	"\aarp_spa\x18\x19 \x01(\rH\x00R\x06arpSpa\x12\x19\n" +
+	"\aarp_tpa\x18\x1a \x01(\rH\x00R\x06arpTpa\x12\x19\n" +
+	"\aarp_sha\x18\x1b \x01(\fH\x00R\x06arpSha\x12\x19\n" +
+	"\aarp_tha\x18\x1c \x01(\fH\x00R\x06arpTha\x12\x1b\n" +
+	"\bipv6_src\x18\x1d \x01(\fH\x00R\aipv6Src\x12\x1b\n" +
+	"\bipv6_dst\x18\x1e \x01(\fH\x00R\aipv6Dst\x12!\n" +
+	"\vipv6_flabel\x18\x1f \x01(\rH\x00R\n" +
+	"ipv6Flabel\x12!\n" +
+	"\vicmpv6_type\x18  \x01(\rH\x00R\n" +
+	"icmpv6Type\x12!\n" +
+	"\vicmpv6_code\x18! \x01(\rH\x00R\n" +
+	"icmpv6Code\x12&\n" +
+	"\x0eipv6_nd_target\x18\" \x01(\fH\x00R\fipv6NdTarget\x12 \n" +
+	"\vipv6_nd_ssl\x18# \x01(\fH\x00R\tipv6NdSsl\x12 \n" +
+	"\vipv6_nd_tll\x18$ \x01(\fH\x00R\tipv6NdTll\x12\x1f\n" +
+	"\n" +
+	"mpls_label\x18% \x01(\rH\x00R\tmplsLabel\x12\x19\n" +
+	"\ampls_tc\x18& \x01(\rH\x00R\x06mplsTc\x12\x1b\n" +
+	"\bmpls_bos\x18' \x01(\rH\x00R\amplsBos\x12\x1b\n" +
+	"\bpbb_isid\x18( \x01(\rH\x00R\apbbIsid\x12\x1d\n" +
+	"\ttunnel_id\x18) \x01(\x04H\x00R\btunnelId\x12!\n" +
+	"\vipv6_exthdr\x18* \x01(\rH\x00R\n" +
+	"ipv6Exthdr\x120\n" +
+	"\x13table_metadata_mask\x18i \x01(\x04H\x01R\x11tableMetadataMask\x12\"\n" +
+	"\feth_dst_mask\x18j \x01(\fH\x01R\n" +
+	"ethDstMask\x12\"\n" +
+	"\feth_src_mask\x18k \x01(\fH\x01R\n" +
+	"ethSrcMask\x12$\n" +
+	"\rvlan_vid_mask\x18m \x01(\rH\x01R\vvlanVidMask\x12$\n" +
+	"\ripv4_src_mask\x18r \x01(\rH\x01R\vipv4SrcMask\x12$\n" +
+	"\ripv4_dst_mask\x18s \x01(\rH\x01R\vipv4DstMask\x12\"\n" +
+	"\farp_spa_mask\x18} \x01(\rH\x01R\n" +
+	"arpSpaMask\x12\"\n" +
+	"\farp_tpa_mask\x18~ \x01(\rH\x01R\n" +
+	"arpTpaMask\x12%\n" +
+	"\ripv6_src_mask\x18\x81\x01 \x01(\fH\x01R\vipv6SrcMask\x12%\n" +
+	"\ripv6_dst_mask\x18\x82\x01 \x01(\fH\x01R\vipv6DstMask\x12+\n" +
+	"\x10ipv6_flabel_mask\x18\x83\x01 \x01(\rH\x01R\x0eipv6FlabelMask\x12%\n" +
+	"\rpbb_isid_mask\x18\x8c\x01 \x01(\rH\x01R\vpbbIsidMask\x12'\n" +
+	"\x0etunnel_id_mask\x18\x8d\x01 \x01(\x04H\x01R\ftunnelIdMask\x12+\n" +
+	"\x10ipv6_exthdr_mask\x18\x8e\x01 \x01(\rH\x01R\x0eipv6ExthdrMaskB\a\n" +
+	"\x05valueB\x06\n" +
+	"\x04mask\"_\n" +
+	"\x1aofp_oxm_experimenter_field\x12\x1d\n" +
+	"\n" +
+	"oxm_header\x18\x01 \x01(\rR\toxmHeader\x12\"\n" +
+	"\fexperimenter\x18\x02 \x01(\rR\fexperimenter\"\xb2\x04\n" +
+	"\n" +
+	"ofp_action\x120\n" +
+	"\x04type\x18\x01 \x01(\x0e2\x1c.openflow_13.ofp_action_typeR\x04type\x128\n" +
+	"\x06output\x18\x02 \x01(\v2\x1e.openflow_13.ofp_action_outputH\x00R\x06output\x12=\n" +
+	"\bmpls_ttl\x18\x03 \x01(\v2 .openflow_13.ofp_action_mpls_ttlH\x00R\amplsTtl\x122\n" +
+	"\x04push\x18\x04 \x01(\v2\x1c.openflow_13.ofp_action_pushH\x00R\x04push\x12=\n" +
+	"\bpop_mpls\x18\x05 \x01(\v2 .openflow_13.ofp_action_pop_mplsH\x00R\apopMpls\x125\n" +
+	"\x05group\x18\x06 \x01(\v2\x1d.openflow_13.ofp_action_groupH\x00R\x05group\x127\n" +
+	"\x06nw_ttl\x18\a \x01(\v2\x1e.openflow_13.ofp_action_nw_ttlH\x00R\x05nwTtl\x12@\n" +
+	"\tset_field\x18\b \x01(\v2!.openflow_13.ofp_action_set_fieldH\x00R\bsetField\x12J\n" +
+	"\fexperimenter\x18\t \x01(\v2$.openflow_13.ofp_action_experimenterH\x00R\fexperimenterB\b\n" +
+	"\x06action\"@\n" +
+	"\x11ofp_action_output\x12\x12\n" +
+	"\x04port\x18\x01 \x01(\rR\x04port\x12\x17\n" +
+	"\amax_len\x18\x02 \x01(\rR\x06maxLen\"0\n" +
+	"\x13ofp_action_mpls_ttl\x12\x19\n" +
+	"\bmpls_ttl\x18\x01 \x01(\rR\amplsTtl\"/\n" +
+	"\x0fofp_action_push\x12\x1c\n" +
+	"\tethertype\x18\x01 \x01(\rR\tethertype\"3\n" +
+	"\x13ofp_action_pop_mpls\x12\x1c\n" +
+	"\tethertype\x18\x01 \x01(\rR\tethertype\"-\n" +
+	"\x10ofp_action_group\x12\x19\n" +
+	"\bgroup_id\x18\x01 \x01(\rR\agroupId\"*\n" +
+	"\x11ofp_action_nw_ttl\x12\x15\n" +
+	"\x06nw_ttl\x18\x01 \x01(\rR\x05nwTtl\"H\n" +
+	"\x14ofp_action_set_field\x120\n" +
+	"\x05field\x18\x01 \x01(\v2\x1a.openflow_13.ofp_oxm_fieldR\x05field\"Q\n" +
+	"\x17ofp_action_experimenter\x12\"\n" +
+	"\fexperimenter\x18\x01 \x01(\rR\fexperimenter\x12\x12\n" +
+	"\x04data\x18\x02 \x01(\fR\x04data\"\x9c\x03\n" +
+	"\x0fofp_instruction\x12\x12\n" +
+	"\x04type\x18\x01 \x01(\rR\x04type\x12H\n" +
+	"\n" +
+	"goto_table\x18\x02 \x01(\v2'.openflow_13.ofp_instruction_goto_tableH\x00R\tgotoTable\x12T\n" +
+	"\x0ewrite_metadata\x18\x03 \x01(\v2+.openflow_13.ofp_instruction_write_metadataH\x00R\rwriteMetadata\x12@\n" +
+	"\aactions\x18\x04 \x01(\v2$.openflow_13.ofp_instruction_actionsH\x00R\aactions\x12:\n" +
+	"\x05meter\x18\x05 \x01(\v2\".openflow_13.ofp_instruction_meterH\x00R\x05meter\x12O\n" +
+	"\fexperimenter\x18\x06 \x01(\v2).openflow_13.ofp_instruction_experimenterH\x00R\fexperimenterB\x06\n" +
+	"\x04data\"7\n" +
+	"\x1aofp_instruction_goto_table\x12\x19\n" +
+	"\btable_id\x18\x01 \x01(\rR\atableId\"a\n" +
+	"\x1eofp_instruction_write_metadata\x12\x1a\n" +
+	"\bmetadata\x18\x01 \x01(\x04R\bmetadata\x12#\n" +
+	"\rmetadata_mask\x18\x02 \x01(\x04R\fmetadataMask\"L\n" +
+	"\x17ofp_instruction_actions\x121\n" +
+	"\aactions\x18\x01 \x03(\v2\x17.openflow_13.ofp_actionR\aactions\"2\n" +
+	"\x15ofp_instruction_meter\x12\x19\n" +
+	"\bmeter_id\x18\x01 \x01(\rR\ameterId\"V\n" +
+	"\x1cofp_instruction_experimenter\x12\"\n" +
+	"\fexperimenter\x18\x01 \x01(\rR\fexperimenter\x12\x12\n" +
+	"\x04data\x18\x02 \x01(\fR\x04data\"\xdc\x03\n" +
+	"\fofp_flow_mod\x12\x16\n" +
+	"\x06cookie\x18\x01 \x01(\x04R\x06cookie\x12\x1f\n" +
+	"\vcookie_mask\x18\x02 \x01(\x04R\n" +
+	"cookieMask\x12\x19\n" +
+	"\btable_id\x18\x03 \x01(\rR\atableId\x12;\n" +
+	"\acommand\x18\x04 \x01(\x0e2!.openflow_13.ofp_flow_mod_commandR\acommand\x12!\n" +
+	"\fidle_timeout\x18\x05 \x01(\rR\vidleTimeout\x12!\n" +
+	"\fhard_timeout\x18\x06 \x01(\rR\vhardTimeout\x12\x1a\n" +
+	"\bpriority\x18\a \x01(\rR\bpriority\x12\x1b\n" +
+	"\tbuffer_id\x18\b \x01(\rR\bbufferId\x12\x19\n" +
+	"\bout_port\x18\t \x01(\rR\aoutPort\x12\x1b\n" +
+	"\tout_group\x18\n" +
+	" \x01(\rR\boutGroup\x12\x14\n" +
+	"\x05flags\x18\v \x01(\rR\x05flags\x12,\n" +
+	"\x05match\x18\f \x01(\v2\x16.openflow_13.ofp_matchR\x05match\x12@\n" +
+	"\finstructions\x18\r \x03(\v2\x1c.openflow_13.ofp_instructionR\finstructions\"\x97\x01\n" +
+	"\n" +
+	"ofp_bucket\x12\x16\n" +
+	"\x06weight\x18\x01 \x01(\rR\x06weight\x12\x1d\n" +
+	"\n" +
+	"watch_port\x18\x02 \x01(\rR\twatchPort\x12\x1f\n" +
+	"\vwatch_group\x18\x03 \x01(\rR\n" +
+	"watchGroup\x121\n" +
+	"\aactions\x18\x04 \x03(\v2\x17.openflow_13.ofp_actionR\aactions\"\xcc\x01\n" +
+	"\rofp_group_mod\x12<\n" +
+	"\acommand\x18\x01 \x01(\x0e2\".openflow_13.ofp_group_mod_commandR\acommand\x12/\n" +
+	"\x04type\x18\x02 \x01(\x0e2\x1b.openflow_13.ofp_group_typeR\x04type\x12\x19\n" +
+	"\bgroup_id\x18\x03 \x01(\rR\agroupId\x121\n" +
+	"\abuckets\x18\x04 \x03(\v2\x17.openflow_13.ofp_bucketR\abuckets\"\x8d\x01\n" +
+	"\x0eofp_packet_out\x12\x1b\n" +
+	"\tbuffer_id\x18\x01 \x01(\rR\bbufferId\x12\x17\n" +
+	"\ain_port\x18\x02 \x01(\rR\x06inPort\x121\n" +
+	"\aactions\x18\x03 \x03(\v2\x17.openflow_13.ofp_actionR\aactions\x12\x12\n" +
+	"\x04data\x18\x04 \x01(\fR\x04data\"\xdc\x01\n" +
+	"\rofp_packet_in\x12\x1b\n" +
+	"\tbuffer_id\x18\x01 \x01(\rR\bbufferId\x129\n" +
+	"\x06reason\x18\x02 \x01(\x0e2!.openflow_13.ofp_packet_in_reasonR\x06reason\x12\x19\n" +
+	"\btable_id\x18\x03 \x01(\rR\atableId\x12\x16\n" +
+	"\x06cookie\x18\x04 \x01(\x04R\x06cookie\x12,\n" +
+	"\x05match\x18\x05 \x01(\v2\x16.openflow_13.ofp_matchR\x05match\x12\x12\n" +
+	"\x04data\x18\x06 \x01(\fR\x04data\"\x9d\x03\n" +
+	"\x10ofp_flow_removed\x12\x16\n" +
+	"\x06cookie\x18\x01 \x01(\x04R\x06cookie\x12\x1a\n" +
+	"\bpriority\x18\x02 \x01(\rR\bpriority\x12<\n" +
+	"\x06reason\x18\x03 \x01(\x0e2$.openflow_13.ofp_flow_removed_reasonR\x06reason\x12\x19\n" +
+	"\btable_id\x18\x04 \x01(\rR\atableId\x12!\n" +
+	"\fduration_sec\x18\x05 \x01(\rR\vdurationSec\x12#\n" +
+	"\rduration_nsec\x18\x06 \x01(\rR\fdurationNsec\x12!\n" +
+	"\fidle_timeout\x18\a \x01(\rR\vidleTimeout\x12!\n" +
+	"\fhard_timeout\x18\b \x01(\rR\vhardTimeout\x12!\n" +
+	"\fpacket_count\x18\t \x01(\x04R\vpacketCount\x12\x1d\n" +
+	"\n" +
+	"byte_count\x18\n" +
+	" \x01(\x04R\tbyteCount\x12,\n" +
+	"\x05match\x18y \x01(\v2\x16.openflow_13.ofp_matchR\x05match\"\xdc\x02\n" +
+	"\x15ofp_meter_band_header\x124\n" +
+	"\x04type\x18\x01 \x01(\x0e2 .openflow_13.ofp_meter_band_typeR\x04type\x12\x12\n" +
+	"\x04rate\x18\x02 \x01(\rR\x04rate\x12\x1d\n" +
+	"\n" +
+	"burst_size\x18\x03 \x01(\rR\tburstSize\x126\n" +
+	"\x04drop\x18\x04 \x01(\v2 .openflow_13.ofp_meter_band_dropH\x00R\x04drop\x12J\n" +
+	"\vdscp_remark\x18\x05 \x01(\v2'.openflow_13.ofp_meter_band_dscp_remarkH\x00R\n" +
+	"dscpRemark\x12N\n" +
+	"\fexperimenter\x18\x06 \x01(\v2(.openflow_13.ofp_meter_band_experimenterH\x00R\fexperimenterB\x06\n" +
+	"\x04data\"\x15\n" +
+	"\x13ofp_meter_band_drop\";\n" +
+	"\x1aofp_meter_band_dscp_remark\x12\x1d\n" +
+	"\n" +
+	"prec_level\x18\x01 \x01(\rR\tprecLevel\"A\n" +
+	"\x1bofp_meter_band_experimenter\x12\"\n" +
+	"\fexperimenter\x18\x01 \x01(\rR\fexperimenter\"\xb8\x01\n" +
+	"\rofp_meter_mod\x12<\n" +
+	"\acommand\x18\x01 \x01(\x0e2\".openflow_13.ofp_meter_mod_commandR\acommand\x12\x14\n" +
+	"\x05flags\x18\x02 \x01(\rR\x05flags\x12\x19\n" +
+	"\bmeter_id\x18\x03 \x01(\rR\ameterId\x128\n" +
+	"\x05bands\x18\x04 \x03(\v2\".openflow_13.ofp_meter_band_headerR\x05bands\"|\n" +
+	"\rofp_error_msg\x12/\n" +
+	"\x06header\x18\x01 \x01(\v2\x17.openflow_13.ofp_headerR\x06header\x12\x12\n" +
+	"\x04type\x18\x02 \x01(\rR\x04type\x12\x12\n" +
+	"\x04code\x18\x03 \x01(\rR\x04code\x12\x12\n" +
+	"\x04data\x18\x04 \x01(\fR\x04data\"\x83\x01\n" +
+	"\x1aofp_error_experimenter_msg\x12\x12\n" +
+	"\x04type\x18\x01 \x01(\rR\x04type\x12\x19\n" +
+	"\bexp_type\x18\x02 \x01(\rR\aexpType\x12\"\n" +
+	"\fexperimenter\x18\x03 \x01(\rR\fexperimenter\x12\x12\n" +
+	"\x04data\x18\x04 \x01(\fR\x04data\"v\n" +
+	"\x15ofp_multipart_request\x123\n" +
+	"\x04type\x18\x01 \x01(\x0e2\x1f.openflow_13.ofp_multipart_typeR\x04type\x12\x14\n" +
+	"\x05flags\x18\x02 \x01(\rR\x05flags\x12\x12\n" +
+	"\x04body\x18\x03 \x01(\fR\x04body\"t\n" +
+	"\x13ofp_multipart_reply\x123\n" +
+	"\x04type\x18\x01 \x01(\x0e2\x1f.openflow_13.ofp_multipart_typeR\x04type\x12\x14\n" +
+	"\x05flags\x18\x02 \x01(\rR\x05flags\x12\x12\n" +
+	"\x04body\x18\x03 \x01(\fR\x04body\"\x8f\x01\n" +
+	"\bofp_desc\x12\x19\n" +
+	"\bmfr_desc\x18\x01 \x01(\tR\amfrDesc\x12\x17\n" +
+	"\ahw_desc\x18\x02 \x01(\tR\x06hwDesc\x12\x17\n" +
+	"\asw_desc\x18\x03 \x01(\tR\x06swDesc\x12\x1d\n" +
+	"\n" +
+	"serial_num\x18\x04 \x01(\tR\tserialNum\x12\x17\n" +
+	"\adp_desc\x18\x05 \x01(\tR\x06dpDesc\"\xd2\x01\n" +
+	"\x16ofp_flow_stats_request\x12\x19\n" +
+	"\btable_id\x18\x01 \x01(\rR\atableId\x12\x19\n" +
+	"\bout_port\x18\x02 \x01(\rR\aoutPort\x12\x1b\n" +
+	"\tout_group\x18\x03 \x01(\rR\boutGroup\x12\x16\n" +
+	"\x06cookie\x18\x04 \x01(\x04R\x06cookie\x12\x1f\n" +
+	"\vcookie_mask\x18\x05 \x01(\x04R\n" +
+	"cookieMask\x12,\n" +
+	"\x05match\x18\x06 \x01(\v2\x16.openflow_13.ofp_matchR\x05match\"\xc5\x03\n" +
+	"\x0eofp_flow_stats\x12\x0e\n" +
+	"\x02id\x18\x0e \x01(\x04R\x02id\x12\x19\n" +
+	"\btable_id\x18\x01 \x01(\rR\atableId\x12!\n" +
+	"\fduration_sec\x18\x02 \x01(\rR\vdurationSec\x12#\n" +
+	"\rduration_nsec\x18\x03 \x01(\rR\fdurationNsec\x12\x1a\n" +
+	"\bpriority\x18\x04 \x01(\rR\bpriority\x12!\n" +
+	"\fidle_timeout\x18\x05 \x01(\rR\vidleTimeout\x12!\n" +
+	"\fhard_timeout\x18\x06 \x01(\rR\vhardTimeout\x12\x14\n" +
+	"\x05flags\x18\a \x01(\rR\x05flags\x12\x16\n" +
+	"\x06cookie\x18\b \x01(\x04R\x06cookie\x12!\n" +
+	"\fpacket_count\x18\t \x01(\x04R\vpacketCount\x12\x1d\n" +
+	"\n" +
+	"byte_count\x18\n" +
+	" \x01(\x04R\tbyteCount\x12,\n" +
+	"\x05match\x18\f \x01(\v2\x16.openflow_13.ofp_matchR\x05match\x12@\n" +
+	"\finstructions\x18\r \x03(\v2\x1c.openflow_13.ofp_instructionR\finstructions\"\xd7\x01\n" +
+	"\x1bofp_aggregate_stats_request\x12\x19\n" +
+	"\btable_id\x18\x01 \x01(\rR\atableId\x12\x19\n" +
+	"\bout_port\x18\x02 \x01(\rR\aoutPort\x12\x1b\n" +
+	"\tout_group\x18\x03 \x01(\rR\boutGroup\x12\x16\n" +
+	"\x06cookie\x18\x04 \x01(\x04R\x06cookie\x12\x1f\n" +
+	"\vcookie_mask\x18\x05 \x01(\x04R\n" +
+	"cookieMask\x12,\n" +
+	"\x05match\x18\x06 \x01(\v2\x16.openflow_13.ofp_matchR\x05match\"|\n" +
+	"\x19ofp_aggregate_stats_reply\x12!\n" +
+	"\fpacket_count\x18\x01 \x01(\x04R\vpacketCount\x12\x1d\n" +
+	"\n" +
+	"byte_count\x18\x02 \x01(\x04R\tbyteCount\x12\x1d\n" +
+	"\n" +
+	"flow_count\x18\x03 \x01(\rR\tflowCount\"\xed\x03\n" +
+	"\x1aofp_table_feature_property\x12<\n" +
+	"\x04type\x18\x01 \x01(\x0e2(.openflow_13.ofp_table_feature_prop_typeR\x04type\x12V\n" +
+	"\finstructions\x18\x02 \x01(\v20.openflow_13.ofp_table_feature_prop_instructionsH\x00R\finstructions\x12R\n" +
+	"\vnext_tables\x18\x03 \x01(\v2/.openflow_13.ofp_table_feature_prop_next_tablesH\x00R\n" +
+	"nextTables\x12G\n" +
+	"\aactions\x18\x04 \x01(\v2+.openflow_13.ofp_table_feature_prop_actionsH\x00R\aactions\x12;\n" +
+	"\x03oxm\x18\x05 \x01(\v2'.openflow_13.ofp_table_feature_prop_oxmH\x00R\x03oxm\x12V\n" +
+	"\fexperimenter\x18\x06 \x01(\v20.openflow_13.ofp_table_feature_prop_experimenterH\x00R\fexperimenterB\a\n" +
+	"\x05value\"g\n" +
+	"#ofp_table_feature_prop_instructions\x12@\n" +
+	"\finstructions\x18\x01 \x03(\v2\x1c.openflow_13.ofp_instructionR\finstructions\"J\n" +
+	"\"ofp_table_feature_prop_next_tables\x12$\n" +
+	"\x0enext_table_ids\x18\x01 \x03(\rR\fnextTableIds\"S\n" +
+	"\x1eofp_table_feature_prop_actions\x121\n" +
+	"\aactions\x18\x01 \x03(\v2\x17.openflow_13.ofp_actionR\aactions\"5\n" +
+	"\x1aofp_table_feature_prop_oxm\x12\x17\n" +
+	"\aoxm_ids\x18\x03 \x03(\rR\x06oxmIds\"\x91\x01\n" +
+	"#ofp_table_feature_prop_experimenter\x12\"\n" +
+	"\fexperimenter\x18\x02 \x01(\rR\fexperimenter\x12\x19\n" +
+	"\bexp_type\x18\x03 \x01(\rR\aexpType\x12+\n" +
+	"\x11experimenter_data\x18\x04 \x03(\rR\x10experimenterData\"\x93\x02\n" +
+	"\x12ofp_table_features\x12\x19\n" +
+	"\btable_id\x18\x01 \x01(\rR\atableId\x12\x12\n" +
+	"\x04name\x18\x02 \x01(\tR\x04name\x12%\n" +
+	"\x0emetadata_match\x18\x03 \x01(\x04R\rmetadataMatch\x12%\n" +
+	"\x0emetadata_write\x18\x04 \x01(\x04R\rmetadataWrite\x12\x16\n" +
+	"\x06config\x18\x05 \x01(\rR\x06config\x12\x1f\n" +
+	"\vmax_entries\x18\x06 \x01(\rR\n" +
+	"maxEntries\x12G\n" +
+	"\n" +
+	"properties\x18\a \x03(\v2'.openflow_13.ofp_table_feature_propertyR\n" +
+	"properties\"\x97\x01\n" +
+	"\x0fofp_table_stats\x12\x19\n" +
+	"\btable_id\x18\x01 \x01(\rR\atableId\x12!\n" +
+	"\factive_count\x18\x02 \x01(\rR\vactiveCount\x12!\n" +
+	"\flookup_count\x18\x03 \x01(\x04R\vlookupCount\x12#\n" +
+	"\rmatched_count\x18\x04 \x01(\x04R\fmatchedCount\"1\n" +
+	"\x16ofp_port_stats_request\x12\x17\n" +
+	"\aport_no\x18\x01 \x01(\rR\x06portNo\"\xdd\x03\n" +
+	"\x0eofp_port_stats\x12\x17\n" +
+	"\aport_no\x18\x01 \x01(\rR\x06portNo\x12\x1d\n" +
+	"\n" +
+	"rx_packets\x18\x02 \x01(\x04R\trxPackets\x12\x1d\n" +
+	"\n" +
+	"tx_packets\x18\x03 \x01(\x04R\ttxPackets\x12\x19\n" +
+	"\brx_bytes\x18\x04 \x01(\x04R\arxBytes\x12\x19\n" +
+	"\btx_bytes\x18\x05 \x01(\x04R\atxBytes\x12\x1d\n" +
+	"\n" +
+	"rx_dropped\x18\x06 \x01(\x04R\trxDropped\x12\x1d\n" +
+	"\n" +
+	"tx_dropped\x18\a \x01(\x04R\ttxDropped\x12\x1b\n" +
+	"\trx_errors\x18\b \x01(\x04R\brxErrors\x12\x1b\n" +
+	"\ttx_errors\x18\t \x01(\x04R\btxErrors\x12 \n" +
+	"\frx_frame_err\x18\n" +
+	" \x01(\x04R\n" +
+	"rxFrameErr\x12\x1e\n" +
+	"\vrx_over_err\x18\v \x01(\x04R\trxOverErr\x12\x1c\n" +
+	"\n" +
+	"rx_crc_err\x18\f \x01(\x04R\brxCrcErr\x12\x1e\n" +
+	"\n" +
+	"collisions\x18\r \x01(\x04R\n" +
+	"collisions\x12!\n" +
+	"\fduration_sec\x18\x0e \x01(\rR\vdurationSec\x12#\n" +
+	"\rduration_nsec\x18\x0f \x01(\rR\fdurationNsec\"4\n" +
+	"\x17ofp_group_stats_request\x12\x19\n" +
+	"\bgroup_id\x18\x01 \x01(\rR\agroupId\"V\n" +
+	"\x12ofp_bucket_counter\x12!\n" +
+	"\fpacket_count\x18\x01 \x01(\x04R\vpacketCount\x12\x1d\n" +
+	"\n" +
+	"byte_count\x18\x02 \x01(\x04R\tbyteCount\"\x97\x02\n" +
+	"\x0fofp_group_stats\x12\x19\n" +
+	"\bgroup_id\x18\x01 \x01(\rR\agroupId\x12\x1b\n" +
+	"\tref_count\x18\x02 \x01(\rR\brefCount\x12!\n" +
+	"\fpacket_count\x18\x03 \x01(\x04R\vpacketCount\x12\x1d\n" +
+	"\n" +
+	"byte_count\x18\x04 \x01(\x04R\tbyteCount\x12!\n" +
+	"\fduration_sec\x18\x05 \x01(\rR\vdurationSec\x12#\n" +
+	"\rduration_nsec\x18\x06 \x01(\rR\fdurationNsec\x12B\n" +
+	"\fbucket_stats\x18\a \x03(\v2\x1f.openflow_13.ofp_bucket_counterR\vbucketStats\"\x8f\x01\n" +
+	"\x0eofp_group_desc\x12/\n" +
+	"\x04type\x18\x01 \x01(\x0e2\x1b.openflow_13.ofp_group_typeR\x04type\x12\x19\n" +
+	"\bgroup_id\x18\x02 \x01(\rR\agroupId\x121\n" +
+	"\abuckets\x18\x03 \x03(\v2\x17.openflow_13.ofp_bucketR\abuckets\"v\n" +
+	"\x0fofp_group_entry\x12/\n" +
+	"\x04desc\x18\x01 \x01(\v2\x1b.openflow_13.ofp_group_descR\x04desc\x122\n" +
+	"\x05stats\x18\x02 \x01(\v2\x1c.openflow_13.ofp_group_statsR\x05stats\"\x87\x01\n" +
+	"\x12ofp_group_features\x12\x14\n" +
+	"\x05types\x18\x01 \x01(\rR\x05types\x12\"\n" +
+	"\fcapabilities\x18\x02 \x01(\rR\fcapabilities\x12\x1d\n" +
+	"\n" +
+	"max_groups\x18\x03 \x03(\rR\tmaxGroups\x12\x18\n" +
+	"\aactions\x18\x04 \x03(\rR\aactions\"8\n" +
+	"\x1bofp_meter_multipart_request\x12\x19\n" +
+	"\bmeter_id\x18\x01 \x01(\rR\ameterId\"j\n" +
+	"\x14ofp_meter_band_stats\x12*\n" +
+	"\x11packet_band_count\x18\x01 \x01(\x04R\x0fpacketBandCount\x12&\n" +
+	"\x0fbyte_band_count\x18\x02 \x01(\x04R\rbyteBandCount\"\xa1\x02\n" +
+	"\x0fofp_meter_stats\x12\x19\n" +
+	"\bmeter_id\x18\x01 \x01(\rR\ameterId\x12\x1d\n" +
+	"\n" +
+	"flow_count\x18\x02 \x01(\rR\tflowCount\x12&\n" +
+	"\x0fpacket_in_count\x18\x03 \x01(\x04R\rpacketInCount\x12\"\n" +
+	"\rbyte_in_count\x18\x04 \x01(\x04R\vbyteInCount\x12!\n" +
+	"\fduration_sec\x18\x05 \x01(\rR\vdurationSec\x12#\n" +
+	"\rduration_nsec\x18\x06 \x01(\rR\fdurationNsec\x12@\n" +
+	"\n" +
+	"band_stats\x18\a \x03(\v2!.openflow_13.ofp_meter_band_statsR\tbandStats\"}\n" +
+	"\x10ofp_meter_config\x12\x14\n" +
+	"\x05flags\x18\x01 \x01(\rR\x05flags\x12\x19\n" +
+	"\bmeter_id\x18\x02 \x01(\rR\ameterId\x128\n" +
+	"\x05bands\x18\x03 \x03(\v2\".openflow_13.ofp_meter_band_headerR\x05bands\"\xae\x01\n" +
+	"\x12ofp_meter_features\x12\x1b\n" +
+	"\tmax_meter\x18\x01 \x01(\rR\bmaxMeter\x12\x1d\n" +
+	"\n" +
+	"band_types\x18\x02 \x01(\rR\tbandTypes\x12\"\n" +
+	"\fcapabilities\x18\x03 \x01(\rR\fcapabilities\x12\x1b\n" +
+	"\tmax_bands\x18\x04 \x01(\rR\bmaxBands\x12\x1b\n" +
+	"\tmax_color\x18\x05 \x01(\rR\bmaxColor\"|\n" +
+	"\x0fofp_meter_entry\x125\n" +
+	"\x06config\x18\x01 \x01(\v2\x1d.openflow_13.ofp_meter_configR\x06config\x122\n" +
+	"\x05stats\x18\x02 \x01(\v2\x1c.openflow_13.ofp_meter_statsR\x05stats\"v\n" +
+	"!ofp_experimenter_multipart_header\x12\"\n" +
+	"\fexperimenter\x18\x01 \x01(\rR\fexperimenter\x12\x19\n" +
+	"\bexp_type\x18\x02 \x01(\rR\aexpType\x12\x12\n" +
+	"\x04data\x18\x03 \x01(\fR\x04data\"l\n" +
+	"\x17ofp_experimenter_header\x12\"\n" +
+	"\fexperimenter\x18\x01 \x01(\rR\fexperimenter\x12\x19\n" +
+	"\bexp_type\x18\x02 \x01(\rR\aexpType\x12\x12\n" +
+	"\x04data\x18\x03 \x01(\fR\x04data\"E\n" +
+	"\x15ofp_queue_prop_header\x12\x1a\n" +
+	"\bproperty\x18\x01 \x01(\rR\bproperty\x12\x10\n" +
+	"\x03len\x18\x02 \x01(\rR\x03len\"r\n" +
+	"\x17ofp_queue_prop_min_rate\x12C\n" +
+	"\vprop_header\x18\x01 \x01(\v2\".openflow_13.ofp_queue_prop_headerR\n" +
+	"propHeader\x12\x12\n" +
+	"\x04rate\x18\x02 \x01(\rR\x04rate\"r\n" +
+	"\x17ofp_queue_prop_max_rate\x12C\n" +
+	"\vprop_header\x18\x01 \x01(\v2\".openflow_13.ofp_queue_prop_headerR\n" +
+	"propHeader\x12\x12\n" +
+	"\x04rate\x18\x02 \x01(\rR\x04rate\"\x9a\x01\n" +
+	"\x1bofp_queue_prop_experimenter\x12C\n" +
+	"\vprop_header\x18\x01 \x01(\v2\".openflow_13.ofp_queue_prop_headerR\n" +
+	"propHeader\x12\"\n" +
+	"\fexperimenter\x18\x02 \x01(\rR\fexperimenter\x12\x12\n" +
+	"\x04data\x18\x03 \x01(\fR\x04data\"\x85\x01\n" +
+	"\x10ofp_packet_queue\x12\x19\n" +
+	"\bqueue_id\x18\x01 \x01(\rR\aqueueId\x12\x12\n" +
+	"\x04port\x18\x02 \x01(\rR\x04port\x12B\n" +
+	"\n" +
+	"properties\x18\x04 \x03(\v2\".openflow_13.ofp_queue_prop_headerR\n" +
+	"properties\"2\n" +
+	"\x1cofp_queue_get_config_request\x12\x12\n" +
+	"\x04port\x18\x01 \x01(\rR\x04port\"g\n" +
+	"\x1aofp_queue_get_config_reply\x12\x12\n" +
+	"\x04port\x18\x01 \x01(\rR\x04port\x125\n" +
+	"\x06queues\x18\x02 \x03(\v2\x1d.openflow_13.ofp_packet_queueR\x06queues\"E\n" +
+	"\x14ofp_action_set_queue\x12\x12\n" +
+	"\x04type\x18\x01 \x01(\rR\x04type\x12\x19\n" +
+	"\bqueue_id\x18\x03 \x01(\rR\aqueueId\"M\n" +
+	"\x17ofp_queue_stats_request\x12\x17\n" +
+	"\aport_no\x18\x01 \x01(\rR\x06portNo\x12\x19\n" +
+	"\bqueue_id\x18\x02 \x01(\rR\aqueueId\"\xe4\x01\n" +
+	"\x0fofp_queue_stats\x12\x17\n" +
+	"\aport_no\x18\x01 \x01(\rR\x06portNo\x12\x19\n" +
+	"\bqueue_id\x18\x02 \x01(\rR\aqueueId\x12\x19\n" +
+	"\btx_bytes\x18\x03 \x01(\x04R\atxBytes\x12\x1d\n" +
+	"\n" +
+	"tx_packets\x18\x04 \x01(\x04R\ttxPackets\x12\x1b\n" +
+	"\ttx_errors\x18\x05 \x01(\x04R\btxErrors\x12!\n" +
+	"\fduration_sec\x18\x06 \x01(\rR\vdurationSec\x12#\n" +
+	"\rduration_nsec\x18\a \x01(\rR\fdurationNsec\"m\n" +
+	"\x10ofp_role_request\x124\n" +
+	"\x04role\x18\x01 \x01(\x0e2 .openflow_13.ofp_controller_roleR\x04role\x12#\n" +
+	"\rgeneration_id\x18\x02 \x01(\x04R\fgenerationId\"\x8e\x01\n" +
+	"\x10ofp_async_config\x12$\n" +
+	"\x0epacket_in_mask\x18\x01 \x03(\rR\fpacketInMask\x12(\n" +
+	"\x10port_status_mask\x18\x02 \x03(\rR\x0eportStatusMask\x12*\n" +
+	"\x11flow_removed_mask\x18\x03 \x03(\rR\x0fflowRemovedMask\"k\n" +
+	"\x0eMeterModUpdate\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\tR\x02id\x127\n" +
+	"\tmeter_mod\x18\x02 \x01(\v2\x1a.openflow_13.ofp_meter_modR\bmeterMod\x12\x10\n" +
+	"\x03xid\x18\x03 \x01(\rR\x03xid\"P\n" +
+	"\x0fMeterStatsReply\x12=\n" +
+	"\vmeter_stats\x18\x01 \x03(\v2\x1c.openflow_13.ofp_meter_statsR\n" +
+	"meterStats\"i\n" +
+	"\x0fFlowTableUpdate\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\tR\x02id\x124\n" +
+	"\bflow_mod\x18\x02 \x01(\v2\x19.openflow_13.ofp_flow_modR\aflowMod\x12\x10\n" +
+	"\x03xid\x18\x03 \x01(\rR\x03xid\"q\n" +
+	"\x14FlowGroupTableUpdate\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\tR\x02id\x127\n" +
+	"\tgroup_mod\x18\x02 \x01(\v2\x1a.openflow_13.ofp_group_modR\bgroupMod\x12\x10\n" +
+	"\x03xid\x18\x03 \x01(\rR\x03xid\":\n" +
+	"\x05Flows\x121\n" +
+	"\x05items\x18\x01 \x03(\v2\x1b.openflow_13.ofp_flow_statsR\x05items\"<\n" +
+	"\x06Meters\x122\n" +
+	"\x05items\x18\x01 \x03(\v2\x1c.openflow_13.ofp_meter_entryR\x05items\"@\n" +
+	"\n" +
+	"FlowGroups\x122\n" +
+	"\x05items\x18\x01 \x03(\v2\x1c.openflow_13.ofp_group_entryR\x05items\"i\n" +
+	"\vFlowChanges\x12)\n" +
+	"\x06to_add\x18\x01 \x01(\v2\x12.openflow_13.FlowsR\x05toAdd\x12/\n" +
+	"\tto_remove\x18\x02 \x01(\v2\x12.openflow_13.FlowsR\btoRemove\"\xae\x01\n" +
+	"\x10FlowGroupChanges\x12.\n" +
+	"\x06to_add\x18\x01 \x01(\v2\x17.openflow_13.FlowGroupsR\x05toAdd\x124\n" +
+	"\tto_remove\x18\x02 \x01(\v2\x17.openflow_13.FlowGroupsR\btoRemove\x124\n" +
+	"\tto_update\x18\x03 \x01(\v2\x17.openflow_13.FlowGroupsR\btoUpdate\"S\n" +
+	"\bPacketIn\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\tR\x02id\x127\n" +
+	"\tpacket_in\x18\x02 \x01(\v2\x1a.openflow_13.ofp_packet_inR\bpacketIn\"W\n" +
+	"\tPacketOut\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\tR\x02id\x12:\n" +
+	"\n" +
+	"packet_out\x18\x02 \x01(\v2\x1b.openflow_13.ofp_packet_outR\tpacketOut\"\xe2\x01\n" +
+	"\vChangeEvent\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\tR\x02id\x12?\n" +
+	"\vport_status\x18\x02 \x01(\v2\x1c.openflow_13.ofp_port_statusH\x00R\n" +
+	"portStatus\x122\n" +
+	"\x05error\x18\x03 \x01(\v2\x1a.openflow_13.ofp_error_msgH\x00R\x05error\x12E\n" +
+	"\rdevice_status\x18\x04 \x01(\v2\x1e.openflow_13.ofp_device_statusH\x00R\fdeviceStatusB\a\n" +
+	"\x05event\"E\n" +
+	"\fFlowMetadata\x125\n" +
+	"\x06meters\x18\x01 \x03(\v2\x1d.openflow_13.ofp_meter_configR\x06meters*\xd5\x01\n" +
+	"\vofp_port_no\x12\x10\n" +
+	"\fOFPP_INVALID\x10\x00\x12\x10\n" +
+	"\bOFPP_MAX\x10\x80\xfe\xff\xff\a\x12\x14\n" +
+	"\fOFPP_IN_PORT\x10\xf8\xff\xff\xff\a\x12\x12\n" +
+	"\n" +
+	"OFPP_TABLE\x10\xf9\xff\xff\xff\a\x12\x13\n" +
+	"\vOFPP_NORMAL\x10\xfa\xff\xff\xff\a\x12\x12\n" +
+	"\n" +
+	"OFPP_FLOOD\x10\xfb\xff\xff\xff\a\x12\x10\n" +
+	"\bOFPP_ALL\x10\xfc\xff\xff\xff\a\x12\x17\n" +
+	"\x0fOFPP_CONTROLLER\x10\xfd\xff\xff\xff\a\x12\x12\n" +
+	"\n" +
+	"OFPP_LOCAL\x10\xfe\xff\xff\xff\a\x12\x10\n" +
+	"\bOFPP_ANY\x10\xff\xff\xff\xff\a*\xc8\x05\n" +
+	"\bofp_type\x12\x0e\n" +
+	"\n" +
+	"OFPT_HELLO\x10\x00\x12\x0e\n" +
+	"\n" +
+	"OFPT_ERROR\x10\x01\x12\x15\n" +
+	"\x11OFPT_ECHO_REQUEST\x10\x02\x12\x13\n" +
+	"\x0fOFPT_ECHO_REPLY\x10\x03\x12\x15\n" +
+	"\x11OFPT_EXPERIMENTER\x10\x04\x12\x19\n" +
+	"\x15OFPT_FEATURES_REQUEST\x10\x05\x12\x17\n" +
+	"\x13OFPT_FEATURES_REPLY\x10\x06\x12\x1b\n" +
+	"\x17OFPT_GET_CONFIG_REQUEST\x10\a\x12\x19\n" +
+	"\x15OFPT_GET_CONFIG_REPLY\x10\b\x12\x13\n" +
+	"\x0fOFPT_SET_CONFIG\x10\t\x12\x12\n" +
+	"\x0eOFPT_PACKET_IN\x10\n" +
+	"\x12\x15\n" +
+	"\x11OFPT_FLOW_REMOVED\x10\v\x12\x14\n" +
+	"\x10OFPT_PORT_STATUS\x10\f\x12\x13\n" +
+	"\x0fOFPT_PACKET_OUT\x10\r\x12\x11\n" +
+	"\rOFPT_FLOW_MOD\x10\x0e\x12\x12\n" +
+	"\x0eOFPT_GROUP_MOD\x10\x0f\x12\x11\n" +
+	"\rOFPT_PORT_MOD\x10\x10\x12\x12\n" +
+	"\x0eOFPT_TABLE_MOD\x10\x11\x12\x1a\n" +
+	"\x16OFPT_MULTIPART_REQUEST\x10\x12\x12\x18\n" +
+	"\x14OFPT_MULTIPART_REPLY\x10\x13\x12\x18\n" +
+	"\x14OFPT_BARRIER_REQUEST\x10\x14\x12\x16\n" +
+	"\x12OFPT_BARRIER_REPLY\x10\x15\x12!\n" +
+	"\x1dOFPT_QUEUE_GET_CONFIG_REQUEST\x10\x16\x12\x1f\n" +
+	"\x1bOFPT_QUEUE_GET_CONFIG_REPLY\x10\x17\x12\x15\n" +
+	"\x11OFPT_ROLE_REQUEST\x10\x18\x12\x13\n" +
+	"\x0fOFPT_ROLE_REPLY\x10\x19\x12\x1a\n" +
+	"\x16OFPT_GET_ASYNC_REQUEST\x10\x1a\x12\x18\n" +
+	"\x14OFPT_GET_ASYNC_REPLY\x10\x1b\x12\x12\n" +
+	"\x0eOFPT_SET_ASYNC\x10\x1c\x12\x12\n" +
+	"\x0eOFPT_METER_MOD\x10\x1d*C\n" +
+	"\x13ofp_hello_elem_type\x12\x12\n" +
+	"\x0eOFPHET_INVALID\x10\x00\x12\x18\n" +
+	"\x14OFPHET_VERSIONBITMAP\x10\x01*e\n" +
+	"\x10ofp_config_flags\x12\x14\n" +
+	"\x10OFPC_FRAG_NORMAL\x10\x00\x12\x12\n" +
+	"\x0eOFPC_FRAG_DROP\x10\x01\x12\x13\n" +
+	"\x0fOFPC_FRAG_REASM\x10\x02\x12\x12\n" +
+	"\x0eOFPC_FRAG_MASK\x10\x03*@\n" +
+	"\x10ofp_table_config\x12\x11\n" +
+	"\rOFPTC_INVALID\x10\x00\x12\x19\n" +
+	"\x15OFPTC_DEPRECATED_MASK\x10\x03*>\n" +
+	"\tofp_table\x12\x11\n" +
+	"\rOFPTT_INVALID\x10\x00\x12\x0e\n" +
+	"\tOFPTT_MAX\x10\xfe\x01\x12\x0e\n" +
+	"\tOFPTT_ALL\x10\xff\x01*\xbb\x01\n" +
+	"\x10ofp_capabilities\x12\x10\n" +
+	"\fOFPC_INVALID\x10\x00\x12\x13\n" +
+	"\x0fOFPC_FLOW_STATS\x10\x01\x12\x14\n" +
+	"\x10OFPC_TABLE_STATS\x10\x02\x12\x13\n" +
+	"\x0fOFPC_PORT_STATS\x10\x04\x12\x14\n" +
+	"\x10OFPC_GROUP_STATS\x10\b\x12\x11\n" +
+	"\rOFPC_IP_REASM\x10 \x12\x14\n" +
+	"\x10OFPC_QUEUE_STATS\x10@\x12\x16\n" +
+	"\x11OFPC_PORT_BLOCKED\x10\x80\x02*v\n" +
+	"\x0fofp_port_config\x12\x11\n" +
+	"\rOFPPC_INVALID\x10\x00\x12\x13\n" +
+	"\x0fOFPPC_PORT_DOWN\x10\x01\x12\x11\n" +
+	"\rOFPPC_NO_RECV\x10\x04\x12\x10\n" +
+	"\fOFPPC_NO_FWD\x10 \x12\x16\n" +
+	"\x12OFPPC_NO_PACKET_IN\x10@*[\n" +
+	"\x0eofp_port_state\x12\x11\n" +
+	"\rOFPPS_INVALID\x10\x00\x12\x13\n" +
+	"\x0fOFPPS_LINK_DOWN\x10\x01\x12\x11\n" +
+	"\rOFPPS_BLOCKED\x10\x02\x12\x0e\n" +
+	"\n" +
+	"OFPPS_LIVE\x10\x04*\xdd\x02\n" +
+	"\x11ofp_port_features\x12\x11\n" +
+	"\rOFPPF_INVALID\x10\x00\x12\x11\n" +
+	"\rOFPPF_10MB_HD\x10\x01\x12\x11\n" +
+	"\rOFPPF_10MB_FD\x10\x02\x12\x12\n" +
+	"\x0eOFPPF_100MB_HD\x10\x04\x12\x12\n" +
+	"\x0eOFPPF_100MB_FD\x10\b\x12\x10\n" +
+	"\fOFPPF_1GB_HD\x10\x10\x12\x10\n" +
+	"\fOFPPF_1GB_FD\x10 \x12\x11\n" +
+	"\rOFPPF_10GB_FD\x10@\x12\x12\n" +
+	"\rOFPPF_40GB_FD\x10\x80\x01\x12\x13\n" +
+	"\x0eOFPPF_100GB_FD\x10\x80\x02\x12\x11\n" +
+	"\fOFPPF_1TB_FD\x10\x80\x04\x12\x10\n" +
+	"\vOFPPF_OTHER\x10\x80\b\x12\x11\n" +
+	"\fOFPPF_COPPER\x10\x80\x10\x12\x10\n" +
+	"\vOFPPF_FIBER\x10\x80 \x12\x12\n" +
+	"\rOFPPF_AUTONEG\x10\x80@\x12\x11\n" +
+	"\vOFPPF_PAUSE\x10\x80\x80\x01\x12\x16\n" +
+	"\x10OFPPF_PAUSE_ASYM\x10\x80\x80\x02*D\n" +
+	"\x0fofp_port_reason\x12\r\n" +
+	"\tOFPPR_ADD\x10\x00\x12\x10\n" +
+	"\fOFPPR_DELETE\x10\x01\x12\x10\n" +
+	"\fOFPPR_MODIFY\x10\x02*F\n" +
+	"\x15ofp_device_connection\x12\x14\n" +
+	"\x10OFPDEV_CONNECTED\x10\x00\x12\x17\n" +
+	"\x13OFPDEV_DISCONNECTED\x10\x01*3\n" +
+	"\x0eofp_match_type\x12\x12\n" +
+	"\x0eOFPMT_STANDARD\x10\x00\x12\r\n" +
+	"\tOFPMT_OXM\x10\x01*k\n" +
+	"\rofp_oxm_class\x12\x10\n" +
+	"\fOFPXMC_NXM_0\x10\x00\x12\x10\n" +
+	"\fOFPXMC_NXM_1\x10\x01\x12\x1b\n" +
+	"\x15OFPXMC_OPENFLOW_BASIC\x10\x80\x80\x02\x12\x19\n" +
+	"\x13OFPXMC_EXPERIMENTER\x10\xff\xff\x03*\x90\b\n" +
+	"\x13oxm_ofb_field_types\x12\x16\n" +
+	"\x12OFPXMT_OFB_IN_PORT\x10\x00\x12\x1a\n" +
+	"\x16OFPXMT_OFB_IN_PHY_PORT\x10\x01\x12\x17\n" +
+	"\x13OFPXMT_OFB_METADATA\x10\x02\x12\x16\n" +
+	"\x12OFPXMT_OFB_ETH_DST\x10\x03\x12\x16\n" +
+	"\x12OFPXMT_OFB_ETH_SRC\x10\x04\x12\x17\n" +
+	"\x13OFPXMT_OFB_ETH_TYPE\x10\x05\x12\x17\n" +
+	"\x13OFPXMT_OFB_VLAN_VID\x10\x06\x12\x17\n" +
+	"\x13OFPXMT_OFB_VLAN_PCP\x10\a\x12\x16\n" +
+	"\x12OFPXMT_OFB_IP_DSCP\x10\b\x12\x15\n" +
+	"\x11OFPXMT_OFB_IP_ECN\x10\t\x12\x17\n" +
+	"\x13OFPXMT_OFB_IP_PROTO\x10\n" +
+	"\x12\x17\n" +
+	"\x13OFPXMT_OFB_IPV4_SRC\x10\v\x12\x17\n" +
+	"\x13OFPXMT_OFB_IPV4_DST\x10\f\x12\x16\n" +
+	"\x12OFPXMT_OFB_TCP_SRC\x10\r\x12\x16\n" +
+	"\x12OFPXMT_OFB_TCP_DST\x10\x0e\x12\x16\n" +
+	"\x12OFPXMT_OFB_UDP_SRC\x10\x0f\x12\x16\n" +
+	"\x12OFPXMT_OFB_UDP_DST\x10\x10\x12\x17\n" +
+	"\x13OFPXMT_OFB_SCTP_SRC\x10\x11\x12\x17\n" +
+	"\x13OFPXMT_OFB_SCTP_DST\x10\x12\x12\x1a\n" +
+	"\x16OFPXMT_OFB_ICMPV4_TYPE\x10\x13\x12\x1a\n" +
+	"\x16OFPXMT_OFB_ICMPV4_CODE\x10\x14\x12\x15\n" +
+	"\x11OFPXMT_OFB_ARP_OP\x10\x15\x12\x16\n" +
+	"\x12OFPXMT_OFB_ARP_SPA\x10\x16\x12\x16\n" +
+	"\x12OFPXMT_OFB_ARP_TPA\x10\x17\x12\x16\n" +
+	"\x12OFPXMT_OFB_ARP_SHA\x10\x18\x12\x16\n" +
+	"\x12OFPXMT_OFB_ARP_THA\x10\x19\x12\x17\n" +
+	"\x13OFPXMT_OFB_IPV6_SRC\x10\x1a\x12\x17\n" +
+	"\x13OFPXMT_OFB_IPV6_DST\x10\x1b\x12\x1a\n" +
+	"\x16OFPXMT_OFB_IPV6_FLABEL\x10\x1c\x12\x1a\n" +
+	"\x16OFPXMT_OFB_ICMPV6_TYPE\x10\x1d\x12\x1a\n" +
+	"\x16OFPXMT_OFB_ICMPV6_CODE\x10\x1e\x12\x1d\n" +
+	"\x19OFPXMT_OFB_IPV6_ND_TARGET\x10\x1f\x12\x1a\n" +
+	"\x16OFPXMT_OFB_IPV6_ND_SLL\x10 \x12\x1a\n" +
+	"\x16OFPXMT_OFB_IPV6_ND_TLL\x10!\x12\x19\n" +
+	"\x15OFPXMT_OFB_MPLS_LABEL\x10\"\x12\x16\n" +
+	"\x12OFPXMT_OFB_MPLS_TC\x10#\x12\x17\n" +
+	"\x13OFPXMT_OFB_MPLS_BOS\x10$\x12\x17\n" +
+	"\x13OFPXMT_OFB_PBB_ISID\x10%\x12\x18\n" +
+	"\x14OFPXMT_OFB_TUNNEL_ID\x10&\x12\x1a\n" +
+	"\x16OFPXMT_OFB_IPV6_EXTHDR\x10'*3\n" +
+	"\vofp_vlan_id\x12\x0f\n" +
+	"\vOFPVID_NONE\x10\x00\x12\x13\n" +
+	"\x0eOFPVID_PRESENT\x10\x80 *\xc9\x01\n" +
+	"\x14ofp_ipv6exthdr_flags\x12\x12\n" +
+	"\x0eOFPIEH_INVALID\x10\x00\x12\x11\n" +
+	"\rOFPIEH_NONEXT\x10\x01\x12\x0e\n" +
+	"\n" +
+	"OFPIEH_ESP\x10\x02\x12\x0f\n" +
+	"\vOFPIEH_AUTH\x10\x04\x12\x0f\n" +
+	"\vOFPIEH_DEST\x10\b\x12\x0f\n" +
+	"\vOFPIEH_FRAG\x10\x10\x12\x11\n" +
+	"\rOFPIEH_ROUTER\x10 \x12\x0e\n" +
+	"\n" +
+	"OFPIEH_HOP\x10@\x12\x11\n" +
+	"\fOFPIEH_UNREP\x10\x80\x01\x12\x11\n" +
+	"\fOFPIEH_UNSEQ\x10\x80\x02*\xfc\x02\n" +
+	"\x0fofp_action_type\x12\x10\n" +
+	"\fOFPAT_OUTPUT\x10\x00\x12\x16\n" +
+	"\x12OFPAT_COPY_TTL_OUT\x10\v\x12\x15\n" +
+	"\x11OFPAT_COPY_TTL_IN\x10\f\x12\x16\n" +
+	"\x12OFPAT_SET_MPLS_TTL\x10\x0f\x12\x16\n" +
+	"\x12OFPAT_DEC_MPLS_TTL\x10\x10\x12\x13\n" +
+	"\x0fOFPAT_PUSH_VLAN\x10\x11\x12\x12\n" +
+	"\x0eOFPAT_POP_VLAN\x10\x12\x12\x13\n" +
+	"\x0fOFPAT_PUSH_MPLS\x10\x13\x12\x12\n" +
+	"\x0eOFPAT_POP_MPLS\x10\x14\x12\x13\n" +
+	"\x0fOFPAT_SET_QUEUE\x10\x15\x12\x0f\n" +
+	"\vOFPAT_GROUP\x10\x16\x12\x14\n" +
+	"\x10OFPAT_SET_NW_TTL\x10\x17\x12\x14\n" +
+	"\x10OFPAT_DEC_NW_TTL\x10\x18\x12\x13\n" +
+	"\x0fOFPAT_SET_FIELD\x10\x19\x12\x12\n" +
+	"\x0eOFPAT_PUSH_PBB\x10\x1a\x12\x11\n" +
+	"\rOFPAT_POP_PBB\x10\x1b\x12\x18\n" +
+	"\x12OFPAT_EXPERIMENTER\x10\xff\xff\x03*V\n" +
+	"\x16ofp_controller_max_len\x12\x12\n" +
+	"\x0eOFPCML_INVALID\x10\x00\x12\x10\n" +
+	"\n" +
+	"OFPCML_MAX\x10\xe5\xff\x03\x12\x16\n" +
+	"\x10OFPCML_NO_BUFFER\x10\xff\xff\x03*\xcf\x01\n" +
+	"\x14ofp_instruction_type\x12\x11\n" +
+	"\rOFPIT_INVALID\x10\x00\x12\x14\n" +
+	"\x10OFPIT_GOTO_TABLE\x10\x01\x12\x18\n" +
+	"\x14OFPIT_WRITE_METADATA\x10\x02\x12\x17\n" +
+	"\x13OFPIT_WRITE_ACTIONS\x10\x03\x12\x17\n" +
+	"\x13OFPIT_APPLY_ACTIONS\x10\x04\x12\x17\n" +
+	"\x13OFPIT_CLEAR_ACTIONS\x10\x05\x12\x0f\n" +
+	"\vOFPIT_METER\x10\x06\x12\x18\n" +
+	"\x12OFPIT_EXPERIMENTER\x10\xff\xff\x03*{\n" +
+	"\x14ofp_flow_mod_command\x12\r\n" +
+	"\tOFPFC_ADD\x10\x00\x12\x10\n" +
+	"\fOFPFC_MODIFY\x10\x01\x12\x17\n" +
+	"\x13OFPFC_MODIFY_STRICT\x10\x02\x12\x10\n" +
+	"\fOFPFC_DELETE\x10\x03\x12\x17\n" +
+	"\x13OFPFC_DELETE_STRICT\x10\x04*\xa3\x01\n" +
+	"\x12ofp_flow_mod_flags\x12\x11\n" +
+	"\rOFPFF_INVALID\x10\x00\x12\x17\n" +
+	"\x13OFPFF_SEND_FLOW_REM\x10\x01\x12\x17\n" +
+	"\x13OFPFF_CHECK_OVERLAP\x10\x02\x12\x16\n" +
+	"\x12OFPFF_RESET_COUNTS\x10\x04\x12\x17\n" +
+	"\x13OFPFF_NO_PKT_COUNTS\x10\b\x12\x17\n" +
+	"\x13OFPFF_NO_BYT_COUNTS\x10\x10*S\n" +
+	"\tofp_group\x12\x10\n" +
+	"\fOFPG_INVALID\x10\x00\x12\x10\n" +
+	"\bOFPG_MAX\x10\x80\xfe\xff\xff\a\x12\x10\n" +
+	"\bOFPG_ALL\x10\xfc\xff\xff\xff\a\x12\x10\n" +
+	"\bOFPG_ANY\x10\xff\xff\xff\xff\a*J\n" +
+	"\x15ofp_group_mod_command\x12\r\n" +
+	"\tOFPGC_ADD\x10\x00\x12\x10\n" +
+	"\fOFPGC_MODIFY\x10\x01\x12\x10\n" +
+	"\fOFPGC_DELETE\x10\x02*S\n" +
+	"\x0eofp_group_type\x12\r\n" +
+	"\tOFPGT_ALL\x10\x00\x12\x10\n" +
+	"\fOFPGT_SELECT\x10\x01\x12\x12\n" +
+	"\x0eOFPGT_INDIRECT\x10\x02\x12\f\n" +
+	"\bOFPGT_FF\x10\x03*P\n" +
+	"\x14ofp_packet_in_reason\x12\x11\n" +
+	"\rOFPR_NO_MATCH\x10\x00\x12\x0f\n" +
+	"\vOFPR_ACTION\x10\x01\x12\x14\n" +
+	"\x10OFPR_INVALID_TTL\x10\x02*\x8b\x01\n" +
+	"\x17ofp_flow_removed_reason\x12\x16\n" +
+	"\x12OFPRR_IDLE_TIMEOUT\x10\x00\x12\x16\n" +
+	"\x12OFPRR_HARD_TIMEOUT\x10\x01\x12\x10\n" +
+	"\fOFPRR_DELETE\x10\x02\x12\x16\n" +
+	"\x12OFPRR_GROUP_DELETE\x10\x03\x12\x16\n" +
+	"\x12OFPRR_METER_DELETE\x10\x04*n\n" +
+	"\tofp_meter\x12\r\n" +
+	"\tOFPM_ZERO\x10\x00\x12\x10\n" +
+	"\bOFPM_MAX\x10\x80\x80\xfc\xff\a\x12\x15\n" +
+	"\rOFPM_SLOWPATH\x10\xfd\xff\xff\xff\a\x12\x17\n" +
+	"\x0fOFPM_CONTROLLER\x10\xfe\xff\xff\xff\a\x12\x10\n" +
+	"\bOFPM_ALL\x10\xff\xff\xff\xff\a*m\n" +
+	"\x13ofp_meter_band_type\x12\x12\n" +
+	"\x0eOFPMBT_INVALID\x10\x00\x12\x0f\n" +
+	"\vOFPMBT_DROP\x10\x01\x12\x16\n" +
+	"\x12OFPMBT_DSCP_REMARK\x10\x02\x12\x19\n" +
+	"\x13OFPMBT_EXPERIMENTER\x10\xff\xff\x03*J\n" +
+	"\x15ofp_meter_mod_command\x12\r\n" +
+	"\tOFPMC_ADD\x10\x00\x12\x10\n" +
+	"\fOFPMC_MODIFY\x10\x01\x12\x10\n" +
+	"\fOFPMC_DELETE\x10\x02*g\n" +
+	"\x0fofp_meter_flags\x12\x11\n" +
+	"\rOFPMF_INVALID\x10\x00\x12\x0e\n" +
+	"\n" +
+	"OFPMF_KBPS\x10\x01\x12\x0f\n" +
+	"\vOFPMF_PKTPS\x10\x02\x12\x0f\n" +
+	"\vOFPMF_BURST\x10\x04\x12\x0f\n" +
+	"\vOFPMF_STATS\x10\b*\xa4\x03\n" +
+	"\x0eofp_error_type\x12\x16\n" +
+	"\x12OFPET_HELLO_FAILED\x10\x00\x12\x15\n" +
+	"\x11OFPET_BAD_REQUEST\x10\x01\x12\x14\n" +
+	"\x10OFPET_BAD_ACTION\x10\x02\x12\x19\n" +
+	"\x15OFPET_BAD_INSTRUCTION\x10\x03\x12\x13\n" +
+	"\x0fOFPET_BAD_MATCH\x10\x04\x12\x19\n" +
+	"\x15OFPET_FLOW_MOD_FAILED\x10\x05\x12\x1a\n" +
+	"\x16OFPET_GROUP_MOD_FAILED\x10\x06\x12\x19\n" +
+	"\x15OFPET_PORT_MOD_FAILED\x10\a\x12\x1a\n" +
+	"\x16OFPET_TABLE_MOD_FAILED\x10\b\x12\x19\n" +
+	"\x15OFPET_QUEUE_OP_FAILED\x10\t\x12\x1e\n" +
+	"\x1aOFPET_SWITCH_CONFIG_FAILED\x10\n" +
+	"\x12\x1d\n" +
+	"\x19OFPET_ROLE_REQUEST_FAILED\x10\v\x12\x1a\n" +
+	"\x16OFPET_METER_MOD_FAILED\x10\f\x12\x1f\n" +
+	"\x1bOFPET_TABLE_FEATURES_FAILED\x10\r\x12\x18\n" +
+	"\x12OFPET_EXPERIMENTER\x10\xff\xff\x03*B\n" +
+	"\x15ofp_hello_failed_code\x12\x17\n" +
+	"\x13OFPHFC_INCOMPATIBLE\x10\x00\x12\x10\n" +
+	"\fOFPHFC_EPERM\x10\x01*\xed\x02\n" +
+	"\x14ofp_bad_request_code\x12\x16\n" +
+	"\x12OFPBRC_BAD_VERSION\x10\x00\x12\x13\n" +
+	"\x0fOFPBRC_BAD_TYPE\x10\x01\x12\x18\n" +
+	"\x14OFPBRC_BAD_MULTIPART\x10\x02\x12\x1b\n" +
+	"\x17OFPBRC_BAD_EXPERIMENTER\x10\x03\x12\x17\n" +
+	"\x13OFPBRC_BAD_EXP_TYPE\x10\x04\x12\x10\n" +
+	"\fOFPBRC_EPERM\x10\x05\x12\x12\n" +
+	"\x0eOFPBRC_BAD_LEN\x10\x06\x12\x17\n" +
+	"\x13OFPBRC_BUFFER_EMPTY\x10\a\x12\x19\n" +
+	"\x15OFPBRC_BUFFER_UNKNOWN\x10\b\x12\x17\n" +
+	"\x13OFPBRC_BAD_TABLE_ID\x10\t\x12\x13\n" +
+	"\x0fOFPBRC_IS_SLAVE\x10\n" +
+	"\x12\x13\n" +
+	"\x0fOFPBRC_BAD_PORT\x10\v\x12\x15\n" +
+	"\x11OFPBRC_BAD_PACKET\x10\f\x12$\n" +
+	" OFPBRC_MULTIPART_BUFFER_OVERFLOW\x10\r*\x9c\x03\n" +
+	"\x13ofp_bad_action_code\x12\x13\n" +
+	"\x0fOFPBAC_BAD_TYPE\x10\x00\x12\x12\n" +
+	"\x0eOFPBAC_BAD_LEN\x10\x01\x12\x1b\n" +
+	"\x17OFPBAC_BAD_EXPERIMENTER\x10\x02\x12\x17\n" +
+	"\x13OFPBAC_BAD_EXP_TYPE\x10\x03\x12\x17\n" +
+	"\x13OFPBAC_BAD_OUT_PORT\x10\x04\x12\x17\n" +
+	"\x13OFPBAC_BAD_ARGUMENT\x10\x05\x12\x10\n" +
+	"\fOFPBAC_EPERM\x10\x06\x12\x13\n" +
+	"\x0fOFPBAC_TOO_MANY\x10\a\x12\x14\n" +
+	"\x10OFPBAC_BAD_QUEUE\x10\b\x12\x18\n" +
+	"\x14OFPBAC_BAD_OUT_GROUP\x10\t\x12\x1d\n" +
+	"\x19OFPBAC_MATCH_INCONSISTENT\x10\n" +
+	"\x12\x1c\n" +
+	"\x18OFPBAC_UNSUPPORTED_ORDER\x10\v\x12\x12\n" +
+	"\x0eOFPBAC_BAD_TAG\x10\f\x12\x17\n" +
+	"\x13OFPBAC_BAD_SET_TYPE\x10\r\x12\x16\n" +
+	"\x12OFPBAC_BAD_SET_LEN\x10\x0e\x12\x1b\n" +
+	"\x17OFPBAC_BAD_SET_ARGUMENT\x10\x0f*\xfa\x01\n" +
+	"\x18ofp_bad_instruction_code\x12\x17\n" +
+	"\x13OFPBIC_UNKNOWN_INST\x10\x00\x12\x15\n" +
+	"\x11OFPBIC_UNSUP_INST\x10\x01\x12\x17\n" +
+	"\x13OFPBIC_BAD_TABLE_ID\x10\x02\x12\x19\n" +
+	"\x15OFPBIC_UNSUP_METADATA\x10\x03\x12\x1e\n" +
+	"\x1aOFPBIC_UNSUP_METADATA_MASK\x10\x04\x12\x1b\n" +
+	"\x17OFPBIC_BAD_EXPERIMENTER\x10\x05\x12\x17\n" +
+	"\x13OFPBIC_BAD_EXP_TYPE\x10\x06\x12\x12\n" +
+	"\x0eOFPBIC_BAD_LEN\x10\a\x12\x10\n" +
+	"\fOFPBIC_EPERM\x10\b*\xa5\x02\n" +
+	"\x12ofp_bad_match_code\x12\x13\n" +
+	"\x0fOFPBMC_BAD_TYPE\x10\x00\x12\x12\n" +
+	"\x0eOFPBMC_BAD_LEN\x10\x01\x12\x12\n" +
+	"\x0eOFPBMC_BAD_TAG\x10\x02\x12\x1b\n" +
+	"\x17OFPBMC_BAD_DL_ADDR_MASK\x10\x03\x12\x1b\n" +
+	"\x17OFPBMC_BAD_NW_ADDR_MASK\x10\x04\x12\x18\n" +
+	"\x14OFPBMC_BAD_WILDCARDS\x10\x05\x12\x14\n" +
+	"\x10OFPBMC_BAD_FIELD\x10\x06\x12\x14\n" +
+	"\x10OFPBMC_BAD_VALUE\x10\a\x12\x13\n" +
+	"\x0fOFPBMC_BAD_MASK\x10\b\x12\x15\n" +
+	"\x11OFPBMC_BAD_PREREQ\x10\t\x12\x14\n" +
+	"\x10OFPBMC_DUP_FIELD\x10\n" +
+	"\x12\x10\n" +
+	"\fOFPBMC_EPERM\x10\v*\xd2\x01\n" +
+	"\x18ofp_flow_mod_failed_code\x12\x13\n" +
+	"\x0fOFPFMFC_UNKNOWN\x10\x00\x12\x16\n" +
+	"\x12OFPFMFC_TABLE_FULL\x10\x01\x12\x18\n" +
+	"\x14OFPFMFC_BAD_TABLE_ID\x10\x02\x12\x13\n" +
+	"\x0fOFPFMFC_OVERLAP\x10\x03\x12\x11\n" +
+	"\rOFPFMFC_EPERM\x10\x04\x12\x17\n" +
+	"\x13OFPFMFC_BAD_TIMEOUT\x10\x05\x12\x17\n" +
+	"\x13OFPFMFC_BAD_COMMAND\x10\x06\x12\x15\n" +
+	"\x11OFPFMFC_BAD_FLAGS\x10\a*\xa1\x03\n" +
+	"\x19ofp_group_mod_failed_code\x12\x18\n" +
+	"\x14OFPGMFC_GROUP_EXISTS\x10\x00\x12\x19\n" +
+	"\x15OFPGMFC_INVALID_GROUP\x10\x01\x12\x1e\n" +
+	"\x1aOFPGMFC_WEIGHT_UNSUPPORTED\x10\x02\x12\x19\n" +
+	"\x15OFPGMFC_OUT_OF_GROUPS\x10\x03\x12\x1a\n" +
+	"\x16OFPGMFC_OUT_OF_BUCKETS\x10\x04\x12 \n" +
+	"\x1cOFPGMFC_CHAINING_UNSUPPORTED\x10\x05\x12\x1d\n" +
+	"\x19OFPGMFC_WATCH_UNSUPPORTED\x10\x06\x12\x10\n" +
+	"\fOFPGMFC_LOOP\x10\a\x12\x19\n" +
+	"\x15OFPGMFC_UNKNOWN_GROUP\x10\b\x12\x19\n" +
+	"\x15OFPGMFC_CHAINED_GROUP\x10\t\x12\x14\n" +
+	"\x10OFPGMFC_BAD_TYPE\x10\n" +
+	"\x12\x17\n" +
+	"\x13OFPGMFC_BAD_COMMAND\x10\v\x12\x16\n" +
+	"\x12OFPGMFC_BAD_BUCKET\x10\f\x12\x15\n" +
+	"\x11OFPGMFC_BAD_WATCH\x10\r\x12\x11\n" +
+	"\rOFPGMFC_EPERM\x10\x0e*\x8f\x01\n" +
+	"\x18ofp_port_mod_failed_code\x12\x14\n" +
+	"\x10OFPPMFC_BAD_PORT\x10\x00\x12\x17\n" +
+	"\x13OFPPMFC_BAD_HW_ADDR\x10\x01\x12\x16\n" +
+	"\x12OFPPMFC_BAD_CONFIG\x10\x02\x12\x19\n" +
+	"\x15OFPPMFC_BAD_ADVERTISE\x10\x03\x12\x11\n" +
+	"\rOFPPMFC_EPERM\x10\x04*]\n" +
+	"\x19ofp_table_mod_failed_code\x12\x15\n" +
+	"\x11OFPTMFC_BAD_TABLE\x10\x00\x12\x16\n" +
+	"\x12OFPTMFC_BAD_CONFIG\x10\x01\x12\x11\n" +
+	"\rOFPTMFC_EPERM\x10\x02*Z\n" +
+	"\x18ofp_queue_op_failed_code\x12\x14\n" +
+	"\x10OFPQOFC_BAD_PORT\x10\x00\x12\x15\n" +
+	"\x11OFPQOFC_BAD_QUEUE\x10\x01\x12\x11\n" +
+	"\rOFPQOFC_EPERM\x10\x02*^\n" +
+	"\x1dofp_switch_config_failed_code\x12\x15\n" +
+	"\x11OFPSCFC_BAD_FLAGS\x10\x00\x12\x13\n" +
+	"\x0fOFPSCFC_BAD_LEN\x10\x01\x12\x11\n" +
+	"\rOFPSCFC_EPERM\x10\x02*Z\n" +
+	"\x1cofp_role_request_failed_code\x12\x11\n" +
+	"\rOFPRRFC_STALE\x10\x00\x12\x11\n" +
+	"\rOFPRRFC_UNSUP\x10\x01\x12\x14\n" +
+	"\x10OFPRRFC_BAD_ROLE\x10\x02*\xc5\x02\n" +
+	"\x19ofp_meter_mod_failed_code\x12\x13\n" +
+	"\x0fOFPMMFC_UNKNOWN\x10\x00\x12\x18\n" +
+	"\x14OFPMMFC_METER_EXISTS\x10\x01\x12\x19\n" +
+	"\x15OFPMMFC_INVALID_METER\x10\x02\x12\x19\n" +
+	"\x15OFPMMFC_UNKNOWN_METER\x10\x03\x12\x17\n" +
+	"\x13OFPMMFC_BAD_COMMAND\x10\x04\x12\x15\n" +
+	"\x11OFPMMFC_BAD_FLAGS\x10\x05\x12\x14\n" +
+	"\x10OFPMMFC_BAD_RATE\x10\x06\x12\x15\n" +
+	"\x11OFPMMFC_BAD_BURST\x10\a\x12\x14\n" +
+	"\x10OFPMMFC_BAD_BAND\x10\b\x12\x1b\n" +
+	"\x17OFPMMFC_BAD_BAND_DETAIL\x10\t\x12\x19\n" +
+	"\x15OFPMMFC_OUT_OF_METERS\x10\n" +
+	"\x12\x18\n" +
+	"\x14OFPMMFC_OUT_OF_BANDS\x10\v*\xa9\x01\n" +
+	"\x1eofp_table_features_failed_code\x12\x15\n" +
+	"\x11OFPTFFC_BAD_TABLE\x10\x00\x12\x18\n" +
+	"\x14OFPTFFC_BAD_METADATA\x10\x01\x12\x14\n" +
+	"\x10OFPTFFC_BAD_TYPE\x10\x02\x12\x13\n" +
+	"\x0fOFPTFFC_BAD_LEN\x10\x03\x12\x18\n" +
+	"\x14OFPTFFC_BAD_ARGUMENT\x10\x04\x12\x11\n" +
+	"\rOFPTFFC_EPERM\x10\x05*\xce\x02\n" +
+	"\x12ofp_multipart_type\x12\x0e\n" +
+	"\n" +
+	"OFPMP_DESC\x10\x00\x12\x0e\n" +
+	"\n" +
+	"OFPMP_FLOW\x10\x01\x12\x13\n" +
+	"\x0fOFPMP_AGGREGATE\x10\x02\x12\x0f\n" +
+	"\vOFPMP_TABLE\x10\x03\x12\x14\n" +
+	"\x10OFPMP_PORT_STATS\x10\x04\x12\x0f\n" +
+	"\vOFPMP_QUEUE\x10\x05\x12\x0f\n" +
+	"\vOFPMP_GROUP\x10\x06\x12\x14\n" +
+	"\x10OFPMP_GROUP_DESC\x10\a\x12\x18\n" +
+	"\x14OFPMP_GROUP_FEATURES\x10\b\x12\x0f\n" +
+	"\vOFPMP_METER\x10\t\x12\x16\n" +
+	"\x12OFPMP_METER_CONFIG\x10\n" +
+	"\x12\x18\n" +
+	"\x14OFPMP_METER_FEATURES\x10\v\x12\x18\n" +
+	"\x14OFPMP_TABLE_FEATURES\x10\f\x12\x13\n" +
+	"\x0fOFPMP_PORT_DESC\x10\r\x12\x18\n" +
+	"\x12OFPMP_EXPERIMENTER\x10\xff\xff\x03*J\n" +
+	"\x1bofp_multipart_request_flags\x12\x16\n" +
+	"\x12OFPMPF_REQ_INVALID\x10\x00\x12\x13\n" +
+	"\x0fOFPMPF_REQ_MORE\x10\x01*L\n" +
+	"\x19ofp_multipart_reply_flags\x12\x18\n" +
+	"\x14OFPMPF_REPLY_INVALID\x10\x00\x12\x15\n" +
+	"\x11OFPMPF_REPLY_MORE\x10\x01*\xe4\x03\n" +
+	"\x1bofp_table_feature_prop_type\x12\x18\n" +
+	"\x14OFPTFPT_INSTRUCTIONS\x10\x00\x12\x1d\n" +
+	"\x19OFPTFPT_INSTRUCTIONS_MISS\x10\x01\x12\x17\n" +
+	"\x13OFPTFPT_NEXT_TABLES\x10\x02\x12\x1c\n" +
+	"\x18OFPTFPT_NEXT_TABLES_MISS\x10\x03\x12\x19\n" +
+	"\x15OFPTFPT_WRITE_ACTIONS\x10\x04\x12\x1e\n" +
+	"\x1aOFPTFPT_WRITE_ACTIONS_MISS\x10\x05\x12\x19\n" +
+	"\x15OFPTFPT_APPLY_ACTIONS\x10\x06\x12\x1e\n" +
+	"\x1aOFPTFPT_APPLY_ACTIONS_MISS\x10\a\x12\x11\n" +
+	"\rOFPTFPT_MATCH\x10\b\x12\x15\n" +
+	"\x11OFPTFPT_WILDCARDS\x10\n" +
+	"\x12\x1a\n" +
+	"\x16OFPTFPT_WRITE_SETFIELD\x10\f\x12\x1f\n" +
+	"\x1bOFPTFPT_WRITE_SETFIELD_MISS\x10\r\x12\x1a\n" +
+	"\x16OFPTFPT_APPLY_SETFIELD\x10\x0e\x12\x1f\n" +
+	"\x1bOFPTFPT_APPLY_SETFIELD_MISS\x10\x0f\x12\x1a\n" +
+	"\x14OFPTFPT_EXPERIMENTER\x10\xfe\xff\x03\x12\x1f\n" +
+	"\x19OFPTFPT_EXPERIMENTER_MISS\x10\xff\xff\x03*\x93\x01\n" +
+	"\x16ofp_group_capabilities\x12\x12\n" +
+	"\x0eOFPGFC_INVALID\x10\x00\x12\x18\n" +
+	"\x14OFPGFC_SELECT_WEIGHT\x10\x01\x12\x1a\n" +
+	"\x16OFPGFC_SELECT_LIVENESS\x10\x02\x12\x13\n" +
+	"\x0fOFPGFC_CHAINING\x10\x04\x12\x1a\n" +
+	"\x16OFPGFC_CHAINING_CHECKS\x10\b*k\n" +
+	"\x14ofp_queue_properties\x12\x11\n" +
+	"\rOFPQT_INVALID\x10\x00\x12\x12\n" +
+	"\x0eOFPQT_MIN_RATE\x10\x01\x12\x12\n" +
+	"\x0eOFPQT_MAX_RATE\x10\x02\x12\x18\n" +
+	"\x12OFPQT_EXPERIMENTER\x10\xff\xff\x03*q\n" +
+	"\x13ofp_controller_role\x12\x17\n" +
+	"\x13OFPCR_ROLE_NOCHANGE\x10\x00\x12\x14\n" +
+	"\x10OFPCR_ROLE_EQUAL\x10\x01\x12\x15\n" +
+	"\x11OFPCR_ROLE_MASTER\x10\x02\x12\x14\n" +
+	"\x10OFPCR_ROLE_SLAVE\x10\x03BU\n" +
+	"\x1eorg.opencord.voltha.openflow13Z3github.com/opencord/voltha-protos/v5/go/openflow_13b\x06proto3"
+
+var (
+	file_voltha_protos_openflow_13_proto_rawDescOnce sync.Once
+	file_voltha_protos_openflow_13_proto_rawDescData []byte
+)
+
+func file_voltha_protos_openflow_13_proto_rawDescGZIP() []byte {
+	file_voltha_protos_openflow_13_proto_rawDescOnce.Do(func() {
+		file_voltha_protos_openflow_13_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_voltha_protos_openflow_13_proto_rawDesc), len(file_voltha_protos_openflow_13_proto_rawDesc)))
+	})
+	return file_voltha_protos_openflow_13_proto_rawDescData
+}
+
+var file_voltha_protos_openflow_13_proto_enumTypes = make([]protoimpl.EnumInfo, 53)
+var file_voltha_protos_openflow_13_proto_msgTypes = make([]protoimpl.MessageInfo, 99)
+var file_voltha_protos_openflow_13_proto_goTypes = []any{
+	(OfpPortNo)(0),                          // 0: openflow_13.ofp_port_no
+	(OfpType)(0),                            // 1: openflow_13.ofp_type
+	(OfpHelloElemType)(0),                   // 2: openflow_13.ofp_hello_elem_type
+	(OfpConfigFlags)(0),                     // 3: openflow_13.ofp_config_flags
+	(OfpTableConfig)(0),                     // 4: openflow_13.ofp_table_config
+	(OfpTable)(0),                           // 5: openflow_13.ofp_table
+	(OfpCapabilities)(0),                    // 6: openflow_13.ofp_capabilities
+	(OfpPortConfig)(0),                      // 7: openflow_13.ofp_port_config
+	(OfpPortState)(0),                       // 8: openflow_13.ofp_port_state
+	(OfpPortFeatures)(0),                    // 9: openflow_13.ofp_port_features
+	(OfpPortReason)(0),                      // 10: openflow_13.ofp_port_reason
+	(OfpDeviceConnection)(0),                // 11: openflow_13.ofp_device_connection
+	(OfpMatchType)(0),                       // 12: openflow_13.ofp_match_type
+	(OfpOxmClass)(0),                        // 13: openflow_13.ofp_oxm_class
+	(OxmOfbFieldTypes)(0),                   // 14: openflow_13.oxm_ofb_field_types
+	(OfpVlanId)(0),                          // 15: openflow_13.ofp_vlan_id
+	(OfpIpv6ExthdrFlags)(0),                 // 16: openflow_13.ofp_ipv6exthdr_flags
+	(OfpActionType)(0),                      // 17: openflow_13.ofp_action_type
+	(OfpControllerMaxLen)(0),                // 18: openflow_13.ofp_controller_max_len
+	(OfpInstructionType)(0),                 // 19: openflow_13.ofp_instruction_type
+	(OfpFlowModCommand)(0),                  // 20: openflow_13.ofp_flow_mod_command
+	(OfpFlowModFlags)(0),                    // 21: openflow_13.ofp_flow_mod_flags
+	(OfpGroup)(0),                           // 22: openflow_13.ofp_group
+	(OfpGroupModCommand)(0),                 // 23: openflow_13.ofp_group_mod_command
+	(OfpGroupType)(0),                       // 24: openflow_13.ofp_group_type
+	(OfpPacketInReason)(0),                  // 25: openflow_13.ofp_packet_in_reason
+	(OfpFlowRemovedReason)(0),               // 26: openflow_13.ofp_flow_removed_reason
+	(OfpMeter)(0),                           // 27: openflow_13.ofp_meter
+	(OfpMeterBandType)(0),                   // 28: openflow_13.ofp_meter_band_type
+	(OfpMeterModCommand)(0),                 // 29: openflow_13.ofp_meter_mod_command
+	(OfpMeterFlags)(0),                      // 30: openflow_13.ofp_meter_flags
+	(OfpErrorType)(0),                       // 31: openflow_13.ofp_error_type
+	(OfpHelloFailedCode)(0),                 // 32: openflow_13.ofp_hello_failed_code
+	(OfpBadRequestCode)(0),                  // 33: openflow_13.ofp_bad_request_code
+	(OfpBadActionCode)(0),                   // 34: openflow_13.ofp_bad_action_code
+	(OfpBadInstructionCode)(0),              // 35: openflow_13.ofp_bad_instruction_code
+	(OfpBadMatchCode)(0),                    // 36: openflow_13.ofp_bad_match_code
+	(OfpFlowModFailedCode)(0),               // 37: openflow_13.ofp_flow_mod_failed_code
+	(OfpGroupModFailedCode)(0),              // 38: openflow_13.ofp_group_mod_failed_code
+	(OfpPortModFailedCode)(0),               // 39: openflow_13.ofp_port_mod_failed_code
+	(OfpTableModFailedCode)(0),              // 40: openflow_13.ofp_table_mod_failed_code
+	(OfpQueueOpFailedCode)(0),               // 41: openflow_13.ofp_queue_op_failed_code
+	(OfpSwitchConfigFailedCode)(0),          // 42: openflow_13.ofp_switch_config_failed_code
+	(OfpRoleRequestFailedCode)(0),           // 43: openflow_13.ofp_role_request_failed_code
+	(OfpMeterModFailedCode)(0),              // 44: openflow_13.ofp_meter_mod_failed_code
+	(OfpTableFeaturesFailedCode)(0),         // 45: openflow_13.ofp_table_features_failed_code
+	(OfpMultipartType)(0),                   // 46: openflow_13.ofp_multipart_type
+	(OfpMultipartRequestFlags)(0),           // 47: openflow_13.ofp_multipart_request_flags
+	(OfpMultipartReplyFlags)(0),             // 48: openflow_13.ofp_multipart_reply_flags
+	(OfpTableFeaturePropType)(0),            // 49: openflow_13.ofp_table_feature_prop_type
+	(OfpGroupCapabilities)(0),               // 50: openflow_13.ofp_group_capabilities
+	(OfpQueueProperties)(0),                 // 51: openflow_13.ofp_queue_properties
+	(OfpControllerRole)(0),                  // 52: openflow_13.ofp_controller_role
+	(*OfpHeader)(nil),                       // 53: openflow_13.ofp_header
+	(*OfpHelloElemHeader)(nil),              // 54: openflow_13.ofp_hello_elem_header
+	(*OfpHelloElemVersionbitmap)(nil),       // 55: openflow_13.ofp_hello_elem_versionbitmap
+	(*OfpHello)(nil),                        // 56: openflow_13.ofp_hello
+	(*OfpSwitchConfig)(nil),                 // 57: openflow_13.ofp_switch_config
+	(*OfpTableMod)(nil),                     // 58: openflow_13.ofp_table_mod
+	(*OfpPort)(nil),                         // 59: openflow_13.ofp_port
+	(*OfpSwitchFeatures)(nil),               // 60: openflow_13.ofp_switch_features
+	(*OfpPortStatus)(nil),                   // 61: openflow_13.ofp_port_status
+	(*OfpDeviceStatus)(nil),                 // 62: openflow_13.ofp_device_status
+	(*OfpPortMod)(nil),                      // 63: openflow_13.ofp_port_mod
+	(*OfpMatch)(nil),                        // 64: openflow_13.ofp_match
+	(*OfpOxmField)(nil),                     // 65: openflow_13.ofp_oxm_field
+	(*OfpOxmOfbField)(nil),                  // 66: openflow_13.ofp_oxm_ofb_field
+	(*OfpOxmExperimenterField)(nil),         // 67: openflow_13.ofp_oxm_experimenter_field
+	(*OfpAction)(nil),                       // 68: openflow_13.ofp_action
+	(*OfpActionOutput)(nil),                 // 69: openflow_13.ofp_action_output
+	(*OfpActionMplsTtl)(nil),                // 70: openflow_13.ofp_action_mpls_ttl
+	(*OfpActionPush)(nil),                   // 71: openflow_13.ofp_action_push
+	(*OfpActionPopMpls)(nil),                // 72: openflow_13.ofp_action_pop_mpls
+	(*OfpActionGroup)(nil),                  // 73: openflow_13.ofp_action_group
+	(*OfpActionNwTtl)(nil),                  // 74: openflow_13.ofp_action_nw_ttl
+	(*OfpActionSetField)(nil),               // 75: openflow_13.ofp_action_set_field
+	(*OfpActionExperimenter)(nil),           // 76: openflow_13.ofp_action_experimenter
+	(*OfpInstruction)(nil),                  // 77: openflow_13.ofp_instruction
+	(*OfpInstructionGotoTable)(nil),         // 78: openflow_13.ofp_instruction_goto_table
+	(*OfpInstructionWriteMetadata)(nil),     // 79: openflow_13.ofp_instruction_write_metadata
+	(*OfpInstructionActions)(nil),           // 80: openflow_13.ofp_instruction_actions
+	(*OfpInstructionMeter)(nil),             // 81: openflow_13.ofp_instruction_meter
+	(*OfpInstructionExperimenter)(nil),      // 82: openflow_13.ofp_instruction_experimenter
+	(*OfpFlowMod)(nil),                      // 83: openflow_13.ofp_flow_mod
+	(*OfpBucket)(nil),                       // 84: openflow_13.ofp_bucket
+	(*OfpGroupMod)(nil),                     // 85: openflow_13.ofp_group_mod
+	(*OfpPacketOut)(nil),                    // 86: openflow_13.ofp_packet_out
+	(*OfpPacketIn)(nil),                     // 87: openflow_13.ofp_packet_in
+	(*OfpFlowRemoved)(nil),                  // 88: openflow_13.ofp_flow_removed
+	(*OfpMeterBandHeader)(nil),              // 89: openflow_13.ofp_meter_band_header
+	(*OfpMeterBandDrop)(nil),                // 90: openflow_13.ofp_meter_band_drop
+	(*OfpMeterBandDscpRemark)(nil),          // 91: openflow_13.ofp_meter_band_dscp_remark
+	(*OfpMeterBandExperimenter)(nil),        // 92: openflow_13.ofp_meter_band_experimenter
+	(*OfpMeterMod)(nil),                     // 93: openflow_13.ofp_meter_mod
+	(*OfpErrorMsg)(nil),                     // 94: openflow_13.ofp_error_msg
+	(*OfpErrorExperimenterMsg)(nil),         // 95: openflow_13.ofp_error_experimenter_msg
+	(*OfpMultipartRequest)(nil),             // 96: openflow_13.ofp_multipart_request
+	(*OfpMultipartReply)(nil),               // 97: openflow_13.ofp_multipart_reply
+	(*OfpDesc)(nil),                         // 98: openflow_13.ofp_desc
+	(*OfpFlowStatsRequest)(nil),             // 99: openflow_13.ofp_flow_stats_request
+	(*OfpFlowStats)(nil),                    // 100: openflow_13.ofp_flow_stats
+	(*OfpAggregateStatsRequest)(nil),        // 101: openflow_13.ofp_aggregate_stats_request
+	(*OfpAggregateStatsReply)(nil),          // 102: openflow_13.ofp_aggregate_stats_reply
+	(*OfpTableFeatureProperty)(nil),         // 103: openflow_13.ofp_table_feature_property
+	(*OfpTableFeaturePropInstructions)(nil), // 104: openflow_13.ofp_table_feature_prop_instructions
+	(*OfpTableFeaturePropNextTables)(nil),   // 105: openflow_13.ofp_table_feature_prop_next_tables
+	(*OfpTableFeaturePropActions)(nil),      // 106: openflow_13.ofp_table_feature_prop_actions
+	(*OfpTableFeaturePropOxm)(nil),          // 107: openflow_13.ofp_table_feature_prop_oxm
+	(*OfpTableFeaturePropExperimenter)(nil), // 108: openflow_13.ofp_table_feature_prop_experimenter
+	(*OfpTableFeatures)(nil),                // 109: openflow_13.ofp_table_features
+	(*OfpTableStats)(nil),                   // 110: openflow_13.ofp_table_stats
+	(*OfpPortStatsRequest)(nil),             // 111: openflow_13.ofp_port_stats_request
+	(*OfpPortStats)(nil),                    // 112: openflow_13.ofp_port_stats
+	(*OfpGroupStatsRequest)(nil),            // 113: openflow_13.ofp_group_stats_request
+	(*OfpBucketCounter)(nil),                // 114: openflow_13.ofp_bucket_counter
+	(*OfpGroupStats)(nil),                   // 115: openflow_13.ofp_group_stats
+	(*OfpGroupDesc)(nil),                    // 116: openflow_13.ofp_group_desc
+	(*OfpGroupEntry)(nil),                   // 117: openflow_13.ofp_group_entry
+	(*OfpGroupFeatures)(nil),                // 118: openflow_13.ofp_group_features
+	(*OfpMeterMultipartRequest)(nil),        // 119: openflow_13.ofp_meter_multipart_request
+	(*OfpMeterBandStats)(nil),               // 120: openflow_13.ofp_meter_band_stats
+	(*OfpMeterStats)(nil),                   // 121: openflow_13.ofp_meter_stats
+	(*OfpMeterConfig)(nil),                  // 122: openflow_13.ofp_meter_config
+	(*OfpMeterFeatures)(nil),                // 123: openflow_13.ofp_meter_features
+	(*OfpMeterEntry)(nil),                   // 124: openflow_13.ofp_meter_entry
+	(*OfpExperimenterMultipartHeader)(nil),  // 125: openflow_13.ofp_experimenter_multipart_header
+	(*OfpExperimenterHeader)(nil),           // 126: openflow_13.ofp_experimenter_header
+	(*OfpQueuePropHeader)(nil),              // 127: openflow_13.ofp_queue_prop_header
+	(*OfpQueuePropMinRate)(nil),             // 128: openflow_13.ofp_queue_prop_min_rate
+	(*OfpQueuePropMaxRate)(nil),             // 129: openflow_13.ofp_queue_prop_max_rate
+	(*OfpQueuePropExperimenter)(nil),        // 130: openflow_13.ofp_queue_prop_experimenter
+	(*OfpPacketQueue)(nil),                  // 131: openflow_13.ofp_packet_queue
+	(*OfpQueueGetConfigRequest)(nil),        // 132: openflow_13.ofp_queue_get_config_request
+	(*OfpQueueGetConfigReply)(nil),          // 133: openflow_13.ofp_queue_get_config_reply
+	(*OfpActionSetQueue)(nil),               // 134: openflow_13.ofp_action_set_queue
+	(*OfpQueueStatsRequest)(nil),            // 135: openflow_13.ofp_queue_stats_request
+	(*OfpQueueStats)(nil),                   // 136: openflow_13.ofp_queue_stats
+	(*OfpRoleRequest)(nil),                  // 137: openflow_13.ofp_role_request
+	(*OfpAsyncConfig)(nil),                  // 138: openflow_13.ofp_async_config
+	(*MeterModUpdate)(nil),                  // 139: openflow_13.MeterModUpdate
+	(*MeterStatsReply)(nil),                 // 140: openflow_13.MeterStatsReply
+	(*FlowTableUpdate)(nil),                 // 141: openflow_13.FlowTableUpdate
+	(*FlowGroupTableUpdate)(nil),            // 142: openflow_13.FlowGroupTableUpdate
+	(*Flows)(nil),                           // 143: openflow_13.Flows
+	(*Meters)(nil),                          // 144: openflow_13.Meters
+	(*FlowGroups)(nil),                      // 145: openflow_13.FlowGroups
+	(*FlowChanges)(nil),                     // 146: openflow_13.FlowChanges
+	(*FlowGroupChanges)(nil),                // 147: openflow_13.FlowGroupChanges
+	(*PacketIn)(nil),                        // 148: openflow_13.PacketIn
+	(*PacketOut)(nil),                       // 149: openflow_13.PacketOut
+	(*ChangeEvent)(nil),                     // 150: openflow_13.ChangeEvent
+	(*FlowMetadata)(nil),                    // 151: openflow_13.FlowMetadata
+}
+var file_voltha_protos_openflow_13_proto_depIdxs = []int32{
+	1,   // 0: openflow_13.ofp_header.type:type_name -> openflow_13.ofp_type
+	2,   // 1: openflow_13.ofp_hello_elem_header.type:type_name -> openflow_13.ofp_hello_elem_type
+	55,  // 2: openflow_13.ofp_hello_elem_header.versionbitmap:type_name -> openflow_13.ofp_hello_elem_versionbitmap
+	54,  // 3: openflow_13.ofp_hello.elements:type_name -> openflow_13.ofp_hello_elem_header
+	10,  // 4: openflow_13.ofp_port_status.reason:type_name -> openflow_13.ofp_port_reason
+	59,  // 5: openflow_13.ofp_port_status.desc:type_name -> openflow_13.ofp_port
+	11,  // 6: openflow_13.ofp_device_status.status:type_name -> openflow_13.ofp_device_connection
+	12,  // 7: openflow_13.ofp_match.type:type_name -> openflow_13.ofp_match_type
+	65,  // 8: openflow_13.ofp_match.oxm_fields:type_name -> openflow_13.ofp_oxm_field
+	13,  // 9: openflow_13.ofp_oxm_field.oxm_class:type_name -> openflow_13.ofp_oxm_class
+	66,  // 10: openflow_13.ofp_oxm_field.ofb_field:type_name -> openflow_13.ofp_oxm_ofb_field
+	67,  // 11: openflow_13.ofp_oxm_field.experimenter_field:type_name -> openflow_13.ofp_oxm_experimenter_field
+	14,  // 12: openflow_13.ofp_oxm_ofb_field.type:type_name -> openflow_13.oxm_ofb_field_types
+	17,  // 13: openflow_13.ofp_action.type:type_name -> openflow_13.ofp_action_type
+	69,  // 14: openflow_13.ofp_action.output:type_name -> openflow_13.ofp_action_output
+	70,  // 15: openflow_13.ofp_action.mpls_ttl:type_name -> openflow_13.ofp_action_mpls_ttl
+	71,  // 16: openflow_13.ofp_action.push:type_name -> openflow_13.ofp_action_push
+	72,  // 17: openflow_13.ofp_action.pop_mpls:type_name -> openflow_13.ofp_action_pop_mpls
+	73,  // 18: openflow_13.ofp_action.group:type_name -> openflow_13.ofp_action_group
+	74,  // 19: openflow_13.ofp_action.nw_ttl:type_name -> openflow_13.ofp_action_nw_ttl
+	75,  // 20: openflow_13.ofp_action.set_field:type_name -> openflow_13.ofp_action_set_field
+	76,  // 21: openflow_13.ofp_action.experimenter:type_name -> openflow_13.ofp_action_experimenter
+	65,  // 22: openflow_13.ofp_action_set_field.field:type_name -> openflow_13.ofp_oxm_field
+	78,  // 23: openflow_13.ofp_instruction.goto_table:type_name -> openflow_13.ofp_instruction_goto_table
+	79,  // 24: openflow_13.ofp_instruction.write_metadata:type_name -> openflow_13.ofp_instruction_write_metadata
+	80,  // 25: openflow_13.ofp_instruction.actions:type_name -> openflow_13.ofp_instruction_actions
+	81,  // 26: openflow_13.ofp_instruction.meter:type_name -> openflow_13.ofp_instruction_meter
+	82,  // 27: openflow_13.ofp_instruction.experimenter:type_name -> openflow_13.ofp_instruction_experimenter
+	68,  // 28: openflow_13.ofp_instruction_actions.actions:type_name -> openflow_13.ofp_action
+	20,  // 29: openflow_13.ofp_flow_mod.command:type_name -> openflow_13.ofp_flow_mod_command
+	64,  // 30: openflow_13.ofp_flow_mod.match:type_name -> openflow_13.ofp_match
+	77,  // 31: openflow_13.ofp_flow_mod.instructions:type_name -> openflow_13.ofp_instruction
+	68,  // 32: openflow_13.ofp_bucket.actions:type_name -> openflow_13.ofp_action
+	23,  // 33: openflow_13.ofp_group_mod.command:type_name -> openflow_13.ofp_group_mod_command
+	24,  // 34: openflow_13.ofp_group_mod.type:type_name -> openflow_13.ofp_group_type
+	84,  // 35: openflow_13.ofp_group_mod.buckets:type_name -> openflow_13.ofp_bucket
+	68,  // 36: openflow_13.ofp_packet_out.actions:type_name -> openflow_13.ofp_action
+	25,  // 37: openflow_13.ofp_packet_in.reason:type_name -> openflow_13.ofp_packet_in_reason
+	64,  // 38: openflow_13.ofp_packet_in.match:type_name -> openflow_13.ofp_match
+	26,  // 39: openflow_13.ofp_flow_removed.reason:type_name -> openflow_13.ofp_flow_removed_reason
+	64,  // 40: openflow_13.ofp_flow_removed.match:type_name -> openflow_13.ofp_match
+	28,  // 41: openflow_13.ofp_meter_band_header.type:type_name -> openflow_13.ofp_meter_band_type
+	90,  // 42: openflow_13.ofp_meter_band_header.drop:type_name -> openflow_13.ofp_meter_band_drop
+	91,  // 43: openflow_13.ofp_meter_band_header.dscp_remark:type_name -> openflow_13.ofp_meter_band_dscp_remark
+	92,  // 44: openflow_13.ofp_meter_band_header.experimenter:type_name -> openflow_13.ofp_meter_band_experimenter
+	29,  // 45: openflow_13.ofp_meter_mod.command:type_name -> openflow_13.ofp_meter_mod_command
+	89,  // 46: openflow_13.ofp_meter_mod.bands:type_name -> openflow_13.ofp_meter_band_header
+	53,  // 47: openflow_13.ofp_error_msg.header:type_name -> openflow_13.ofp_header
+	46,  // 48: openflow_13.ofp_multipart_request.type:type_name -> openflow_13.ofp_multipart_type
+	46,  // 49: openflow_13.ofp_multipart_reply.type:type_name -> openflow_13.ofp_multipart_type
+	64,  // 50: openflow_13.ofp_flow_stats_request.match:type_name -> openflow_13.ofp_match
+	64,  // 51: openflow_13.ofp_flow_stats.match:type_name -> openflow_13.ofp_match
+	77,  // 52: openflow_13.ofp_flow_stats.instructions:type_name -> openflow_13.ofp_instruction
+	64,  // 53: openflow_13.ofp_aggregate_stats_request.match:type_name -> openflow_13.ofp_match
+	49,  // 54: openflow_13.ofp_table_feature_property.type:type_name -> openflow_13.ofp_table_feature_prop_type
+	104, // 55: openflow_13.ofp_table_feature_property.instructions:type_name -> openflow_13.ofp_table_feature_prop_instructions
+	105, // 56: openflow_13.ofp_table_feature_property.next_tables:type_name -> openflow_13.ofp_table_feature_prop_next_tables
+	106, // 57: openflow_13.ofp_table_feature_property.actions:type_name -> openflow_13.ofp_table_feature_prop_actions
+	107, // 58: openflow_13.ofp_table_feature_property.oxm:type_name -> openflow_13.ofp_table_feature_prop_oxm
+	108, // 59: openflow_13.ofp_table_feature_property.experimenter:type_name -> openflow_13.ofp_table_feature_prop_experimenter
+	77,  // 60: openflow_13.ofp_table_feature_prop_instructions.instructions:type_name -> openflow_13.ofp_instruction
+	68,  // 61: openflow_13.ofp_table_feature_prop_actions.actions:type_name -> openflow_13.ofp_action
+	103, // 62: openflow_13.ofp_table_features.properties:type_name -> openflow_13.ofp_table_feature_property
+	114, // 63: openflow_13.ofp_group_stats.bucket_stats:type_name -> openflow_13.ofp_bucket_counter
+	24,  // 64: openflow_13.ofp_group_desc.type:type_name -> openflow_13.ofp_group_type
+	84,  // 65: openflow_13.ofp_group_desc.buckets:type_name -> openflow_13.ofp_bucket
+	116, // 66: openflow_13.ofp_group_entry.desc:type_name -> openflow_13.ofp_group_desc
+	115, // 67: openflow_13.ofp_group_entry.stats:type_name -> openflow_13.ofp_group_stats
+	120, // 68: openflow_13.ofp_meter_stats.band_stats:type_name -> openflow_13.ofp_meter_band_stats
+	89,  // 69: openflow_13.ofp_meter_config.bands:type_name -> openflow_13.ofp_meter_band_header
+	122, // 70: openflow_13.ofp_meter_entry.config:type_name -> openflow_13.ofp_meter_config
+	121, // 71: openflow_13.ofp_meter_entry.stats:type_name -> openflow_13.ofp_meter_stats
+	127, // 72: openflow_13.ofp_queue_prop_min_rate.prop_header:type_name -> openflow_13.ofp_queue_prop_header
+	127, // 73: openflow_13.ofp_queue_prop_max_rate.prop_header:type_name -> openflow_13.ofp_queue_prop_header
+	127, // 74: openflow_13.ofp_queue_prop_experimenter.prop_header:type_name -> openflow_13.ofp_queue_prop_header
+	127, // 75: openflow_13.ofp_packet_queue.properties:type_name -> openflow_13.ofp_queue_prop_header
+	131, // 76: openflow_13.ofp_queue_get_config_reply.queues:type_name -> openflow_13.ofp_packet_queue
+	52,  // 77: openflow_13.ofp_role_request.role:type_name -> openflow_13.ofp_controller_role
+	93,  // 78: openflow_13.MeterModUpdate.meter_mod:type_name -> openflow_13.ofp_meter_mod
+	121, // 79: openflow_13.MeterStatsReply.meter_stats:type_name -> openflow_13.ofp_meter_stats
+	83,  // 80: openflow_13.FlowTableUpdate.flow_mod:type_name -> openflow_13.ofp_flow_mod
+	85,  // 81: openflow_13.FlowGroupTableUpdate.group_mod:type_name -> openflow_13.ofp_group_mod
+	100, // 82: openflow_13.Flows.items:type_name -> openflow_13.ofp_flow_stats
+	124, // 83: openflow_13.Meters.items:type_name -> openflow_13.ofp_meter_entry
+	117, // 84: openflow_13.FlowGroups.items:type_name -> openflow_13.ofp_group_entry
+	143, // 85: openflow_13.FlowChanges.to_add:type_name -> openflow_13.Flows
+	143, // 86: openflow_13.FlowChanges.to_remove:type_name -> openflow_13.Flows
+	145, // 87: openflow_13.FlowGroupChanges.to_add:type_name -> openflow_13.FlowGroups
+	145, // 88: openflow_13.FlowGroupChanges.to_remove:type_name -> openflow_13.FlowGroups
+	145, // 89: openflow_13.FlowGroupChanges.to_update:type_name -> openflow_13.FlowGroups
+	87,  // 90: openflow_13.PacketIn.packet_in:type_name -> openflow_13.ofp_packet_in
+	86,  // 91: openflow_13.PacketOut.packet_out:type_name -> openflow_13.ofp_packet_out
+	61,  // 92: openflow_13.ChangeEvent.port_status:type_name -> openflow_13.ofp_port_status
+	94,  // 93: openflow_13.ChangeEvent.error:type_name -> openflow_13.ofp_error_msg
+	62,  // 94: openflow_13.ChangeEvent.device_status:type_name -> openflow_13.ofp_device_status
+	122, // 95: openflow_13.FlowMetadata.meters:type_name -> openflow_13.ofp_meter_config
+	96,  // [96:96] is the sub-list for method output_type
+	96,  // [96:96] is the sub-list for method input_type
+	96,  // [96:96] is the sub-list for extension type_name
+	96,  // [96:96] is the sub-list for extension extendee
+	0,   // [0:96] is the sub-list for field type_name
+}
+
+func init() { file_voltha_protos_openflow_13_proto_init() }
+func file_voltha_protos_openflow_13_proto_init() {
+	if File_voltha_protos_openflow_13_proto != nil {
+		return
+	}
+	file_voltha_protos_openflow_13_proto_msgTypes[1].OneofWrappers = []any{
+		(*OfpHelloElemHeader_Versionbitmap)(nil),
+	}
+	file_voltha_protos_openflow_13_proto_msgTypes[12].OneofWrappers = []any{
+		(*OfpOxmField_OfbField)(nil),
+		(*OfpOxmField_ExperimenterField)(nil),
+	}
+	file_voltha_protos_openflow_13_proto_msgTypes[13].OneofWrappers = []any{
 		(*OfpOxmOfbField_Port)(nil),
 		(*OfpOxmOfbField_PhysicalPort)(nil),
 		(*OfpOxmOfbField_TableMetadata)(nil),
@@ -4062,228 +12430,7 @@
 		(*OfpOxmOfbField_TunnelIdMask)(nil),
 		(*OfpOxmOfbField_Ipv6ExthdrMask)(nil),
 	}
-}
-
-// Header for OXM experimenter match fields.
-// The experimenter class should not use OXM_HEADER() macros for defining
-// fields due to this extra header.
-type OfpOxmExperimenterField struct {
-	OxmHeader            uint32   `protobuf:"varint,1,opt,name=oxm_header,json=oxmHeader,proto3" json:"oxm_header,omitempty"`
-	Experimenter         uint32   `protobuf:"varint,2,opt,name=experimenter,proto3" json:"experimenter,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OfpOxmExperimenterField) Reset()         { *m = OfpOxmExperimenterField{} }
-func (m *OfpOxmExperimenterField) String() string { return proto.CompactTextString(m) }
-func (*OfpOxmExperimenterField) ProtoMessage()    {}
-func (*OfpOxmExperimenterField) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{14}
-}
-
-func (m *OfpOxmExperimenterField) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpOxmExperimenterField.Unmarshal(m, b)
-}
-func (m *OfpOxmExperimenterField) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpOxmExperimenterField.Marshal(b, m, deterministic)
-}
-func (m *OfpOxmExperimenterField) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpOxmExperimenterField.Merge(m, src)
-}
-func (m *OfpOxmExperimenterField) XXX_Size() int {
-	return xxx_messageInfo_OfpOxmExperimenterField.Size(m)
-}
-func (m *OfpOxmExperimenterField) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpOxmExperimenterField.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpOxmExperimenterField proto.InternalMessageInfo
-
-func (m *OfpOxmExperimenterField) GetOxmHeader() uint32 {
-	if m != nil {
-		return m.OxmHeader
-	}
-	return 0
-}
-
-func (m *OfpOxmExperimenterField) GetExperimenter() uint32 {
-	if m != nil {
-		return m.Experimenter
-	}
-	return 0
-}
-
-// Action header that is common to all actions.  The length includes the
-// header and any padding used to make the action 64-bit aligned.
-// NB: The length of an action *must* always be a multiple of eight.
-type OfpAction struct {
-	Type OfpActionType `protobuf:"varint,1,opt,name=type,proto3,enum=openflow_13.OfpActionType" json:"type,omitempty"`
-	// Types that are valid to be assigned to Action:
-	//	*OfpAction_Output
-	//	*OfpAction_MplsTtl
-	//	*OfpAction_Push
-	//	*OfpAction_PopMpls
-	//	*OfpAction_Group
-	//	*OfpAction_NwTtl
-	//	*OfpAction_SetField
-	//	*OfpAction_Experimenter
-	Action               isOfpAction_Action `protobuf_oneof:"action"`
-	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
-	XXX_unrecognized     []byte             `json:"-"`
-	XXX_sizecache        int32              `json:"-"`
-}
-
-func (m *OfpAction) Reset()         { *m = OfpAction{} }
-func (m *OfpAction) String() string { return proto.CompactTextString(m) }
-func (*OfpAction) ProtoMessage()    {}
-func (*OfpAction) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{15}
-}
-
-func (m *OfpAction) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpAction.Unmarshal(m, b)
-}
-func (m *OfpAction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpAction.Marshal(b, m, deterministic)
-}
-func (m *OfpAction) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpAction.Merge(m, src)
-}
-func (m *OfpAction) XXX_Size() int {
-	return xxx_messageInfo_OfpAction.Size(m)
-}
-func (m *OfpAction) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpAction.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpAction proto.InternalMessageInfo
-
-func (m *OfpAction) GetType() OfpActionType {
-	if m != nil {
-		return m.Type
-	}
-	return OfpActionType_OFPAT_OUTPUT
-}
-
-type isOfpAction_Action interface {
-	isOfpAction_Action()
-}
-
-type OfpAction_Output struct {
-	Output *OfpActionOutput `protobuf:"bytes,2,opt,name=output,proto3,oneof"`
-}
-
-type OfpAction_MplsTtl struct {
-	MplsTtl *OfpActionMplsTtl `protobuf:"bytes,3,opt,name=mpls_ttl,json=mplsTtl,proto3,oneof"`
-}
-
-type OfpAction_Push struct {
-	Push *OfpActionPush `protobuf:"bytes,4,opt,name=push,proto3,oneof"`
-}
-
-type OfpAction_PopMpls struct {
-	PopMpls *OfpActionPopMpls `protobuf:"bytes,5,opt,name=pop_mpls,json=popMpls,proto3,oneof"`
-}
-
-type OfpAction_Group struct {
-	Group *OfpActionGroup `protobuf:"bytes,6,opt,name=group,proto3,oneof"`
-}
-
-type OfpAction_NwTtl struct {
-	NwTtl *OfpActionNwTtl `protobuf:"bytes,7,opt,name=nw_ttl,json=nwTtl,proto3,oneof"`
-}
-
-type OfpAction_SetField struct {
-	SetField *OfpActionSetField `protobuf:"bytes,8,opt,name=set_field,json=setField,proto3,oneof"`
-}
-
-type OfpAction_Experimenter struct {
-	Experimenter *OfpActionExperimenter `protobuf:"bytes,9,opt,name=experimenter,proto3,oneof"`
-}
-
-func (*OfpAction_Output) isOfpAction_Action() {}
-
-func (*OfpAction_MplsTtl) isOfpAction_Action() {}
-
-func (*OfpAction_Push) isOfpAction_Action() {}
-
-func (*OfpAction_PopMpls) isOfpAction_Action() {}
-
-func (*OfpAction_Group) isOfpAction_Action() {}
-
-func (*OfpAction_NwTtl) isOfpAction_Action() {}
-
-func (*OfpAction_SetField) isOfpAction_Action() {}
-
-func (*OfpAction_Experimenter) isOfpAction_Action() {}
-
-func (m *OfpAction) GetAction() isOfpAction_Action {
-	if m != nil {
-		return m.Action
-	}
-	return nil
-}
-
-func (m *OfpAction) GetOutput() *OfpActionOutput {
-	if x, ok := m.GetAction().(*OfpAction_Output); ok {
-		return x.Output
-	}
-	return nil
-}
-
-func (m *OfpAction) GetMplsTtl() *OfpActionMplsTtl {
-	if x, ok := m.GetAction().(*OfpAction_MplsTtl); ok {
-		return x.MplsTtl
-	}
-	return nil
-}
-
-func (m *OfpAction) GetPush() *OfpActionPush {
-	if x, ok := m.GetAction().(*OfpAction_Push); ok {
-		return x.Push
-	}
-	return nil
-}
-
-func (m *OfpAction) GetPopMpls() *OfpActionPopMpls {
-	if x, ok := m.GetAction().(*OfpAction_PopMpls); ok {
-		return x.PopMpls
-	}
-	return nil
-}
-
-func (m *OfpAction) GetGroup() *OfpActionGroup {
-	if x, ok := m.GetAction().(*OfpAction_Group); ok {
-		return x.Group
-	}
-	return nil
-}
-
-func (m *OfpAction) GetNwTtl() *OfpActionNwTtl {
-	if x, ok := m.GetAction().(*OfpAction_NwTtl); ok {
-		return x.NwTtl
-	}
-	return nil
-}
-
-func (m *OfpAction) GetSetField() *OfpActionSetField {
-	if x, ok := m.GetAction().(*OfpAction_SetField); ok {
-		return x.SetField
-	}
-	return nil
-}
-
-func (m *OfpAction) GetExperimenter() *OfpActionExperimenter {
-	if x, ok := m.GetAction().(*OfpAction_Experimenter); ok {
-		return x.Experimenter
-	}
-	return nil
-}
-
-// XXX_OneofWrappers is for the internal use of the proto package.
-func (*OfpAction) XXX_OneofWrappers() []interface{} {
-	return []interface{}{
+	file_voltha_protos_openflow_13_proto_msgTypes[15].OneofWrappers = []any{
 		(*OfpAction_Output)(nil),
 		(*OfpAction_MplsTtl)(nil),
 		(*OfpAction_Push)(nil),
@@ -4293,5703 +12440,46 @@
 		(*OfpAction_SetField)(nil),
 		(*OfpAction_Experimenter)(nil),
 	}
-}
-
-// Action structure for OFPAT_OUTPUT, which sends packets out 'port'.
-// When the 'port' is the OFPP_CONTROLLER, 'max_len' indicates the max
-// number of bytes to send.  A 'max_len' of zero means no bytes of the
-// packet should be sent. A 'max_len' of OFPCML_NO_BUFFER means that
-// the packet is not buffered and the complete packet is to be sent to
-// the controller.
-type OfpActionOutput struct {
-	Port                 uint32   `protobuf:"varint,1,opt,name=port,proto3" json:"port,omitempty"`
-	MaxLen               uint32   `protobuf:"varint,2,opt,name=max_len,json=maxLen,proto3" json:"max_len,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OfpActionOutput) Reset()         { *m = OfpActionOutput{} }
-func (m *OfpActionOutput) String() string { return proto.CompactTextString(m) }
-func (*OfpActionOutput) ProtoMessage()    {}
-func (*OfpActionOutput) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{16}
-}
-
-func (m *OfpActionOutput) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpActionOutput.Unmarshal(m, b)
-}
-func (m *OfpActionOutput) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpActionOutput.Marshal(b, m, deterministic)
-}
-func (m *OfpActionOutput) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpActionOutput.Merge(m, src)
-}
-func (m *OfpActionOutput) XXX_Size() int {
-	return xxx_messageInfo_OfpActionOutput.Size(m)
-}
-func (m *OfpActionOutput) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpActionOutput.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpActionOutput proto.InternalMessageInfo
-
-func (m *OfpActionOutput) GetPort() uint32 {
-	if m != nil {
-		return m.Port
-	}
-	return 0
-}
-
-func (m *OfpActionOutput) GetMaxLen() uint32 {
-	if m != nil {
-		return m.MaxLen
-	}
-	return 0
-}
-
-// Action structure for OFPAT_SET_MPLS_TTL.
-type OfpActionMplsTtl struct {
-	MplsTtl              uint32   `protobuf:"varint,1,opt,name=mpls_ttl,json=mplsTtl,proto3" json:"mpls_ttl,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OfpActionMplsTtl) Reset()         { *m = OfpActionMplsTtl{} }
-func (m *OfpActionMplsTtl) String() string { return proto.CompactTextString(m) }
-func (*OfpActionMplsTtl) ProtoMessage()    {}
-func (*OfpActionMplsTtl) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{17}
-}
-
-func (m *OfpActionMplsTtl) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpActionMplsTtl.Unmarshal(m, b)
-}
-func (m *OfpActionMplsTtl) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpActionMplsTtl.Marshal(b, m, deterministic)
-}
-func (m *OfpActionMplsTtl) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpActionMplsTtl.Merge(m, src)
-}
-func (m *OfpActionMplsTtl) XXX_Size() int {
-	return xxx_messageInfo_OfpActionMplsTtl.Size(m)
-}
-func (m *OfpActionMplsTtl) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpActionMplsTtl.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpActionMplsTtl proto.InternalMessageInfo
-
-func (m *OfpActionMplsTtl) GetMplsTtl() uint32 {
-	if m != nil {
-		return m.MplsTtl
-	}
-	return 0
-}
-
-// Action structure for OFPAT_PUSH_VLAN/MPLS/PBB.
-type OfpActionPush struct {
-	Ethertype            uint32   `protobuf:"varint,1,opt,name=ethertype,proto3" json:"ethertype,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OfpActionPush) Reset()         { *m = OfpActionPush{} }
-func (m *OfpActionPush) String() string { return proto.CompactTextString(m) }
-func (*OfpActionPush) ProtoMessage()    {}
-func (*OfpActionPush) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{18}
-}
-
-func (m *OfpActionPush) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpActionPush.Unmarshal(m, b)
-}
-func (m *OfpActionPush) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpActionPush.Marshal(b, m, deterministic)
-}
-func (m *OfpActionPush) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpActionPush.Merge(m, src)
-}
-func (m *OfpActionPush) XXX_Size() int {
-	return xxx_messageInfo_OfpActionPush.Size(m)
-}
-func (m *OfpActionPush) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpActionPush.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpActionPush proto.InternalMessageInfo
-
-func (m *OfpActionPush) GetEthertype() uint32 {
-	if m != nil {
-		return m.Ethertype
-	}
-	return 0
-}
-
-// Action structure for OFPAT_POP_MPLS.
-type OfpActionPopMpls struct {
-	Ethertype            uint32   `protobuf:"varint,1,opt,name=ethertype,proto3" json:"ethertype,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OfpActionPopMpls) Reset()         { *m = OfpActionPopMpls{} }
-func (m *OfpActionPopMpls) String() string { return proto.CompactTextString(m) }
-func (*OfpActionPopMpls) ProtoMessage()    {}
-func (*OfpActionPopMpls) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{19}
-}
-
-func (m *OfpActionPopMpls) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpActionPopMpls.Unmarshal(m, b)
-}
-func (m *OfpActionPopMpls) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpActionPopMpls.Marshal(b, m, deterministic)
-}
-func (m *OfpActionPopMpls) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpActionPopMpls.Merge(m, src)
-}
-func (m *OfpActionPopMpls) XXX_Size() int {
-	return xxx_messageInfo_OfpActionPopMpls.Size(m)
-}
-func (m *OfpActionPopMpls) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpActionPopMpls.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpActionPopMpls proto.InternalMessageInfo
-
-func (m *OfpActionPopMpls) GetEthertype() uint32 {
-	if m != nil {
-		return m.Ethertype
-	}
-	return 0
-}
-
-// Action structure for OFPAT_GROUP.
-type OfpActionGroup struct {
-	GroupId              uint32   `protobuf:"varint,1,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OfpActionGroup) Reset()         { *m = OfpActionGroup{} }
-func (m *OfpActionGroup) String() string { return proto.CompactTextString(m) }
-func (*OfpActionGroup) ProtoMessage()    {}
-func (*OfpActionGroup) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{20}
-}
-
-func (m *OfpActionGroup) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpActionGroup.Unmarshal(m, b)
-}
-func (m *OfpActionGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpActionGroup.Marshal(b, m, deterministic)
-}
-func (m *OfpActionGroup) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpActionGroup.Merge(m, src)
-}
-func (m *OfpActionGroup) XXX_Size() int {
-	return xxx_messageInfo_OfpActionGroup.Size(m)
-}
-func (m *OfpActionGroup) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpActionGroup.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpActionGroup proto.InternalMessageInfo
-
-func (m *OfpActionGroup) GetGroupId() uint32 {
-	if m != nil {
-		return m.GroupId
-	}
-	return 0
-}
-
-// Action structure for OFPAT_SET_NW_TTL.
-type OfpActionNwTtl struct {
-	NwTtl                uint32   `protobuf:"varint,1,opt,name=nw_ttl,json=nwTtl,proto3" json:"nw_ttl,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OfpActionNwTtl) Reset()         { *m = OfpActionNwTtl{} }
-func (m *OfpActionNwTtl) String() string { return proto.CompactTextString(m) }
-func (*OfpActionNwTtl) ProtoMessage()    {}
-func (*OfpActionNwTtl) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{21}
-}
-
-func (m *OfpActionNwTtl) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpActionNwTtl.Unmarshal(m, b)
-}
-func (m *OfpActionNwTtl) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpActionNwTtl.Marshal(b, m, deterministic)
-}
-func (m *OfpActionNwTtl) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpActionNwTtl.Merge(m, src)
-}
-func (m *OfpActionNwTtl) XXX_Size() int {
-	return xxx_messageInfo_OfpActionNwTtl.Size(m)
-}
-func (m *OfpActionNwTtl) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpActionNwTtl.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpActionNwTtl proto.InternalMessageInfo
-
-func (m *OfpActionNwTtl) GetNwTtl() uint32 {
-	if m != nil {
-		return m.NwTtl
-	}
-	return 0
-}
-
-// Action structure for OFPAT_SET_FIELD.
-type OfpActionSetField struct {
-	Field                *OfpOxmField `protobuf:"bytes,1,opt,name=field,proto3" json:"field,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
-	XXX_unrecognized     []byte       `json:"-"`
-	XXX_sizecache        int32        `json:"-"`
-}
-
-func (m *OfpActionSetField) Reset()         { *m = OfpActionSetField{} }
-func (m *OfpActionSetField) String() string { return proto.CompactTextString(m) }
-func (*OfpActionSetField) ProtoMessage()    {}
-func (*OfpActionSetField) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{22}
-}
-
-func (m *OfpActionSetField) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpActionSetField.Unmarshal(m, b)
-}
-func (m *OfpActionSetField) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpActionSetField.Marshal(b, m, deterministic)
-}
-func (m *OfpActionSetField) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpActionSetField.Merge(m, src)
-}
-func (m *OfpActionSetField) XXX_Size() int {
-	return xxx_messageInfo_OfpActionSetField.Size(m)
-}
-func (m *OfpActionSetField) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpActionSetField.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpActionSetField proto.InternalMessageInfo
-
-func (m *OfpActionSetField) GetField() *OfpOxmField {
-	if m != nil {
-		return m.Field
-	}
-	return nil
-}
-
-// Action header for OFPAT_EXPERIMENTER.
-// The rest of the body is experimenter-defined.
-type OfpActionExperimenter struct {
-	Experimenter         uint32   `protobuf:"varint,1,opt,name=experimenter,proto3" json:"experimenter,omitempty"`
-	Data                 []byte   `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OfpActionExperimenter) Reset()         { *m = OfpActionExperimenter{} }
-func (m *OfpActionExperimenter) String() string { return proto.CompactTextString(m) }
-func (*OfpActionExperimenter) ProtoMessage()    {}
-func (*OfpActionExperimenter) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{23}
-}
-
-func (m *OfpActionExperimenter) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpActionExperimenter.Unmarshal(m, b)
-}
-func (m *OfpActionExperimenter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpActionExperimenter.Marshal(b, m, deterministic)
-}
-func (m *OfpActionExperimenter) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpActionExperimenter.Merge(m, src)
-}
-func (m *OfpActionExperimenter) XXX_Size() int {
-	return xxx_messageInfo_OfpActionExperimenter.Size(m)
-}
-func (m *OfpActionExperimenter) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpActionExperimenter.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpActionExperimenter proto.InternalMessageInfo
-
-func (m *OfpActionExperimenter) GetExperimenter() uint32 {
-	if m != nil {
-		return m.Experimenter
-	}
-	return 0
-}
-
-func (m *OfpActionExperimenter) GetData() []byte {
-	if m != nil {
-		return m.Data
-	}
-	return nil
-}
-
-// Instruction header that is common to all instructions.  The length includes
-// the header and any padding used to make the instruction 64-bit aligned.
-// NB: The length of an instruction *must* always be a multiple of eight.
-type OfpInstruction struct {
-	Type uint32 `protobuf:"varint,1,opt,name=type,proto3" json:"type,omitempty"`
-	// Types that are valid to be assigned to Data:
-	//	*OfpInstruction_GotoTable
-	//	*OfpInstruction_WriteMetadata
-	//	*OfpInstruction_Actions
-	//	*OfpInstruction_Meter
-	//	*OfpInstruction_Experimenter
-	Data                 isOfpInstruction_Data `protobuf_oneof:"data"`
-	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
-	XXX_unrecognized     []byte                `json:"-"`
-	XXX_sizecache        int32                 `json:"-"`
-}
-
-func (m *OfpInstruction) Reset()         { *m = OfpInstruction{} }
-func (m *OfpInstruction) String() string { return proto.CompactTextString(m) }
-func (*OfpInstruction) ProtoMessage()    {}
-func (*OfpInstruction) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{24}
-}
-
-func (m *OfpInstruction) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpInstruction.Unmarshal(m, b)
-}
-func (m *OfpInstruction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpInstruction.Marshal(b, m, deterministic)
-}
-func (m *OfpInstruction) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpInstruction.Merge(m, src)
-}
-func (m *OfpInstruction) XXX_Size() int {
-	return xxx_messageInfo_OfpInstruction.Size(m)
-}
-func (m *OfpInstruction) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpInstruction.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpInstruction proto.InternalMessageInfo
-
-func (m *OfpInstruction) GetType() uint32 {
-	if m != nil {
-		return m.Type
-	}
-	return 0
-}
-
-type isOfpInstruction_Data interface {
-	isOfpInstruction_Data()
-}
-
-type OfpInstruction_GotoTable struct {
-	GotoTable *OfpInstructionGotoTable `protobuf:"bytes,2,opt,name=goto_table,json=gotoTable,proto3,oneof"`
-}
-
-type OfpInstruction_WriteMetadata struct {
-	WriteMetadata *OfpInstructionWriteMetadata `protobuf:"bytes,3,opt,name=write_metadata,json=writeMetadata,proto3,oneof"`
-}
-
-type OfpInstruction_Actions struct {
-	Actions *OfpInstructionActions `protobuf:"bytes,4,opt,name=actions,proto3,oneof"`
-}
-
-type OfpInstruction_Meter struct {
-	Meter *OfpInstructionMeter `protobuf:"bytes,5,opt,name=meter,proto3,oneof"`
-}
-
-type OfpInstruction_Experimenter struct {
-	Experimenter *OfpInstructionExperimenter `protobuf:"bytes,6,opt,name=experimenter,proto3,oneof"`
-}
-
-func (*OfpInstruction_GotoTable) isOfpInstruction_Data() {}
-
-func (*OfpInstruction_WriteMetadata) isOfpInstruction_Data() {}
-
-func (*OfpInstruction_Actions) isOfpInstruction_Data() {}
-
-func (*OfpInstruction_Meter) isOfpInstruction_Data() {}
-
-func (*OfpInstruction_Experimenter) isOfpInstruction_Data() {}
-
-func (m *OfpInstruction) GetData() isOfpInstruction_Data {
-	if m != nil {
-		return m.Data
-	}
-	return nil
-}
-
-func (m *OfpInstruction) GetGotoTable() *OfpInstructionGotoTable {
-	if x, ok := m.GetData().(*OfpInstruction_GotoTable); ok {
-		return x.GotoTable
-	}
-	return nil
-}
-
-func (m *OfpInstruction) GetWriteMetadata() *OfpInstructionWriteMetadata {
-	if x, ok := m.GetData().(*OfpInstruction_WriteMetadata); ok {
-		return x.WriteMetadata
-	}
-	return nil
-}
-
-func (m *OfpInstruction) GetActions() *OfpInstructionActions {
-	if x, ok := m.GetData().(*OfpInstruction_Actions); ok {
-		return x.Actions
-	}
-	return nil
-}
-
-func (m *OfpInstruction) GetMeter() *OfpInstructionMeter {
-	if x, ok := m.GetData().(*OfpInstruction_Meter); ok {
-		return x.Meter
-	}
-	return nil
-}
-
-func (m *OfpInstruction) GetExperimenter() *OfpInstructionExperimenter {
-	if x, ok := m.GetData().(*OfpInstruction_Experimenter); ok {
-		return x.Experimenter
-	}
-	return nil
-}
-
-// XXX_OneofWrappers is for the internal use of the proto package.
-func (*OfpInstruction) XXX_OneofWrappers() []interface{} {
-	return []interface{}{
+	file_voltha_protos_openflow_13_proto_msgTypes[24].OneofWrappers = []any{
 		(*OfpInstruction_GotoTable)(nil),
 		(*OfpInstruction_WriteMetadata)(nil),
 		(*OfpInstruction_Actions)(nil),
 		(*OfpInstruction_Meter)(nil),
 		(*OfpInstruction_Experimenter)(nil),
 	}
-}
-
-// Instruction structure for OFPIT_GOTO_TABLE
-type OfpInstructionGotoTable struct {
-	TableId              uint32   `protobuf:"varint,1,opt,name=table_id,json=tableId,proto3" json:"table_id,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OfpInstructionGotoTable) Reset()         { *m = OfpInstructionGotoTable{} }
-func (m *OfpInstructionGotoTable) String() string { return proto.CompactTextString(m) }
-func (*OfpInstructionGotoTable) ProtoMessage()    {}
-func (*OfpInstructionGotoTable) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{25}
-}
-
-func (m *OfpInstructionGotoTable) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpInstructionGotoTable.Unmarshal(m, b)
-}
-func (m *OfpInstructionGotoTable) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpInstructionGotoTable.Marshal(b, m, deterministic)
-}
-func (m *OfpInstructionGotoTable) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpInstructionGotoTable.Merge(m, src)
-}
-func (m *OfpInstructionGotoTable) XXX_Size() int {
-	return xxx_messageInfo_OfpInstructionGotoTable.Size(m)
-}
-func (m *OfpInstructionGotoTable) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpInstructionGotoTable.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpInstructionGotoTable proto.InternalMessageInfo
-
-func (m *OfpInstructionGotoTable) GetTableId() uint32 {
-	if m != nil {
-		return m.TableId
-	}
-	return 0
-}
-
-// Instruction structure for OFPIT_WRITE_METADATA
-type OfpInstructionWriteMetadata struct {
-	Metadata             uint64   `protobuf:"varint,1,opt,name=metadata,proto3" json:"metadata,omitempty"`
-	MetadataMask         uint64   `protobuf:"varint,2,opt,name=metadata_mask,json=metadataMask,proto3" json:"metadata_mask,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OfpInstructionWriteMetadata) Reset()         { *m = OfpInstructionWriteMetadata{} }
-func (m *OfpInstructionWriteMetadata) String() string { return proto.CompactTextString(m) }
-func (*OfpInstructionWriteMetadata) ProtoMessage()    {}
-func (*OfpInstructionWriteMetadata) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{26}
-}
-
-func (m *OfpInstructionWriteMetadata) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpInstructionWriteMetadata.Unmarshal(m, b)
-}
-func (m *OfpInstructionWriteMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpInstructionWriteMetadata.Marshal(b, m, deterministic)
-}
-func (m *OfpInstructionWriteMetadata) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpInstructionWriteMetadata.Merge(m, src)
-}
-func (m *OfpInstructionWriteMetadata) XXX_Size() int {
-	return xxx_messageInfo_OfpInstructionWriteMetadata.Size(m)
-}
-func (m *OfpInstructionWriteMetadata) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpInstructionWriteMetadata.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpInstructionWriteMetadata proto.InternalMessageInfo
-
-func (m *OfpInstructionWriteMetadata) GetMetadata() uint64 {
-	if m != nil {
-		return m.Metadata
-	}
-	return 0
-}
-
-func (m *OfpInstructionWriteMetadata) GetMetadataMask() uint64 {
-	if m != nil {
-		return m.MetadataMask
-	}
-	return 0
-}
-
-// Instruction structure for OFPIT_WRITE/APPLY/CLEAR_ACTIONS
-type OfpInstructionActions struct {
-	Actions              []*OfpAction `protobuf:"bytes,1,rep,name=actions,proto3" json:"actions,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
-	XXX_unrecognized     []byte       `json:"-"`
-	XXX_sizecache        int32        `json:"-"`
-}
-
-func (m *OfpInstructionActions) Reset()         { *m = OfpInstructionActions{} }
-func (m *OfpInstructionActions) String() string { return proto.CompactTextString(m) }
-func (*OfpInstructionActions) ProtoMessage()    {}
-func (*OfpInstructionActions) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{27}
-}
-
-func (m *OfpInstructionActions) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpInstructionActions.Unmarshal(m, b)
-}
-func (m *OfpInstructionActions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpInstructionActions.Marshal(b, m, deterministic)
-}
-func (m *OfpInstructionActions) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpInstructionActions.Merge(m, src)
-}
-func (m *OfpInstructionActions) XXX_Size() int {
-	return xxx_messageInfo_OfpInstructionActions.Size(m)
-}
-func (m *OfpInstructionActions) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpInstructionActions.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpInstructionActions proto.InternalMessageInfo
-
-func (m *OfpInstructionActions) GetActions() []*OfpAction {
-	if m != nil {
-		return m.Actions
-	}
-	return nil
-}
-
-// Instruction structure for OFPIT_METER
-type OfpInstructionMeter struct {
-	MeterId              uint32   `protobuf:"varint,1,opt,name=meter_id,json=meterId,proto3" json:"meter_id,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OfpInstructionMeter) Reset()         { *m = OfpInstructionMeter{} }
-func (m *OfpInstructionMeter) String() string { return proto.CompactTextString(m) }
-func (*OfpInstructionMeter) ProtoMessage()    {}
-func (*OfpInstructionMeter) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{28}
-}
-
-func (m *OfpInstructionMeter) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpInstructionMeter.Unmarshal(m, b)
-}
-func (m *OfpInstructionMeter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpInstructionMeter.Marshal(b, m, deterministic)
-}
-func (m *OfpInstructionMeter) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpInstructionMeter.Merge(m, src)
-}
-func (m *OfpInstructionMeter) XXX_Size() int {
-	return xxx_messageInfo_OfpInstructionMeter.Size(m)
-}
-func (m *OfpInstructionMeter) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpInstructionMeter.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpInstructionMeter proto.InternalMessageInfo
-
-func (m *OfpInstructionMeter) GetMeterId() uint32 {
-	if m != nil {
-		return m.MeterId
-	}
-	return 0
-}
-
-// Instruction structure for experimental instructions
-type OfpInstructionExperimenter struct {
-	Experimenter uint32 `protobuf:"varint,1,opt,name=experimenter,proto3" json:"experimenter,omitempty"`
-	// Experimenter-defined arbitrary additional data.
-	Data                 []byte   `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OfpInstructionExperimenter) Reset()         { *m = OfpInstructionExperimenter{} }
-func (m *OfpInstructionExperimenter) String() string { return proto.CompactTextString(m) }
-func (*OfpInstructionExperimenter) ProtoMessage()    {}
-func (*OfpInstructionExperimenter) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{29}
-}
-
-func (m *OfpInstructionExperimenter) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpInstructionExperimenter.Unmarshal(m, b)
-}
-func (m *OfpInstructionExperimenter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpInstructionExperimenter.Marshal(b, m, deterministic)
-}
-func (m *OfpInstructionExperimenter) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpInstructionExperimenter.Merge(m, src)
-}
-func (m *OfpInstructionExperimenter) XXX_Size() int {
-	return xxx_messageInfo_OfpInstructionExperimenter.Size(m)
-}
-func (m *OfpInstructionExperimenter) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpInstructionExperimenter.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpInstructionExperimenter proto.InternalMessageInfo
-
-func (m *OfpInstructionExperimenter) GetExperimenter() uint32 {
-	if m != nil {
-		return m.Experimenter
-	}
-	return 0
-}
-
-func (m *OfpInstructionExperimenter) GetData() []byte {
-	if m != nil {
-		return m.Data
-	}
-	return nil
-}
-
-// Flow setup and teardown (controller -> datapath).
-type OfpFlowMod struct {
-	//ofp_header header;
-	Cookie               uint64            `protobuf:"varint,1,opt,name=cookie,proto3" json:"cookie,omitempty"`
-	CookieMask           uint64            `protobuf:"varint,2,opt,name=cookie_mask,json=cookieMask,proto3" json:"cookie_mask,omitempty"`
-	TableId              uint32            `protobuf:"varint,3,opt,name=table_id,json=tableId,proto3" json:"table_id,omitempty"`
-	Command              OfpFlowModCommand `protobuf:"varint,4,opt,name=command,proto3,enum=openflow_13.OfpFlowModCommand" json:"command,omitempty"`
-	IdleTimeout          uint32            `protobuf:"varint,5,opt,name=idle_timeout,json=idleTimeout,proto3" json:"idle_timeout,omitempty"`
-	HardTimeout          uint32            `protobuf:"varint,6,opt,name=hard_timeout,json=hardTimeout,proto3" json:"hard_timeout,omitempty"`
-	Priority             uint32            `protobuf:"varint,7,opt,name=priority,proto3" json:"priority,omitempty"`
-	BufferId             uint32            `protobuf:"varint,8,opt,name=buffer_id,json=bufferId,proto3" json:"buffer_id,omitempty"`
-	OutPort              uint32            `protobuf:"varint,9,opt,name=out_port,json=outPort,proto3" json:"out_port,omitempty"`
-	OutGroup             uint32            `protobuf:"varint,10,opt,name=out_group,json=outGroup,proto3" json:"out_group,omitempty"`
-	Flags                uint32            `protobuf:"varint,11,opt,name=flags,proto3" json:"flags,omitempty"`
-	Match                *OfpMatch         `protobuf:"bytes,12,opt,name=match,proto3" json:"match,omitempty"`
-	Instructions         []*OfpInstruction `protobuf:"bytes,13,rep,name=instructions,proto3" json:"instructions,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
-	XXX_unrecognized     []byte            `json:"-"`
-	XXX_sizecache        int32             `json:"-"`
-}
-
-func (m *OfpFlowMod) Reset()         { *m = OfpFlowMod{} }
-func (m *OfpFlowMod) String() string { return proto.CompactTextString(m) }
-func (*OfpFlowMod) ProtoMessage()    {}
-func (*OfpFlowMod) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{30}
-}
-
-func (m *OfpFlowMod) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpFlowMod.Unmarshal(m, b)
-}
-func (m *OfpFlowMod) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpFlowMod.Marshal(b, m, deterministic)
-}
-func (m *OfpFlowMod) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpFlowMod.Merge(m, src)
-}
-func (m *OfpFlowMod) XXX_Size() int {
-	return xxx_messageInfo_OfpFlowMod.Size(m)
-}
-func (m *OfpFlowMod) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpFlowMod.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpFlowMod proto.InternalMessageInfo
-
-func (m *OfpFlowMod) GetCookie() uint64 {
-	if m != nil {
-		return m.Cookie
-	}
-	return 0
-}
-
-func (m *OfpFlowMod) GetCookieMask() uint64 {
-	if m != nil {
-		return m.CookieMask
-	}
-	return 0
-}
-
-func (m *OfpFlowMod) GetTableId() uint32 {
-	if m != nil {
-		return m.TableId
-	}
-	return 0
-}
-
-func (m *OfpFlowMod) GetCommand() OfpFlowModCommand {
-	if m != nil {
-		return m.Command
-	}
-	return OfpFlowModCommand_OFPFC_ADD
-}
-
-func (m *OfpFlowMod) GetIdleTimeout() uint32 {
-	if m != nil {
-		return m.IdleTimeout
-	}
-	return 0
-}
-
-func (m *OfpFlowMod) GetHardTimeout() uint32 {
-	if m != nil {
-		return m.HardTimeout
-	}
-	return 0
-}
-
-func (m *OfpFlowMod) GetPriority() uint32 {
-	if m != nil {
-		return m.Priority
-	}
-	return 0
-}
-
-func (m *OfpFlowMod) GetBufferId() uint32 {
-	if m != nil {
-		return m.BufferId
-	}
-	return 0
-}
-
-func (m *OfpFlowMod) GetOutPort() uint32 {
-	if m != nil {
-		return m.OutPort
-	}
-	return 0
-}
-
-func (m *OfpFlowMod) GetOutGroup() uint32 {
-	if m != nil {
-		return m.OutGroup
-	}
-	return 0
-}
-
-func (m *OfpFlowMod) GetFlags() uint32 {
-	if m != nil {
-		return m.Flags
-	}
-	return 0
-}
-
-func (m *OfpFlowMod) GetMatch() *OfpMatch {
-	if m != nil {
-		return m.Match
-	}
-	return nil
-}
-
-func (m *OfpFlowMod) GetInstructions() []*OfpInstruction {
-	if m != nil {
-		return m.Instructions
-	}
-	return nil
-}
-
-// Bucket for use in groups.
-type OfpBucket struct {
-	Weight               uint32       `protobuf:"varint,1,opt,name=weight,proto3" json:"weight,omitempty"`
-	WatchPort            uint32       `protobuf:"varint,2,opt,name=watch_port,json=watchPort,proto3" json:"watch_port,omitempty"`
-	WatchGroup           uint32       `protobuf:"varint,3,opt,name=watch_group,json=watchGroup,proto3" json:"watch_group,omitempty"`
-	Actions              []*OfpAction `protobuf:"bytes,4,rep,name=actions,proto3" json:"actions,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
-	XXX_unrecognized     []byte       `json:"-"`
-	XXX_sizecache        int32        `json:"-"`
-}
-
-func (m *OfpBucket) Reset()         { *m = OfpBucket{} }
-func (m *OfpBucket) String() string { return proto.CompactTextString(m) }
-func (*OfpBucket) ProtoMessage()    {}
-func (*OfpBucket) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{31}
-}
-
-func (m *OfpBucket) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpBucket.Unmarshal(m, b)
-}
-func (m *OfpBucket) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpBucket.Marshal(b, m, deterministic)
-}
-func (m *OfpBucket) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpBucket.Merge(m, src)
-}
-func (m *OfpBucket) XXX_Size() int {
-	return xxx_messageInfo_OfpBucket.Size(m)
-}
-func (m *OfpBucket) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpBucket.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpBucket proto.InternalMessageInfo
-
-func (m *OfpBucket) GetWeight() uint32 {
-	if m != nil {
-		return m.Weight
-	}
-	return 0
-}
-
-func (m *OfpBucket) GetWatchPort() uint32 {
-	if m != nil {
-		return m.WatchPort
-	}
-	return 0
-}
-
-func (m *OfpBucket) GetWatchGroup() uint32 {
-	if m != nil {
-		return m.WatchGroup
-	}
-	return 0
-}
-
-func (m *OfpBucket) GetActions() []*OfpAction {
-	if m != nil {
-		return m.Actions
-	}
-	return nil
-}
-
-// Group setup and teardown (controller -> datapath).
-type OfpGroupMod struct {
-	//ofp_header header;
-	Command              OfpGroupModCommand `protobuf:"varint,1,opt,name=command,proto3,enum=openflow_13.OfpGroupModCommand" json:"command,omitempty"`
-	Type                 OfpGroupType       `protobuf:"varint,2,opt,name=type,proto3,enum=openflow_13.OfpGroupType" json:"type,omitempty"`
-	GroupId              uint32             `protobuf:"varint,3,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
-	Buckets              []*OfpBucket       `protobuf:"bytes,4,rep,name=buckets,proto3" json:"buckets,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
-	XXX_unrecognized     []byte             `json:"-"`
-	XXX_sizecache        int32              `json:"-"`
-}
-
-func (m *OfpGroupMod) Reset()         { *m = OfpGroupMod{} }
-func (m *OfpGroupMod) String() string { return proto.CompactTextString(m) }
-func (*OfpGroupMod) ProtoMessage()    {}
-func (*OfpGroupMod) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{32}
-}
-
-func (m *OfpGroupMod) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpGroupMod.Unmarshal(m, b)
-}
-func (m *OfpGroupMod) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpGroupMod.Marshal(b, m, deterministic)
-}
-func (m *OfpGroupMod) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpGroupMod.Merge(m, src)
-}
-func (m *OfpGroupMod) XXX_Size() int {
-	return xxx_messageInfo_OfpGroupMod.Size(m)
-}
-func (m *OfpGroupMod) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpGroupMod.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpGroupMod proto.InternalMessageInfo
-
-func (m *OfpGroupMod) GetCommand() OfpGroupModCommand {
-	if m != nil {
-		return m.Command
-	}
-	return OfpGroupModCommand_OFPGC_ADD
-}
-
-func (m *OfpGroupMod) GetType() OfpGroupType {
-	if m != nil {
-		return m.Type
-	}
-	return OfpGroupType_OFPGT_ALL
-}
-
-func (m *OfpGroupMod) GetGroupId() uint32 {
-	if m != nil {
-		return m.GroupId
-	}
-	return 0
-}
-
-func (m *OfpGroupMod) GetBuckets() []*OfpBucket {
-	if m != nil {
-		return m.Buckets
-	}
-	return nil
-}
-
-// Send packet (controller -> datapath).
-type OfpPacketOut struct {
-	//ofp_header header;
-	BufferId uint32       `protobuf:"varint,1,opt,name=buffer_id,json=bufferId,proto3" json:"buffer_id,omitempty"`
-	InPort   uint32       `protobuf:"varint,2,opt,name=in_port,json=inPort,proto3" json:"in_port,omitempty"`
-	Actions  []*OfpAction `protobuf:"bytes,3,rep,name=actions,proto3" json:"actions,omitempty"`
-	// The variable size action list is optionally followed by packet data.
-	// This data is only present and meaningful if buffer_id == -1.
-	Data                 []byte   `protobuf:"bytes,4,opt,name=data,proto3" json:"data,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OfpPacketOut) Reset()         { *m = OfpPacketOut{} }
-func (m *OfpPacketOut) String() string { return proto.CompactTextString(m) }
-func (*OfpPacketOut) ProtoMessage()    {}
-func (*OfpPacketOut) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{33}
-}
-
-func (m *OfpPacketOut) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpPacketOut.Unmarshal(m, b)
-}
-func (m *OfpPacketOut) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpPacketOut.Marshal(b, m, deterministic)
-}
-func (m *OfpPacketOut) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpPacketOut.Merge(m, src)
-}
-func (m *OfpPacketOut) XXX_Size() int {
-	return xxx_messageInfo_OfpPacketOut.Size(m)
-}
-func (m *OfpPacketOut) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpPacketOut.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpPacketOut proto.InternalMessageInfo
-
-func (m *OfpPacketOut) GetBufferId() uint32 {
-	if m != nil {
-		return m.BufferId
-	}
-	return 0
-}
-
-func (m *OfpPacketOut) GetInPort() uint32 {
-	if m != nil {
-		return m.InPort
-	}
-	return 0
-}
-
-func (m *OfpPacketOut) GetActions() []*OfpAction {
-	if m != nil {
-		return m.Actions
-	}
-	return nil
-}
-
-func (m *OfpPacketOut) GetData() []byte {
-	if m != nil {
-		return m.Data
-	}
-	return nil
-}
-
-// Packet received on port (datapath -> controller).
-type OfpPacketIn struct {
-	//ofp_header header;
-	BufferId             uint32            `protobuf:"varint,1,opt,name=buffer_id,json=bufferId,proto3" json:"buffer_id,omitempty"`
-	Reason               OfpPacketInReason `protobuf:"varint,2,opt,name=reason,proto3,enum=openflow_13.OfpPacketInReason" json:"reason,omitempty"`
-	TableId              uint32            `protobuf:"varint,3,opt,name=table_id,json=tableId,proto3" json:"table_id,omitempty"`
-	Cookie               uint64            `protobuf:"varint,4,opt,name=cookie,proto3" json:"cookie,omitempty"`
-	Match                *OfpMatch         `protobuf:"bytes,5,opt,name=match,proto3" json:"match,omitempty"`
-	Data                 []byte            `protobuf:"bytes,6,opt,name=data,proto3" json:"data,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
-	XXX_unrecognized     []byte            `json:"-"`
-	XXX_sizecache        int32             `json:"-"`
-}
-
-func (m *OfpPacketIn) Reset()         { *m = OfpPacketIn{} }
-func (m *OfpPacketIn) String() string { return proto.CompactTextString(m) }
-func (*OfpPacketIn) ProtoMessage()    {}
-func (*OfpPacketIn) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{34}
-}
-
-func (m *OfpPacketIn) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpPacketIn.Unmarshal(m, b)
-}
-func (m *OfpPacketIn) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpPacketIn.Marshal(b, m, deterministic)
-}
-func (m *OfpPacketIn) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpPacketIn.Merge(m, src)
-}
-func (m *OfpPacketIn) XXX_Size() int {
-	return xxx_messageInfo_OfpPacketIn.Size(m)
-}
-func (m *OfpPacketIn) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpPacketIn.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpPacketIn proto.InternalMessageInfo
-
-func (m *OfpPacketIn) GetBufferId() uint32 {
-	if m != nil {
-		return m.BufferId
-	}
-	return 0
-}
-
-func (m *OfpPacketIn) GetReason() OfpPacketInReason {
-	if m != nil {
-		return m.Reason
-	}
-	return OfpPacketInReason_OFPR_NO_MATCH
-}
-
-func (m *OfpPacketIn) GetTableId() uint32 {
-	if m != nil {
-		return m.TableId
-	}
-	return 0
-}
-
-func (m *OfpPacketIn) GetCookie() uint64 {
-	if m != nil {
-		return m.Cookie
-	}
-	return 0
-}
-
-func (m *OfpPacketIn) GetMatch() *OfpMatch {
-	if m != nil {
-		return m.Match
-	}
-	return nil
-}
-
-func (m *OfpPacketIn) GetData() []byte {
-	if m != nil {
-		return m.Data
-	}
-	return nil
-}
-
-// Flow removed (datapath -> controller).
-type OfpFlowRemoved struct {
-	//ofp_header header;
-	Cookie               uint64               `protobuf:"varint,1,opt,name=cookie,proto3" json:"cookie,omitempty"`
-	Priority             uint32               `protobuf:"varint,2,opt,name=priority,proto3" json:"priority,omitempty"`
-	Reason               OfpFlowRemovedReason `protobuf:"varint,3,opt,name=reason,proto3,enum=openflow_13.OfpFlowRemovedReason" json:"reason,omitempty"`
-	TableId              uint32               `protobuf:"varint,4,opt,name=table_id,json=tableId,proto3" json:"table_id,omitempty"`
-	DurationSec          uint32               `protobuf:"varint,5,opt,name=duration_sec,json=durationSec,proto3" json:"duration_sec,omitempty"`
-	DurationNsec         uint32               `protobuf:"varint,6,opt,name=duration_nsec,json=durationNsec,proto3" json:"duration_nsec,omitempty"`
-	IdleTimeout          uint32               `protobuf:"varint,7,opt,name=idle_timeout,json=idleTimeout,proto3" json:"idle_timeout,omitempty"`
-	HardTimeout          uint32               `protobuf:"varint,8,opt,name=hard_timeout,json=hardTimeout,proto3" json:"hard_timeout,omitempty"`
-	PacketCount          uint64               `protobuf:"varint,9,opt,name=packet_count,json=packetCount,proto3" json:"packet_count,omitempty"`
-	ByteCount            uint64               `protobuf:"varint,10,opt,name=byte_count,json=byteCount,proto3" json:"byte_count,omitempty"`
-	Match                *OfpMatch            `protobuf:"bytes,121,opt,name=match,proto3" json:"match,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
-	XXX_unrecognized     []byte               `json:"-"`
-	XXX_sizecache        int32                `json:"-"`
-}
-
-func (m *OfpFlowRemoved) Reset()         { *m = OfpFlowRemoved{} }
-func (m *OfpFlowRemoved) String() string { return proto.CompactTextString(m) }
-func (*OfpFlowRemoved) ProtoMessage()    {}
-func (*OfpFlowRemoved) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{35}
-}
-
-func (m *OfpFlowRemoved) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpFlowRemoved.Unmarshal(m, b)
-}
-func (m *OfpFlowRemoved) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpFlowRemoved.Marshal(b, m, deterministic)
-}
-func (m *OfpFlowRemoved) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpFlowRemoved.Merge(m, src)
-}
-func (m *OfpFlowRemoved) XXX_Size() int {
-	return xxx_messageInfo_OfpFlowRemoved.Size(m)
-}
-func (m *OfpFlowRemoved) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpFlowRemoved.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpFlowRemoved proto.InternalMessageInfo
-
-func (m *OfpFlowRemoved) GetCookie() uint64 {
-	if m != nil {
-		return m.Cookie
-	}
-	return 0
-}
-
-func (m *OfpFlowRemoved) GetPriority() uint32 {
-	if m != nil {
-		return m.Priority
-	}
-	return 0
-}
-
-func (m *OfpFlowRemoved) GetReason() OfpFlowRemovedReason {
-	if m != nil {
-		return m.Reason
-	}
-	return OfpFlowRemovedReason_OFPRR_IDLE_TIMEOUT
-}
-
-func (m *OfpFlowRemoved) GetTableId() uint32 {
-	if m != nil {
-		return m.TableId
-	}
-	return 0
-}
-
-func (m *OfpFlowRemoved) GetDurationSec() uint32 {
-	if m != nil {
-		return m.DurationSec
-	}
-	return 0
-}
-
-func (m *OfpFlowRemoved) GetDurationNsec() uint32 {
-	if m != nil {
-		return m.DurationNsec
-	}
-	return 0
-}
-
-func (m *OfpFlowRemoved) GetIdleTimeout() uint32 {
-	if m != nil {
-		return m.IdleTimeout
-	}
-	return 0
-}
-
-func (m *OfpFlowRemoved) GetHardTimeout() uint32 {
-	if m != nil {
-		return m.HardTimeout
-	}
-	return 0
-}
-
-func (m *OfpFlowRemoved) GetPacketCount() uint64 {
-	if m != nil {
-		return m.PacketCount
-	}
-	return 0
-}
-
-func (m *OfpFlowRemoved) GetByteCount() uint64 {
-	if m != nil {
-		return m.ByteCount
-	}
-	return 0
-}
-
-func (m *OfpFlowRemoved) GetMatch() *OfpMatch {
-	if m != nil {
-		return m.Match
-	}
-	return nil
-}
-
-// Common header for all meter bands
-type OfpMeterBandHeader struct {
-	Type      OfpMeterBandType `protobuf:"varint,1,opt,name=type,proto3,enum=openflow_13.OfpMeterBandType" json:"type,omitempty"`
-	Rate      uint32           `protobuf:"varint,2,opt,name=rate,proto3" json:"rate,omitempty"`
-	BurstSize uint32           `protobuf:"varint,3,opt,name=burst_size,json=burstSize,proto3" json:"burst_size,omitempty"`
-	// Types that are valid to be assigned to Data:
-	//	*OfpMeterBandHeader_Drop
-	//	*OfpMeterBandHeader_DscpRemark
-	//	*OfpMeterBandHeader_Experimenter
-	Data                 isOfpMeterBandHeader_Data `protobuf_oneof:"data"`
-	XXX_NoUnkeyedLiteral struct{}                  `json:"-"`
-	XXX_unrecognized     []byte                    `json:"-"`
-	XXX_sizecache        int32                     `json:"-"`
-}
-
-func (m *OfpMeterBandHeader) Reset()         { *m = OfpMeterBandHeader{} }
-func (m *OfpMeterBandHeader) String() string { return proto.CompactTextString(m) }
-func (*OfpMeterBandHeader) ProtoMessage()    {}
-func (*OfpMeterBandHeader) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{36}
-}
-
-func (m *OfpMeterBandHeader) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpMeterBandHeader.Unmarshal(m, b)
-}
-func (m *OfpMeterBandHeader) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpMeterBandHeader.Marshal(b, m, deterministic)
-}
-func (m *OfpMeterBandHeader) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpMeterBandHeader.Merge(m, src)
-}
-func (m *OfpMeterBandHeader) XXX_Size() int {
-	return xxx_messageInfo_OfpMeterBandHeader.Size(m)
-}
-func (m *OfpMeterBandHeader) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpMeterBandHeader.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpMeterBandHeader proto.InternalMessageInfo
-
-func (m *OfpMeterBandHeader) GetType() OfpMeterBandType {
-	if m != nil {
-		return m.Type
-	}
-	return OfpMeterBandType_OFPMBT_INVALID
-}
-
-func (m *OfpMeterBandHeader) GetRate() uint32 {
-	if m != nil {
-		return m.Rate
-	}
-	return 0
-}
-
-func (m *OfpMeterBandHeader) GetBurstSize() uint32 {
-	if m != nil {
-		return m.BurstSize
-	}
-	return 0
-}
-
-type isOfpMeterBandHeader_Data interface {
-	isOfpMeterBandHeader_Data()
-}
-
-type OfpMeterBandHeader_Drop struct {
-	Drop *OfpMeterBandDrop `protobuf:"bytes,4,opt,name=drop,proto3,oneof"`
-}
-
-type OfpMeterBandHeader_DscpRemark struct {
-	DscpRemark *OfpMeterBandDscpRemark `protobuf:"bytes,5,opt,name=dscp_remark,json=dscpRemark,proto3,oneof"`
-}
-
-type OfpMeterBandHeader_Experimenter struct {
-	Experimenter *OfpMeterBandExperimenter `protobuf:"bytes,6,opt,name=experimenter,proto3,oneof"`
-}
-
-func (*OfpMeterBandHeader_Drop) isOfpMeterBandHeader_Data() {}
-
-func (*OfpMeterBandHeader_DscpRemark) isOfpMeterBandHeader_Data() {}
-
-func (*OfpMeterBandHeader_Experimenter) isOfpMeterBandHeader_Data() {}
-
-func (m *OfpMeterBandHeader) GetData() isOfpMeterBandHeader_Data {
-	if m != nil {
-		return m.Data
-	}
-	return nil
-}
-
-func (m *OfpMeterBandHeader) GetDrop() *OfpMeterBandDrop {
-	if x, ok := m.GetData().(*OfpMeterBandHeader_Drop); ok {
-		return x.Drop
-	}
-	return nil
-}
-
-func (m *OfpMeterBandHeader) GetDscpRemark() *OfpMeterBandDscpRemark {
-	if x, ok := m.GetData().(*OfpMeterBandHeader_DscpRemark); ok {
-		return x.DscpRemark
-	}
-	return nil
-}
-
-func (m *OfpMeterBandHeader) GetExperimenter() *OfpMeterBandExperimenter {
-	if x, ok := m.GetData().(*OfpMeterBandHeader_Experimenter); ok {
-		return x.Experimenter
-	}
-	return nil
-}
-
-// XXX_OneofWrappers is for the internal use of the proto package.
-func (*OfpMeterBandHeader) XXX_OneofWrappers() []interface{} {
-	return []interface{}{
+	file_voltha_protos_openflow_13_proto_msgTypes[36].OneofWrappers = []any{
 		(*OfpMeterBandHeader_Drop)(nil),
 		(*OfpMeterBandHeader_DscpRemark)(nil),
 		(*OfpMeterBandHeader_Experimenter)(nil),
 	}
-}
-
-// OFPMBT_DROP band - drop packets
-type OfpMeterBandDrop struct {
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OfpMeterBandDrop) Reset()         { *m = OfpMeterBandDrop{} }
-func (m *OfpMeterBandDrop) String() string { return proto.CompactTextString(m) }
-func (*OfpMeterBandDrop) ProtoMessage()    {}
-func (*OfpMeterBandDrop) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{37}
-}
-
-func (m *OfpMeterBandDrop) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpMeterBandDrop.Unmarshal(m, b)
-}
-func (m *OfpMeterBandDrop) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpMeterBandDrop.Marshal(b, m, deterministic)
-}
-func (m *OfpMeterBandDrop) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpMeterBandDrop.Merge(m, src)
-}
-func (m *OfpMeterBandDrop) XXX_Size() int {
-	return xxx_messageInfo_OfpMeterBandDrop.Size(m)
-}
-func (m *OfpMeterBandDrop) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpMeterBandDrop.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpMeterBandDrop proto.InternalMessageInfo
-
-// OFPMBT_DSCP_REMARK band - Remark DSCP in the IP header
-type OfpMeterBandDscpRemark struct {
-	PrecLevel            uint32   `protobuf:"varint,1,opt,name=prec_level,json=precLevel,proto3" json:"prec_level,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OfpMeterBandDscpRemark) Reset()         { *m = OfpMeterBandDscpRemark{} }
-func (m *OfpMeterBandDscpRemark) String() string { return proto.CompactTextString(m) }
-func (*OfpMeterBandDscpRemark) ProtoMessage()    {}
-func (*OfpMeterBandDscpRemark) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{38}
-}
-
-func (m *OfpMeterBandDscpRemark) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpMeterBandDscpRemark.Unmarshal(m, b)
-}
-func (m *OfpMeterBandDscpRemark) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpMeterBandDscpRemark.Marshal(b, m, deterministic)
-}
-func (m *OfpMeterBandDscpRemark) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpMeterBandDscpRemark.Merge(m, src)
-}
-func (m *OfpMeterBandDscpRemark) XXX_Size() int {
-	return xxx_messageInfo_OfpMeterBandDscpRemark.Size(m)
-}
-func (m *OfpMeterBandDscpRemark) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpMeterBandDscpRemark.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpMeterBandDscpRemark proto.InternalMessageInfo
-
-func (m *OfpMeterBandDscpRemark) GetPrecLevel() uint32 {
-	if m != nil {
-		return m.PrecLevel
-	}
-	return 0
-}
-
-// OFPMBT_EXPERIMENTER band - Experimenter type.
-// The rest of the band is experimenter-defined.
-type OfpMeterBandExperimenter struct {
-	Experimenter         uint32   `protobuf:"varint,1,opt,name=experimenter,proto3" json:"experimenter,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OfpMeterBandExperimenter) Reset()         { *m = OfpMeterBandExperimenter{} }
-func (m *OfpMeterBandExperimenter) String() string { return proto.CompactTextString(m) }
-func (*OfpMeterBandExperimenter) ProtoMessage()    {}
-func (*OfpMeterBandExperimenter) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{39}
-}
-
-func (m *OfpMeterBandExperimenter) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpMeterBandExperimenter.Unmarshal(m, b)
-}
-func (m *OfpMeterBandExperimenter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpMeterBandExperimenter.Marshal(b, m, deterministic)
-}
-func (m *OfpMeterBandExperimenter) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpMeterBandExperimenter.Merge(m, src)
-}
-func (m *OfpMeterBandExperimenter) XXX_Size() int {
-	return xxx_messageInfo_OfpMeterBandExperimenter.Size(m)
-}
-func (m *OfpMeterBandExperimenter) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpMeterBandExperimenter.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpMeterBandExperimenter proto.InternalMessageInfo
-
-func (m *OfpMeterBandExperimenter) GetExperimenter() uint32 {
-	if m != nil {
-		return m.Experimenter
-	}
-	return 0
-}
-
-// Meter configuration. OFPT_METER_MOD.
-type OfpMeterMod struct {
-	Command              OfpMeterModCommand    `protobuf:"varint,1,opt,name=command,proto3,enum=openflow_13.OfpMeterModCommand" json:"command,omitempty"`
-	Flags                uint32                `protobuf:"varint,2,opt,name=flags,proto3" json:"flags,omitempty"`
-	MeterId              uint32                `protobuf:"varint,3,opt,name=meter_id,json=meterId,proto3" json:"meter_id,omitempty"`
-	Bands                []*OfpMeterBandHeader `protobuf:"bytes,4,rep,name=bands,proto3" json:"bands,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
-	XXX_unrecognized     []byte                `json:"-"`
-	XXX_sizecache        int32                 `json:"-"`
-}
-
-func (m *OfpMeterMod) Reset()         { *m = OfpMeterMod{} }
-func (m *OfpMeterMod) String() string { return proto.CompactTextString(m) }
-func (*OfpMeterMod) ProtoMessage()    {}
-func (*OfpMeterMod) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{40}
-}
-
-func (m *OfpMeterMod) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpMeterMod.Unmarshal(m, b)
-}
-func (m *OfpMeterMod) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpMeterMod.Marshal(b, m, deterministic)
-}
-func (m *OfpMeterMod) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpMeterMod.Merge(m, src)
-}
-func (m *OfpMeterMod) XXX_Size() int {
-	return xxx_messageInfo_OfpMeterMod.Size(m)
-}
-func (m *OfpMeterMod) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpMeterMod.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpMeterMod proto.InternalMessageInfo
-
-func (m *OfpMeterMod) GetCommand() OfpMeterModCommand {
-	if m != nil {
-		return m.Command
-	}
-	return OfpMeterModCommand_OFPMC_ADD
-}
-
-func (m *OfpMeterMod) GetFlags() uint32 {
-	if m != nil {
-		return m.Flags
-	}
-	return 0
-}
-
-func (m *OfpMeterMod) GetMeterId() uint32 {
-	if m != nil {
-		return m.MeterId
-	}
-	return 0
-}
-
-func (m *OfpMeterMod) GetBands() []*OfpMeterBandHeader {
-	if m != nil {
-		return m.Bands
-	}
-	return nil
-}
-
-// OFPT_ERROR: Error message (datapath -> controller).
-type OfpErrorMsg struct {
-	Header               *OfpHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"`
-	Type                 uint32     `protobuf:"varint,2,opt,name=type,proto3" json:"type,omitempty"`
-	Code                 uint32     `protobuf:"varint,3,opt,name=code,proto3" json:"code,omitempty"`
-	Data                 []byte     `protobuf:"bytes,4,opt,name=data,proto3" json:"data,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
-	XXX_unrecognized     []byte     `json:"-"`
-	XXX_sizecache        int32      `json:"-"`
-}
-
-func (m *OfpErrorMsg) Reset()         { *m = OfpErrorMsg{} }
-func (m *OfpErrorMsg) String() string { return proto.CompactTextString(m) }
-func (*OfpErrorMsg) ProtoMessage()    {}
-func (*OfpErrorMsg) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{41}
-}
-
-func (m *OfpErrorMsg) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpErrorMsg.Unmarshal(m, b)
-}
-func (m *OfpErrorMsg) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpErrorMsg.Marshal(b, m, deterministic)
-}
-func (m *OfpErrorMsg) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpErrorMsg.Merge(m, src)
-}
-func (m *OfpErrorMsg) XXX_Size() int {
-	return xxx_messageInfo_OfpErrorMsg.Size(m)
-}
-func (m *OfpErrorMsg) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpErrorMsg.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpErrorMsg proto.InternalMessageInfo
-
-func (m *OfpErrorMsg) GetHeader() *OfpHeader {
-	if m != nil {
-		return m.Header
-	}
-	return nil
-}
-
-func (m *OfpErrorMsg) GetType() uint32 {
-	if m != nil {
-		return m.Type
-	}
-	return 0
-}
-
-func (m *OfpErrorMsg) GetCode() uint32 {
-	if m != nil {
-		return m.Code
-	}
-	return 0
-}
-
-func (m *OfpErrorMsg) GetData() []byte {
-	if m != nil {
-		return m.Data
-	}
-	return nil
-}
-
-// OFPET_EXPERIMENTER: Error message (datapath -> controller).
-type OfpErrorExperimenterMsg struct {
-	Type                 uint32   `protobuf:"varint,1,opt,name=type,proto3" json:"type,omitempty"`
-	ExpType              uint32   `protobuf:"varint,2,opt,name=exp_type,json=expType,proto3" json:"exp_type,omitempty"`
-	Experimenter         uint32   `protobuf:"varint,3,opt,name=experimenter,proto3" json:"experimenter,omitempty"`
-	Data                 []byte   `protobuf:"bytes,4,opt,name=data,proto3" json:"data,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OfpErrorExperimenterMsg) Reset()         { *m = OfpErrorExperimenterMsg{} }
-func (m *OfpErrorExperimenterMsg) String() string { return proto.CompactTextString(m) }
-func (*OfpErrorExperimenterMsg) ProtoMessage()    {}
-func (*OfpErrorExperimenterMsg) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{42}
-}
-
-func (m *OfpErrorExperimenterMsg) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpErrorExperimenterMsg.Unmarshal(m, b)
-}
-func (m *OfpErrorExperimenterMsg) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpErrorExperimenterMsg.Marshal(b, m, deterministic)
-}
-func (m *OfpErrorExperimenterMsg) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpErrorExperimenterMsg.Merge(m, src)
-}
-func (m *OfpErrorExperimenterMsg) XXX_Size() int {
-	return xxx_messageInfo_OfpErrorExperimenterMsg.Size(m)
-}
-func (m *OfpErrorExperimenterMsg) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpErrorExperimenterMsg.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpErrorExperimenterMsg proto.InternalMessageInfo
-
-func (m *OfpErrorExperimenterMsg) GetType() uint32 {
-	if m != nil {
-		return m.Type
-	}
-	return 0
-}
-
-func (m *OfpErrorExperimenterMsg) GetExpType() uint32 {
-	if m != nil {
-		return m.ExpType
-	}
-	return 0
-}
-
-func (m *OfpErrorExperimenterMsg) GetExperimenter() uint32 {
-	if m != nil {
-		return m.Experimenter
-	}
-	return 0
-}
-
-func (m *OfpErrorExperimenterMsg) GetData() []byte {
-	if m != nil {
-		return m.Data
-	}
-	return nil
-}
-
-type OfpMultipartRequest struct {
-	//ofp_header header;
-	Type                 OfpMultipartType `protobuf:"varint,1,opt,name=type,proto3,enum=openflow_13.OfpMultipartType" json:"type,omitempty"`
-	Flags                uint32           `protobuf:"varint,2,opt,name=flags,proto3" json:"flags,omitempty"`
-	Body                 []byte           `protobuf:"bytes,3,opt,name=body,proto3" json:"body,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
-	XXX_unrecognized     []byte           `json:"-"`
-	XXX_sizecache        int32            `json:"-"`
-}
-
-func (m *OfpMultipartRequest) Reset()         { *m = OfpMultipartRequest{} }
-func (m *OfpMultipartRequest) String() string { return proto.CompactTextString(m) }
-func (*OfpMultipartRequest) ProtoMessage()    {}
-func (*OfpMultipartRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{43}
-}
-
-func (m *OfpMultipartRequest) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpMultipartRequest.Unmarshal(m, b)
-}
-func (m *OfpMultipartRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpMultipartRequest.Marshal(b, m, deterministic)
-}
-func (m *OfpMultipartRequest) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpMultipartRequest.Merge(m, src)
-}
-func (m *OfpMultipartRequest) XXX_Size() int {
-	return xxx_messageInfo_OfpMultipartRequest.Size(m)
-}
-func (m *OfpMultipartRequest) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpMultipartRequest.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpMultipartRequest proto.InternalMessageInfo
-
-func (m *OfpMultipartRequest) GetType() OfpMultipartType {
-	if m != nil {
-		return m.Type
-	}
-	return OfpMultipartType_OFPMP_DESC
-}
-
-func (m *OfpMultipartRequest) GetFlags() uint32 {
-	if m != nil {
-		return m.Flags
-	}
-	return 0
-}
-
-func (m *OfpMultipartRequest) GetBody() []byte {
-	if m != nil {
-		return m.Body
-	}
-	return nil
-}
-
-type OfpMultipartReply struct {
-	//ofp_header header;
-	Type                 OfpMultipartType `protobuf:"varint,1,opt,name=type,proto3,enum=openflow_13.OfpMultipartType" json:"type,omitempty"`
-	Flags                uint32           `protobuf:"varint,2,opt,name=flags,proto3" json:"flags,omitempty"`
-	Body                 []byte           `protobuf:"bytes,3,opt,name=body,proto3" json:"body,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
-	XXX_unrecognized     []byte           `json:"-"`
-	XXX_sizecache        int32            `json:"-"`
-}
-
-func (m *OfpMultipartReply) Reset()         { *m = OfpMultipartReply{} }
-func (m *OfpMultipartReply) String() string { return proto.CompactTextString(m) }
-func (*OfpMultipartReply) ProtoMessage()    {}
-func (*OfpMultipartReply) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{44}
-}
-
-func (m *OfpMultipartReply) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpMultipartReply.Unmarshal(m, b)
-}
-func (m *OfpMultipartReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpMultipartReply.Marshal(b, m, deterministic)
-}
-func (m *OfpMultipartReply) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpMultipartReply.Merge(m, src)
-}
-func (m *OfpMultipartReply) XXX_Size() int {
-	return xxx_messageInfo_OfpMultipartReply.Size(m)
-}
-func (m *OfpMultipartReply) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpMultipartReply.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpMultipartReply proto.InternalMessageInfo
-
-func (m *OfpMultipartReply) GetType() OfpMultipartType {
-	if m != nil {
-		return m.Type
-	}
-	return OfpMultipartType_OFPMP_DESC
-}
-
-func (m *OfpMultipartReply) GetFlags() uint32 {
-	if m != nil {
-		return m.Flags
-	}
-	return 0
-}
-
-func (m *OfpMultipartReply) GetBody() []byte {
-	if m != nil {
-		return m.Body
-	}
-	return nil
-}
-
-// Body of reply to OFPMP_DESC request.  Each entry is a NULL-terminated
-// ASCII string.
-type OfpDesc struct {
-	MfrDesc              string   `protobuf:"bytes,1,opt,name=mfr_desc,json=mfrDesc,proto3" json:"mfr_desc,omitempty"`
-	HwDesc               string   `protobuf:"bytes,2,opt,name=hw_desc,json=hwDesc,proto3" json:"hw_desc,omitempty"`
-	SwDesc               string   `protobuf:"bytes,3,opt,name=sw_desc,json=swDesc,proto3" json:"sw_desc,omitempty"`
-	SerialNum            string   `protobuf:"bytes,4,opt,name=serial_num,json=serialNum,proto3" json:"serial_num,omitempty"`
-	DpDesc               string   `protobuf:"bytes,5,opt,name=dp_desc,json=dpDesc,proto3" json:"dp_desc,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OfpDesc) Reset()         { *m = OfpDesc{} }
-func (m *OfpDesc) String() string { return proto.CompactTextString(m) }
-func (*OfpDesc) ProtoMessage()    {}
-func (*OfpDesc) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{45}
-}
-
-func (m *OfpDesc) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpDesc.Unmarshal(m, b)
-}
-func (m *OfpDesc) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpDesc.Marshal(b, m, deterministic)
-}
-func (m *OfpDesc) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpDesc.Merge(m, src)
-}
-func (m *OfpDesc) XXX_Size() int {
-	return xxx_messageInfo_OfpDesc.Size(m)
-}
-func (m *OfpDesc) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpDesc.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpDesc proto.InternalMessageInfo
-
-func (m *OfpDesc) GetMfrDesc() string {
-	if m != nil {
-		return m.MfrDesc
-	}
-	return ""
-}
-
-func (m *OfpDesc) GetHwDesc() string {
-	if m != nil {
-		return m.HwDesc
-	}
-	return ""
-}
-
-func (m *OfpDesc) GetSwDesc() string {
-	if m != nil {
-		return m.SwDesc
-	}
-	return ""
-}
-
-func (m *OfpDesc) GetSerialNum() string {
-	if m != nil {
-		return m.SerialNum
-	}
-	return ""
-}
-
-func (m *OfpDesc) GetDpDesc() string {
-	if m != nil {
-		return m.DpDesc
-	}
-	return ""
-}
-
-// Body for ofp_multipart_request of type OFPMP_FLOW.
-type OfpFlowStatsRequest struct {
-	TableId              uint32    `protobuf:"varint,1,opt,name=table_id,json=tableId,proto3" json:"table_id,omitempty"`
-	OutPort              uint32    `protobuf:"varint,2,opt,name=out_port,json=outPort,proto3" json:"out_port,omitempty"`
-	OutGroup             uint32    `protobuf:"varint,3,opt,name=out_group,json=outGroup,proto3" json:"out_group,omitempty"`
-	Cookie               uint64    `protobuf:"varint,4,opt,name=cookie,proto3" json:"cookie,omitempty"`
-	CookieMask           uint64    `protobuf:"varint,5,opt,name=cookie_mask,json=cookieMask,proto3" json:"cookie_mask,omitempty"`
-	Match                *OfpMatch `protobuf:"bytes,6,opt,name=match,proto3" json:"match,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
-	XXX_unrecognized     []byte    `json:"-"`
-	XXX_sizecache        int32     `json:"-"`
-}
-
-func (m *OfpFlowStatsRequest) Reset()         { *m = OfpFlowStatsRequest{} }
-func (m *OfpFlowStatsRequest) String() string { return proto.CompactTextString(m) }
-func (*OfpFlowStatsRequest) ProtoMessage()    {}
-func (*OfpFlowStatsRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{46}
-}
-
-func (m *OfpFlowStatsRequest) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpFlowStatsRequest.Unmarshal(m, b)
-}
-func (m *OfpFlowStatsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpFlowStatsRequest.Marshal(b, m, deterministic)
-}
-func (m *OfpFlowStatsRequest) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpFlowStatsRequest.Merge(m, src)
-}
-func (m *OfpFlowStatsRequest) XXX_Size() int {
-	return xxx_messageInfo_OfpFlowStatsRequest.Size(m)
-}
-func (m *OfpFlowStatsRequest) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpFlowStatsRequest.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpFlowStatsRequest proto.InternalMessageInfo
-
-func (m *OfpFlowStatsRequest) GetTableId() uint32 {
-	if m != nil {
-		return m.TableId
-	}
-	return 0
-}
-
-func (m *OfpFlowStatsRequest) GetOutPort() uint32 {
-	if m != nil {
-		return m.OutPort
-	}
-	return 0
-}
-
-func (m *OfpFlowStatsRequest) GetOutGroup() uint32 {
-	if m != nil {
-		return m.OutGroup
-	}
-	return 0
-}
-
-func (m *OfpFlowStatsRequest) GetCookie() uint64 {
-	if m != nil {
-		return m.Cookie
-	}
-	return 0
-}
-
-func (m *OfpFlowStatsRequest) GetCookieMask() uint64 {
-	if m != nil {
-		return m.CookieMask
-	}
-	return 0
-}
-
-func (m *OfpFlowStatsRequest) GetMatch() *OfpMatch {
-	if m != nil {
-		return m.Match
-	}
-	return nil
-}
-
-// Body of reply to OFPMP_FLOW request.
-type OfpFlowStats struct {
-	Id                   uint64            `protobuf:"varint,14,opt,name=id,proto3" json:"id,omitempty"`
-	TableId              uint32            `protobuf:"varint,1,opt,name=table_id,json=tableId,proto3" json:"table_id,omitempty"`
-	DurationSec          uint32            `protobuf:"varint,2,opt,name=duration_sec,json=durationSec,proto3" json:"duration_sec,omitempty"`
-	DurationNsec         uint32            `protobuf:"varint,3,opt,name=duration_nsec,json=durationNsec,proto3" json:"duration_nsec,omitempty"`
-	Priority             uint32            `protobuf:"varint,4,opt,name=priority,proto3" json:"priority,omitempty"`
-	IdleTimeout          uint32            `protobuf:"varint,5,opt,name=idle_timeout,json=idleTimeout,proto3" json:"idle_timeout,omitempty"`
-	HardTimeout          uint32            `protobuf:"varint,6,opt,name=hard_timeout,json=hardTimeout,proto3" json:"hard_timeout,omitempty"`
-	Flags                uint32            `protobuf:"varint,7,opt,name=flags,proto3" json:"flags,omitempty"`
-	Cookie               uint64            `protobuf:"varint,8,opt,name=cookie,proto3" json:"cookie,omitempty"`
-	PacketCount          uint64            `protobuf:"varint,9,opt,name=packet_count,json=packetCount,proto3" json:"packet_count,omitempty"`
-	ByteCount            uint64            `protobuf:"varint,10,opt,name=byte_count,json=byteCount,proto3" json:"byte_count,omitempty"`
-	Match                *OfpMatch         `protobuf:"bytes,12,opt,name=match,proto3" json:"match,omitempty"`
-	Instructions         []*OfpInstruction `protobuf:"bytes,13,rep,name=instructions,proto3" json:"instructions,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
-	XXX_unrecognized     []byte            `json:"-"`
-	XXX_sizecache        int32             `json:"-"`
-}
-
-func (m *OfpFlowStats) Reset()         { *m = OfpFlowStats{} }
-func (m *OfpFlowStats) String() string { return proto.CompactTextString(m) }
-func (*OfpFlowStats) ProtoMessage()    {}
-func (*OfpFlowStats) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{47}
-}
-
-func (m *OfpFlowStats) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpFlowStats.Unmarshal(m, b)
-}
-func (m *OfpFlowStats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpFlowStats.Marshal(b, m, deterministic)
-}
-func (m *OfpFlowStats) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpFlowStats.Merge(m, src)
-}
-func (m *OfpFlowStats) XXX_Size() int {
-	return xxx_messageInfo_OfpFlowStats.Size(m)
-}
-func (m *OfpFlowStats) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpFlowStats.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpFlowStats proto.InternalMessageInfo
-
-func (m *OfpFlowStats) GetId() uint64 {
-	if m != nil {
-		return m.Id
-	}
-	return 0
-}
-
-func (m *OfpFlowStats) GetTableId() uint32 {
-	if m != nil {
-		return m.TableId
-	}
-	return 0
-}
-
-func (m *OfpFlowStats) GetDurationSec() uint32 {
-	if m != nil {
-		return m.DurationSec
-	}
-	return 0
-}
-
-func (m *OfpFlowStats) GetDurationNsec() uint32 {
-	if m != nil {
-		return m.DurationNsec
-	}
-	return 0
-}
-
-func (m *OfpFlowStats) GetPriority() uint32 {
-	if m != nil {
-		return m.Priority
-	}
-	return 0
-}
-
-func (m *OfpFlowStats) GetIdleTimeout() uint32 {
-	if m != nil {
-		return m.IdleTimeout
-	}
-	return 0
-}
-
-func (m *OfpFlowStats) GetHardTimeout() uint32 {
-	if m != nil {
-		return m.HardTimeout
-	}
-	return 0
-}
-
-func (m *OfpFlowStats) GetFlags() uint32 {
-	if m != nil {
-		return m.Flags
-	}
-	return 0
-}
-
-func (m *OfpFlowStats) GetCookie() uint64 {
-	if m != nil {
-		return m.Cookie
-	}
-	return 0
-}
-
-func (m *OfpFlowStats) GetPacketCount() uint64 {
-	if m != nil {
-		return m.PacketCount
-	}
-	return 0
-}
-
-func (m *OfpFlowStats) GetByteCount() uint64 {
-	if m != nil {
-		return m.ByteCount
-	}
-	return 0
-}
-
-func (m *OfpFlowStats) GetMatch() *OfpMatch {
-	if m != nil {
-		return m.Match
-	}
-	return nil
-}
-
-func (m *OfpFlowStats) GetInstructions() []*OfpInstruction {
-	if m != nil {
-		return m.Instructions
-	}
-	return nil
-}
-
-// Body for ofp_multipart_request of type OFPMP_AGGREGATE.
-type OfpAggregateStatsRequest struct {
-	TableId              uint32    `protobuf:"varint,1,opt,name=table_id,json=tableId,proto3" json:"table_id,omitempty"`
-	OutPort              uint32    `protobuf:"varint,2,opt,name=out_port,json=outPort,proto3" json:"out_port,omitempty"`
-	OutGroup             uint32    `protobuf:"varint,3,opt,name=out_group,json=outGroup,proto3" json:"out_group,omitempty"`
-	Cookie               uint64    `protobuf:"varint,4,opt,name=cookie,proto3" json:"cookie,omitempty"`
-	CookieMask           uint64    `protobuf:"varint,5,opt,name=cookie_mask,json=cookieMask,proto3" json:"cookie_mask,omitempty"`
-	Match                *OfpMatch `protobuf:"bytes,6,opt,name=match,proto3" json:"match,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
-	XXX_unrecognized     []byte    `json:"-"`
-	XXX_sizecache        int32     `json:"-"`
-}
-
-func (m *OfpAggregateStatsRequest) Reset()         { *m = OfpAggregateStatsRequest{} }
-func (m *OfpAggregateStatsRequest) String() string { return proto.CompactTextString(m) }
-func (*OfpAggregateStatsRequest) ProtoMessage()    {}
-func (*OfpAggregateStatsRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{48}
-}
-
-func (m *OfpAggregateStatsRequest) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpAggregateStatsRequest.Unmarshal(m, b)
-}
-func (m *OfpAggregateStatsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpAggregateStatsRequest.Marshal(b, m, deterministic)
-}
-func (m *OfpAggregateStatsRequest) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpAggregateStatsRequest.Merge(m, src)
-}
-func (m *OfpAggregateStatsRequest) XXX_Size() int {
-	return xxx_messageInfo_OfpAggregateStatsRequest.Size(m)
-}
-func (m *OfpAggregateStatsRequest) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpAggregateStatsRequest.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpAggregateStatsRequest proto.InternalMessageInfo
-
-func (m *OfpAggregateStatsRequest) GetTableId() uint32 {
-	if m != nil {
-		return m.TableId
-	}
-	return 0
-}
-
-func (m *OfpAggregateStatsRequest) GetOutPort() uint32 {
-	if m != nil {
-		return m.OutPort
-	}
-	return 0
-}
-
-func (m *OfpAggregateStatsRequest) GetOutGroup() uint32 {
-	if m != nil {
-		return m.OutGroup
-	}
-	return 0
-}
-
-func (m *OfpAggregateStatsRequest) GetCookie() uint64 {
-	if m != nil {
-		return m.Cookie
-	}
-	return 0
-}
-
-func (m *OfpAggregateStatsRequest) GetCookieMask() uint64 {
-	if m != nil {
-		return m.CookieMask
-	}
-	return 0
-}
-
-func (m *OfpAggregateStatsRequest) GetMatch() *OfpMatch {
-	if m != nil {
-		return m.Match
-	}
-	return nil
-}
-
-// Body of reply to OFPMP_AGGREGATE request.
-type OfpAggregateStatsReply struct {
-	PacketCount          uint64   `protobuf:"varint,1,opt,name=packet_count,json=packetCount,proto3" json:"packet_count,omitempty"`
-	ByteCount            uint64   `protobuf:"varint,2,opt,name=byte_count,json=byteCount,proto3" json:"byte_count,omitempty"`
-	FlowCount            uint32   `protobuf:"varint,3,opt,name=flow_count,json=flowCount,proto3" json:"flow_count,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OfpAggregateStatsReply) Reset()         { *m = OfpAggregateStatsReply{} }
-func (m *OfpAggregateStatsReply) String() string { return proto.CompactTextString(m) }
-func (*OfpAggregateStatsReply) ProtoMessage()    {}
-func (*OfpAggregateStatsReply) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{49}
-}
-
-func (m *OfpAggregateStatsReply) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpAggregateStatsReply.Unmarshal(m, b)
-}
-func (m *OfpAggregateStatsReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpAggregateStatsReply.Marshal(b, m, deterministic)
-}
-func (m *OfpAggregateStatsReply) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpAggregateStatsReply.Merge(m, src)
-}
-func (m *OfpAggregateStatsReply) XXX_Size() int {
-	return xxx_messageInfo_OfpAggregateStatsReply.Size(m)
-}
-func (m *OfpAggregateStatsReply) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpAggregateStatsReply.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpAggregateStatsReply proto.InternalMessageInfo
-
-func (m *OfpAggregateStatsReply) GetPacketCount() uint64 {
-	if m != nil {
-		return m.PacketCount
-	}
-	return 0
-}
-
-func (m *OfpAggregateStatsReply) GetByteCount() uint64 {
-	if m != nil {
-		return m.ByteCount
-	}
-	return 0
-}
-
-func (m *OfpAggregateStatsReply) GetFlowCount() uint32 {
-	if m != nil {
-		return m.FlowCount
-	}
-	return 0
-}
-
-// Common header for all Table Feature Properties
-type OfpTableFeatureProperty struct {
-	Type OfpTableFeaturePropType `protobuf:"varint,1,opt,name=type,proto3,enum=openflow_13.OfpTableFeaturePropType" json:"type,omitempty"`
-	// Types that are valid to be assigned to Value:
-	//	*OfpTableFeatureProperty_Instructions
-	//	*OfpTableFeatureProperty_NextTables
-	//	*OfpTableFeatureProperty_Actions
-	//	*OfpTableFeatureProperty_Oxm
-	//	*OfpTableFeatureProperty_Experimenter
-	Value                isOfpTableFeatureProperty_Value `protobuf_oneof:"value"`
-	XXX_NoUnkeyedLiteral struct{}                        `json:"-"`
-	XXX_unrecognized     []byte                          `json:"-"`
-	XXX_sizecache        int32                           `json:"-"`
-}
-
-func (m *OfpTableFeatureProperty) Reset()         { *m = OfpTableFeatureProperty{} }
-func (m *OfpTableFeatureProperty) String() string { return proto.CompactTextString(m) }
-func (*OfpTableFeatureProperty) ProtoMessage()    {}
-func (*OfpTableFeatureProperty) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{50}
-}
-
-func (m *OfpTableFeatureProperty) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpTableFeatureProperty.Unmarshal(m, b)
-}
-func (m *OfpTableFeatureProperty) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpTableFeatureProperty.Marshal(b, m, deterministic)
-}
-func (m *OfpTableFeatureProperty) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpTableFeatureProperty.Merge(m, src)
-}
-func (m *OfpTableFeatureProperty) XXX_Size() int {
-	return xxx_messageInfo_OfpTableFeatureProperty.Size(m)
-}
-func (m *OfpTableFeatureProperty) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpTableFeatureProperty.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpTableFeatureProperty proto.InternalMessageInfo
-
-func (m *OfpTableFeatureProperty) GetType() OfpTableFeaturePropType {
-	if m != nil {
-		return m.Type
-	}
-	return OfpTableFeaturePropType_OFPTFPT_INSTRUCTIONS
-}
-
-type isOfpTableFeatureProperty_Value interface {
-	isOfpTableFeatureProperty_Value()
-}
-
-type OfpTableFeatureProperty_Instructions struct {
-	Instructions *OfpTableFeaturePropInstructions `protobuf:"bytes,2,opt,name=instructions,proto3,oneof"`
-}
-
-type OfpTableFeatureProperty_NextTables struct {
-	NextTables *OfpTableFeaturePropNextTables `protobuf:"bytes,3,opt,name=next_tables,json=nextTables,proto3,oneof"`
-}
-
-type OfpTableFeatureProperty_Actions struct {
-	Actions *OfpTableFeaturePropActions `protobuf:"bytes,4,opt,name=actions,proto3,oneof"`
-}
-
-type OfpTableFeatureProperty_Oxm struct {
-	Oxm *OfpTableFeaturePropOxm `protobuf:"bytes,5,opt,name=oxm,proto3,oneof"`
-}
-
-type OfpTableFeatureProperty_Experimenter struct {
-	Experimenter *OfpTableFeaturePropExperimenter `protobuf:"bytes,6,opt,name=experimenter,proto3,oneof"`
-}
-
-func (*OfpTableFeatureProperty_Instructions) isOfpTableFeatureProperty_Value() {}
-
-func (*OfpTableFeatureProperty_NextTables) isOfpTableFeatureProperty_Value() {}
-
-func (*OfpTableFeatureProperty_Actions) isOfpTableFeatureProperty_Value() {}
-
-func (*OfpTableFeatureProperty_Oxm) isOfpTableFeatureProperty_Value() {}
-
-func (*OfpTableFeatureProperty_Experimenter) isOfpTableFeatureProperty_Value() {}
-
-func (m *OfpTableFeatureProperty) GetValue() isOfpTableFeatureProperty_Value {
-	if m != nil {
-		return m.Value
-	}
-	return nil
-}
-
-func (m *OfpTableFeatureProperty) GetInstructions() *OfpTableFeaturePropInstructions {
-	if x, ok := m.GetValue().(*OfpTableFeatureProperty_Instructions); ok {
-		return x.Instructions
-	}
-	return nil
-}
-
-func (m *OfpTableFeatureProperty) GetNextTables() *OfpTableFeaturePropNextTables {
-	if x, ok := m.GetValue().(*OfpTableFeatureProperty_NextTables); ok {
-		return x.NextTables
-	}
-	return nil
-}
-
-func (m *OfpTableFeatureProperty) GetActions() *OfpTableFeaturePropActions {
-	if x, ok := m.GetValue().(*OfpTableFeatureProperty_Actions); ok {
-		return x.Actions
-	}
-	return nil
-}
-
-func (m *OfpTableFeatureProperty) GetOxm() *OfpTableFeaturePropOxm {
-	if x, ok := m.GetValue().(*OfpTableFeatureProperty_Oxm); ok {
-		return x.Oxm
-	}
-	return nil
-}
-
-func (m *OfpTableFeatureProperty) GetExperimenter() *OfpTableFeaturePropExperimenter {
-	if x, ok := m.GetValue().(*OfpTableFeatureProperty_Experimenter); ok {
-		return x.Experimenter
-	}
-	return nil
-}
-
-// XXX_OneofWrappers is for the internal use of the proto package.
-func (*OfpTableFeatureProperty) XXX_OneofWrappers() []interface{} {
-	return []interface{}{
+	file_voltha_protos_openflow_13_proto_msgTypes[50].OneofWrappers = []any{
 		(*OfpTableFeatureProperty_Instructions)(nil),
 		(*OfpTableFeatureProperty_NextTables)(nil),
 		(*OfpTableFeatureProperty_Actions)(nil),
 		(*OfpTableFeatureProperty_Oxm)(nil),
 		(*OfpTableFeatureProperty_Experimenter)(nil),
 	}
-}
-
-// Instructions property
-type OfpTableFeaturePropInstructions struct {
-	// One of OFPTFPT_INSTRUCTIONS,
-	//OFPTFPT_INSTRUCTIONS_MISS.
-	Instructions         []*OfpInstruction `protobuf:"bytes,1,rep,name=instructions,proto3" json:"instructions,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
-	XXX_unrecognized     []byte            `json:"-"`
-	XXX_sizecache        int32             `json:"-"`
-}
-
-func (m *OfpTableFeaturePropInstructions) Reset()         { *m = OfpTableFeaturePropInstructions{} }
-func (m *OfpTableFeaturePropInstructions) String() string { return proto.CompactTextString(m) }
-func (*OfpTableFeaturePropInstructions) ProtoMessage()    {}
-func (*OfpTableFeaturePropInstructions) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{51}
-}
-
-func (m *OfpTableFeaturePropInstructions) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpTableFeaturePropInstructions.Unmarshal(m, b)
-}
-func (m *OfpTableFeaturePropInstructions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpTableFeaturePropInstructions.Marshal(b, m, deterministic)
-}
-func (m *OfpTableFeaturePropInstructions) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpTableFeaturePropInstructions.Merge(m, src)
-}
-func (m *OfpTableFeaturePropInstructions) XXX_Size() int {
-	return xxx_messageInfo_OfpTableFeaturePropInstructions.Size(m)
-}
-func (m *OfpTableFeaturePropInstructions) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpTableFeaturePropInstructions.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpTableFeaturePropInstructions proto.InternalMessageInfo
-
-func (m *OfpTableFeaturePropInstructions) GetInstructions() []*OfpInstruction {
-	if m != nil {
-		return m.Instructions
-	}
-	return nil
-}
-
-// Next Tables property
-type OfpTableFeaturePropNextTables struct {
-	// One of OFPTFPT_NEXT_TABLES,
-	//OFPTFPT_NEXT_TABLES_MISS.
-	NextTableIds         []uint32 `protobuf:"varint,1,rep,packed,name=next_table_ids,json=nextTableIds,proto3" json:"next_table_ids,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OfpTableFeaturePropNextTables) Reset()         { *m = OfpTableFeaturePropNextTables{} }
-func (m *OfpTableFeaturePropNextTables) String() string { return proto.CompactTextString(m) }
-func (*OfpTableFeaturePropNextTables) ProtoMessage()    {}
-func (*OfpTableFeaturePropNextTables) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{52}
-}
-
-func (m *OfpTableFeaturePropNextTables) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpTableFeaturePropNextTables.Unmarshal(m, b)
-}
-func (m *OfpTableFeaturePropNextTables) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpTableFeaturePropNextTables.Marshal(b, m, deterministic)
-}
-func (m *OfpTableFeaturePropNextTables) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpTableFeaturePropNextTables.Merge(m, src)
-}
-func (m *OfpTableFeaturePropNextTables) XXX_Size() int {
-	return xxx_messageInfo_OfpTableFeaturePropNextTables.Size(m)
-}
-func (m *OfpTableFeaturePropNextTables) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpTableFeaturePropNextTables.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpTableFeaturePropNextTables proto.InternalMessageInfo
-
-func (m *OfpTableFeaturePropNextTables) GetNextTableIds() []uint32 {
-	if m != nil {
-		return m.NextTableIds
-	}
-	return nil
-}
-
-// Actions property
-type OfpTableFeaturePropActions struct {
-	// One of OFPTFPT_WRITE_ACTIONS,
-	//OFPTFPT_WRITE_ACTIONS_MISS,
-	//OFPTFPT_APPLY_ACTIONS,
-	//OFPTFPT_APPLY_ACTIONS_MISS.
-	Actions              []*OfpAction `protobuf:"bytes,1,rep,name=actions,proto3" json:"actions,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
-	XXX_unrecognized     []byte       `json:"-"`
-	XXX_sizecache        int32        `json:"-"`
-}
-
-func (m *OfpTableFeaturePropActions) Reset()         { *m = OfpTableFeaturePropActions{} }
-func (m *OfpTableFeaturePropActions) String() string { return proto.CompactTextString(m) }
-func (*OfpTableFeaturePropActions) ProtoMessage()    {}
-func (*OfpTableFeaturePropActions) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{53}
-}
-
-func (m *OfpTableFeaturePropActions) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpTableFeaturePropActions.Unmarshal(m, b)
-}
-func (m *OfpTableFeaturePropActions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpTableFeaturePropActions.Marshal(b, m, deterministic)
-}
-func (m *OfpTableFeaturePropActions) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpTableFeaturePropActions.Merge(m, src)
-}
-func (m *OfpTableFeaturePropActions) XXX_Size() int {
-	return xxx_messageInfo_OfpTableFeaturePropActions.Size(m)
-}
-func (m *OfpTableFeaturePropActions) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpTableFeaturePropActions.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpTableFeaturePropActions proto.InternalMessageInfo
-
-func (m *OfpTableFeaturePropActions) GetActions() []*OfpAction {
-	if m != nil {
-		return m.Actions
-	}
-	return nil
-}
-
-// Match, Wildcard or Set-Field property
-type OfpTableFeaturePropOxm struct {
-	// TODO is this a uint32???
-	OxmIds               []uint32 `protobuf:"varint,3,rep,packed,name=oxm_ids,json=oxmIds,proto3" json:"oxm_ids,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OfpTableFeaturePropOxm) Reset()         { *m = OfpTableFeaturePropOxm{} }
-func (m *OfpTableFeaturePropOxm) String() string { return proto.CompactTextString(m) }
-func (*OfpTableFeaturePropOxm) ProtoMessage()    {}
-func (*OfpTableFeaturePropOxm) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{54}
-}
-
-func (m *OfpTableFeaturePropOxm) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpTableFeaturePropOxm.Unmarshal(m, b)
-}
-func (m *OfpTableFeaturePropOxm) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpTableFeaturePropOxm.Marshal(b, m, deterministic)
-}
-func (m *OfpTableFeaturePropOxm) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpTableFeaturePropOxm.Merge(m, src)
-}
-func (m *OfpTableFeaturePropOxm) XXX_Size() int {
-	return xxx_messageInfo_OfpTableFeaturePropOxm.Size(m)
-}
-func (m *OfpTableFeaturePropOxm) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpTableFeaturePropOxm.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpTableFeaturePropOxm proto.InternalMessageInfo
-
-func (m *OfpTableFeaturePropOxm) GetOxmIds() []uint32 {
-	if m != nil {
-		return m.OxmIds
-	}
-	return nil
-}
-
-// Experimenter table feature property
-type OfpTableFeaturePropExperimenter struct {
-	// One of OFPTFPT_EXPERIMENTER,
-	//OFPTFPT_EXPERIMENTER_MISS.
-	Experimenter         uint32   `protobuf:"varint,2,opt,name=experimenter,proto3" json:"experimenter,omitempty"`
-	ExpType              uint32   `protobuf:"varint,3,opt,name=exp_type,json=expType,proto3" json:"exp_type,omitempty"`
-	ExperimenterData     []uint32 `protobuf:"varint,4,rep,packed,name=experimenter_data,json=experimenterData,proto3" json:"experimenter_data,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OfpTableFeaturePropExperimenter) Reset()         { *m = OfpTableFeaturePropExperimenter{} }
-func (m *OfpTableFeaturePropExperimenter) String() string { return proto.CompactTextString(m) }
-func (*OfpTableFeaturePropExperimenter) ProtoMessage()    {}
-func (*OfpTableFeaturePropExperimenter) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{55}
-}
-
-func (m *OfpTableFeaturePropExperimenter) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpTableFeaturePropExperimenter.Unmarshal(m, b)
-}
-func (m *OfpTableFeaturePropExperimenter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpTableFeaturePropExperimenter.Marshal(b, m, deterministic)
-}
-func (m *OfpTableFeaturePropExperimenter) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpTableFeaturePropExperimenter.Merge(m, src)
-}
-func (m *OfpTableFeaturePropExperimenter) XXX_Size() int {
-	return xxx_messageInfo_OfpTableFeaturePropExperimenter.Size(m)
-}
-func (m *OfpTableFeaturePropExperimenter) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpTableFeaturePropExperimenter.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpTableFeaturePropExperimenter proto.InternalMessageInfo
-
-func (m *OfpTableFeaturePropExperimenter) GetExperimenter() uint32 {
-	if m != nil {
-		return m.Experimenter
-	}
-	return 0
-}
-
-func (m *OfpTableFeaturePropExperimenter) GetExpType() uint32 {
-	if m != nil {
-		return m.ExpType
-	}
-	return 0
-}
-
-func (m *OfpTableFeaturePropExperimenter) GetExperimenterData() []uint32 {
-	if m != nil {
-		return m.ExperimenterData
-	}
-	return nil
-}
-
-// Body for ofp_multipart_request of type OFPMP_TABLE_FEATURES./
-// Body of reply to OFPMP_TABLE_FEATURES request.
-type OfpTableFeatures struct {
-	TableId       uint32 `protobuf:"varint,1,opt,name=table_id,json=tableId,proto3" json:"table_id,omitempty"`
-	Name          string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
-	MetadataMatch uint64 `protobuf:"varint,3,opt,name=metadata_match,json=metadataMatch,proto3" json:"metadata_match,omitempty"`
-	MetadataWrite uint64 `protobuf:"varint,4,opt,name=metadata_write,json=metadataWrite,proto3" json:"metadata_write,omitempty"`
-	Config        uint32 `protobuf:"varint,5,opt,name=config,proto3" json:"config,omitempty"`
-	MaxEntries    uint32 `protobuf:"varint,6,opt,name=max_entries,json=maxEntries,proto3" json:"max_entries,omitempty"`
-	// Table Feature Property list
-	Properties           []*OfpTableFeatureProperty `protobuf:"bytes,7,rep,name=properties,proto3" json:"properties,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                   `json:"-"`
-	XXX_unrecognized     []byte                     `json:"-"`
-	XXX_sizecache        int32                      `json:"-"`
-}
-
-func (m *OfpTableFeatures) Reset()         { *m = OfpTableFeatures{} }
-func (m *OfpTableFeatures) String() string { return proto.CompactTextString(m) }
-func (*OfpTableFeatures) ProtoMessage()    {}
-func (*OfpTableFeatures) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{56}
-}
-
-func (m *OfpTableFeatures) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpTableFeatures.Unmarshal(m, b)
-}
-func (m *OfpTableFeatures) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpTableFeatures.Marshal(b, m, deterministic)
-}
-func (m *OfpTableFeatures) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpTableFeatures.Merge(m, src)
-}
-func (m *OfpTableFeatures) XXX_Size() int {
-	return xxx_messageInfo_OfpTableFeatures.Size(m)
-}
-func (m *OfpTableFeatures) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpTableFeatures.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpTableFeatures proto.InternalMessageInfo
-
-func (m *OfpTableFeatures) GetTableId() uint32 {
-	if m != nil {
-		return m.TableId
-	}
-	return 0
-}
-
-func (m *OfpTableFeatures) GetName() string {
-	if m != nil {
-		return m.Name
-	}
-	return ""
-}
-
-func (m *OfpTableFeatures) GetMetadataMatch() uint64 {
-	if m != nil {
-		return m.MetadataMatch
-	}
-	return 0
-}
-
-func (m *OfpTableFeatures) GetMetadataWrite() uint64 {
-	if m != nil {
-		return m.MetadataWrite
-	}
-	return 0
-}
-
-func (m *OfpTableFeatures) GetConfig() uint32 {
-	if m != nil {
-		return m.Config
-	}
-	return 0
-}
-
-func (m *OfpTableFeatures) GetMaxEntries() uint32 {
-	if m != nil {
-		return m.MaxEntries
-	}
-	return 0
-}
-
-func (m *OfpTableFeatures) GetProperties() []*OfpTableFeatureProperty {
-	if m != nil {
-		return m.Properties
-	}
-	return nil
-}
-
-// Body of reply to OFPMP_TABLE request.
-type OfpTableStats struct {
-	TableId              uint32   `protobuf:"varint,1,opt,name=table_id,json=tableId,proto3" json:"table_id,omitempty"`
-	ActiveCount          uint32   `protobuf:"varint,2,opt,name=active_count,json=activeCount,proto3" json:"active_count,omitempty"`
-	LookupCount          uint64   `protobuf:"varint,3,opt,name=lookup_count,json=lookupCount,proto3" json:"lookup_count,omitempty"`
-	MatchedCount         uint64   `protobuf:"varint,4,opt,name=matched_count,json=matchedCount,proto3" json:"matched_count,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OfpTableStats) Reset()         { *m = OfpTableStats{} }
-func (m *OfpTableStats) String() string { return proto.CompactTextString(m) }
-func (*OfpTableStats) ProtoMessage()    {}
-func (*OfpTableStats) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{57}
-}
-
-func (m *OfpTableStats) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpTableStats.Unmarshal(m, b)
-}
-func (m *OfpTableStats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpTableStats.Marshal(b, m, deterministic)
-}
-func (m *OfpTableStats) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpTableStats.Merge(m, src)
-}
-func (m *OfpTableStats) XXX_Size() int {
-	return xxx_messageInfo_OfpTableStats.Size(m)
-}
-func (m *OfpTableStats) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpTableStats.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpTableStats proto.InternalMessageInfo
-
-func (m *OfpTableStats) GetTableId() uint32 {
-	if m != nil {
-		return m.TableId
-	}
-	return 0
-}
-
-func (m *OfpTableStats) GetActiveCount() uint32 {
-	if m != nil {
-		return m.ActiveCount
-	}
-	return 0
-}
-
-func (m *OfpTableStats) GetLookupCount() uint64 {
-	if m != nil {
-		return m.LookupCount
-	}
-	return 0
-}
-
-func (m *OfpTableStats) GetMatchedCount() uint64 {
-	if m != nil {
-		return m.MatchedCount
-	}
-	return 0
-}
-
-// Body for ofp_multipart_request of type OFPMP_PORT.
-type OfpPortStatsRequest struct {
-	PortNo               uint32   `protobuf:"varint,1,opt,name=port_no,json=portNo,proto3" json:"port_no,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OfpPortStatsRequest) Reset()         { *m = OfpPortStatsRequest{} }
-func (m *OfpPortStatsRequest) String() string { return proto.CompactTextString(m) }
-func (*OfpPortStatsRequest) ProtoMessage()    {}
-func (*OfpPortStatsRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{58}
-}
-
-func (m *OfpPortStatsRequest) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpPortStatsRequest.Unmarshal(m, b)
-}
-func (m *OfpPortStatsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpPortStatsRequest.Marshal(b, m, deterministic)
-}
-func (m *OfpPortStatsRequest) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpPortStatsRequest.Merge(m, src)
-}
-func (m *OfpPortStatsRequest) XXX_Size() int {
-	return xxx_messageInfo_OfpPortStatsRequest.Size(m)
-}
-func (m *OfpPortStatsRequest) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpPortStatsRequest.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpPortStatsRequest proto.InternalMessageInfo
-
-func (m *OfpPortStatsRequest) GetPortNo() uint32 {
-	if m != nil {
-		return m.PortNo
-	}
-	return 0
-}
-
-// Body of reply to OFPMP_PORT request. If a counter is unsupported, set
-// the field to all ones.
-type OfpPortStats struct {
-	PortNo               uint32   `protobuf:"varint,1,opt,name=port_no,json=portNo,proto3" json:"port_no,omitempty"`
-	RxPackets            uint64   `protobuf:"varint,2,opt,name=rx_packets,json=rxPackets,proto3" json:"rx_packets,omitempty"`
-	TxPackets            uint64   `protobuf:"varint,3,opt,name=tx_packets,json=txPackets,proto3" json:"tx_packets,omitempty"`
-	RxBytes              uint64   `protobuf:"varint,4,opt,name=rx_bytes,json=rxBytes,proto3" json:"rx_bytes,omitempty"`
-	TxBytes              uint64   `protobuf:"varint,5,opt,name=tx_bytes,json=txBytes,proto3" json:"tx_bytes,omitempty"`
-	RxDropped            uint64   `protobuf:"varint,6,opt,name=rx_dropped,json=rxDropped,proto3" json:"rx_dropped,omitempty"`
-	TxDropped            uint64   `protobuf:"varint,7,opt,name=tx_dropped,json=txDropped,proto3" json:"tx_dropped,omitempty"`
-	RxErrors             uint64   `protobuf:"varint,8,opt,name=rx_errors,json=rxErrors,proto3" json:"rx_errors,omitempty"`
-	TxErrors             uint64   `protobuf:"varint,9,opt,name=tx_errors,json=txErrors,proto3" json:"tx_errors,omitempty"`
-	RxFrameErr           uint64   `protobuf:"varint,10,opt,name=rx_frame_err,json=rxFrameErr,proto3" json:"rx_frame_err,omitempty"`
-	RxOverErr            uint64   `protobuf:"varint,11,opt,name=rx_over_err,json=rxOverErr,proto3" json:"rx_over_err,omitempty"`
-	RxCrcErr             uint64   `protobuf:"varint,12,opt,name=rx_crc_err,json=rxCrcErr,proto3" json:"rx_crc_err,omitempty"`
-	Collisions           uint64   `protobuf:"varint,13,opt,name=collisions,proto3" json:"collisions,omitempty"`
-	DurationSec          uint32   `protobuf:"varint,14,opt,name=duration_sec,json=durationSec,proto3" json:"duration_sec,omitempty"`
-	DurationNsec         uint32   `protobuf:"varint,15,opt,name=duration_nsec,json=durationNsec,proto3" json:"duration_nsec,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OfpPortStats) Reset()         { *m = OfpPortStats{} }
-func (m *OfpPortStats) String() string { return proto.CompactTextString(m) }
-func (*OfpPortStats) ProtoMessage()    {}
-func (*OfpPortStats) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{59}
-}
-
-func (m *OfpPortStats) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpPortStats.Unmarshal(m, b)
-}
-func (m *OfpPortStats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpPortStats.Marshal(b, m, deterministic)
-}
-func (m *OfpPortStats) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpPortStats.Merge(m, src)
-}
-func (m *OfpPortStats) XXX_Size() int {
-	return xxx_messageInfo_OfpPortStats.Size(m)
-}
-func (m *OfpPortStats) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpPortStats.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpPortStats proto.InternalMessageInfo
-
-func (m *OfpPortStats) GetPortNo() uint32 {
-	if m != nil {
-		return m.PortNo
-	}
-	return 0
-}
-
-func (m *OfpPortStats) GetRxPackets() uint64 {
-	if m != nil {
-		return m.RxPackets
-	}
-	return 0
-}
-
-func (m *OfpPortStats) GetTxPackets() uint64 {
-	if m != nil {
-		return m.TxPackets
-	}
-	return 0
-}
-
-func (m *OfpPortStats) GetRxBytes() uint64 {
-	if m != nil {
-		return m.RxBytes
-	}
-	return 0
-}
-
-func (m *OfpPortStats) GetTxBytes() uint64 {
-	if m != nil {
-		return m.TxBytes
-	}
-	return 0
-}
-
-func (m *OfpPortStats) GetRxDropped() uint64 {
-	if m != nil {
-		return m.RxDropped
-	}
-	return 0
-}
-
-func (m *OfpPortStats) GetTxDropped() uint64 {
-	if m != nil {
-		return m.TxDropped
-	}
-	return 0
-}
-
-func (m *OfpPortStats) GetRxErrors() uint64 {
-	if m != nil {
-		return m.RxErrors
-	}
-	return 0
-}
-
-func (m *OfpPortStats) GetTxErrors() uint64 {
-	if m != nil {
-		return m.TxErrors
-	}
-	return 0
-}
-
-func (m *OfpPortStats) GetRxFrameErr() uint64 {
-	if m != nil {
-		return m.RxFrameErr
-	}
-	return 0
-}
-
-func (m *OfpPortStats) GetRxOverErr() uint64 {
-	if m != nil {
-		return m.RxOverErr
-	}
-	return 0
-}
-
-func (m *OfpPortStats) GetRxCrcErr() uint64 {
-	if m != nil {
-		return m.RxCrcErr
-	}
-	return 0
-}
-
-func (m *OfpPortStats) GetCollisions() uint64 {
-	if m != nil {
-		return m.Collisions
-	}
-	return 0
-}
-
-func (m *OfpPortStats) GetDurationSec() uint32 {
-	if m != nil {
-		return m.DurationSec
-	}
-	return 0
-}
-
-func (m *OfpPortStats) GetDurationNsec() uint32 {
-	if m != nil {
-		return m.DurationNsec
-	}
-	return 0
-}
-
-// Body of OFPMP_GROUP request.
-type OfpGroupStatsRequest struct {
-	GroupId              uint32   `protobuf:"varint,1,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OfpGroupStatsRequest) Reset()         { *m = OfpGroupStatsRequest{} }
-func (m *OfpGroupStatsRequest) String() string { return proto.CompactTextString(m) }
-func (*OfpGroupStatsRequest) ProtoMessage()    {}
-func (*OfpGroupStatsRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{60}
-}
-
-func (m *OfpGroupStatsRequest) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpGroupStatsRequest.Unmarshal(m, b)
-}
-func (m *OfpGroupStatsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpGroupStatsRequest.Marshal(b, m, deterministic)
-}
-func (m *OfpGroupStatsRequest) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpGroupStatsRequest.Merge(m, src)
-}
-func (m *OfpGroupStatsRequest) XXX_Size() int {
-	return xxx_messageInfo_OfpGroupStatsRequest.Size(m)
-}
-func (m *OfpGroupStatsRequest) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpGroupStatsRequest.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpGroupStatsRequest proto.InternalMessageInfo
-
-func (m *OfpGroupStatsRequest) GetGroupId() uint32 {
-	if m != nil {
-		return m.GroupId
-	}
-	return 0
-}
-
-// Used in group stats replies.
-type OfpBucketCounter struct {
-	PacketCount          uint64   `protobuf:"varint,1,opt,name=packet_count,json=packetCount,proto3" json:"packet_count,omitempty"`
-	ByteCount            uint64   `protobuf:"varint,2,opt,name=byte_count,json=byteCount,proto3" json:"byte_count,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OfpBucketCounter) Reset()         { *m = OfpBucketCounter{} }
-func (m *OfpBucketCounter) String() string { return proto.CompactTextString(m) }
-func (*OfpBucketCounter) ProtoMessage()    {}
-func (*OfpBucketCounter) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{61}
-}
-
-func (m *OfpBucketCounter) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpBucketCounter.Unmarshal(m, b)
-}
-func (m *OfpBucketCounter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpBucketCounter.Marshal(b, m, deterministic)
-}
-func (m *OfpBucketCounter) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpBucketCounter.Merge(m, src)
-}
-func (m *OfpBucketCounter) XXX_Size() int {
-	return xxx_messageInfo_OfpBucketCounter.Size(m)
-}
-func (m *OfpBucketCounter) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpBucketCounter.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpBucketCounter proto.InternalMessageInfo
-
-func (m *OfpBucketCounter) GetPacketCount() uint64 {
-	if m != nil {
-		return m.PacketCount
-	}
-	return 0
-}
-
-func (m *OfpBucketCounter) GetByteCount() uint64 {
-	if m != nil {
-		return m.ByteCount
-	}
-	return 0
-}
-
-// Body of reply to OFPMP_GROUP request.
-type OfpGroupStats struct {
-	GroupId              uint32              `protobuf:"varint,1,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
-	RefCount             uint32              `protobuf:"varint,2,opt,name=ref_count,json=refCount,proto3" json:"ref_count,omitempty"`
-	PacketCount          uint64              `protobuf:"varint,3,opt,name=packet_count,json=packetCount,proto3" json:"packet_count,omitempty"`
-	ByteCount            uint64              `protobuf:"varint,4,opt,name=byte_count,json=byteCount,proto3" json:"byte_count,omitempty"`
-	DurationSec          uint32              `protobuf:"varint,5,opt,name=duration_sec,json=durationSec,proto3" json:"duration_sec,omitempty"`
-	DurationNsec         uint32              `protobuf:"varint,6,opt,name=duration_nsec,json=durationNsec,proto3" json:"duration_nsec,omitempty"`
-	BucketStats          []*OfpBucketCounter `protobuf:"bytes,7,rep,name=bucket_stats,json=bucketStats,proto3" json:"bucket_stats,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
-	XXX_unrecognized     []byte              `json:"-"`
-	XXX_sizecache        int32               `json:"-"`
-}
-
-func (m *OfpGroupStats) Reset()         { *m = OfpGroupStats{} }
-func (m *OfpGroupStats) String() string { return proto.CompactTextString(m) }
-func (*OfpGroupStats) ProtoMessage()    {}
-func (*OfpGroupStats) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{62}
-}
-
-func (m *OfpGroupStats) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpGroupStats.Unmarshal(m, b)
-}
-func (m *OfpGroupStats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpGroupStats.Marshal(b, m, deterministic)
-}
-func (m *OfpGroupStats) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpGroupStats.Merge(m, src)
-}
-func (m *OfpGroupStats) XXX_Size() int {
-	return xxx_messageInfo_OfpGroupStats.Size(m)
-}
-func (m *OfpGroupStats) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpGroupStats.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpGroupStats proto.InternalMessageInfo
-
-func (m *OfpGroupStats) GetGroupId() uint32 {
-	if m != nil {
-		return m.GroupId
-	}
-	return 0
-}
-
-func (m *OfpGroupStats) GetRefCount() uint32 {
-	if m != nil {
-		return m.RefCount
-	}
-	return 0
-}
-
-func (m *OfpGroupStats) GetPacketCount() uint64 {
-	if m != nil {
-		return m.PacketCount
-	}
-	return 0
-}
-
-func (m *OfpGroupStats) GetByteCount() uint64 {
-	if m != nil {
-		return m.ByteCount
-	}
-	return 0
-}
-
-func (m *OfpGroupStats) GetDurationSec() uint32 {
-	if m != nil {
-		return m.DurationSec
-	}
-	return 0
-}
-
-func (m *OfpGroupStats) GetDurationNsec() uint32 {
-	if m != nil {
-		return m.DurationNsec
-	}
-	return 0
-}
-
-func (m *OfpGroupStats) GetBucketStats() []*OfpBucketCounter {
-	if m != nil {
-		return m.BucketStats
-	}
-	return nil
-}
-
-// Body of reply to OFPMP_GROUP_DESC request.
-type OfpGroupDesc struct {
-	Type                 OfpGroupType `protobuf:"varint,1,opt,name=type,proto3,enum=openflow_13.OfpGroupType" json:"type,omitempty"`
-	GroupId              uint32       `protobuf:"varint,2,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
-	Buckets              []*OfpBucket `protobuf:"bytes,3,rep,name=buckets,proto3" json:"buckets,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
-	XXX_unrecognized     []byte       `json:"-"`
-	XXX_sizecache        int32        `json:"-"`
-}
-
-func (m *OfpGroupDesc) Reset()         { *m = OfpGroupDesc{} }
-func (m *OfpGroupDesc) String() string { return proto.CompactTextString(m) }
-func (*OfpGroupDesc) ProtoMessage()    {}
-func (*OfpGroupDesc) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{63}
-}
-
-func (m *OfpGroupDesc) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpGroupDesc.Unmarshal(m, b)
-}
-func (m *OfpGroupDesc) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpGroupDesc.Marshal(b, m, deterministic)
-}
-func (m *OfpGroupDesc) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpGroupDesc.Merge(m, src)
-}
-func (m *OfpGroupDesc) XXX_Size() int {
-	return xxx_messageInfo_OfpGroupDesc.Size(m)
-}
-func (m *OfpGroupDesc) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpGroupDesc.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpGroupDesc proto.InternalMessageInfo
-
-func (m *OfpGroupDesc) GetType() OfpGroupType {
-	if m != nil {
-		return m.Type
-	}
-	return OfpGroupType_OFPGT_ALL
-}
-
-func (m *OfpGroupDesc) GetGroupId() uint32 {
-	if m != nil {
-		return m.GroupId
-	}
-	return 0
-}
-
-func (m *OfpGroupDesc) GetBuckets() []*OfpBucket {
-	if m != nil {
-		return m.Buckets
-	}
-	return nil
-}
-
-type OfpGroupEntry struct {
-	Desc                 *OfpGroupDesc  `protobuf:"bytes,1,opt,name=desc,proto3" json:"desc,omitempty"`
-	Stats                *OfpGroupStats `protobuf:"bytes,2,opt,name=stats,proto3" json:"stats,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
-	XXX_unrecognized     []byte         `json:"-"`
-	XXX_sizecache        int32          `json:"-"`
-}
-
-func (m *OfpGroupEntry) Reset()         { *m = OfpGroupEntry{} }
-func (m *OfpGroupEntry) String() string { return proto.CompactTextString(m) }
-func (*OfpGroupEntry) ProtoMessage()    {}
-func (*OfpGroupEntry) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{64}
-}
-
-func (m *OfpGroupEntry) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpGroupEntry.Unmarshal(m, b)
-}
-func (m *OfpGroupEntry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpGroupEntry.Marshal(b, m, deterministic)
-}
-func (m *OfpGroupEntry) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpGroupEntry.Merge(m, src)
-}
-func (m *OfpGroupEntry) XXX_Size() int {
-	return xxx_messageInfo_OfpGroupEntry.Size(m)
-}
-func (m *OfpGroupEntry) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpGroupEntry.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpGroupEntry proto.InternalMessageInfo
-
-func (m *OfpGroupEntry) GetDesc() *OfpGroupDesc {
-	if m != nil {
-		return m.Desc
-	}
-	return nil
-}
-
-func (m *OfpGroupEntry) GetStats() *OfpGroupStats {
-	if m != nil {
-		return m.Stats
-	}
-	return nil
-}
-
-// Body of reply to OFPMP_GROUP_FEATURES request. Group features.
-type OfpGroupFeatures struct {
-	Types                uint32   `protobuf:"varint,1,opt,name=types,proto3" json:"types,omitempty"`
-	Capabilities         uint32   `protobuf:"varint,2,opt,name=capabilities,proto3" json:"capabilities,omitempty"`
-	MaxGroups            []uint32 `protobuf:"varint,3,rep,packed,name=max_groups,json=maxGroups,proto3" json:"max_groups,omitempty"`
-	Actions              []uint32 `protobuf:"varint,4,rep,packed,name=actions,proto3" json:"actions,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OfpGroupFeatures) Reset()         { *m = OfpGroupFeatures{} }
-func (m *OfpGroupFeatures) String() string { return proto.CompactTextString(m) }
-func (*OfpGroupFeatures) ProtoMessage()    {}
-func (*OfpGroupFeatures) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{65}
-}
-
-func (m *OfpGroupFeatures) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpGroupFeatures.Unmarshal(m, b)
-}
-func (m *OfpGroupFeatures) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpGroupFeatures.Marshal(b, m, deterministic)
-}
-func (m *OfpGroupFeatures) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpGroupFeatures.Merge(m, src)
-}
-func (m *OfpGroupFeatures) XXX_Size() int {
-	return xxx_messageInfo_OfpGroupFeatures.Size(m)
-}
-func (m *OfpGroupFeatures) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpGroupFeatures.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpGroupFeatures proto.InternalMessageInfo
-
-func (m *OfpGroupFeatures) GetTypes() uint32 {
-	if m != nil {
-		return m.Types
-	}
-	return 0
-}
-
-func (m *OfpGroupFeatures) GetCapabilities() uint32 {
-	if m != nil {
-		return m.Capabilities
-	}
-	return 0
-}
-
-func (m *OfpGroupFeatures) GetMaxGroups() []uint32 {
-	if m != nil {
-		return m.MaxGroups
-	}
-	return nil
-}
-
-func (m *OfpGroupFeatures) GetActions() []uint32 {
-	if m != nil {
-		return m.Actions
-	}
-	return nil
-}
-
-// Body of OFPMP_METER and OFPMP_METER_CONFIG requests.
-type OfpMeterMultipartRequest struct {
-	MeterId              uint32   `protobuf:"varint,1,opt,name=meter_id,json=meterId,proto3" json:"meter_id,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OfpMeterMultipartRequest) Reset()         { *m = OfpMeterMultipartRequest{} }
-func (m *OfpMeterMultipartRequest) String() string { return proto.CompactTextString(m) }
-func (*OfpMeterMultipartRequest) ProtoMessage()    {}
-func (*OfpMeterMultipartRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{66}
-}
-
-func (m *OfpMeterMultipartRequest) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpMeterMultipartRequest.Unmarshal(m, b)
-}
-func (m *OfpMeterMultipartRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpMeterMultipartRequest.Marshal(b, m, deterministic)
-}
-func (m *OfpMeterMultipartRequest) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpMeterMultipartRequest.Merge(m, src)
-}
-func (m *OfpMeterMultipartRequest) XXX_Size() int {
-	return xxx_messageInfo_OfpMeterMultipartRequest.Size(m)
-}
-func (m *OfpMeterMultipartRequest) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpMeterMultipartRequest.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpMeterMultipartRequest proto.InternalMessageInfo
-
-func (m *OfpMeterMultipartRequest) GetMeterId() uint32 {
-	if m != nil {
-		return m.MeterId
-	}
-	return 0
-}
-
-// Statistics for each meter band
-type OfpMeterBandStats struct {
-	PacketBandCount      uint64   `protobuf:"varint,1,opt,name=packet_band_count,json=packetBandCount,proto3" json:"packet_band_count,omitempty"`
-	ByteBandCount        uint64   `protobuf:"varint,2,opt,name=byte_band_count,json=byteBandCount,proto3" json:"byte_band_count,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OfpMeterBandStats) Reset()         { *m = OfpMeterBandStats{} }
-func (m *OfpMeterBandStats) String() string { return proto.CompactTextString(m) }
-func (*OfpMeterBandStats) ProtoMessage()    {}
-func (*OfpMeterBandStats) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{67}
-}
-
-func (m *OfpMeterBandStats) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpMeterBandStats.Unmarshal(m, b)
-}
-func (m *OfpMeterBandStats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpMeterBandStats.Marshal(b, m, deterministic)
-}
-func (m *OfpMeterBandStats) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpMeterBandStats.Merge(m, src)
-}
-func (m *OfpMeterBandStats) XXX_Size() int {
-	return xxx_messageInfo_OfpMeterBandStats.Size(m)
-}
-func (m *OfpMeterBandStats) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpMeterBandStats.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpMeterBandStats proto.InternalMessageInfo
-
-func (m *OfpMeterBandStats) GetPacketBandCount() uint64 {
-	if m != nil {
-		return m.PacketBandCount
-	}
-	return 0
-}
-
-func (m *OfpMeterBandStats) GetByteBandCount() uint64 {
-	if m != nil {
-		return m.ByteBandCount
-	}
-	return 0
-}
-
-// Body of reply to OFPMP_METER request. Meter statistics.
-type OfpMeterStats struct {
-	MeterId              uint32               `protobuf:"varint,1,opt,name=meter_id,json=meterId,proto3" json:"meter_id,omitempty"`
-	FlowCount            uint32               `protobuf:"varint,2,opt,name=flow_count,json=flowCount,proto3" json:"flow_count,omitempty"`
-	PacketInCount        uint64               `protobuf:"varint,3,opt,name=packet_in_count,json=packetInCount,proto3" json:"packet_in_count,omitempty"`
-	ByteInCount          uint64               `protobuf:"varint,4,opt,name=byte_in_count,json=byteInCount,proto3" json:"byte_in_count,omitempty"`
-	DurationSec          uint32               `protobuf:"varint,5,opt,name=duration_sec,json=durationSec,proto3" json:"duration_sec,omitempty"`
-	DurationNsec         uint32               `protobuf:"varint,6,opt,name=duration_nsec,json=durationNsec,proto3" json:"duration_nsec,omitempty"`
-	BandStats            []*OfpMeterBandStats `protobuf:"bytes,7,rep,name=band_stats,json=bandStats,proto3" json:"band_stats,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
-	XXX_unrecognized     []byte               `json:"-"`
-	XXX_sizecache        int32                `json:"-"`
-}
-
-func (m *OfpMeterStats) Reset()         { *m = OfpMeterStats{} }
-func (m *OfpMeterStats) String() string { return proto.CompactTextString(m) }
-func (*OfpMeterStats) ProtoMessage()    {}
-func (*OfpMeterStats) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{68}
-}
-
-func (m *OfpMeterStats) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpMeterStats.Unmarshal(m, b)
-}
-func (m *OfpMeterStats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpMeterStats.Marshal(b, m, deterministic)
-}
-func (m *OfpMeterStats) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpMeterStats.Merge(m, src)
-}
-func (m *OfpMeterStats) XXX_Size() int {
-	return xxx_messageInfo_OfpMeterStats.Size(m)
-}
-func (m *OfpMeterStats) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpMeterStats.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpMeterStats proto.InternalMessageInfo
-
-func (m *OfpMeterStats) GetMeterId() uint32 {
-	if m != nil {
-		return m.MeterId
-	}
-	return 0
-}
-
-func (m *OfpMeterStats) GetFlowCount() uint32 {
-	if m != nil {
-		return m.FlowCount
-	}
-	return 0
-}
-
-func (m *OfpMeterStats) GetPacketInCount() uint64 {
-	if m != nil {
-		return m.PacketInCount
-	}
-	return 0
-}
-
-func (m *OfpMeterStats) GetByteInCount() uint64 {
-	if m != nil {
-		return m.ByteInCount
-	}
-	return 0
-}
-
-func (m *OfpMeterStats) GetDurationSec() uint32 {
-	if m != nil {
-		return m.DurationSec
-	}
-	return 0
-}
-
-func (m *OfpMeterStats) GetDurationNsec() uint32 {
-	if m != nil {
-		return m.DurationNsec
-	}
-	return 0
-}
-
-func (m *OfpMeterStats) GetBandStats() []*OfpMeterBandStats {
-	if m != nil {
-		return m.BandStats
-	}
-	return nil
-}
-
-// Body of reply to OFPMP_METER_CONFIG request. Meter configuration.
-type OfpMeterConfig struct {
-	Flags                uint32                `protobuf:"varint,1,opt,name=flags,proto3" json:"flags,omitempty"`
-	MeterId              uint32                `protobuf:"varint,2,opt,name=meter_id,json=meterId,proto3" json:"meter_id,omitempty"`
-	Bands                []*OfpMeterBandHeader `protobuf:"bytes,3,rep,name=bands,proto3" json:"bands,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
-	XXX_unrecognized     []byte                `json:"-"`
-	XXX_sizecache        int32                 `json:"-"`
-}
-
-func (m *OfpMeterConfig) Reset()         { *m = OfpMeterConfig{} }
-func (m *OfpMeterConfig) String() string { return proto.CompactTextString(m) }
-func (*OfpMeterConfig) ProtoMessage()    {}
-func (*OfpMeterConfig) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{69}
-}
-
-func (m *OfpMeterConfig) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpMeterConfig.Unmarshal(m, b)
-}
-func (m *OfpMeterConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpMeterConfig.Marshal(b, m, deterministic)
-}
-func (m *OfpMeterConfig) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpMeterConfig.Merge(m, src)
-}
-func (m *OfpMeterConfig) XXX_Size() int {
-	return xxx_messageInfo_OfpMeterConfig.Size(m)
-}
-func (m *OfpMeterConfig) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpMeterConfig.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpMeterConfig proto.InternalMessageInfo
-
-func (m *OfpMeterConfig) GetFlags() uint32 {
-	if m != nil {
-		return m.Flags
-	}
-	return 0
-}
-
-func (m *OfpMeterConfig) GetMeterId() uint32 {
-	if m != nil {
-		return m.MeterId
-	}
-	return 0
-}
-
-func (m *OfpMeterConfig) GetBands() []*OfpMeterBandHeader {
-	if m != nil {
-		return m.Bands
-	}
-	return nil
-}
-
-// Body of reply to OFPMP_METER_FEATURES request. Meter features.
-type OfpMeterFeatures struct {
-	MaxMeter             uint32   `protobuf:"varint,1,opt,name=max_meter,json=maxMeter,proto3" json:"max_meter,omitempty"`
-	BandTypes            uint32   `protobuf:"varint,2,opt,name=band_types,json=bandTypes,proto3" json:"band_types,omitempty"`
-	Capabilities         uint32   `protobuf:"varint,3,opt,name=capabilities,proto3" json:"capabilities,omitempty"`
-	MaxBands             uint32   `protobuf:"varint,4,opt,name=max_bands,json=maxBands,proto3" json:"max_bands,omitempty"`
-	MaxColor             uint32   `protobuf:"varint,5,opt,name=max_color,json=maxColor,proto3" json:"max_color,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OfpMeterFeatures) Reset()         { *m = OfpMeterFeatures{} }
-func (m *OfpMeterFeatures) String() string { return proto.CompactTextString(m) }
-func (*OfpMeterFeatures) ProtoMessage()    {}
-func (*OfpMeterFeatures) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{70}
-}
-
-func (m *OfpMeterFeatures) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpMeterFeatures.Unmarshal(m, b)
-}
-func (m *OfpMeterFeatures) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpMeterFeatures.Marshal(b, m, deterministic)
-}
-func (m *OfpMeterFeatures) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpMeterFeatures.Merge(m, src)
-}
-func (m *OfpMeterFeatures) XXX_Size() int {
-	return xxx_messageInfo_OfpMeterFeatures.Size(m)
-}
-func (m *OfpMeterFeatures) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpMeterFeatures.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpMeterFeatures proto.InternalMessageInfo
-
-func (m *OfpMeterFeatures) GetMaxMeter() uint32 {
-	if m != nil {
-		return m.MaxMeter
-	}
-	return 0
-}
-
-func (m *OfpMeterFeatures) GetBandTypes() uint32 {
-	if m != nil {
-		return m.BandTypes
-	}
-	return 0
-}
-
-func (m *OfpMeterFeatures) GetCapabilities() uint32 {
-	if m != nil {
-		return m.Capabilities
-	}
-	return 0
-}
-
-func (m *OfpMeterFeatures) GetMaxBands() uint32 {
-	if m != nil {
-		return m.MaxBands
-	}
-	return 0
-}
-
-func (m *OfpMeterFeatures) GetMaxColor() uint32 {
-	if m != nil {
-		return m.MaxColor
-	}
-	return 0
-}
-
-type OfpMeterEntry struct {
-	Config               *OfpMeterConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
-	Stats                *OfpMeterStats  `protobuf:"bytes,2,opt,name=stats,proto3" json:"stats,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
-	XXX_unrecognized     []byte          `json:"-"`
-	XXX_sizecache        int32           `json:"-"`
-}
-
-func (m *OfpMeterEntry) Reset()         { *m = OfpMeterEntry{} }
-func (m *OfpMeterEntry) String() string { return proto.CompactTextString(m) }
-func (*OfpMeterEntry) ProtoMessage()    {}
-func (*OfpMeterEntry) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{71}
-}
-
-func (m *OfpMeterEntry) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpMeterEntry.Unmarshal(m, b)
-}
-func (m *OfpMeterEntry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpMeterEntry.Marshal(b, m, deterministic)
-}
-func (m *OfpMeterEntry) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpMeterEntry.Merge(m, src)
-}
-func (m *OfpMeterEntry) XXX_Size() int {
-	return xxx_messageInfo_OfpMeterEntry.Size(m)
-}
-func (m *OfpMeterEntry) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpMeterEntry.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpMeterEntry proto.InternalMessageInfo
-
-func (m *OfpMeterEntry) GetConfig() *OfpMeterConfig {
-	if m != nil {
-		return m.Config
-	}
-	return nil
-}
-
-func (m *OfpMeterEntry) GetStats() *OfpMeterStats {
-	if m != nil {
-		return m.Stats
-	}
-	return nil
-}
-
-// Body for ofp_multipart_request/reply of type OFPMP_EXPERIMENTER.
-type OfpExperimenterMultipartHeader struct {
-	Experimenter         uint32   `protobuf:"varint,1,opt,name=experimenter,proto3" json:"experimenter,omitempty"`
-	ExpType              uint32   `protobuf:"varint,2,opt,name=exp_type,json=expType,proto3" json:"exp_type,omitempty"`
-	Data                 []byte   `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OfpExperimenterMultipartHeader) Reset()         { *m = OfpExperimenterMultipartHeader{} }
-func (m *OfpExperimenterMultipartHeader) String() string { return proto.CompactTextString(m) }
-func (*OfpExperimenterMultipartHeader) ProtoMessage()    {}
-func (*OfpExperimenterMultipartHeader) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{72}
-}
-
-func (m *OfpExperimenterMultipartHeader) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpExperimenterMultipartHeader.Unmarshal(m, b)
-}
-func (m *OfpExperimenterMultipartHeader) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpExperimenterMultipartHeader.Marshal(b, m, deterministic)
-}
-func (m *OfpExperimenterMultipartHeader) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpExperimenterMultipartHeader.Merge(m, src)
-}
-func (m *OfpExperimenterMultipartHeader) XXX_Size() int {
-	return xxx_messageInfo_OfpExperimenterMultipartHeader.Size(m)
-}
-func (m *OfpExperimenterMultipartHeader) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpExperimenterMultipartHeader.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpExperimenterMultipartHeader proto.InternalMessageInfo
-
-func (m *OfpExperimenterMultipartHeader) GetExperimenter() uint32 {
-	if m != nil {
-		return m.Experimenter
-	}
-	return 0
-}
-
-func (m *OfpExperimenterMultipartHeader) GetExpType() uint32 {
-	if m != nil {
-		return m.ExpType
-	}
-	return 0
-}
-
-func (m *OfpExperimenterMultipartHeader) GetData() []byte {
-	if m != nil {
-		return m.Data
-	}
-	return nil
-}
-
-// Experimenter extension.
-type OfpExperimenterHeader struct {
-	//ofp_header header;  /* Type OFPT_EXPERIMENTER. */
-	Experimenter         uint32   `protobuf:"varint,1,opt,name=experimenter,proto3" json:"experimenter,omitempty"`
-	ExpType              uint32   `protobuf:"varint,2,opt,name=exp_type,json=expType,proto3" json:"exp_type,omitempty"`
-	Data                 []byte   `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OfpExperimenterHeader) Reset()         { *m = OfpExperimenterHeader{} }
-func (m *OfpExperimenterHeader) String() string { return proto.CompactTextString(m) }
-func (*OfpExperimenterHeader) ProtoMessage()    {}
-func (*OfpExperimenterHeader) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{73}
-}
-
-func (m *OfpExperimenterHeader) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpExperimenterHeader.Unmarshal(m, b)
-}
-func (m *OfpExperimenterHeader) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpExperimenterHeader.Marshal(b, m, deterministic)
-}
-func (m *OfpExperimenterHeader) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpExperimenterHeader.Merge(m, src)
-}
-func (m *OfpExperimenterHeader) XXX_Size() int {
-	return xxx_messageInfo_OfpExperimenterHeader.Size(m)
-}
-func (m *OfpExperimenterHeader) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpExperimenterHeader.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpExperimenterHeader proto.InternalMessageInfo
-
-func (m *OfpExperimenterHeader) GetExperimenter() uint32 {
-	if m != nil {
-		return m.Experimenter
-	}
-	return 0
-}
-
-func (m *OfpExperimenterHeader) GetExpType() uint32 {
-	if m != nil {
-		return m.ExpType
-	}
-	return 0
-}
-
-func (m *OfpExperimenterHeader) GetData() []byte {
-	if m != nil {
-		return m.Data
-	}
-	return nil
-}
-
-// Common description for a queue.
-type OfpQueuePropHeader struct {
-	Property             uint32   `protobuf:"varint,1,opt,name=property,proto3" json:"property,omitempty"`
-	Len                  uint32   `protobuf:"varint,2,opt,name=len,proto3" json:"len,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OfpQueuePropHeader) Reset()         { *m = OfpQueuePropHeader{} }
-func (m *OfpQueuePropHeader) String() string { return proto.CompactTextString(m) }
-func (*OfpQueuePropHeader) ProtoMessage()    {}
-func (*OfpQueuePropHeader) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{74}
-}
-
-func (m *OfpQueuePropHeader) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpQueuePropHeader.Unmarshal(m, b)
-}
-func (m *OfpQueuePropHeader) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpQueuePropHeader.Marshal(b, m, deterministic)
-}
-func (m *OfpQueuePropHeader) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpQueuePropHeader.Merge(m, src)
-}
-func (m *OfpQueuePropHeader) XXX_Size() int {
-	return xxx_messageInfo_OfpQueuePropHeader.Size(m)
-}
-func (m *OfpQueuePropHeader) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpQueuePropHeader.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpQueuePropHeader proto.InternalMessageInfo
-
-func (m *OfpQueuePropHeader) GetProperty() uint32 {
-	if m != nil {
-		return m.Property
-	}
-	return 0
-}
-
-func (m *OfpQueuePropHeader) GetLen() uint32 {
-	if m != nil {
-		return m.Len
-	}
-	return 0
-}
-
-// Min-Rate queue property description.
-type OfpQueuePropMinRate struct {
-	PropHeader           *OfpQueuePropHeader `protobuf:"bytes,1,opt,name=prop_header,json=propHeader,proto3" json:"prop_header,omitempty"`
-	Rate                 uint32              `protobuf:"varint,2,opt,name=rate,proto3" json:"rate,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
-	XXX_unrecognized     []byte              `json:"-"`
-	XXX_sizecache        int32               `json:"-"`
-}
-
-func (m *OfpQueuePropMinRate) Reset()         { *m = OfpQueuePropMinRate{} }
-func (m *OfpQueuePropMinRate) String() string { return proto.CompactTextString(m) }
-func (*OfpQueuePropMinRate) ProtoMessage()    {}
-func (*OfpQueuePropMinRate) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{75}
-}
-
-func (m *OfpQueuePropMinRate) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpQueuePropMinRate.Unmarshal(m, b)
-}
-func (m *OfpQueuePropMinRate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpQueuePropMinRate.Marshal(b, m, deterministic)
-}
-func (m *OfpQueuePropMinRate) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpQueuePropMinRate.Merge(m, src)
-}
-func (m *OfpQueuePropMinRate) XXX_Size() int {
-	return xxx_messageInfo_OfpQueuePropMinRate.Size(m)
-}
-func (m *OfpQueuePropMinRate) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpQueuePropMinRate.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpQueuePropMinRate proto.InternalMessageInfo
-
-func (m *OfpQueuePropMinRate) GetPropHeader() *OfpQueuePropHeader {
-	if m != nil {
-		return m.PropHeader
-	}
-	return nil
-}
-
-func (m *OfpQueuePropMinRate) GetRate() uint32 {
-	if m != nil {
-		return m.Rate
-	}
-	return 0
-}
-
-// Max-Rate queue property description.
-type OfpQueuePropMaxRate struct {
-	PropHeader           *OfpQueuePropHeader `protobuf:"bytes,1,opt,name=prop_header,json=propHeader,proto3" json:"prop_header,omitempty"`
-	Rate                 uint32              `protobuf:"varint,2,opt,name=rate,proto3" json:"rate,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
-	XXX_unrecognized     []byte              `json:"-"`
-	XXX_sizecache        int32               `json:"-"`
-}
-
-func (m *OfpQueuePropMaxRate) Reset()         { *m = OfpQueuePropMaxRate{} }
-func (m *OfpQueuePropMaxRate) String() string { return proto.CompactTextString(m) }
-func (*OfpQueuePropMaxRate) ProtoMessage()    {}
-func (*OfpQueuePropMaxRate) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{76}
-}
-
-func (m *OfpQueuePropMaxRate) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpQueuePropMaxRate.Unmarshal(m, b)
-}
-func (m *OfpQueuePropMaxRate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpQueuePropMaxRate.Marshal(b, m, deterministic)
-}
-func (m *OfpQueuePropMaxRate) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpQueuePropMaxRate.Merge(m, src)
-}
-func (m *OfpQueuePropMaxRate) XXX_Size() int {
-	return xxx_messageInfo_OfpQueuePropMaxRate.Size(m)
-}
-func (m *OfpQueuePropMaxRate) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpQueuePropMaxRate.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpQueuePropMaxRate proto.InternalMessageInfo
-
-func (m *OfpQueuePropMaxRate) GetPropHeader() *OfpQueuePropHeader {
-	if m != nil {
-		return m.PropHeader
-	}
-	return nil
-}
-
-func (m *OfpQueuePropMaxRate) GetRate() uint32 {
-	if m != nil {
-		return m.Rate
-	}
-	return 0
-}
-
-// Experimenter queue property description.
-type OfpQueuePropExperimenter struct {
-	PropHeader           *OfpQueuePropHeader `protobuf:"bytes,1,opt,name=prop_header,json=propHeader,proto3" json:"prop_header,omitempty"`
-	Experimenter         uint32              `protobuf:"varint,2,opt,name=experimenter,proto3" json:"experimenter,omitempty"`
-	Data                 []byte              `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
-	XXX_unrecognized     []byte              `json:"-"`
-	XXX_sizecache        int32               `json:"-"`
-}
-
-func (m *OfpQueuePropExperimenter) Reset()         { *m = OfpQueuePropExperimenter{} }
-func (m *OfpQueuePropExperimenter) String() string { return proto.CompactTextString(m) }
-func (*OfpQueuePropExperimenter) ProtoMessage()    {}
-func (*OfpQueuePropExperimenter) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{77}
-}
-
-func (m *OfpQueuePropExperimenter) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpQueuePropExperimenter.Unmarshal(m, b)
-}
-func (m *OfpQueuePropExperimenter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpQueuePropExperimenter.Marshal(b, m, deterministic)
-}
-func (m *OfpQueuePropExperimenter) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpQueuePropExperimenter.Merge(m, src)
-}
-func (m *OfpQueuePropExperimenter) XXX_Size() int {
-	return xxx_messageInfo_OfpQueuePropExperimenter.Size(m)
-}
-func (m *OfpQueuePropExperimenter) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpQueuePropExperimenter.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpQueuePropExperimenter proto.InternalMessageInfo
-
-func (m *OfpQueuePropExperimenter) GetPropHeader() *OfpQueuePropHeader {
-	if m != nil {
-		return m.PropHeader
-	}
-	return nil
-}
-
-func (m *OfpQueuePropExperimenter) GetExperimenter() uint32 {
-	if m != nil {
-		return m.Experimenter
-	}
-	return 0
-}
-
-func (m *OfpQueuePropExperimenter) GetData() []byte {
-	if m != nil {
-		return m.Data
-	}
-	return nil
-}
-
-// Full description for a queue.
-type OfpPacketQueue struct {
-	QueueId              uint32                `protobuf:"varint,1,opt,name=queue_id,json=queueId,proto3" json:"queue_id,omitempty"`
-	Port                 uint32                `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
-	Properties           []*OfpQueuePropHeader `protobuf:"bytes,4,rep,name=properties,proto3" json:"properties,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
-	XXX_unrecognized     []byte                `json:"-"`
-	XXX_sizecache        int32                 `json:"-"`
-}
-
-func (m *OfpPacketQueue) Reset()         { *m = OfpPacketQueue{} }
-func (m *OfpPacketQueue) String() string { return proto.CompactTextString(m) }
-func (*OfpPacketQueue) ProtoMessage()    {}
-func (*OfpPacketQueue) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{78}
-}
-
-func (m *OfpPacketQueue) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpPacketQueue.Unmarshal(m, b)
-}
-func (m *OfpPacketQueue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpPacketQueue.Marshal(b, m, deterministic)
-}
-func (m *OfpPacketQueue) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpPacketQueue.Merge(m, src)
-}
-func (m *OfpPacketQueue) XXX_Size() int {
-	return xxx_messageInfo_OfpPacketQueue.Size(m)
-}
-func (m *OfpPacketQueue) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpPacketQueue.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpPacketQueue proto.InternalMessageInfo
-
-func (m *OfpPacketQueue) GetQueueId() uint32 {
-	if m != nil {
-		return m.QueueId
-	}
-	return 0
-}
-
-func (m *OfpPacketQueue) GetPort() uint32 {
-	if m != nil {
-		return m.Port
-	}
-	return 0
-}
-
-func (m *OfpPacketQueue) GetProperties() []*OfpQueuePropHeader {
-	if m != nil {
-		return m.Properties
-	}
-	return nil
-}
-
-// Query for port queue configuration.
-type OfpQueueGetConfigRequest struct {
-	//ofp_header header;
-	Port                 uint32   `protobuf:"varint,1,opt,name=port,proto3" json:"port,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OfpQueueGetConfigRequest) Reset()         { *m = OfpQueueGetConfigRequest{} }
-func (m *OfpQueueGetConfigRequest) String() string { return proto.CompactTextString(m) }
-func (*OfpQueueGetConfigRequest) ProtoMessage()    {}
-func (*OfpQueueGetConfigRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{79}
-}
-
-func (m *OfpQueueGetConfigRequest) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpQueueGetConfigRequest.Unmarshal(m, b)
-}
-func (m *OfpQueueGetConfigRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpQueueGetConfigRequest.Marshal(b, m, deterministic)
-}
-func (m *OfpQueueGetConfigRequest) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpQueueGetConfigRequest.Merge(m, src)
-}
-func (m *OfpQueueGetConfigRequest) XXX_Size() int {
-	return xxx_messageInfo_OfpQueueGetConfigRequest.Size(m)
-}
-func (m *OfpQueueGetConfigRequest) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpQueueGetConfigRequest.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpQueueGetConfigRequest proto.InternalMessageInfo
-
-func (m *OfpQueueGetConfigRequest) GetPort() uint32 {
-	if m != nil {
-		return m.Port
-	}
-	return 0
-}
-
-// Queue configuration for a given port.
-type OfpQueueGetConfigReply struct {
-	//ofp_header header;
-	Port                 uint32            `protobuf:"varint,1,opt,name=port,proto3" json:"port,omitempty"`
-	Queues               []*OfpPacketQueue `protobuf:"bytes,2,rep,name=queues,proto3" json:"queues,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
-	XXX_unrecognized     []byte            `json:"-"`
-	XXX_sizecache        int32             `json:"-"`
-}
-
-func (m *OfpQueueGetConfigReply) Reset()         { *m = OfpQueueGetConfigReply{} }
-func (m *OfpQueueGetConfigReply) String() string { return proto.CompactTextString(m) }
-func (*OfpQueueGetConfigReply) ProtoMessage()    {}
-func (*OfpQueueGetConfigReply) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{80}
-}
-
-func (m *OfpQueueGetConfigReply) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpQueueGetConfigReply.Unmarshal(m, b)
-}
-func (m *OfpQueueGetConfigReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpQueueGetConfigReply.Marshal(b, m, deterministic)
-}
-func (m *OfpQueueGetConfigReply) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpQueueGetConfigReply.Merge(m, src)
-}
-func (m *OfpQueueGetConfigReply) XXX_Size() int {
-	return xxx_messageInfo_OfpQueueGetConfigReply.Size(m)
-}
-func (m *OfpQueueGetConfigReply) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpQueueGetConfigReply.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpQueueGetConfigReply proto.InternalMessageInfo
-
-func (m *OfpQueueGetConfigReply) GetPort() uint32 {
-	if m != nil {
-		return m.Port
-	}
-	return 0
-}
-
-func (m *OfpQueueGetConfigReply) GetQueues() []*OfpPacketQueue {
-	if m != nil {
-		return m.Queues
-	}
-	return nil
-}
-
-// OFPAT_SET_QUEUE action struct: send packets to given queue on port.
-type OfpActionSetQueue struct {
-	Type                 uint32   `protobuf:"varint,1,opt,name=type,proto3" json:"type,omitempty"`
-	QueueId              uint32   `protobuf:"varint,3,opt,name=queue_id,json=queueId,proto3" json:"queue_id,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OfpActionSetQueue) Reset()         { *m = OfpActionSetQueue{} }
-func (m *OfpActionSetQueue) String() string { return proto.CompactTextString(m) }
-func (*OfpActionSetQueue) ProtoMessage()    {}
-func (*OfpActionSetQueue) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{81}
-}
-
-func (m *OfpActionSetQueue) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpActionSetQueue.Unmarshal(m, b)
-}
-func (m *OfpActionSetQueue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpActionSetQueue.Marshal(b, m, deterministic)
-}
-func (m *OfpActionSetQueue) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpActionSetQueue.Merge(m, src)
-}
-func (m *OfpActionSetQueue) XXX_Size() int {
-	return xxx_messageInfo_OfpActionSetQueue.Size(m)
-}
-func (m *OfpActionSetQueue) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpActionSetQueue.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpActionSetQueue proto.InternalMessageInfo
-
-func (m *OfpActionSetQueue) GetType() uint32 {
-	if m != nil {
-		return m.Type
-	}
-	return 0
-}
-
-func (m *OfpActionSetQueue) GetQueueId() uint32 {
-	if m != nil {
-		return m.QueueId
-	}
-	return 0
-}
-
-type OfpQueueStatsRequest struct {
-	PortNo               uint32   `protobuf:"varint,1,opt,name=port_no,json=portNo,proto3" json:"port_no,omitempty"`
-	QueueId              uint32   `protobuf:"varint,2,opt,name=queue_id,json=queueId,proto3" json:"queue_id,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OfpQueueStatsRequest) Reset()         { *m = OfpQueueStatsRequest{} }
-func (m *OfpQueueStatsRequest) String() string { return proto.CompactTextString(m) }
-func (*OfpQueueStatsRequest) ProtoMessage()    {}
-func (*OfpQueueStatsRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{82}
-}
-
-func (m *OfpQueueStatsRequest) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpQueueStatsRequest.Unmarshal(m, b)
-}
-func (m *OfpQueueStatsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpQueueStatsRequest.Marshal(b, m, deterministic)
-}
-func (m *OfpQueueStatsRequest) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpQueueStatsRequest.Merge(m, src)
-}
-func (m *OfpQueueStatsRequest) XXX_Size() int {
-	return xxx_messageInfo_OfpQueueStatsRequest.Size(m)
-}
-func (m *OfpQueueStatsRequest) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpQueueStatsRequest.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpQueueStatsRequest proto.InternalMessageInfo
-
-func (m *OfpQueueStatsRequest) GetPortNo() uint32 {
-	if m != nil {
-		return m.PortNo
-	}
-	return 0
-}
-
-func (m *OfpQueueStatsRequest) GetQueueId() uint32 {
-	if m != nil {
-		return m.QueueId
-	}
-	return 0
-}
-
-type OfpQueueStats struct {
-	PortNo               uint32   `protobuf:"varint,1,opt,name=port_no,json=portNo,proto3" json:"port_no,omitempty"`
-	QueueId              uint32   `protobuf:"varint,2,opt,name=queue_id,json=queueId,proto3" json:"queue_id,omitempty"`
-	TxBytes              uint64   `protobuf:"varint,3,opt,name=tx_bytes,json=txBytes,proto3" json:"tx_bytes,omitempty"`
-	TxPackets            uint64   `protobuf:"varint,4,opt,name=tx_packets,json=txPackets,proto3" json:"tx_packets,omitempty"`
-	TxErrors             uint64   `protobuf:"varint,5,opt,name=tx_errors,json=txErrors,proto3" json:"tx_errors,omitempty"`
-	DurationSec          uint32   `protobuf:"varint,6,opt,name=duration_sec,json=durationSec,proto3" json:"duration_sec,omitempty"`
-	DurationNsec         uint32   `protobuf:"varint,7,opt,name=duration_nsec,json=durationNsec,proto3" json:"duration_nsec,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OfpQueueStats) Reset()         { *m = OfpQueueStats{} }
-func (m *OfpQueueStats) String() string { return proto.CompactTextString(m) }
-func (*OfpQueueStats) ProtoMessage()    {}
-func (*OfpQueueStats) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{83}
-}
-
-func (m *OfpQueueStats) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpQueueStats.Unmarshal(m, b)
-}
-func (m *OfpQueueStats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpQueueStats.Marshal(b, m, deterministic)
-}
-func (m *OfpQueueStats) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpQueueStats.Merge(m, src)
-}
-func (m *OfpQueueStats) XXX_Size() int {
-	return xxx_messageInfo_OfpQueueStats.Size(m)
-}
-func (m *OfpQueueStats) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpQueueStats.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpQueueStats proto.InternalMessageInfo
-
-func (m *OfpQueueStats) GetPortNo() uint32 {
-	if m != nil {
-		return m.PortNo
-	}
-	return 0
-}
-
-func (m *OfpQueueStats) GetQueueId() uint32 {
-	if m != nil {
-		return m.QueueId
-	}
-	return 0
-}
-
-func (m *OfpQueueStats) GetTxBytes() uint64 {
-	if m != nil {
-		return m.TxBytes
-	}
-	return 0
-}
-
-func (m *OfpQueueStats) GetTxPackets() uint64 {
-	if m != nil {
-		return m.TxPackets
-	}
-	return 0
-}
-
-func (m *OfpQueueStats) GetTxErrors() uint64 {
-	if m != nil {
-		return m.TxErrors
-	}
-	return 0
-}
-
-func (m *OfpQueueStats) GetDurationSec() uint32 {
-	if m != nil {
-		return m.DurationSec
-	}
-	return 0
-}
-
-func (m *OfpQueueStats) GetDurationNsec() uint32 {
-	if m != nil {
-		return m.DurationNsec
-	}
-	return 0
-}
-
-// Role request and reply message.
-type OfpRoleRequest struct {
-	//ofp_header header;        /* Type OFPT_ROLE_REQUEST/OFPT_ROLE_REPLY. */
-	Role                 OfpControllerRole `protobuf:"varint,1,opt,name=role,proto3,enum=openflow_13.OfpControllerRole" json:"role,omitempty"`
-	GenerationId         uint64            `protobuf:"varint,2,opt,name=generation_id,json=generationId,proto3" json:"generation_id,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
-	XXX_unrecognized     []byte            `json:"-"`
-	XXX_sizecache        int32             `json:"-"`
-}
-
-func (m *OfpRoleRequest) Reset()         { *m = OfpRoleRequest{} }
-func (m *OfpRoleRequest) String() string { return proto.CompactTextString(m) }
-func (*OfpRoleRequest) ProtoMessage()    {}
-func (*OfpRoleRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{84}
-}
-
-func (m *OfpRoleRequest) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpRoleRequest.Unmarshal(m, b)
-}
-func (m *OfpRoleRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpRoleRequest.Marshal(b, m, deterministic)
-}
-func (m *OfpRoleRequest) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpRoleRequest.Merge(m, src)
-}
-func (m *OfpRoleRequest) XXX_Size() int {
-	return xxx_messageInfo_OfpRoleRequest.Size(m)
-}
-func (m *OfpRoleRequest) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpRoleRequest.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpRoleRequest proto.InternalMessageInfo
-
-func (m *OfpRoleRequest) GetRole() OfpControllerRole {
-	if m != nil {
-		return m.Role
-	}
-	return OfpControllerRole_OFPCR_ROLE_NOCHANGE
-}
-
-func (m *OfpRoleRequest) GetGenerationId() uint64 {
-	if m != nil {
-		return m.GenerationId
-	}
-	return 0
-}
-
-// Asynchronous message configuration.
-type OfpAsyncConfig struct {
-	//ofp_header header;    /* OFPT_GET_ASYNC_REPLY or OFPT_SET_ASYNC. */
-	PacketInMask         []uint32 `protobuf:"varint,1,rep,packed,name=packet_in_mask,json=packetInMask,proto3" json:"packet_in_mask,omitempty"`
-	PortStatusMask       []uint32 `protobuf:"varint,2,rep,packed,name=port_status_mask,json=portStatusMask,proto3" json:"port_status_mask,omitempty"`
-	FlowRemovedMask      []uint32 `protobuf:"varint,3,rep,packed,name=flow_removed_mask,json=flowRemovedMask,proto3" json:"flow_removed_mask,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OfpAsyncConfig) Reset()         { *m = OfpAsyncConfig{} }
-func (m *OfpAsyncConfig) String() string { return proto.CompactTextString(m) }
-func (*OfpAsyncConfig) ProtoMessage()    {}
-func (*OfpAsyncConfig) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{85}
-}
-
-func (m *OfpAsyncConfig) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OfpAsyncConfig.Unmarshal(m, b)
-}
-func (m *OfpAsyncConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OfpAsyncConfig.Marshal(b, m, deterministic)
-}
-func (m *OfpAsyncConfig) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OfpAsyncConfig.Merge(m, src)
-}
-func (m *OfpAsyncConfig) XXX_Size() int {
-	return xxx_messageInfo_OfpAsyncConfig.Size(m)
-}
-func (m *OfpAsyncConfig) XXX_DiscardUnknown() {
-	xxx_messageInfo_OfpAsyncConfig.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OfpAsyncConfig proto.InternalMessageInfo
-
-func (m *OfpAsyncConfig) GetPacketInMask() []uint32 {
-	if m != nil {
-		return m.PacketInMask
-	}
-	return nil
-}
-
-func (m *OfpAsyncConfig) GetPortStatusMask() []uint32 {
-	if m != nil {
-		return m.PortStatusMask
-	}
-	return nil
-}
-
-func (m *OfpAsyncConfig) GetFlowRemovedMask() []uint32 {
-	if m != nil {
-		return m.FlowRemovedMask
-	}
-	return nil
-}
-
-type MeterModUpdate struct {
-	Id                   string       `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
-	MeterMod             *OfpMeterMod `protobuf:"bytes,2,opt,name=meter_mod,json=meterMod,proto3" json:"meter_mod,omitempty"`
-	Xid                  uint32       `protobuf:"varint,3,opt,name=xid,proto3" json:"xid,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
-	XXX_unrecognized     []byte       `json:"-"`
-	XXX_sizecache        int32        `json:"-"`
-}
-
-func (m *MeterModUpdate) Reset()         { *m = MeterModUpdate{} }
-func (m *MeterModUpdate) String() string { return proto.CompactTextString(m) }
-func (*MeterModUpdate) ProtoMessage()    {}
-func (*MeterModUpdate) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{86}
-}
-
-func (m *MeterModUpdate) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_MeterModUpdate.Unmarshal(m, b)
-}
-func (m *MeterModUpdate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_MeterModUpdate.Marshal(b, m, deterministic)
-}
-func (m *MeterModUpdate) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_MeterModUpdate.Merge(m, src)
-}
-func (m *MeterModUpdate) XXX_Size() int {
-	return xxx_messageInfo_MeterModUpdate.Size(m)
-}
-func (m *MeterModUpdate) XXX_DiscardUnknown() {
-	xxx_messageInfo_MeterModUpdate.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_MeterModUpdate proto.InternalMessageInfo
-
-func (m *MeterModUpdate) GetId() string {
-	if m != nil {
-		return m.Id
-	}
-	return ""
-}
-
-func (m *MeterModUpdate) GetMeterMod() *OfpMeterMod {
-	if m != nil {
-		return m.MeterMod
-	}
-	return nil
-}
-
-func (m *MeterModUpdate) GetXid() uint32 {
-	if m != nil {
-		return m.Xid
-	}
-	return 0
-}
-
-type MeterStatsReply struct {
-	MeterStats           []*OfpMeterStats `protobuf:"bytes,1,rep,name=meter_stats,json=meterStats,proto3" json:"meter_stats,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
-	XXX_unrecognized     []byte           `json:"-"`
-	XXX_sizecache        int32            `json:"-"`
-}
-
-func (m *MeterStatsReply) Reset()         { *m = MeterStatsReply{} }
-func (m *MeterStatsReply) String() string { return proto.CompactTextString(m) }
-func (*MeterStatsReply) ProtoMessage()    {}
-func (*MeterStatsReply) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{87}
-}
-
-func (m *MeterStatsReply) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_MeterStatsReply.Unmarshal(m, b)
-}
-func (m *MeterStatsReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_MeterStatsReply.Marshal(b, m, deterministic)
-}
-func (m *MeterStatsReply) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_MeterStatsReply.Merge(m, src)
-}
-func (m *MeterStatsReply) XXX_Size() int {
-	return xxx_messageInfo_MeterStatsReply.Size(m)
-}
-func (m *MeterStatsReply) XXX_DiscardUnknown() {
-	xxx_messageInfo_MeterStatsReply.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_MeterStatsReply proto.InternalMessageInfo
-
-func (m *MeterStatsReply) GetMeterStats() []*OfpMeterStats {
-	if m != nil {
-		return m.MeterStats
-	}
-	return nil
-}
-
-type FlowTableUpdate struct {
-	Id                   string      `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
-	FlowMod              *OfpFlowMod `protobuf:"bytes,2,opt,name=flow_mod,json=flowMod,proto3" json:"flow_mod,omitempty"`
-	Xid                  uint32      `protobuf:"varint,3,opt,name=xid,proto3" json:"xid,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
-	XXX_unrecognized     []byte      `json:"-"`
-	XXX_sizecache        int32       `json:"-"`
-}
-
-func (m *FlowTableUpdate) Reset()         { *m = FlowTableUpdate{} }
-func (m *FlowTableUpdate) String() string { return proto.CompactTextString(m) }
-func (*FlowTableUpdate) ProtoMessage()    {}
-func (*FlowTableUpdate) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{88}
-}
-
-func (m *FlowTableUpdate) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_FlowTableUpdate.Unmarshal(m, b)
-}
-func (m *FlowTableUpdate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_FlowTableUpdate.Marshal(b, m, deterministic)
-}
-func (m *FlowTableUpdate) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_FlowTableUpdate.Merge(m, src)
-}
-func (m *FlowTableUpdate) XXX_Size() int {
-	return xxx_messageInfo_FlowTableUpdate.Size(m)
-}
-func (m *FlowTableUpdate) XXX_DiscardUnknown() {
-	xxx_messageInfo_FlowTableUpdate.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_FlowTableUpdate proto.InternalMessageInfo
-
-func (m *FlowTableUpdate) GetId() string {
-	if m != nil {
-		return m.Id
-	}
-	return ""
-}
-
-func (m *FlowTableUpdate) GetFlowMod() *OfpFlowMod {
-	if m != nil {
-		return m.FlowMod
-	}
-	return nil
-}
-
-func (m *FlowTableUpdate) GetXid() uint32 {
-	if m != nil {
-		return m.Xid
-	}
-	return 0
-}
-
-type FlowGroupTableUpdate struct {
-	Id                   string       `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
-	GroupMod             *OfpGroupMod `protobuf:"bytes,2,opt,name=group_mod,json=groupMod,proto3" json:"group_mod,omitempty"`
-	Xid                  uint32       `protobuf:"varint,3,opt,name=xid,proto3" json:"xid,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
-	XXX_unrecognized     []byte       `json:"-"`
-	XXX_sizecache        int32        `json:"-"`
-}
-
-func (m *FlowGroupTableUpdate) Reset()         { *m = FlowGroupTableUpdate{} }
-func (m *FlowGroupTableUpdate) String() string { return proto.CompactTextString(m) }
-func (*FlowGroupTableUpdate) ProtoMessage()    {}
-func (*FlowGroupTableUpdate) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{89}
-}
-
-func (m *FlowGroupTableUpdate) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_FlowGroupTableUpdate.Unmarshal(m, b)
-}
-func (m *FlowGroupTableUpdate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_FlowGroupTableUpdate.Marshal(b, m, deterministic)
-}
-func (m *FlowGroupTableUpdate) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_FlowGroupTableUpdate.Merge(m, src)
-}
-func (m *FlowGroupTableUpdate) XXX_Size() int {
-	return xxx_messageInfo_FlowGroupTableUpdate.Size(m)
-}
-func (m *FlowGroupTableUpdate) XXX_DiscardUnknown() {
-	xxx_messageInfo_FlowGroupTableUpdate.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_FlowGroupTableUpdate proto.InternalMessageInfo
-
-func (m *FlowGroupTableUpdate) GetId() string {
-	if m != nil {
-		return m.Id
-	}
-	return ""
-}
-
-func (m *FlowGroupTableUpdate) GetGroupMod() *OfpGroupMod {
-	if m != nil {
-		return m.GroupMod
-	}
-	return nil
-}
-
-func (m *FlowGroupTableUpdate) GetXid() uint32 {
-	if m != nil {
-		return m.Xid
-	}
-	return 0
-}
-
-type Flows struct {
-	Items                []*OfpFlowStats `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
-	XXX_unrecognized     []byte          `json:"-"`
-	XXX_sizecache        int32           `json:"-"`
-}
-
-func (m *Flows) Reset()         { *m = Flows{} }
-func (m *Flows) String() string { return proto.CompactTextString(m) }
-func (*Flows) ProtoMessage()    {}
-func (*Flows) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{90}
-}
-
-func (m *Flows) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_Flows.Unmarshal(m, b)
-}
-func (m *Flows) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_Flows.Marshal(b, m, deterministic)
-}
-func (m *Flows) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Flows.Merge(m, src)
-}
-func (m *Flows) XXX_Size() int {
-	return xxx_messageInfo_Flows.Size(m)
-}
-func (m *Flows) XXX_DiscardUnknown() {
-	xxx_messageInfo_Flows.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_Flows proto.InternalMessageInfo
-
-func (m *Flows) GetItems() []*OfpFlowStats {
-	if m != nil {
-		return m.Items
-	}
-	return nil
-}
-
-type Meters struct {
-	Items                []*OfpMeterEntry `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
-	XXX_unrecognized     []byte           `json:"-"`
-	XXX_sizecache        int32            `json:"-"`
-}
-
-func (m *Meters) Reset()         { *m = Meters{} }
-func (m *Meters) String() string { return proto.CompactTextString(m) }
-func (*Meters) ProtoMessage()    {}
-func (*Meters) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{91}
-}
-
-func (m *Meters) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_Meters.Unmarshal(m, b)
-}
-func (m *Meters) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_Meters.Marshal(b, m, deterministic)
-}
-func (m *Meters) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Meters.Merge(m, src)
-}
-func (m *Meters) XXX_Size() int {
-	return xxx_messageInfo_Meters.Size(m)
-}
-func (m *Meters) XXX_DiscardUnknown() {
-	xxx_messageInfo_Meters.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_Meters proto.InternalMessageInfo
-
-func (m *Meters) GetItems() []*OfpMeterEntry {
-	if m != nil {
-		return m.Items
-	}
-	return nil
-}
-
-type FlowGroups struct {
-	Items                []*OfpGroupEntry `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
-	XXX_unrecognized     []byte           `json:"-"`
-	XXX_sizecache        int32            `json:"-"`
-}
-
-func (m *FlowGroups) Reset()         { *m = FlowGroups{} }
-func (m *FlowGroups) String() string { return proto.CompactTextString(m) }
-func (*FlowGroups) ProtoMessage()    {}
-func (*FlowGroups) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{92}
-}
-
-func (m *FlowGroups) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_FlowGroups.Unmarshal(m, b)
-}
-func (m *FlowGroups) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_FlowGroups.Marshal(b, m, deterministic)
-}
-func (m *FlowGroups) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_FlowGroups.Merge(m, src)
-}
-func (m *FlowGroups) XXX_Size() int {
-	return xxx_messageInfo_FlowGroups.Size(m)
-}
-func (m *FlowGroups) XXX_DiscardUnknown() {
-	xxx_messageInfo_FlowGroups.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_FlowGroups proto.InternalMessageInfo
-
-func (m *FlowGroups) GetItems() []*OfpGroupEntry {
-	if m != nil {
-		return m.Items
-	}
-	return nil
-}
-
-type FlowChanges struct {
-	ToAdd                *Flows   `protobuf:"bytes,1,opt,name=to_add,json=toAdd,proto3" json:"to_add,omitempty"`
-	ToRemove             *Flows   `protobuf:"bytes,2,opt,name=to_remove,json=toRemove,proto3" json:"to_remove,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *FlowChanges) Reset()         { *m = FlowChanges{} }
-func (m *FlowChanges) String() string { return proto.CompactTextString(m) }
-func (*FlowChanges) ProtoMessage()    {}
-func (*FlowChanges) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{93}
-}
-
-func (m *FlowChanges) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_FlowChanges.Unmarshal(m, b)
-}
-func (m *FlowChanges) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_FlowChanges.Marshal(b, m, deterministic)
-}
-func (m *FlowChanges) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_FlowChanges.Merge(m, src)
-}
-func (m *FlowChanges) XXX_Size() int {
-	return xxx_messageInfo_FlowChanges.Size(m)
-}
-func (m *FlowChanges) XXX_DiscardUnknown() {
-	xxx_messageInfo_FlowChanges.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_FlowChanges proto.InternalMessageInfo
-
-func (m *FlowChanges) GetToAdd() *Flows {
-	if m != nil {
-		return m.ToAdd
-	}
-	return nil
-}
-
-func (m *FlowChanges) GetToRemove() *Flows {
-	if m != nil {
-		return m.ToRemove
-	}
-	return nil
-}
-
-type FlowGroupChanges struct {
-	ToAdd                *FlowGroups `protobuf:"bytes,1,opt,name=to_add,json=toAdd,proto3" json:"to_add,omitempty"`
-	ToRemove             *FlowGroups `protobuf:"bytes,2,opt,name=to_remove,json=toRemove,proto3" json:"to_remove,omitempty"`
-	ToUpdate             *FlowGroups `protobuf:"bytes,3,opt,name=to_update,json=toUpdate,proto3" json:"to_update,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
-	XXX_unrecognized     []byte      `json:"-"`
-	XXX_sizecache        int32       `json:"-"`
-}
-
-func (m *FlowGroupChanges) Reset()         { *m = FlowGroupChanges{} }
-func (m *FlowGroupChanges) String() string { return proto.CompactTextString(m) }
-func (*FlowGroupChanges) ProtoMessage()    {}
-func (*FlowGroupChanges) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{94}
-}
-
-func (m *FlowGroupChanges) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_FlowGroupChanges.Unmarshal(m, b)
-}
-func (m *FlowGroupChanges) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_FlowGroupChanges.Marshal(b, m, deterministic)
-}
-func (m *FlowGroupChanges) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_FlowGroupChanges.Merge(m, src)
-}
-func (m *FlowGroupChanges) XXX_Size() int {
-	return xxx_messageInfo_FlowGroupChanges.Size(m)
-}
-func (m *FlowGroupChanges) XXX_DiscardUnknown() {
-	xxx_messageInfo_FlowGroupChanges.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_FlowGroupChanges proto.InternalMessageInfo
-
-func (m *FlowGroupChanges) GetToAdd() *FlowGroups {
-	if m != nil {
-		return m.ToAdd
-	}
-	return nil
-}
-
-func (m *FlowGroupChanges) GetToRemove() *FlowGroups {
-	if m != nil {
-		return m.ToRemove
-	}
-	return nil
-}
-
-func (m *FlowGroupChanges) GetToUpdate() *FlowGroups {
-	if m != nil {
-		return m.ToUpdate
-	}
-	return nil
-}
-
-type PacketIn struct {
-	Id                   string       `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
-	PacketIn             *OfpPacketIn `protobuf:"bytes,2,opt,name=packet_in,json=packetIn,proto3" json:"packet_in,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
-	XXX_unrecognized     []byte       `json:"-"`
-	XXX_sizecache        int32        `json:"-"`
-}
-
-func (m *PacketIn) Reset()         { *m = PacketIn{} }
-func (m *PacketIn) String() string { return proto.CompactTextString(m) }
-func (*PacketIn) ProtoMessage()    {}
-func (*PacketIn) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{95}
-}
-
-func (m *PacketIn) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_PacketIn.Unmarshal(m, b)
-}
-func (m *PacketIn) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_PacketIn.Marshal(b, m, deterministic)
-}
-func (m *PacketIn) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_PacketIn.Merge(m, src)
-}
-func (m *PacketIn) XXX_Size() int {
-	return xxx_messageInfo_PacketIn.Size(m)
-}
-func (m *PacketIn) XXX_DiscardUnknown() {
-	xxx_messageInfo_PacketIn.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_PacketIn proto.InternalMessageInfo
-
-func (m *PacketIn) GetId() string {
-	if m != nil {
-		return m.Id
-	}
-	return ""
-}
-
-func (m *PacketIn) GetPacketIn() *OfpPacketIn {
-	if m != nil {
-		return m.PacketIn
-	}
-	return nil
-}
-
-type PacketOut struct {
-	Id                   string        `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
-	PacketOut            *OfpPacketOut `protobuf:"bytes,2,opt,name=packet_out,json=packetOut,proto3" json:"packet_out,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
-	XXX_unrecognized     []byte        `json:"-"`
-	XXX_sizecache        int32         `json:"-"`
-}
-
-func (m *PacketOut) Reset()         { *m = PacketOut{} }
-func (m *PacketOut) String() string { return proto.CompactTextString(m) }
-func (*PacketOut) ProtoMessage()    {}
-func (*PacketOut) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{96}
-}
-
-func (m *PacketOut) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_PacketOut.Unmarshal(m, b)
-}
-func (m *PacketOut) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_PacketOut.Marshal(b, m, deterministic)
-}
-func (m *PacketOut) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_PacketOut.Merge(m, src)
-}
-func (m *PacketOut) XXX_Size() int {
-	return xxx_messageInfo_PacketOut.Size(m)
-}
-func (m *PacketOut) XXX_DiscardUnknown() {
-	xxx_messageInfo_PacketOut.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_PacketOut proto.InternalMessageInfo
-
-func (m *PacketOut) GetId() string {
-	if m != nil {
-		return m.Id
-	}
-	return ""
-}
-
-func (m *PacketOut) GetPacketOut() *OfpPacketOut {
-	if m != nil {
-		return m.PacketOut
-	}
-	return nil
-}
-
-type ChangeEvent struct {
-	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
-	// Types that are valid to be assigned to Event:
-	//	*ChangeEvent_PortStatus
-	//	*ChangeEvent_Error
-	//	*ChangeEvent_DeviceStatus
-	Event                isChangeEvent_Event `protobuf_oneof:"event"`
-	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
-	XXX_unrecognized     []byte              `json:"-"`
-	XXX_sizecache        int32               `json:"-"`
-}
-
-func (m *ChangeEvent) Reset()         { *m = ChangeEvent{} }
-func (m *ChangeEvent) String() string { return proto.CompactTextString(m) }
-func (*ChangeEvent) ProtoMessage()    {}
-func (*ChangeEvent) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{97}
-}
-
-func (m *ChangeEvent) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_ChangeEvent.Unmarshal(m, b)
-}
-func (m *ChangeEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_ChangeEvent.Marshal(b, m, deterministic)
-}
-func (m *ChangeEvent) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_ChangeEvent.Merge(m, src)
-}
-func (m *ChangeEvent) XXX_Size() int {
-	return xxx_messageInfo_ChangeEvent.Size(m)
-}
-func (m *ChangeEvent) XXX_DiscardUnknown() {
-	xxx_messageInfo_ChangeEvent.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_ChangeEvent proto.InternalMessageInfo
-
-func (m *ChangeEvent) GetId() string {
-	if m != nil {
-		return m.Id
-	}
-	return ""
-}
-
-type isChangeEvent_Event interface {
-	isChangeEvent_Event()
-}
-
-type ChangeEvent_PortStatus struct {
-	PortStatus *OfpPortStatus `protobuf:"bytes,2,opt,name=port_status,json=portStatus,proto3,oneof"`
-}
-
-type ChangeEvent_Error struct {
-	Error *OfpErrorMsg `protobuf:"bytes,3,opt,name=error,proto3,oneof"`
-}
-
-type ChangeEvent_DeviceStatus struct {
-	DeviceStatus *OfpDeviceStatus `protobuf:"bytes,4,opt,name=device_status,json=deviceStatus,proto3,oneof"`
-}
-
-func (*ChangeEvent_PortStatus) isChangeEvent_Event() {}
-
-func (*ChangeEvent_Error) isChangeEvent_Event() {}
-
-func (*ChangeEvent_DeviceStatus) isChangeEvent_Event() {}
-
-func (m *ChangeEvent) GetEvent() isChangeEvent_Event {
-	if m != nil {
-		return m.Event
-	}
-	return nil
-}
-
-func (m *ChangeEvent) GetPortStatus() *OfpPortStatus {
-	if x, ok := m.GetEvent().(*ChangeEvent_PortStatus); ok {
-		return x.PortStatus
-	}
-	return nil
-}
-
-func (m *ChangeEvent) GetError() *OfpErrorMsg {
-	if x, ok := m.GetEvent().(*ChangeEvent_Error); ok {
-		return x.Error
-	}
-	return nil
-}
-
-func (m *ChangeEvent) GetDeviceStatus() *OfpDeviceStatus {
-	if x, ok := m.GetEvent().(*ChangeEvent_DeviceStatus); ok {
-		return x.DeviceStatus
-	}
-	return nil
-}
-
-// XXX_OneofWrappers is for the internal use of the proto package.
-func (*ChangeEvent) XXX_OneofWrappers() []interface{} {
-	return []interface{}{
+	file_voltha_protos_openflow_13_proto_msgTypes[97].OneofWrappers = []any{
 		(*ChangeEvent_PortStatus)(nil),
 		(*ChangeEvent_Error)(nil),
 		(*ChangeEvent_DeviceStatus)(nil),
 	}
-}
-
-// Additional information required to process flow at device adapters
-type FlowMetadata struct {
-	// Meters associated with flow-update to adapter
-	Meters               []*OfpMeterConfig `protobuf:"bytes,1,rep,name=meters,proto3" json:"meters,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
-	XXX_unrecognized     []byte            `json:"-"`
-	XXX_sizecache        int32             `json:"-"`
-}
-
-func (m *FlowMetadata) Reset()         { *m = FlowMetadata{} }
-func (m *FlowMetadata) String() string { return proto.CompactTextString(m) }
-func (*FlowMetadata) ProtoMessage()    {}
-func (*FlowMetadata) Descriptor() ([]byte, []int) {
-	return fileDescriptor_08e3a4e375aeddc7, []int{98}
-}
-
-func (m *FlowMetadata) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_FlowMetadata.Unmarshal(m, b)
-}
-func (m *FlowMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_FlowMetadata.Marshal(b, m, deterministic)
-}
-func (m *FlowMetadata) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_FlowMetadata.Merge(m, src)
-}
-func (m *FlowMetadata) XXX_Size() int {
-	return xxx_messageInfo_FlowMetadata.Size(m)
-}
-func (m *FlowMetadata) XXX_DiscardUnknown() {
-	xxx_messageInfo_FlowMetadata.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_FlowMetadata proto.InternalMessageInfo
-
-func (m *FlowMetadata) GetMeters() []*OfpMeterConfig {
-	if m != nil {
-		return m.Meters
-	}
-	return nil
-}
-
-func init() {
-	proto.RegisterEnum("openflow_13.OfpPortNo", OfpPortNo_name, OfpPortNo_value)
-	proto.RegisterEnum("openflow_13.OfpType", OfpType_name, OfpType_value)
-	proto.RegisterEnum("openflow_13.OfpHelloElemType", OfpHelloElemType_name, OfpHelloElemType_value)
-	proto.RegisterEnum("openflow_13.OfpConfigFlags", OfpConfigFlags_name, OfpConfigFlags_value)
-	proto.RegisterEnum("openflow_13.OfpTableConfig", OfpTableConfig_name, OfpTableConfig_value)
-	proto.RegisterEnum("openflow_13.OfpTable", OfpTable_name, OfpTable_value)
-	proto.RegisterEnum("openflow_13.OfpCapabilities", OfpCapabilities_name, OfpCapabilities_value)
-	proto.RegisterEnum("openflow_13.OfpPortConfig", OfpPortConfig_name, OfpPortConfig_value)
-	proto.RegisterEnum("openflow_13.OfpPortState", OfpPortState_name, OfpPortState_value)
-	proto.RegisterEnum("openflow_13.OfpPortFeatures", OfpPortFeatures_name, OfpPortFeatures_value)
-	proto.RegisterEnum("openflow_13.OfpPortReason", OfpPortReason_name, OfpPortReason_value)
-	proto.RegisterEnum("openflow_13.OfpDeviceConnection", OfpDeviceConnection_name, OfpDeviceConnection_value)
-	proto.RegisterEnum("openflow_13.OfpMatchType", OfpMatchType_name, OfpMatchType_value)
-	proto.RegisterEnum("openflow_13.OfpOxmClass", OfpOxmClass_name, OfpOxmClass_value)
-	proto.RegisterEnum("openflow_13.OxmOfbFieldTypes", OxmOfbFieldTypes_name, OxmOfbFieldTypes_value)
-	proto.RegisterEnum("openflow_13.OfpVlanId", OfpVlanId_name, OfpVlanId_value)
-	proto.RegisterEnum("openflow_13.OfpIpv6ExthdrFlags", OfpIpv6ExthdrFlags_name, OfpIpv6ExthdrFlags_value)
-	proto.RegisterEnum("openflow_13.OfpActionType", OfpActionType_name, OfpActionType_value)
-	proto.RegisterEnum("openflow_13.OfpControllerMaxLen", OfpControllerMaxLen_name, OfpControllerMaxLen_value)
-	proto.RegisterEnum("openflow_13.OfpInstructionType", OfpInstructionType_name, OfpInstructionType_value)
-	proto.RegisterEnum("openflow_13.OfpFlowModCommand", OfpFlowModCommand_name, OfpFlowModCommand_value)
-	proto.RegisterEnum("openflow_13.OfpFlowModFlags", OfpFlowModFlags_name, OfpFlowModFlags_value)
-	proto.RegisterEnum("openflow_13.OfpGroup", OfpGroup_name, OfpGroup_value)
-	proto.RegisterEnum("openflow_13.OfpGroupModCommand", OfpGroupModCommand_name, OfpGroupModCommand_value)
-	proto.RegisterEnum("openflow_13.OfpGroupType", OfpGroupType_name, OfpGroupType_value)
-	proto.RegisterEnum("openflow_13.OfpPacketInReason", OfpPacketInReason_name, OfpPacketInReason_value)
-	proto.RegisterEnum("openflow_13.OfpFlowRemovedReason", OfpFlowRemovedReason_name, OfpFlowRemovedReason_value)
-	proto.RegisterEnum("openflow_13.OfpMeter", OfpMeter_name, OfpMeter_value)
-	proto.RegisterEnum("openflow_13.OfpMeterBandType", OfpMeterBandType_name, OfpMeterBandType_value)
-	proto.RegisterEnum("openflow_13.OfpMeterModCommand", OfpMeterModCommand_name, OfpMeterModCommand_value)
-	proto.RegisterEnum("openflow_13.OfpMeterFlags", OfpMeterFlags_name, OfpMeterFlags_value)
-	proto.RegisterEnum("openflow_13.OfpErrorType", OfpErrorType_name, OfpErrorType_value)
-	proto.RegisterEnum("openflow_13.OfpHelloFailedCode", OfpHelloFailedCode_name, OfpHelloFailedCode_value)
-	proto.RegisterEnum("openflow_13.OfpBadRequestCode", OfpBadRequestCode_name, OfpBadRequestCode_value)
-	proto.RegisterEnum("openflow_13.OfpBadActionCode", OfpBadActionCode_name, OfpBadActionCode_value)
-	proto.RegisterEnum("openflow_13.OfpBadInstructionCode", OfpBadInstructionCode_name, OfpBadInstructionCode_value)
-	proto.RegisterEnum("openflow_13.OfpBadMatchCode", OfpBadMatchCode_name, OfpBadMatchCode_value)
-	proto.RegisterEnum("openflow_13.OfpFlowModFailedCode", OfpFlowModFailedCode_name, OfpFlowModFailedCode_value)
-	proto.RegisterEnum("openflow_13.OfpGroupModFailedCode", OfpGroupModFailedCode_name, OfpGroupModFailedCode_value)
-	proto.RegisterEnum("openflow_13.OfpPortModFailedCode", OfpPortModFailedCode_name, OfpPortModFailedCode_value)
-	proto.RegisterEnum("openflow_13.OfpTableModFailedCode", OfpTableModFailedCode_name, OfpTableModFailedCode_value)
-	proto.RegisterEnum("openflow_13.OfpQueueOpFailedCode", OfpQueueOpFailedCode_name, OfpQueueOpFailedCode_value)
-	proto.RegisterEnum("openflow_13.OfpSwitchConfigFailedCode", OfpSwitchConfigFailedCode_name, OfpSwitchConfigFailedCode_value)
-	proto.RegisterEnum("openflow_13.OfpRoleRequestFailedCode", OfpRoleRequestFailedCode_name, OfpRoleRequestFailedCode_value)
-	proto.RegisterEnum("openflow_13.OfpMeterModFailedCode", OfpMeterModFailedCode_name, OfpMeterModFailedCode_value)
-	proto.RegisterEnum("openflow_13.OfpTableFeaturesFailedCode", OfpTableFeaturesFailedCode_name, OfpTableFeaturesFailedCode_value)
-	proto.RegisterEnum("openflow_13.OfpMultipartType", OfpMultipartType_name, OfpMultipartType_value)
-	proto.RegisterEnum("openflow_13.OfpMultipartRequestFlags", OfpMultipartRequestFlags_name, OfpMultipartRequestFlags_value)
-	proto.RegisterEnum("openflow_13.OfpMultipartReplyFlags", OfpMultipartReplyFlags_name, OfpMultipartReplyFlags_value)
-	proto.RegisterEnum("openflow_13.OfpTableFeaturePropType", OfpTableFeaturePropType_name, OfpTableFeaturePropType_value)
-	proto.RegisterEnum("openflow_13.OfpGroupCapabilities", OfpGroupCapabilities_name, OfpGroupCapabilities_value)
-	proto.RegisterEnum("openflow_13.OfpQueueProperties", OfpQueueProperties_name, OfpQueueProperties_value)
-	proto.RegisterEnum("openflow_13.OfpControllerRole", OfpControllerRole_name, OfpControllerRole_value)
-	proto.RegisterType((*OfpHeader)(nil), "openflow_13.ofp_header")
-	proto.RegisterType((*OfpHelloElemHeader)(nil), "openflow_13.ofp_hello_elem_header")
-	proto.RegisterType((*OfpHelloElemVersionbitmap)(nil), "openflow_13.ofp_hello_elem_versionbitmap")
-	proto.RegisterType((*OfpHello)(nil), "openflow_13.ofp_hello")
-	proto.RegisterType((*OfpSwitchConfig)(nil), "openflow_13.ofp_switch_config")
-	proto.RegisterType((*OfpTableMod)(nil), "openflow_13.ofp_table_mod")
-	proto.RegisterType((*OfpPort)(nil), "openflow_13.ofp_port")
-	proto.RegisterType((*OfpSwitchFeatures)(nil), "openflow_13.ofp_switch_features")
-	proto.RegisterType((*OfpPortStatus)(nil), "openflow_13.ofp_port_status")
-	proto.RegisterType((*OfpDeviceStatus)(nil), "openflow_13.ofp_device_status")
-	proto.RegisterType((*OfpPortMod)(nil), "openflow_13.ofp_port_mod")
-	proto.RegisterType((*OfpMatch)(nil), "openflow_13.ofp_match")
-	proto.RegisterType((*OfpOxmField)(nil), "openflow_13.ofp_oxm_field")
-	proto.RegisterType((*OfpOxmOfbField)(nil), "openflow_13.ofp_oxm_ofb_field")
-	proto.RegisterType((*OfpOxmExperimenterField)(nil), "openflow_13.ofp_oxm_experimenter_field")
-	proto.RegisterType((*OfpAction)(nil), "openflow_13.ofp_action")
-	proto.RegisterType((*OfpActionOutput)(nil), "openflow_13.ofp_action_output")
-	proto.RegisterType((*OfpActionMplsTtl)(nil), "openflow_13.ofp_action_mpls_ttl")
-	proto.RegisterType((*OfpActionPush)(nil), "openflow_13.ofp_action_push")
-	proto.RegisterType((*OfpActionPopMpls)(nil), "openflow_13.ofp_action_pop_mpls")
-	proto.RegisterType((*OfpActionGroup)(nil), "openflow_13.ofp_action_group")
-	proto.RegisterType((*OfpActionNwTtl)(nil), "openflow_13.ofp_action_nw_ttl")
-	proto.RegisterType((*OfpActionSetField)(nil), "openflow_13.ofp_action_set_field")
-	proto.RegisterType((*OfpActionExperimenter)(nil), "openflow_13.ofp_action_experimenter")
-	proto.RegisterType((*OfpInstruction)(nil), "openflow_13.ofp_instruction")
-	proto.RegisterType((*OfpInstructionGotoTable)(nil), "openflow_13.ofp_instruction_goto_table")
-	proto.RegisterType((*OfpInstructionWriteMetadata)(nil), "openflow_13.ofp_instruction_write_metadata")
-	proto.RegisterType((*OfpInstructionActions)(nil), "openflow_13.ofp_instruction_actions")
-	proto.RegisterType((*OfpInstructionMeter)(nil), "openflow_13.ofp_instruction_meter")
-	proto.RegisterType((*OfpInstructionExperimenter)(nil), "openflow_13.ofp_instruction_experimenter")
-	proto.RegisterType((*OfpFlowMod)(nil), "openflow_13.ofp_flow_mod")
-	proto.RegisterType((*OfpBucket)(nil), "openflow_13.ofp_bucket")
-	proto.RegisterType((*OfpGroupMod)(nil), "openflow_13.ofp_group_mod")
-	proto.RegisterType((*OfpPacketOut)(nil), "openflow_13.ofp_packet_out")
-	proto.RegisterType((*OfpPacketIn)(nil), "openflow_13.ofp_packet_in")
-	proto.RegisterType((*OfpFlowRemoved)(nil), "openflow_13.ofp_flow_removed")
-	proto.RegisterType((*OfpMeterBandHeader)(nil), "openflow_13.ofp_meter_band_header")
-	proto.RegisterType((*OfpMeterBandDrop)(nil), "openflow_13.ofp_meter_band_drop")
-	proto.RegisterType((*OfpMeterBandDscpRemark)(nil), "openflow_13.ofp_meter_band_dscp_remark")
-	proto.RegisterType((*OfpMeterBandExperimenter)(nil), "openflow_13.ofp_meter_band_experimenter")
-	proto.RegisterType((*OfpMeterMod)(nil), "openflow_13.ofp_meter_mod")
-	proto.RegisterType((*OfpErrorMsg)(nil), "openflow_13.ofp_error_msg")
-	proto.RegisterType((*OfpErrorExperimenterMsg)(nil), "openflow_13.ofp_error_experimenter_msg")
-	proto.RegisterType((*OfpMultipartRequest)(nil), "openflow_13.ofp_multipart_request")
-	proto.RegisterType((*OfpMultipartReply)(nil), "openflow_13.ofp_multipart_reply")
-	proto.RegisterType((*OfpDesc)(nil), "openflow_13.ofp_desc")
-	proto.RegisterType((*OfpFlowStatsRequest)(nil), "openflow_13.ofp_flow_stats_request")
-	proto.RegisterType((*OfpFlowStats)(nil), "openflow_13.ofp_flow_stats")
-	proto.RegisterType((*OfpAggregateStatsRequest)(nil), "openflow_13.ofp_aggregate_stats_request")
-	proto.RegisterType((*OfpAggregateStatsReply)(nil), "openflow_13.ofp_aggregate_stats_reply")
-	proto.RegisterType((*OfpTableFeatureProperty)(nil), "openflow_13.ofp_table_feature_property")
-	proto.RegisterType((*OfpTableFeaturePropInstructions)(nil), "openflow_13.ofp_table_feature_prop_instructions")
-	proto.RegisterType((*OfpTableFeaturePropNextTables)(nil), "openflow_13.ofp_table_feature_prop_next_tables")
-	proto.RegisterType((*OfpTableFeaturePropActions)(nil), "openflow_13.ofp_table_feature_prop_actions")
-	proto.RegisterType((*OfpTableFeaturePropOxm)(nil), "openflow_13.ofp_table_feature_prop_oxm")
-	proto.RegisterType((*OfpTableFeaturePropExperimenter)(nil), "openflow_13.ofp_table_feature_prop_experimenter")
-	proto.RegisterType((*OfpTableFeatures)(nil), "openflow_13.ofp_table_features")
-	proto.RegisterType((*OfpTableStats)(nil), "openflow_13.ofp_table_stats")
-	proto.RegisterType((*OfpPortStatsRequest)(nil), "openflow_13.ofp_port_stats_request")
-	proto.RegisterType((*OfpPortStats)(nil), "openflow_13.ofp_port_stats")
-	proto.RegisterType((*OfpGroupStatsRequest)(nil), "openflow_13.ofp_group_stats_request")
-	proto.RegisterType((*OfpBucketCounter)(nil), "openflow_13.ofp_bucket_counter")
-	proto.RegisterType((*OfpGroupStats)(nil), "openflow_13.ofp_group_stats")
-	proto.RegisterType((*OfpGroupDesc)(nil), "openflow_13.ofp_group_desc")
-	proto.RegisterType((*OfpGroupEntry)(nil), "openflow_13.ofp_group_entry")
-	proto.RegisterType((*OfpGroupFeatures)(nil), "openflow_13.ofp_group_features")
-	proto.RegisterType((*OfpMeterMultipartRequest)(nil), "openflow_13.ofp_meter_multipart_request")
-	proto.RegisterType((*OfpMeterBandStats)(nil), "openflow_13.ofp_meter_band_stats")
-	proto.RegisterType((*OfpMeterStats)(nil), "openflow_13.ofp_meter_stats")
-	proto.RegisterType((*OfpMeterConfig)(nil), "openflow_13.ofp_meter_config")
-	proto.RegisterType((*OfpMeterFeatures)(nil), "openflow_13.ofp_meter_features")
-	proto.RegisterType((*OfpMeterEntry)(nil), "openflow_13.ofp_meter_entry")
-	proto.RegisterType((*OfpExperimenterMultipartHeader)(nil), "openflow_13.ofp_experimenter_multipart_header")
-	proto.RegisterType((*OfpExperimenterHeader)(nil), "openflow_13.ofp_experimenter_header")
-	proto.RegisterType((*OfpQueuePropHeader)(nil), "openflow_13.ofp_queue_prop_header")
-	proto.RegisterType((*OfpQueuePropMinRate)(nil), "openflow_13.ofp_queue_prop_min_rate")
-	proto.RegisterType((*OfpQueuePropMaxRate)(nil), "openflow_13.ofp_queue_prop_max_rate")
-	proto.RegisterType((*OfpQueuePropExperimenter)(nil), "openflow_13.ofp_queue_prop_experimenter")
-	proto.RegisterType((*OfpPacketQueue)(nil), "openflow_13.ofp_packet_queue")
-	proto.RegisterType((*OfpQueueGetConfigRequest)(nil), "openflow_13.ofp_queue_get_config_request")
-	proto.RegisterType((*OfpQueueGetConfigReply)(nil), "openflow_13.ofp_queue_get_config_reply")
-	proto.RegisterType((*OfpActionSetQueue)(nil), "openflow_13.ofp_action_set_queue")
-	proto.RegisterType((*OfpQueueStatsRequest)(nil), "openflow_13.ofp_queue_stats_request")
-	proto.RegisterType((*OfpQueueStats)(nil), "openflow_13.ofp_queue_stats")
-	proto.RegisterType((*OfpRoleRequest)(nil), "openflow_13.ofp_role_request")
-	proto.RegisterType((*OfpAsyncConfig)(nil), "openflow_13.ofp_async_config")
-	proto.RegisterType((*MeterModUpdate)(nil), "openflow_13.MeterModUpdate")
-	proto.RegisterType((*MeterStatsReply)(nil), "openflow_13.MeterStatsReply")
-	proto.RegisterType((*FlowTableUpdate)(nil), "openflow_13.FlowTableUpdate")
-	proto.RegisterType((*FlowGroupTableUpdate)(nil), "openflow_13.FlowGroupTableUpdate")
-	proto.RegisterType((*Flows)(nil), "openflow_13.Flows")
-	proto.RegisterType((*Meters)(nil), "openflow_13.Meters")
-	proto.RegisterType((*FlowGroups)(nil), "openflow_13.FlowGroups")
-	proto.RegisterType((*FlowChanges)(nil), "openflow_13.FlowChanges")
-	proto.RegisterType((*FlowGroupChanges)(nil), "openflow_13.FlowGroupChanges")
-	proto.RegisterType((*PacketIn)(nil), "openflow_13.PacketIn")
-	proto.RegisterType((*PacketOut)(nil), "openflow_13.PacketOut")
-	proto.RegisterType((*ChangeEvent)(nil), "openflow_13.ChangeEvent")
-	proto.RegisterType((*FlowMetadata)(nil), "openflow_13.FlowMetadata")
-}
-
-func init() { proto.RegisterFile("voltha_protos/openflow_13.proto", fileDescriptor_08e3a4e375aeddc7) }
-
-var fileDescriptor_08e3a4e375aeddc7 = []byte{
-	// 8566 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x7d, 0x5b, 0x8c, 0x1b, 0x49,
-	0x92, 0x98, 0xf8, 0x68, 0x36, 0x99, 0xec, 0x6e, 0x95, 0x4a, 0x2f, 0x4a, 0x2d, 0x8d, 0x24, 0xee,
-	0xcc, 0xee, 0x2c, 0xd7, 0x37, 0x9a, 0xd1, 0x68, 0xb4, 0x7b, 0xfb, 0x38, 0xab, 0x48, 0x16, 0x9b,
-	0x1c, 0xf1, 0xa5, 0xaa, 0xea, 0x96, 0xb4, 0x86, 0x5d, 0xa0, 0xc8, 0x52, 0x37, 0x6f, 0x48, 0x16,
-	0xb7, 0xaa, 0xba, 0xd5, 0x3a, 0xef, 0x19, 0xb2, 0x0f, 0x86, 0x01, 0xdb, 0x77, 0x67, 0xe3, 0x3e,
-	0x16, 0x30, 0xce, 0x80, 0x0f, 0xb6, 0x3f, 0x0c, 0x03, 0xfe, 0x30, 0x60, 0xc0, 0x80, 0xbf, 0x0f,
-	0xb0, 0x01, 0xc3, 0x06, 0x0e, 0x30, 0xee, 0xe7, 0xee, 0xc7, 0x38, 0xff, 0x18, 0xb8, 0x7f, 0xfb,
-	0xbc, 0x5e, 0x19, 0x91, 0x11, 0x99, 0x95, 0xc5, 0x47, 0x4f, 0xef, 0x7a, 0xd6, 0x1f, 0xfe, 0x12,
-	0x2b, 0x5e, 0x19, 0x19, 0x19, 0x11, 0x19, 0x19, 0x95, 0xd5, 0x62, 0x77, 0x4e, 0xfc, 0x49, 0x74,
-	0x34, 0x70, 0xe7, 0x81, 0x1f, 0xf9, 0xe1, 0x7d, 0x7f, 0xee, 0xcd, 0x5e, 0x4d, 0xfc, 0xd7, 0xee,
-	0x27, 0x9f, 0x7e, 0xc4, 0x41, 0x7a, 0x51, 0x01, 0xdd, 0xbc, 0x75, 0xe8, 0xfb, 0x87, 0x13, 0xef,
-	0xfe, 0x60, 0x3e, 0xbe, 0x3f, 0x98, 0xcd, 0xfc, 0x68, 0x10, 0x8d, 0xfd, 0x59, 0x88, 0xa4, 0xe5,
-	0x21, 0x63, 0xfe, 0xab, 0xb9, 0x7b, 0xe4, 0x0d, 0x46, 0x5e, 0xa0, 0x97, 0xd8, 0xe6, 0x89, 0x17,
-	0x84, 0x63, 0x7f, 0x56, 0x4a, 0xdd, 0x4d, 0x7d, 0xb8, 0x6d, 0x89, 0x47, 0xfd, 0x9b, 0x2c, 0x1b,
-	0xbd, 0x99, 0x7b, 0xa5, 0xf4, 0xdd, 0xd4, 0x87, 0x3b, 0x0f, 0xae, 0x7e, 0xa4, 0x0e, 0x0a, 0x02,
-	0x00, 0x69, 0x71, 0x12, 0x5d, 0x63, 0x99, 0xd3, 0xf1, 0xa8, 0x94, 0xe1, 0x02, 0xe0, 0x67, 0xf9,
-	0x5f, 0xa6, 0xd8, 0x55, 0x1c, 0x65, 0x32, 0xf1, 0x5d, 0x6f, 0xe2, 0x4d, 0xc5, 0x80, 0x0f, 0x49,
-	0x6c, 0x8a, 0x8b, 0xbd, 0xbb, 0x24, 0x56, 0xe1, 0x50, 0x46, 0x78, 0xca, 0xb6, 0x49, 0xaf, 0x97,
-	0xe3, 0x68, 0x3a, 0x98, 0x73, 0xad, 0x8a, 0x0f, 0xbe, 0x79, 0x16, 0x7b, 0x82, 0xa1, 0x79, 0xc1,
-	0x4a, 0x4a, 0xa8, 0x16, 0xd8, 0x26, 0x90, 0x79, 0xb3, 0xa8, 0xfc, 0x1d, 0x76, 0xeb, 0x2c, 0x5e,
-	0x30, 0x12, 0xfe, 0x0a, 0x4b, 0xe9, 0xbb, 0x19, 0x30, 0x12, 0x3d, 0x96, 0x9f, 0xb0, 0x82, 0xe4,
-	0xd4, 0x7f, 0x8d, 0xe5, 0x49, 0x62, 0x58, 0x4a, 0xdd, 0xcd, 0x7c, 0x58, 0x7c, 0x50, 0x3e, 0x4b,
-	0x3f, 0x34, 0x88, 0x25, 0x79, 0xca, 0x1d, 0x76, 0x09, 0x48, 0xc2, 0xd7, 0xe3, 0x68, 0x78, 0xe4,
-	0x0e, 0xfd, 0xd9, 0xab, 0xf1, 0xa1, 0x7e, 0x85, 0x6d, 0xbc, 0x9a, 0x0c, 0x0e, 0x43, 0x5a, 0x1e,
-	0x7c, 0xd0, 0xcb, 0x6c, 0x7b, 0x3a, 0x0e, 0x43, 0x37, 0xf4, 0x66, 0x23, 0x77, 0xe2, 0xcd, 0xb8,
-	0x3d, 0xb6, 0xad, 0x22, 0x00, 0x6d, 0x6f, 0x36, 0x6a, 0x7b, 0xb3, 0x72, 0x95, 0x6d, 0xf3, 0x75,
-	0x1a, 0xbc, 0x9c, 0x78, 0xee, 0xd4, 0x1f, 0xe9, 0x37, 0x58, 0x1e, 0x1f, 0xc6, 0x23, 0xb1, 0xd8,
-	0xfc, 0xb9, 0x35, 0xd2, 0xaf, 0xb1, 0x1c, 0x8e, 0x47, 0x82, 0xe8, 0xa9, 0xfc, 0x4f, 0xd2, 0x2c,
-	0x0f, 0x42, 0xe6, 0x7e, 0x10, 0xe9, 0xd7, 0xd9, 0x26, 0xfc, 0xeb, 0xce, 0x7c, 0x62, 0xcf, 0xc1,
-	0x63, 0xd7, 0x07, 0xc4, 0xd1, 0x6b, 0x77, 0x30, 0x1a, 0x05, 0x64, 0x9f, 0xdc, 0xd1, 0x6b, 0x63,
-	0x34, 0x0a, 0x74, 0x9d, 0x65, 0x67, 0x83, 0xa9, 0xc7, 0x3d, 0xa3, 0x60, 0xf1, 0xdf, 0xca, 0x50,
-	0x59, 0x75, 0x28, 0x98, 0x68, 0x18, 0x0d, 0x22, 0xaf, 0xb4, 0x81, 0x13, 0xe5, 0x0f, 0x20, 0x61,
-	0x78, 0x1c, 0x04, 0xa5, 0x1c, 0x07, 0xf2, 0xdf, 0xfa, 0x7b, 0x8c, 0x0d, 0x46, 0x27, 0x5e, 0x10,
-	0x8d, 0x43, 0x6f, 0x54, 0xda, 0xe4, 0x18, 0x05, 0xa2, 0xdf, 0x62, 0x85, 0xf0, 0x78, 0x0e, 0xba,
-	0x79, 0xa3, 0x52, 0x9e, 0xa3, 0x63, 0x00, 0x48, 0x9c, 0x7b, 0x5e, 0x50, 0x2a, 0xa0, 0x44, 0xf8,
-	0xad, 0xdf, 0x66, 0x0c, 0x24, 0xbb, 0xe1, 0xdc, 0xf3, 0x46, 0x25, 0x86, 0x2c, 0x00, 0xb1, 0x01,
-	0xa0, 0xef, 0xb2, 0xc2, 0x74, 0x70, 0x4a, 0xd8, 0x22, 0xc7, 0xe6, 0xa7, 0x83, 0x53, 0x8e, 0x2c,
-	0xff, 0x9b, 0x14, 0xbb, 0xac, 0x2c, 0xdb, 0x2b, 0x6f, 0x10, 0x1d, 0x07, 0x5e, 0xa8, 0xdf, 0x61,
-	0xc5, 0xd1, 0x20, 0x1a, 0xcc, 0x07, 0xd1, 0x91, 0x30, 0x78, 0xd6, 0x62, 0x02, 0xd4, 0xe2, 0x52,
-	0x67, 0xee, 0xcb, 0xe3, 0x57, 0xaf, 0xbc, 0x20, 0x24, 0xb3, 0xe7, 0x67, 0x55, 0x7c, 0x86, 0xb5,
-	0x9a, 0xe1, 0xd2, 0x85, 0x14, 0x57, 0x9b, 0x33, 0x87, 0x3f, 0xea, 0xf7, 0xd8, 0xd6, 0xe0, 0xf8,
-	0x74, 0x3c, 0x19, 0x0f, 0x82, 0x37, 0x20, 0x19, 0xcd, 0x58, 0x94, 0xb0, 0xd6, 0x48, 0x2f, 0xb3,
-	0xad, 0xe1, 0x60, 0x3e, 0x78, 0x39, 0x9e, 0x8c, 0xa3, 0xb1, 0x17, 0x92, 0x49, 0x13, 0xb0, 0x72,
-	0xc0, 0x2e, 0x8a, 0x95, 0x75, 0xc1, 0xd6, 0xc7, 0xa1, 0xfe, 0x90, 0xe5, 0x02, 0x6f, 0x10, 0x52,
-	0x2e, 0xd8, 0x79, 0x70, 0x6b, 0xc9, 0x7d, 0x39, 0x35, 0xd2, 0x58, 0x44, 0x0b, 0x89, 0x62, 0xe4,
-	0x85, 0x43, 0x0a, 0xc9, 0xab, 0x2b, 0x79, 0x2c, 0x4e, 0x52, 0xee, 0xa1, 0x87, 0x8f, 0xbc, 0x93,
-	0xf1, 0xd0, 0x13, 0xa3, 0x7e, 0x97, 0xe5, 0xf0, 0x17, 0x8d, 0xba, 0x1c, 0x34, 0x44, 0x3f, 0xf4,
-	0x67, 0x33, 0x6f, 0x08, 0xb9, 0xcc, 0x22, 0x8e, 0xf2, 0xdf, 0x4d, 0xb1, 0x2d, 0xa9, 0x17, 0xf8,
-	0xf8, 0xcf, 0xef, 0xa3, 0xb1, 0x3f, 0x66, 0x12, 0xfe, 0xa8, 0xb3, 0xec, 0x74, 0x10, 0x7e, 0x41,
-	0xe6, 0xe5, 0xbf, 0xc1, 0xb3, 0xa4, 0x9f, 0x91, 0x51, 0x63, 0x40, 0xf9, 0x35, 0x26, 0x83, 0xe9,
-	0x20, 0x1a, 0x1e, 0xe9, 0xf7, 0x13, 0x79, 0x6e, 0x77, 0x69, 0x4e, 0x9c, 0x4a, 0x4d, 0x71, 0xbf,
-	0xca, 0x98, 0x7f, 0x3a, 0x75, 0x5f, 0x8d, 0xbd, 0xc9, 0x08, 0xf3, 0x4c, 0xf1, 0xc1, 0xcd, 0x25,
-	0x36, 0x49, 0x62, 0x15, 0xfc, 0xd3, 0x69, 0x83, 0x13, 0x97, 0xff, 0x7b, 0x0a, 0x43, 0x5d, 0x22,
-	0xf5, 0x6f, 0x33, 0x40, 0xbb, 0xc3, 0xc9, 0x20, 0x14, 0x66, 0x5d, 0x2d, 0x8b, 0x53, 0x58, 0x79,
-	0xff, 0x74, 0x5a, 0x83, 0x5f, 0xfa, 0x0f, 0x60, 0x0e, 0x2f, 0x51, 0x0a, 0x9f, 0x7a, 0xf1, 0xc1,
-	0x7b, 0x2b, 0x19, 0x25, 0x55, 0xf3, 0x82, 0x95, 0xf7, 0x5f, 0xbd, 0xe4, 0xaa, 0xe8, 0xcf, 0x99,
-	0xee, 0x9d, 0xce, 0xbd, 0x60, 0x0c, 0x19, 0xcd, 0x0b, 0x48, 0xce, 0x06, 0x97, 0xf3, 0x8d, 0x95,
-	0x72, 0x96, 0xc9, 0x9b, 0x17, 0xac, 0x4b, 0x2a, 0x94, 0x4b, 0xae, 0x6e, 0xb2, 0x0d, 0x8e, 0x2d,
-	0xff, 0xf1, 0x0e, 0x3a, 0x51, 0x42, 0x89, 0xb3, 0xb7, 0x15, 0x95, 0x92, 0x9b, 0x3c, 0x24, 0x9b,
-	0xdf, 0x60, 0xf9, 0xa3, 0x41, 0xe8, 0xf2, 0x75, 0x06, 0xf7, 0xcd, 0x5b, 0x9b, 0x47, 0x83, 0xb0,
-	0x03, 0x4b, 0x7d, 0x85, 0x65, 0xc1, 0x73, 0xd0, 0x29, 0x9a, 0x17, 0x2c, 0xfe, 0xa4, 0x7f, 0xc0,
-	0xb6, 0xe7, 0x47, 0x6f, 0xc2, 0xf1, 0x70, 0x30, 0xe1, 0x3e, 0x87, 0xde, 0xd1, 0xbc, 0x60, 0x6d,
-	0x09, 0x70, 0x1f, 0xc8, 0xbe, 0xc1, 0x76, 0x28, 0xed, 0x7a, 0xd1, 0x00, 0x42, 0x9e, 0x9b, 0x20,
-	0x0b, 0x9b, 0x10, 0x87, 0x77, 0x08, 0xac, 0xdf, 0x60, 0x9b, 0x5e, 0x74, 0xe4, 0x8e, 0xc2, 0x88,
-	0x67, 0xb8, 0xad, 0xe6, 0x05, 0x2b, 0xe7, 0x45, 0x47, 0xf5, 0x30, 0x12, 0xa8, 0x30, 0x18, 0xf2,
-	0x14, 0x27, 0x50, 0x76, 0x30, 0xd4, 0x77, 0x59, 0x1e, 0x50, 0x7c, 0xc2, 0x79, 0x52, 0x00, 0x88,
-	0x1d, 0x98, 0xd3, 0x2e, 0xcb, 0x9f, 0x4c, 0x06, 0x33, 0xf7, 0x64, 0x3c, 0xc2, 0x1c, 0x07, 0x48,
-	0x80, 0x1c, 0x8c, 0x47, 0x12, 0x39, 0x1f, 0xce, 0x31, 0xcd, 0x09, 0x64, 0x7f, 0x38, 0x87, 0x11,
-	0xc7, 0x73, 0x77, 0x14, 0x0e, 0xe7, 0x98, 0xe4, 0x60, 0xc4, 0xf1, 0xbc, 0x1e, 0x0e, 0xe7, 0xfa,
-	0x75, 0x96, 0x1b, 0xcf, 0x5d, 0x6f, 0x38, 0x2b, 0x6d, 0x11, 0x66, 0x63, 0x3c, 0x37, 0x87, 0x33,
-	0x10, 0x38, 0x9e, 0x63, 0x5d, 0x52, 0xda, 0x16, 0x02, 0xc7, 0xf3, 0x3e, 0xaf, 0x4a, 0x38, 0xf2,
-	0xe4, 0x21, 0x9f, 0xc3, 0x4e, 0x8c, 0x3c, 0x79, 0x48, 0x93, 0xe0, 0x48, 0x98, 0xfb, 0x45, 0x15,
-	0x49, 0x93, 0x8f, 0x86, 0x73, 0xce, 0xa8, 0x09, 0x55, 0xa2, 0xe1, 0x1c, 0xf8, 0x08, 0x05, 0x6c,
-	0x97, 0x14, 0x14, 0x71, 0x1d, 0x8f, 0x90, 0x4b, 0x17, 0xa8, 0xe3, 0x91, 0xe0, 0x02, 0x14, 0x70,
-	0x5d, 0x56, 0x50, 0xc0, 0xb5, 0xcb, 0xf2, 0xe1, 0x30, 0x42, 0xb6, 0x2b, 0x42, 0x11, 0x80, 0x90,
-	0x96, 0x1c, 0x09, 0x8c, 0x57, 0x55, 0x24, 0x70, 0xde, 0x63, 0xc5, 0xf1, 0x70, 0x0a, 0x93, 0xe0,
-	0x4b, 0x71, 0x8d, 0xf0, 0x0c, 0x81, 0x7c, 0x35, 0x62, 0x92, 0xa1, 0x3f, 0xf2, 0x4a, 0xd7, 0x93,
-	0x24, 0x35, 0x7f, 0xe4, 0x81, 0x6d, 0x07, 0xc1, 0xdc, 0xf5, 0xe7, 0xa5, 0x92, 0xb0, 0xed, 0x20,
-	0x98, 0xf7, 0xf8, 0x7a, 0x00, 0x22, 0x9c, 0x0f, 0x4a, 0x37, 0x84, 0xce, 0x83, 0x60, 0x6e, 0xcf,
-	0x07, 0x02, 0x15, 0xcd, 0x07, 0xa5, 0x9b, 0x0a, 0xca, 0x89, 0x51, 0xe1, 0xd1, 0xa0, 0xb4, 0x2b,
-	0xfc, 0x06, 0xb8, 0x8e, 0x62, 0xae, 0xa3, 0x41, 0xe9, 0x96, 0x82, 0x72, 0x8e, 0x06, 0xb4, 0x1a,
-	0x8f, 0xb8, 0x11, 0x6e, 0x13, 0x0e, 0x56, 0xe3, 0x51, 0xbc, 0x54, 0x8f, 0xb8, 0x11, 0xde, 0x53,
-	0x91, 0xc2, 0x08, 0x80, 0x7c, 0x35, 0x19, 0xbc, 0xf4, 0x26, 0xa5, 0x3b, 0x72, 0x86, 0xf3, 0x93,
-	0x47, 0x0d, 0x0e, 0x93, 0x46, 0x78, 0x84, 0x76, 0xba, 0x9b, 0x30, 0xc2, 0xa3, 0x84, 0x9d, 0x1e,
-	0xa1, 0x9d, 0xee, 0x25, 0x49, 0xb8, 0x9d, 0xbe, 0xce, 0x76, 0xf8, 0x40, 0xb3, 0x91, 0x1b, 0x0d,
-	0x82, 0x43, 0x2f, 0x2a, 0x95, 0x49, 0x97, 0x2d, 0x80, 0x77, 0x47, 0x0e, 0x87, 0xea, 0x77, 0x49,
-	0xa1, 0xd9, 0xc8, 0x0d, 0xc3, 0x49, 0xe9, 0x6b, 0x44, 0x54, 0x40, 0x22, 0x3b, 0x9c, 0xa8, 0x14,
-	0xd1, 0x64, 0x52, 0x7a, 0x3f, 0x49, 0xe1, 0x4c, 0x26, 0xfa, 0x1d, 0xc6, 0xa6, 0xf3, 0x49, 0xe8,
-	0xe2, 0x9c, 0x3e, 0x20, 0x6d, 0x0a, 0x00, 0x6b, 0xf3, 0x29, 0xdd, 0x60, 0x9b, 0x9c, 0x20, 0x1a,
-	0x96, 0xbe, 0x2e, 0x16, 0x00, 0x00, 0x0e, 0xb7, 0x16, 0x47, 0xbd, 0xf4, 0xc3, 0xd2, 0x37, 0x84,
-	0xcb, 0x00, 0xa4, 0xea, 0x87, 0x80, 0x9c, 0xbf, 0x7c, 0xe9, 0x8e, 0xc3, 0xf1, 0xa8, 0xf4, 0xa1,
-	0x40, 0xce, 0x5f, 0xbe, 0x6c, 0x85, 0xe3, 0x91, 0x7e, 0x9b, 0x15, 0xa2, 0xe3, 0xd9, 0xcc, 0x9b,
-	0xc0, 0xb6, 0xfe, 0x4d, 0xca, 0x18, 0x79, 0x04, 0xb5, 0x46, 0xd2, 0xd2, 0xde, 0x69, 0x74, 0x34,
-	0x0a, 0x4a, 0x15, 0xd5, 0xd2, 0x26, 0x87, 0xe9, 0x1f, 0xb3, 0xcb, 0xc9, 0xc4, 0x83, 0xb9, 0x6d,
-	0xcc, 0x65, 0xa5, 0xac, 0x4b, 0x89, 0xec, 0xc3, 0xf3, 0x5c, 0x99, 0x6d, 0x51, 0x06, 0x42, 0xd2,
-	0x5f, 0xe7, 0xc6, 0x48, 0x59, 0x0c, 0xd3, 0x90, 0x4a, 0x13, 0x06, 0x43, 0xa4, 0xf9, 0x42, 0xa1,
-	0xb1, 0x83, 0x21, 0xa7, 0x79, 0x9f, 0x6d, 0x8b, 0xb4, 0x83, 0x44, 0x53, 0xae, 0x5e, 0xca, 0x2a,
-	0x52, 0xee, 0x11, 0x54, 0x22, 0x23, 0x20, 0x55, 0x20, 0xa8, 0x28, 0x2d, 0x24, 0xa8, 0xa4, 0x52,
-	0xa1, 0x4a, 0xa5, 0x68, 0x45, 0xe1, 0x81, 0x44, 0xbf, 0x49, 0x44, 0x0c, 0x63, 0x44, 0xa5, 0x89,
-	0x04, 0xcd, 0xdf, 0x50, 0x68, 0x1c, 0xa2, 0xf9, 0x80, 0x8f, 0xf6, 0x28, 0xd6, 0xe9, 0x6f, 0xa6,
-	0x68, 0x7e, 0x45, 0x0a, 0x80, 0x04, 0x99, 0x54, 0xea, 0x6f, 0x25, 0xc8, 0x84, 0x56, 0xdf, 0x62,
-	0x9a, 0x12, 0x0e, 0x48, 0xf9, 0x5b, 0x29, 0x1a, 0x76, 0x27, 0x0e, 0x0a, 0x21, 0x53, 0x78, 0x03,
-	0x52, 0xfe, 0x7d, 0x41, 0x59, 0x24, 0x9f, 0xe0, 0x64, 0xb0, 0x9d, 0x08, 0xbf, 0x40, 0xba, 0xdf,
-	0x4e, 0xd1, 0x8a, 0x6e, 0x09, 0xef, 0x48, 0x0c, 0x8e, 0x1e, 0x82, 0xa4, 0xbf, 0x93, 0x18, 0x1c,
-	0xfd, 0x04, 0x88, 0x61, 0x47, 0x3d, 0x19, 0x4c, 0x8e, 0xbd, 0x6a, 0x0e, 0x2b, 0x9d, 0xb2, 0xcb,
-	0x6e, 0xae, 0xdf, 0x95, 0xa1, 0x46, 0x06, 0x0c, 0x9e, 0x5a, 0xa8, 0xb8, 0x82, 0x22, 0xa3, 0x89,
-	0xe7, 0x3a, 0xf0, 0x11, 0x85, 0x89, 0x0a, 0xda, 0x04, 0xac, 0xfc, 0xaf, 0xb3, 0x78, 0xf6, 0x1c,
-	0xf0, 0x22, 0x4e, 0xff, 0x38, 0xb1, 0x67, 0x2f, 0x17, 0x9b, 0x48, 0xa6, 0xd6, 0x48, 0xdf, 0x61,
-	0x39, 0xff, 0x38, 0x9a, 0x1f, 0x47, 0x54, 0x6c, 0xbe, 0xb7, 0x8e, 0x07, 0xa9, 0x20, 0x28, 0xf1,
-	0x97, 0xfe, 0x03, 0x0a, 0xca, 0x28, 0x9a, 0xf0, 0x2d, 0xbd, 0xb8, 0xe2, 0xe8, 0x49, 0xbc, 0x82,
-	0x4e, 0x84, 0xad, 0x13, 0x4d, 0xf4, 0x07, 0x2c, 0x3b, 0x3f, 0x0e, 0x8f, 0xa8, 0x22, 0x5a, 0xab,
-	0x2a, 0xd0, 0xf0, 0x5a, 0xe1, 0x38, 0x3c, 0x82, 0x21, 0xe7, 0xfe, 0x9c, 0x8b, 0xa3, 0x0a, 0x68,
-	0xed, 0x90, 0x82, 0x8e, 0x27, 0x03, 0x7f, 0xde, 0x99, 0x4f, 0x42, 0xfd, 0x33, 0xb6, 0x71, 0x18,
-	0xf8, 0xc7, 0x73, 0x5e, 0x18, 0x14, 0x1f, 0xdc, 0x5e, 0xc7, 0xcb, 0x89, 0x60, 0xd3, 0xe0, 0x3f,
-	0xf4, 0x6f, 0xb3, 0xdc, 0xec, 0x35, 0x9f, 0xe6, 0xe6, 0xd9, 0x26, 0x42, 0x2a, 0x60, 0x9c, 0xbd,
-	0x86, 0x29, 0x3e, 0x66, 0x85, 0xd0, 0x8b, 0xa8, 0x62, 0xcb, 0x73, 0xde, 0x7b, 0xeb, 0x78, 0x25,
-	0x21, 0xe4, 0xa7, 0xd0, 0x8b, 0xb0, 0xf8, 0xfb, 0x7c, 0xc1, 0x05, 0x0a, 0x5c, 0xc8, 0xfb, 0xeb,
-	0x84, 0xa8, 0xb4, 0x90, 0xc4, 0xd5, 0xe7, 0x6a, 0x9e, 0xe5, 0x90, 0xac, 0xfc, 0x18, 0xcb, 0xbd,
-	0xc4, 0xc2, 0xf2, 0x43, 0x1c, 0x94, 0x5f, 0x29, 0x3a, 0xc4, 0xd1, 0xf1, 0x14, 0x4e, 0x69, 0xf1,
-	0x69, 0x38, 0x37, 0x1d, 0x9c, 0xc2, 0x41, 0xf8, 0x63, 0x3c, 0xa0, 0x2d, 0x2c, 0x2f, 0x14, 0x7f,
-	0xd2, 0x25, 0xe8, 0x38, 0x4c, 0xcb, 0x5d, 0xbe, 0x8f, 0x67, 0x23, 0x65, 0x55, 0xa1, 0xf4, 0xf7,
-	0xa2, 0x23, 0x2f, 0x90, 0x1e, 0xbb, 0x6d, 0xc5, 0x80, 0xf2, 0xa7, 0x89, 0x21, 0xc4, 0x72, 0x7e,
-	0x09, 0xd3, 0xaf, 0x30, 0x6d, 0x71, 0x1d, 0x41, 0x29, 0xfe, 0x43, 0x39, 0xa3, 0xf3, 0xe7, 0xd6,
-	0xa8, 0x5c, 0x49, 0x18, 0x02, 0x97, 0x4f, 0xbf, 0x2a, 0x97, 0x9b, 0xfa, 0x03, 0x7c, 0x31, 0xcb,
-	0x4d, 0x76, 0x65, 0xd5, 0x72, 0xe9, 0x1f, 0x53, 0x15, 0xcd, 0xa9, 0xcf, 0x3e, 0x5f, 0x50, 0xb9,
-	0xfd, 0x94, 0x5d, 0x5f, 0xb3, 0x66, 0x4b, 0x21, 0x9f, 0x5a, 0x0e, 0x79, 0x58, 0x28, 0x5e, 0xff,
-	0xc2, 0x8a, 0x6c, 0x59, 0xfc, 0x77, 0xf9, 0xf7, 0x33, 0x68, 0xde, 0xf1, 0x2c, 0x8c, 0x82, 0x63,
-	0xcc, 0x05, 0xba, 0x92, 0x0b, 0xb6, 0x29, 0xda, 0x9b, 0x8c, 0x1d, 0xfa, 0x91, 0x8f, 0xc7, 0x60,
-	0x8a, 0xf8, 0xe5, 0x43, 0x84, 0x22, 0xc5, 0x8d, 0xc9, 0x61, 0xb7, 0x86, 0x27, 0x7e, 0x66, 0xd6,
-	0x1d, 0xb6, 0xf3, 0x3a, 0x18, 0x47, 0x4a, 0x3d, 0x8e, 0x39, 0xe0, 0x5b, 0x67, 0x4a, 0x4b, 0xb2,
-	0x40, 0xf1, 0xce, 0x21, 0xb2, 0x78, 0x7f, 0xcc, 0x36, 0xd1, 0x2c, 0x21, 0xe5, 0x85, 0xf7, 0xcf,
-	0x14, 0x47, 0xb4, 0x10, 0xe3, 0xf4, 0x53, 0xff, 0x2e, 0xdb, 0x98, 0x7a, 0x60, 0x3a, 0xcc, 0x0f,
-	0xe5, 0x33, 0xf9, 0x39, 0x25, 0xc4, 0x2b, 0xff, 0xa1, 0xf7, 0x16, 0xac, 0x9f, 0x5b, 0xd3, 0x11,
-	0x53, 0x45, 0x9c, 0x19, 0x72, 0x39, 0x5c, 0xaa, 0xf2, 0xb7, 0x71, 0x1b, 0x58, 0x6d, 0xd7, 0x33,
-	0x9a, 0x48, 0xe5, 0x01, 0x7b, 0xef, 0x6c, 0x13, 0xea, 0x37, 0x59, 0x5e, 0xae, 0x00, 0x36, 0x44,
-	0xe4, 0xb3, 0xfe, 0x35, 0xb6, 0x9d, 0x2c, 0x5a, 0xd2, 0x9c, 0x60, 0x6b, 0xaa, 0x54, 0x2b, 0xe5,
-	0x36, 0x7a, 0xe3, 0x0a, 0xb3, 0xea, 0x9f, 0xc4, 0xab, 0x81, 0xcd, 0xb7, 0xeb, 0x6b, 0x12, 0x8f,
-	0x34, 0x7f, 0xf9, 0x01, 0x36, 0x29, 0x97, 0x8c, 0xcc, 0x53, 0x03, 0xfc, 0x50, 0x26, 0xc9, 0x9f,
-	0x5b, 0xa3, 0xf2, 0x01, 0xf6, 0x0a, 0xd7, 0x59, 0xf5, 0x17, 0x0e, 0x8a, 0x3f, 0xc9, 0x60, 0x27,
-	0x83, 0xeb, 0x3b, 0xf5, 0xa9, 0x25, 0xe7, 0x7f, 0x31, 0xf6, 0xc8, 0x52, 0xf4, 0xa4, 0xdf, 0x61,
-	0x45, 0xfc, 0xa5, 0x5a, 0x89, 0x21, 0x88, 0x17, 0x01, 0xea, 0x0a, 0x65, 0x92, 0x6d, 0xbe, 0xef,
-	0xb1, 0xcd, 0xa1, 0x3f, 0x9d, 0x0e, 0x66, 0x78, 0xb6, 0xdf, 0x59, 0x91, 0xe1, 0xc5, 0xf8, 0x2e,
-	0x11, 0x5a, 0x82, 0x43, 0xbf, 0xc7, 0xb6, 0xc6, 0xa3, 0x89, 0xe7, 0x46, 0xe3, 0xa9, 0xe7, 0x1f,
-	0x47, 0xd4, 0xff, 0x28, 0x02, 0xcc, 0x41, 0x10, 0x90, 0x1c, 0x0d, 0x82, 0x91, 0x24, 0xc1, 0xae,
-	0x5d, 0x11, 0x60, 0x82, 0xe4, 0x26, 0xcb, 0xcf, 0x83, 0xb1, 0x1f, 0x8c, 0xa3, 0x37, 0xd4, 0xba,
-	0x93, 0xcf, 0xfa, 0x2e, 0x2b, 0x60, 0x3f, 0x0c, 0x54, 0xc7, 0xc6, 0x5d, 0x1e, 0x01, 0x2d, 0xde,
-	0xbd, 0xf4, 0x8f, 0x23, 0x3c, 0x75, 0x63, 0xef, 0x6e, 0xd3, 0x3f, 0x8e, 0xf8, 0x71, 0x7b, 0x97,
-	0x15, 0x00, 0x85, 0xdb, 0x25, 0x76, 0xef, 0x80, 0x76, 0x8f, 0x67, 0x54, 0xd9, 0x40, 0x2d, 0xaa,
-	0x0d, 0xd4, 0xbf, 0xc4, 0x36, 0x78, 0x07, 0x86, 0x9f, 0x67, 0x8b, 0x0f, 0xae, 0xad, 0xee, 0xcf,
-	0x58, 0x48, 0xa4, 0x3f, 0x66, 0x5b, 0xca, 0x82, 0x87, 0xa5, 0x6d, 0xee, 0x60, 0xb7, 0xce, 0x8a,
-	0x35, 0x2b, 0xc1, 0x51, 0xfe, 0x49, 0x0a, 0x4b, 0x9f, 0x97, 0xc7, 0xc3, 0x2f, 0xbc, 0x08, 0x16,
-	0xf7, 0xb5, 0x37, 0x3e, 0x3c, 0x12, 0x3b, 0x18, 0x3d, 0x41, 0x91, 0xf5, 0x9a, 0x37, 0x86, 0xf8,
-	0x34, 0x71, 0x1b, 0x2b, 0x70, 0x08, 0x9f, 0xe8, 0x1d, 0x56, 0x44, 0x34, 0x4e, 0x15, 0x57, 0x17,
-	0x39, 0x70, 0xb2, 0x9f, 0xa8, 0x29, 0xe9, 0x7c, 0x41, 0xf0, 0x1f, 0xa9, 0x79, 0x84, 0xdb, 0x0e,
-	0x78, 0xde, 0xf7, 0x63, 0x2f, 0x59, 0xd7, 0x91, 0x93, 0xc4, 0xcb, 0x6e, 0x72, 0x3f, 0xf1, 0xde,
-	0x60, 0x77, 0x0d, 0xab, 0x52, 0xd4, 0xa9, 0x5b, 0x5e, 0x26, 0xb1, 0xe5, 0xc1, 0x74, 0xd0, 0x60,
-	0xeb, 0xa7, 0x83, 0x78, 0x4b, 0xd0, 0x95, 0x7f, 0x3b, 0xc5, 0x76, 0x78, 0x47, 0x70, 0x00, 0xcf,
-	0x50, 0x2f, 0x24, 0xdd, 0x2a, 0xb5, 0xe0, 0x56, 0xd7, 0xd9, 0xe6, 0x78, 0xa6, 0x9a, 0x3b, 0x37,
-	0x9e, 0x71, 0x5b, 0x2b, 0xa6, 0xcc, 0x9c, 0xcf, 0x94, 0x32, 0xae, 0xb3, 0x6a, 0x5c, 0x93, 0x79,
-	0x49, 0x9f, 0xf1, 0xec, 0x6c, 0x75, 0x7e, 0x55, 0xb6, 0x60, 0xd3, 0x6b, 0x02, 0x54, 0x0a, 0x5a,
-	0xec, 0xc3, 0x9e, 0x11, 0xf7, 0x71, 0x2e, 0xc9, 0x26, 0x72, 0x89, 0x8c, 0x82, 0x8d, 0xf3, 0x44,
-	0x81, 0x98, 0x5e, 0x4e, 0x99, 0xde, 0x3f, 0xce, 0x60, 0x11, 0xc3, 0x99, 0x02, 0x6f, 0xea, 0x9f,
-	0x78, 0xeb, 0x53, 0x97, 0x1a, 0xfb, 0xe9, 0x85, 0xd8, 0xff, 0xbe, 0x9c, 0x78, 0x86, 0x4f, 0xfc,
-	0xfd, 0xd5, 0x99, 0x89, 0x86, 0x38, 0x6b, 0xee, 0xd9, 0xe4, 0xdc, 0xef, 0xb1, 0xad, 0xd1, 0x71,
-	0x30, 0xa0, 0x42, 0x68, 0x28, 0xd2, 0x96, 0x80, 0xd9, 0xde, 0x10, 0xb6, 0x1e, 0x49, 0x32, 0x03,
-	0x1a, 0xcc, 0x5b, 0x92, 0xaf, 0x1b, 0x7a, 0xc3, 0xa5, 0xf4, 0xb7, 0xf9, 0xe5, 0xe9, 0x2f, 0xbf,
-	0x9c, 0xfe, 0xee, 0xb1, 0x2d, 0x5a, 0xc0, 0xa1, 0x7f, 0x3c, 0xc3, 0x4c, 0x96, 0xb5, 0x8a, 0x08,
-	0xab, 0x01, 0x08, 0x72, 0xc0, 0xcb, 0x37, 0x91, 0x47, 0x04, 0x8c, 0x13, 0x14, 0x00, 0x82, 0x68,
-	0xb9, 0x66, 0x6f, 0xce, 0xb1, 0x66, 0xe5, 0x3f, 0x49, 0xe3, 0x1e, 0x87, 0xdb, 0xd9, 0xcb, 0xc1,
-	0x6c, 0x74, 0xde, 0x17, 0x71, 0x0a, 0x87, 0x12, 0xac, 0x3a, 0xcb, 0x06, 0x83, 0xc8, 0xa3, 0xe5,
-	0xe3, 0xbf, 0xb9, 0xc2, 0xc7, 0x41, 0x18, 0xb9, 0xe1, 0xf8, 0x37, 0x3c, 0x72, 0xbd, 0x02, 0x87,
-	0xd8, 0xe3, 0xdf, 0xf0, 0xf4, 0x47, 0x2c, 0x3b, 0x0a, 0xfc, 0x39, 0xd5, 0x48, 0x67, 0x0e, 0x04,
-	0x74, 0x70, 0x7e, 0x82, 0x7f, 0xf5, 0xcf, 0x59, 0x71, 0x14, 0x0e, 0xe7, 0xb0, 0xe4, 0x83, 0xe0,
-	0x8b, 0xb5, 0x4d, 0x64, 0x95, 0x3d, 0x26, 0x6f, 0x5e, 0xb0, 0x18, 0x3c, 0x5a, 0xfc, 0x49, 0xef,
-	0xae, 0x2c, 0x96, 0x3e, 0x3c, 0x4b, 0xd8, 0xb9, 0x6a, 0xa5, 0xab, 0x58, 0xf7, 0x2f, 0x4c, 0xa1,
-	0xfc, 0x3d, 0x2c, 0xa1, 0x56, 0xab, 0x06, 0xf6, 0x9a, 0x07, 0xde, 0xd0, 0x9d, 0x78, 0x27, 0x9e,
-	0xa8, 0xdb, 0x0b, 0x00, 0x69, 0x03, 0xa0, 0x6c, 0xb0, 0xdd, 0x33, 0x54, 0x39, 0x4f, 0x81, 0x51,
-	0xfe, 0xb7, 0x94, 0x74, 0x50, 0xc6, 0x39, 0x73, 0xba, 0x24, 0x5e, 0xce, 0xe9, 0x72, 0x0f, 0x4d,
-	0xab, 0x7b, 0xa8, 0x5a, 0x25, 0x65, 0x12, 0x55, 0x92, 0xfe, 0x1d, 0xb6, 0x01, 0x9a, 0x8b, 0xb4,
-	0x5d, 0x3e, 0xcb, 0xd0, 0xf4, 0x1e, 0x14, 0x19, 0xca, 0x3f, 0x46, 0xcd, 0xbd, 0x20, 0xf0, 0x03,
-	0x77, 0x1a, 0x1e, 0xea, 0xf7, 0x59, 0x4e, 0xe9, 0x39, 0xac, 0x4a, 0xc3, 0x24, 0x80, 0xc8, 0xe4,
-	0x51, 0x22, 0xad, 0x1c, 0x25, 0x74, 0x96, 0xe5, 0x7d, 0xc5, 0x0c, 0xbd, 0x46, 0xf4, 0x47, 0xde,
-	0xca, 0x6c, 0xfd, 0x5b, 0x29, 0x5c, 0x39, 0x1c, 0x3e, 0xd1, 0x05, 0x01, 0x5d, 0x56, 0x9d, 0x52,
-	0x6e, 0xb0, 0xbc, 0x77, 0x8a, 0x1b, 0x1a, 0x0d, 0xb9, 0xe9, 0x9d, 0xce, 0x79, 0x53, 0x73, 0x71,
-	0xa9, 0x32, 0x67, 0xd4, 0x82, 0xaa, 0x16, 0x27, 0x14, 0xb3, 0xc7, 0x93, 0x68, 0x3c, 0x1f, 0xf0,
-	0x37, 0x6e, 0x3f, 0x3a, 0xf6, 0xc2, 0x48, 0xff, 0x34, 0x11, 0xb3, 0x77, 0x96, 0xad, 0x2a, 0x39,
-	0x94, 0x90, 0x5d, 0xbd, 0x78, 0x3a, 0xcb, 0xbe, 0xf4, 0x47, 0x6f, 0xb8, 0x4e, 0x5b, 0x16, 0xff,
-	0x5d, 0x8e, 0xc8, 0x9b, 0x95, 0x71, 0xe7, 0x93, 0x37, 0xbf, 0xec, 0x51, 0x7f, 0x37, 0x85, 0xef,
-	0x98, 0x47, 0x5e, 0x38, 0xe4, 0x3e, 0xf5, 0x2a, 0xe0, 0xbf, 0xf9, 0x78, 0x05, 0x6b, 0x73, 0xfa,
-	0x2a, 0xa8, 0x03, 0x0a, 0xdf, 0xe0, 0xc9, 0x57, 0x8d, 0x05, 0x2b, 0x77, 0xf4, 0x5a, 0x20, 0x42,
-	0x42, 0xe0, 0x8b, 0xe6, 0x5c, 0x88, 0x88, 0xdb, 0x8c, 0x85, 0x5e, 0x30, 0x1e, 0x4c, 0xdc, 0xd9,
-	0xf1, 0x94, 0x5b, 0xb8, 0x60, 0x15, 0x10, 0xd2, 0x3d, 0x9e, 0x02, 0xdf, 0x08, 0x87, 0xe5, 0xc9,
-	0xa5, 0x60, 0xe5, 0x46, 0x73, 0xe0, 0x2b, 0xff, 0x51, 0x8a, 0x5d, 0x93, 0x3b, 0x4e, 0x18, 0x0d,
-	0xa2, 0x50, 0xae, 0xc0, 0x19, 0xef, 0xd0, 0xd5, 0x02, 0x35, 0x7d, 0x46, 0x81, 0x9a, 0x59, 0x28,
-	0x50, 0xd7, 0x6d, 0xce, 0x0b, 0x85, 0xfe, 0xc6, 0x52, 0xa1, 0x2f, 0x77, 0x82, 0xdc, 0x79, 0x76,
-	0x82, 0x3f, 0xcc, 0x60, 0x61, 0x14, 0x4f, 0x4a, 0xdf, 0x61, 0xe9, 0xf1, 0x88, 0xbf, 0x99, 0xc9,
-	0x5a, 0xe9, 0xf1, 0x99, 0x17, 0x04, 0x16, 0x77, 0xd1, 0xf4, 0x39, 0x76, 0xd1, 0xcc, 0x8a, 0x5d,
-	0x54, 0x2d, 0x01, 0xb2, 0x0b, 0x25, 0xc0, 0x57, 0x73, 0xc0, 0x90, 0x8e, 0xb7, 0xa9, 0x3a, 0x5e,
-	0x6c, 0xe4, 0x7c, 0xc2, 0xc8, 0x5f, 0xe1, 0x7e, 0xfc, 0xff, 0xe8, 0x24, 0xf1, 0xc7, 0x29, 0xdc,
-	0x1f, 0x06, 0x87, 0x87, 0x81, 0x77, 0x38, 0x88, 0xbc, 0xff, 0x6f, 0x3c, 0xf4, 0xc7, 0xec, 0xc6,
-	0xea, 0x89, 0x41, 0x12, 0x5a, 0x5c, 0xa8, 0xd4, 0x97, 0x2d, 0x54, 0x7a, 0x71, 0xa1, 0x6e, 0x33,
-	0xc6, 0x87, 0x46, 0x34, 0x95, 0x29, 0x00, 0xe1, 0xe8, 0xf2, 0x9f, 0x67, 0x30, 0xf5, 0xa3, 0xf1,
-	0xe8, 0x1a, 0x87, 0x3b, 0x0f, 0xfc, 0xb9, 0x17, 0xf0, 0xfa, 0x54, 0x4d, 0x82, 0xcb, 0x95, 0xc3,
-	0x32, 0x9b, 0x9a, 0x0d, 0x0f, 0x16, 0x96, 0x1d, 0x9b, 0x59, 0x1f, 0x9f, 0x47, 0x8a, 0xca, 0xc7,
-	0xdf, 0x75, 0x29, 0xcf, 0xba, 0xc5, 0x8a, 0x33, 0xef, 0x34, 0x52, 0x6f, 0x8a, 0x14, 0x1f, 0xdc,
-	0x3f, 0x8f, 0x58, 0x85, 0x0d, 0x6a, 0x25, 0x78, 0xa4, 0xfb, 0x25, 0x7b, 0x8b, 0x6d, 0xad, 0x6f,
-	0x9d, 0x47, 0xde, 0x8a, 0xee, 0xd6, 0xf7, 0x58, 0xc6, 0x3f, 0x9d, 0xae, 0x2d, 0xdc, 0x56, 0x08,
-	0xf1, 0x4f, 0xa7, 0xcd, 0x0b, 0x16, 0x70, 0x81, 0xc5, 0x56, 0x54, 0x6c, 0xe7, 0xb2, 0xd8, 0x99,
-	0x95, 0x9b, 0x78, 0xeb, 0x51, 0x3e, 0x64, 0x5f, 0x3b, 0x87, 0xc5, 0x97, 0x02, 0x36, 0xf5, 0x73,
-	0x07, 0xec, 0xe7, 0xac, 0xfc, 0xe5, 0x6b, 0xa0, 0xbf, 0xcf, 0x76, 0xe2, 0x47, 0x77, 0x3c, 0xc2,
-	0x91, 0xb6, 0xad, 0x2d, 0xb9, 0x32, 0xad, 0x51, 0x58, 0xb6, 0xb1, 0xc5, 0xb6, 0xde, 0xfe, 0xbf,
-	0x48, 0x1b, 0xec, 0xb3, 0x75, 0x8e, 0x0f, 0xeb, 0x01, 0xbb, 0xa4, 0x7f, 0x3a, 0xe5, 0x1a, 0x65,
-	0xf0, 0xe2, 0x8c, 0x7f, 0x3a, 0x05, 0x5d, 0xfe, 0x61, 0x6a, 0xad, 0x05, 0xcf, 0x2c, 0x58, 0x57,
-	0xbc, 0x19, 0x4a, 0x14, 0x51, 0x99, 0x64, 0x11, 0xf5, 0x2d, 0x96, 0xb8, 0x0d, 0xe2, 0x52, 0xb5,
-	0x04, 0x9a, 0x68, 0x2a, 0xa2, 0x0e, 0x95, 0xd3, 0xef, 0xa5, 0x99, 0xbe, 0xa4, 0x53, 0x78, 0x56,
-	0x4e, 0x14, 0x57, 0xd4, 0xd2, 0xca, 0x15, 0xb5, 0x0f, 0xd8, 0x8e, 0xd2, 0x8a, 0x84, 0xfc, 0x95,
-	0xe1, 0xc9, 0x64, 0x3b, 0xee, 0x45, 0x42, 0x2e, 0x57, 0xc9, 0x78, 0xa3, 0x93, 0xd2, 0xa3, 0x24,
-	0x7b, 0x06, 0x40, 0xe5, 0x82, 0xd1, 0x46, 0xe2, 0x82, 0xd1, 0x1d, 0x56, 0x9c, 0x0e, 0x4e, 0x5d,
-	0x6f, 0x16, 0x05, 0x63, 0x2f, 0xa4, 0xad, 0x8c, 0x4d, 0x07, 0xa7, 0x26, 0x42, 0xf4, 0x3d, 0x38,
-	0x27, 0xf0, 0xf4, 0x03, 0xf8, 0x4d, 0xbe, 0x9a, 0xe7, 0x09, 0x23, 0xc8, 0x57, 0x96, 0xc2, 0x5a,
-	0xfe, 0x49, 0x0a, 0x1b, 0xee, 0x48, 0x8a, 0x7b, 0xff, 0xd9, 0x7b, 0x3d, 0xb8, 0xc6, 0x89, 0x9a,
-	0x49, 0xb7, 0xad, 0x22, 0xc2, 0x30, 0x97, 0xde, 0x63, 0x5b, 0x13, 0xdf, 0xff, 0xe2, 0x78, 0xae,
-	0x64, 0xd3, 0xac, 0x55, 0x44, 0x18, 0x92, 0x7c, 0x8d, 0x6d, 0x73, 0xdb, 0x79, 0x23, 0xa2, 0xc9,
-	0x52, 0x3f, 0x17, 0x81, 0x98, 0x74, 0x3f, 0xc1, 0x42, 0x4b, 0x5e, 0x42, 0x8b, 0xb7, 0xb1, 0x75,
-	0x17, 0xb9, 0xca, 0x7f, 0x4a, 0x75, 0x4c, 0xcc, 0xb3, 0xfe, 0xd2, 0xd7, 0x6d, 0xc6, 0x82, 0x53,
-	0xea, 0x98, 0x84, 0x62, 0x47, 0x08, 0x4e, 0xfb, 0x08, 0x00, 0x74, 0x14, 0xa3, 0x71, 0x0e, 0x85,
-	0x48, 0xa2, 0x6f, 0xb0, 0x7c, 0x70, 0xea, 0xc2, 0x06, 0x12, 0x92, 0xf2, 0x9b, 0xc1, 0x69, 0x15,
-	0x1e, 0xb9, 0xf5, 0x04, 0x0a, 0xb7, 0xbd, 0xcd, 0x88, 0x50, 0x38, 0x26, 0x1c, 0x03, 0xe7, 0xde,
-	0x88, 0xaf, 0x2a, 0x1f, 0xb3, 0x8e, 0x00, 0x1a, 0x53, 0xa0, 0x37, 0xc5, 0x98, 0x02, 0xbd, 0xcb,
-	0x0a, 0xc1, 0x29, 0x1e, 0x3f, 0x42, 0x2a, 0x55, 0xf2, 0xc1, 0xa9, 0xc9, 0x9f, 0x01, 0x19, 0x49,
-	0x24, 0x56, 0x2a, 0xf9, 0x48, 0x20, 0xef, 0xb2, 0xad, 0xe0, 0xd4, 0x7d, 0x15, 0x0c, 0xa6, 0x1e,
-	0x90, 0x50, 0xa1, 0xc2, 0x82, 0xd3, 0x06, 0x80, 0x4c, 0x7e, 0x6f, 0xb2, 0x18, 0x9c, 0xba, 0xfe,
-	0x89, 0x17, 0x70, 0x82, 0xa2, 0x50, 0xad, 0x77, 0xe2, 0x05, 0x80, 0xbf, 0xc5, 0x35, 0x1f, 0x06,
-	0x43, 0x8e, 0xde, 0x12, 0x83, 0xd7, 0x82, 0x21, 0x72, 0xb3, 0xa1, 0x3f, 0x99, 0x8c, 0x43, 0xaa,
-	0x5b, 0x68, 0xaf, 0x17, 0x90, 0xa5, 0x0a, 0x71, 0xe7, 0x1c, 0x15, 0xe2, 0xc5, 0xe5, 0x0a, 0xb1,
-	0xfc, 0x10, 0x5b, 0xfc, 0xd8, 0x12, 0x5c, 0x2a, 0x6d, 0xd6, 0xbd, 0x1c, 0x3b, 0xc0, 0xb8, 0xc7,
-	0x2e, 0x20, 0x3a, 0x9c, 0x17, 0xfc, 0xdf, 0x17, 0x0d, 0xe5, 0x9f, 0xa4, 0x31, 0x74, 0x14, 0x75,
-	0xce, 0x50, 0x83, 0x2f, 0x9f, 0xf7, 0x2a, 0x11, 0x37, 0xf9, 0xc0, 0x7b, 0x25, 0x83, 0x26, 0xa1,
-	0x4d, 0xe6, 0xcb, 0xb4, 0xc9, 0x2e, 0x96, 0x30, 0x5f, 0x55, 0x2f, 0xab, 0xca, 0xb6, 0xc8, 0x52,
-	0x7c, 0x46, 0x94, 0x5b, 0xee, 0xac, 0x69, 0xae, 0x0a, 0x73, 0x5a, 0x45, 0x7c, 0xb6, 0x81, 0x07,
-	0x8e, 0x6d, 0x3b, 0xb1, 0x65, 0xf8, 0xe1, 0xed, 0xcb, 0xee, 0x3c, 0x9e, 0xd9, 0xfa, 0x4d, 0xaf,
-	0x6d, 0xfd, 0x66, 0xce, 0xd9, 0xfa, 0x3d, 0x51, 0x97, 0x0a, 0xd2, 0xea, 0x1b, 0xd0, 0x48, 0x1e,
-	0x25, 0x8b, 0x6b, 0x35, 0x02, 0x12, 0xbc, 0xa1, 0xaa, 0x3f, 0xc0, 0x5b, 0xc8, 0xa2, 0x42, 0xbb,
-	0xb5, 0x86, 0x83, 0xd3, 0xe0, 0x1d, 0xe5, 0xb0, 0xfc, 0x77, 0x52, 0xe8, 0x7c, 0x88, 0x92, 0x9b,
-	0xce, 0x15, 0xb6, 0xc1, 0xef, 0x1a, 0x8a, 0x37, 0xb3, 0xfc, 0x61, 0xe9, 0x6a, 0x6e, 0x7a, 0xf9,
-	0x6a, 0x2e, 0x78, 0x01, 0xec, 0x0c, 0x5c, 0x9e, 0xd8, 0x75, 0x0b, 0xd3, 0xc1, 0x29, 0xaf, 0xc6,
-	0x43, 0xbd, 0x94, 0x6c, 0xf2, 0x6f, 0xc7, 0x3b, 0xf9, 0x77, 0xd4, 0xd6, 0xd1, 0x72, 0xfb, 0xe0,
-	0x8c, 0xd7, 0x5a, 0xbf, 0x8e, 0x2f, 0x8c, 0x95, 0xb6, 0x0c, 0xfa, 0x7a, 0x85, 0x5d, 0x22, 0x9f,
-	0xe5, 0x40, 0x35, 0x8c, 0x2e, 0x22, 0xa2, 0x3a, 0x98, 0x61, 0x32, 0xd7, 0xbf, 0xce, 0x2e, 0x72,
-	0xe7, 0x55, 0x28, 0x31, 0x9e, 0xb6, 0x01, 0x2c, 0xe9, 0xca, 0x7f, 0x40, 0x31, 0x85, 0x83, 0xc9,
-	0x98, 0x5a, 0xa3, 0xda, 0x42, 0xdd, 0x9e, 0x5e, 0xa8, 0xdb, 0x61, 0xd4, 0xb8, 0x25, 0xae, 0x06,
-	0xd6, 0x36, 0x82, 0x5b, 0x33, 0xa4, 0x2b, 0x33, 0xae, 0x46, 0x4c, 0x85, 0xd1, 0x55, 0x04, 0xa0,
-	0xa0, 0xf9, 0xaa, 0xe2, 0xeb, 0x31, 0x63, 0xb1, 0x0d, 0x29, 0xba, 0xee, 0x9d, 0xd5, 0x03, 0x43,
-	0x7f, 0x2a, 0xc0, 0x6f, 0x8c, 0xae, 0xdf, 0xc4, 0xb6, 0x3a, 0x92, 0x9c, 0xf9, 0x29, 0x80, 0x6a,
-	0xb9, 0xf4, 0x9a, 0x2e, 0x5c, 0xe6, 0xe7, 0xed, 0xc2, 0xfd, 0x2b, 0x72, 0x69, 0x24, 0x90, 0x2e,
-	0x4d, 0x17, 0xe1, 0xf1, 0x9d, 0x75, 0x4a, 0x5e, 0x84, 0xef, 0xf0, 0x97, 0xa6, 0xb7, 0x69, 0xd2,
-	0xe8, 0xf4, 0xb4, 0x4e, 0x00, 0x71, 0x56, 0x3a, 0x7e, 0x66, 0x85, 0xe3, 0x93, 0x7c, 0xd1, 0x3a,
-	0x14, 0xf2, 0xc1, 0x75, 0x24, 0x72, 0xe8, 0x4f, 0xfc, 0x80, 0x56, 0x06, 0x90, 0x35, 0x78, 0x2e,
-	0xff, 0x58, 0x75, 0x29, 0x8c, 0xfd, 0xcf, 0x64, 0xdd, 0x95, 0x5a, 0x73, 0x83, 0x46, 0xb5, 0xae,
-	0x2c, 0xcb, 0xbe, 0x34, 0x03, 0x28, 0x6e, 0x2b, 0x32, 0xc0, 0x09, 0xbb, 0xc7, 0xbb, 0x86, 0x89,
-	0x7e, 0xa1, 0x0c, 0xbf, 0xa3, 0xd5, 0x37, 0xa4, 0x52, 0x5f, 0x52, 0x07, 0x2f, 0x34, 0x13, 0x45,
-	0xa3, 0x30, 0xa3, 0x34, 0x0a, 0x27, 0xb8, 0x57, 0x26, 0xc6, 0xfd, 0xe5, 0x8d, 0x66, 0x62, 0x5b,
-	0xf2, 0x47, 0xc7, 0xde, 0x31, 0xd5, 0xf9, 0x34, 0x16, 0x6f, 0xea, 0x60, 0xdd, 0x29, 0xbc, 0x42,
-	0x9e, 0x9b, 0x35, 0x96, 0x89, 0x6f, 0xe4, 0xc0, 0xcf, 0x72, 0x80, 0x4a, 0x2b, 0x62, 0xa6, 0xe3,
-	0x99, 0xcb, 0xdf, 0x24, 0xd4, 0x58, 0x51, 0x91, 0x4b, 0xeb, 0xb6, 0xec, 0xb6, 0x4b, 0x1a, 0x60,
-	0xb5, 0xdb, 0x94, 0xfd, 0xdf, 0xc5, 0x57, 0x14, 0xab, 0xc6, 0x1c, 0x9c, 0xfe, 0x92, 0xc7, 0xfc,
-	0x47, 0xd4, 0xa8, 0x51, 0x38, 0x13, 0xd6, 0xff, 0x4a, 0x06, 0x3e, 0xcf, 0xe1, 0x6a, 0xd5, 0x5a,
-	0xfe, 0xed, 0x14, 0x26, 0x18, 0x4a, 0x9d, 0x7c, 0x10, 0xf0, 0x07, 0x1c, 0x2d, 0x4e, 0xc2, 0xfc,
-	0x19, 0x8f, 0x49, 0x4a, 0xdb, 0x08, 0x2f, 0x5c, 0x55, 0x13, 0xe7, 0x93, 0x75, 0x9d, 0xfe, 0x35,
-	0xfa, 0xd3, 0xd1, 0xe4, 0x01, 0x5e, 0xa7, 0x40, 0xa2, 0x43, 0x5e, 0x6b, 0x40, 0x14, 0xca, 0x2d,
-	0x6b, 0xc5, 0x45, 0xaf, 0xf2, 0x21, 0x9e, 0x57, 0x57, 0xf0, 0xcc, 0x27, 0x6f, 0x56, 0x5e, 0x0d,
-	0xfb, 0x8c, 0xe5, 0x38, 0xb5, 0xf8, 0xae, 0xe2, 0xf6, 0xba, 0xb7, 0xaa, 0x9c, 0xca, 0x22, 0xe2,
-	0xb2, 0xb9, 0x74, 0x8b, 0x0a, 0xed, 0xb4, 0xe6, 0x35, 0x80, 0xb4, 0x5d, 0x26, 0x61, 0xbb, 0x72,
-	0x47, 0x75, 0xbe, 0xf3, 0x9d, 0x72, 0x12, 0xe2, 0xd2, 0x49, 0x71, 0x7f, 0x46, 0xa7, 0x39, 0x45,
-	0xde, 0x2f, 0x22, 0x27, 0x71, 0x86, 0xc9, 0x2c, 0x9d, 0x61, 0x94, 0x83, 0x51, 0x76, 0xf1, 0x60,
-	0x94, 0x38, 0x87, 0x6c, 0x2c, 0x9c, 0x43, 0x16, 0xf7, 0xd0, 0xdc, 0x39, 0xf6, 0xd0, 0xcd, 0x15,
-	0xe7, 0x80, 0x29, 0x3a, 0x68, 0xe0, 0x4f, 0x3c, 0x69, 0xae, 0x87, 0x2c, 0x0b, 0xcf, 0x6b, 0xdf,
-	0x59, 0x0e, 0xfd, 0x59, 0x14, 0xf8, 0x93, 0x89, 0x17, 0x70, 0x3e, 0x8b, 0x53, 0xc3, 0x70, 0x87,
-	0xde, 0xcc, 0xa3, 0x01, 0xc9, 0x10, 0x59, 0x6b, 0x2b, 0x06, 0xb6, 0x46, 0xe5, 0xdf, 0xa1, 0x80,
-	0x18, 0x84, 0x6f, 0x66, 0x43, 0xb1, 0xe3, 0xbe, 0xcf, 0x76, 0xe2, 0xda, 0x82, 0xf7, 0x38, 0xa9,
-	0x29, 0x23, 0x4a, 0x0b, 0xde, 0xe5, 0xfc, 0x90, 0x69, 0xca, 0x57, 0x54, 0xe2, 0x5a, 0x0e, 0xd0,
-	0xed, 0x00, 0xdc, 0xe6, 0x60, 0x4e, 0x59, 0x61, 0x97, 0x12, 0x6f, 0xb1, 0x39, 0x29, 0xd6, 0x77,
-	0x17, 0x01, 0x61, 0x21, 0x9c, 0x5f, 0x75, 0xfa, 0x82, 0xed, 0xf0, 0x7d, 0xb5, 0xe3, 0x8f, 0xf6,
-	0xe7, 0x23, 0xc8, 0x54, 0xd8, 0xae, 0xc7, 0xb7, 0x22, 0xe9, 0x31, 0xff, 0xc8, 0x47, 0xbe, 0xb3,
-	0xa3, 0xdd, 0xea, 0xe6, 0xfa, 0xb7, 0x7a, 0x16, 0x96, 0x09, 0x1d, 0x7f, 0xb4, 0xe2, 0x7b, 0xcd,
-	0x3e, 0xbb, 0xc8, 0x07, 0xe3, 0xc5, 0x87, 0xc5, 0xe3, 0xe8, 0x07, 0xac, 0xa8, 0xec, 0x74, 0x6b,
-	0xfb, 0x5e, 0xea, 0x6e, 0xc8, 0xa6, 0x52, 0x46, 0x79, 0xcc, 0x2e, 0x36, 0x26, 0xfe, 0x6b, 0xde,
-	0xb9, 0x5a, 0xa3, 0xff, 0x43, 0x96, 0x17, 0xb7, 0x8d, 0x48, 0xfd, 0x1b, 0x6b, 0xaf, 0x23, 0x59,
-	0x9b, 0xf0, 0x6b, 0xb5, 0xf2, 0x3f, 0x62, 0x57, 0x60, 0x28, 0x5e, 0x1d, 0x9f, 0x35, 0xde, 0xb7,
-	0x59, 0x41, 0xde, 0x5b, 0x59, 0x6b, 0x2f, 0x49, 0x61, 0xe1, 0xd1, 0x64, 0xf5, 0x90, 0xdf, 0x65,
-	0x1b, 0x30, 0x64, 0xa8, 0x7f, 0xc2, 0x36, 0xc6, 0x91, 0x37, 0x15, 0xf6, 0xd9, 0x5d, 0x3d, 0x01,
-	0x2a, 0x16, 0x38, 0x65, 0xf9, 0xfb, 0x2c, 0xc7, 0x6d, 0x1d, 0x42, 0xa9, 0xa1, 0x32, 0xaf, 0x33,
-	0x2e, 0x2f, 0x67, 0x04, 0xf7, 0x63, 0xc6, 0xe4, 0x64, 0xcf, 0x21, 0x41, 0x39, 0x0c, 0x09, 0x09,
-	0x63, 0x56, 0x04, 0x09, 0xb5, 0xa3, 0xc1, 0xec, 0xd0, 0x0b, 0xf5, 0x6f, 0xb2, 0x5c, 0xe4, 0xbb,
-	0x83, 0x91, 0xb8, 0x13, 0xaa, 0x27, 0x64, 0xf0, 0x59, 0x5a, 0x1b, 0x91, 0x6f, 0x8c, 0x46, 0xfa,
-	0x7d, 0x56, 0x88, 0x7c, 0x72, 0x5e, 0x32, 0xe0, 0x2a, 0xea, 0x7c, 0xe4, 0xa3, 0x23, 0x43, 0x19,
-	0xa9, 0x49, 0x6d, 0xc5, 0x80, 0x1f, 0x2d, 0x0c, 0x78, 0x7d, 0x49, 0x04, 0x4e, 0x4e, 0x8c, 0xfa,
-	0x70, 0x79, 0xd4, 0xb5, 0x2c, 0x72, 0x68, 0xe2, 0x3a, 0xe6, 0x9e, 0x40, 0x7d, 0xf1, 0xb3, 0xb8,
-	0xd0, 0x65, 0xca, 0x36, 0xcb, 0xf7, 0x29, 0xb4, 0x57, 0xb9, 0x8f, 0x4c, 0x06, 0x6b, 0xdd, 0x47,
-	0x52, 0x58, 0x79, 0x91, 0x23, 0xca, 0xcf, 0x58, 0x01, 0x85, 0xf6, 0x8e, 0xa3, 0x25, 0xa9, 0xdf,
-	0x65, 0x2c, 0xbe, 0xaa, 0x44, 0x62, 0x77, 0xd7, 0x89, 0xf5, 0x8f, 0x23, 0x8b, 0x94, 0xe8, 0x1d,
-	0x47, 0xe5, 0xff, 0x9a, 0x62, 0x45, 0xb4, 0xaa, 0x79, 0xe2, 0xcd, 0x96, 0x65, 0xff, 0x65, 0x56,
-	0x54, 0x12, 0xd3, 0xda, 0x82, 0x56, 0xa1, 0x69, 0x5e, 0xb0, 0x58, 0x9c, 0xb3, 0xc0, 0xbd, 0x78,
-	0x96, 0x27, 0x03, 0x2e, 0x4f, 0x57, 0xbe, 0xa6, 0x6f, 0x5e, 0xb0, 0x90, 0x54, 0x37, 0xd9, 0x76,
-	0xe2, 0xfb, 0xce, 0xb5, 0x5f, 0x11, 0x26, 0xa8, 0x9a, 0x17, 0xac, 0x2d, 0x04, 0xe0, 0xd0, 0xd5,
-	0x4d, 0xb6, 0xe1, 0xc1, 0xa4, 0xca, 0x26, 0xdb, 0x82, 0xa5, 0x92, 0xb7, 0x6e, 0x3f, 0x63, 0x39,
-	0x1e, 0x16, 0xc2, 0xe7, 0xbf, 0xac, 0xac, 0x47, 0xe2, 0xca, 0x7f, 0x49, 0xb1, 0xa2, 0x9c, 0xec,
-	0xcc, 0xd7, 0x35, 0xb6, 0xd5, 0x6b, 0xf4, 0xfb, 0x6e, 0xab, 0x7b, 0x60, 0xb4, 0x5b, 0x75, 0xed,
-	0x82, 0xae, 0xb1, 0x3c, 0x87, 0x74, 0x8c, 0xe7, 0xda, 0xdb, 0x9f, 0xbd, 0x7b, 0xb7, 0xa9, 0x5f,
-	0x91, 0x34, 0x6e, 0xbf, 0x67, 0x39, 0xda, 0xff, 0x78, 0x07, 0x50, 0x9d, 0x31, 0x0e, 0x75, 0x8c,
-	0x6a, 0xdb, 0xd4, 0xfe, 0x27, 0x87, 0x5d, 0x66, 0x45, 0x0e, 0xeb, 0xf6, 0xac, 0x8e, 0xd1, 0xd6,
-	0xfe, 0x22, 0x41, 0xd8, 0x68, 0xf7, 0x7a, 0x75, 0xed, 0x7f, 0x71, 0x98, 0x18, 0xc4, 0x68, 0xb7,
-	0xb5, 0x9f, 0x72, 0xc8, 0x75, 0x76, 0x91, 0x43, 0x6a, 0xbd, 0xae, 0x63, 0xf5, 0xda, 0x6d, 0xd3,
-	0xd2, 0xfe, 0x77, 0x82, 0xbd, 0xdd, 0xab, 0x19, 0x6d, 0xed, 0x67, 0x49, 0xf6, 0xee, 0x0b, 0xed,
-	0x1d, 0x40, 0x2a, 0xff, 0x7e, 0x03, 0xdf, 0x9e, 0xf3, 0x22, 0x64, 0x87, 0xb3, 0x38, 0x6e, 0xd3,
-	0x6c, 0xb7, 0x7b, 0xda, 0x05, 0xf9, 0x6c, 0x5a, 0x56, 0xcf, 0xd2, 0x52, 0xfa, 0x55, 0x76, 0x09,
-	0x9f, 0x6b, 0xcd, 0x9e, 0x6b, 0x99, 0x4f, 0xf7, 0x4d, 0xdb, 0xd1, 0xd2, 0xfa, 0x65, 0xae, 0x82,
-	0x04, 0xf7, 0xdb, 0x2f, 0xb4, 0x4c, 0x4c, 0xfb, 0xbc, 0x6f, 0x5a, 0xad, 0x8e, 0xd9, 0x75, 0x4c,
-	0x4b, 0xcb, 0xea, 0x37, 0xd8, 0x55, 0x0e, 0x6e, 0x98, 0x86, 0xb3, 0x6f, 0x99, 0xb6, 0x14, 0xb3,
-	0xa1, 0x5f, 0x67, 0x97, 0x17, 0x51, 0x20, 0x2a, 0xa7, 0xef, 0xb2, 0xeb, 0x1c, 0xb1, 0x67, 0x3a,
-	0x30, 0xcd, 0x46, 0x6b, 0x4f, 0x72, 0x6d, 0x4a, 0x81, 0x09, 0x24, 0xf0, 0xe5, 0xa5, 0x5e, 0xb6,
-	0x44, 0x69, 0x05, 0x5d, 0x67, 0x3b, 0x1c, 0xd8, 0x37, 0x6a, 0x4f, 0x4c, 0xc7, 0x6d, 0x75, 0x35,
-	0x26, 0x75, 0x6d, 0xb4, 0x7b, 0xcf, 0x5c, 0xcb, 0xec, 0xf4, 0x0e, 0xcc, 0xba, 0x56, 0xd4, 0xaf,
-	0x30, 0x0d, 0x49, 0x7b, 0x96, 0xe3, 0xda, 0x8e, 0xe1, 0xec, 0xdb, 0xda, 0x96, 0x94, 0x4a, 0x02,
-	0x7a, 0xfb, 0x8e, 0xb6, 0xad, 0x5f, 0x62, 0xdb, 0xb1, 0x84, 0x4e, 0xaf, 0xae, 0xed, 0xc8, 0x81,
-	0xf6, 0xac, 0xde, 0x7e, 0x9f, 0xc3, 0x2e, 0x4a, 0x32, 0x2e, 0x11, 0x40, 0x9a, 0x24, 0xe3, 0xee,
-	0xc0, 0x61, 0x97, 0xf4, 0x9b, 0xec, 0x1a, 0x87, 0x75, 0xf6, 0xdb, 0x4e, 0xab, 0x6f, 0x58, 0x8e,
-	0x9c, 0xaf, 0xae, 0x97, 0xd8, 0x95, 0x25, 0x1c, 0x4c, 0xf7, 0xb2, 0xc4, 0x54, 0x0d, 0xcb, 0x6a,
-	0x99, 0x96, 0xe4, 0xb9, 0xa2, 0x5f, 0x63, 0xfa, 0x02, 0x06, 0x38, 0xae, 0xea, 0xf7, 0xd8, 0x6d,
-	0x0e, 0x7f, 0xba, 0x6f, 0xee, 0x9b, 0xab, 0xcc, 0x7b, 0x4d, 0xbf, 0xc3, 0x76, 0xd7, 0x91, 0x80,
-	0x8c, 0xeb, 0xd2, 0x76, 0x56, 0xaf, 0x6d, 0x4a, 0xbe, 0x92, 0xb4, 0x12, 0x81, 0x81, 0xf6, 0x86,
-	0x9c, 0x17, 0x88, 0x31, 0xec, 0x17, 0xdd, 0x9a, 0x64, 0xb8, 0x29, 0xb5, 0x57, 0x71, 0xc0, 0xb5,
-	0x2b, 0x2d, 0x64, 0x0b, 0x8c, 0x76, 0x4b, 0xc2, 0x3a, 0xa6, 0x63, 0x5a, 0xdc, 0x6a, 0xb7, 0x2b,
-	0x35, 0xbc, 0x7e, 0xb2, 0xf0, 0x17, 0x20, 0x88, 0xb4, 0xc9, 0xd7, 0x5a, 0xc4, 0x2a, 0x0e, 0x06,
-	0xb0, 0x03, 0xd3, 0xb2, 0x5b, 0xbd, 0x6e, 0xb5, 0xe5, 0x74, 0x8c, 0xbe, 0x96, 0xaa, 0x78, 0x58,
-	0xc6, 0xd1, 0x91, 0x00, 0x5b, 0x24, 0xe8, 0x07, 0x35, 0xb7, 0x61, 0x19, 0x7b, 0x22, 0x44, 0x2f,
-	0x90, 0x5c, 0x82, 0xd6, 0xad, 0x5e, 0x5f, 0x4b, 0xd1, 0xac, 0x09, 0x66, 0x99, 0x86, 0xdd, 0xd1,
-	0xd2, 0x49, 0xc2, 0x8e, 0x61, 0x3f, 0xd1, 0x32, 0x95, 0xc7, 0x38, 0x0c, 0xbe, 0x42, 0xa1, 0x6a,
-	0x91, 0x9c, 0xa3, 0xa6, 0xe8, 0x49, 0xce, 0x5d, 0x73, 0xeb, 0x66, 0xdf, 0x32, 0x6b, 0x86, 0x63,
-	0xd6, 0x85, 0x84, 0x5f, 0xc3, 0xaf, 0xc5, 0xf1, 0x56, 0x3d, 0xb1, 0xaa, 0x53, 0xdc, 0x61, 0x05,
-	0x04, 0x41, 0x3e, 0xfa, 0x59, 0x2a, 0x7e, 0x86, 0xd4, 0xf1, 0x2e, 0x55, 0xf9, 0x77, 0x54, 0xb0,
-	0x26, 0x1a, 0x28, 0x98, 0xd5, 0x54, 0x0d, 0xe4, 0x8c, 0xc0, 0xb1, 0x21, 0x06, 0x6c, 0x2d, 0x25,
-	0x0d, 0x82, 0x3e, 0x8b, 0xd0, 0xb4, 0x24, 0x95, 0xe1, 0x62, 0x6b, 0x59, 0x49, 0x8a, 0x51, 0x80,
-	0xd0, 0x3c, 0xe9, 0x5b, 0x73, 0x5b, 0x7d, 0xb2, 0xd2, 0x5d, 0x49, 0x88, 0x8e, 0x86, 0x84, 0x8f,
-	0xf5, 0x6b, 0xdc, 0xbb, 0x48, 0x66, 0xb5, 0xdd, 0xab, 0x3d, 0x31, 0xeb, 0xda, 0xdb, 0x74, 0xe5,
-	0x44, 0xf9, 0xeb, 0x03, 0x09, 0xf3, 0xad, 0x50, 0x5e, 0xb0, 0xd7, 0x7b, 0xcf, 0xba, 0x5a, 0x2a,
-	0xa6, 0xeb, 0x42, 0xb2, 0xaa, 0x1d, 0x68, 0x59, 0x91, 0xcc, 0x39, 0xa8, 0xf1, 0xac, 0xae, 0xdd,
-	0xa5, 0x88, 0x41, 0x48, 0x9c, 0x29, 0x1e, 0x57, 0xfe, 0xca, 0xc2, 0xcb, 0x23, 0x61, 0xfa, 0xbe,
-	0xbd, 0x3c, 0xac, 0xed, 0xb6, 0x5b, 0xdd, 0x27, 0x0b, 0xc3, 0xda, 0x72, 0x16, 0x69, 0x4a, 0xaf,
-	0x9c, 0xee, 0xc0, 0xd4, 0xb2, 0x95, 0x3f, 0x4d, 0xe3, 0x27, 0x3a, 0x5c, 0xba, 0x6c, 0x9a, 0x11,
-	0x63, 0x43, 0x19, 0x40, 0x82, 0x3e, 0xf9, 0xb8, 0x53, 0x75, 0x9b, 0xf5, 0x58, 0x3c, 0x81, 0x1a,
-	0x75, 0xe9, 0x77, 0x1c, 0x44, 0x64, 0xd9, 0x45, 0x58, 0xa3, 0xae, 0xe5, 0xc5, 0xec, 0x1b, 0xee,
-	0x27, 0x7b, 0x9c, 0x4a, 0x4b, 0x42, 0x1a, 0x60, 0x0f, 0x45, 0x3c, 0x82, 0x1e, 0xeb, 0xba, 0x00,
-	0x3d, 0x24, 0xd0, 0x5b, 0xf0, 0xff, 0x58, 0x3c, 0x01, 0xd3, 0xfa, 0x25, 0x29, 0xcd, 0x41, 0x10,
-	0x18, 0xbc, 0x88, 0xa0, 0x9e, 0xd3, 0x34, 0x2d, 0xed, 0x6d, 0x3e, 0x26, 0xaa, 0xf5, 0xfa, 0x7d,
-	0x00, 0x69, 0x31, 0x51, 0xa3, 0x55, 0x05, 0xc8, 0xdd, 0x78, 0x48, 0x63, 0xdf, 0xe9, 0x75, 0xcd,
-	0x3d, 0xed, 0xed, 0x63, 0xfd, 0x92, 0xa0, 0xea, 0x1b, 0xfb, 0xb6, 0xa9, 0xbd, 0x7d, 0x9b, 0xd2,
-	0xaf, 0x71, 0x57, 0x12, 0x20, 0xc8, 0x19, 0x1d, 0xed, 0xed, 0xdb, 0x74, 0xa5, 0xae, 0x38, 0x0d,
-	0x5d, 0xfc, 0xdd, 0xe6, 0x51, 0xd1, 0xb7, 0x5c, 0xa3, 0x8e, 0x7b, 0xf8, 0x16, 0x3e, 0xd6, 0xcd,
-	0xb6, 0xe9, 0x98, 0x5a, 0x2a, 0x86, 0x74, 0x7a, 0xf5, 0x56, 0xe3, 0x85, 0x96, 0xae, 0x34, 0xb0,
-	0x8d, 0xb5, 0xf4, 0x47, 0x25, 0xc8, 0x83, 0xeb, 0xe6, 0x01, 0xa4, 0xc8, 0xae, 0x59, 0x73, 0x4c,
-	0x10, 0x89, 0xbb, 0x1a, 0x40, 0xeb, 0x2d, 0x3b, 0x46, 0xa4, 0x2a, 0x9f, 0xa2, 0x2b, 0xc5, 0x7f,
-	0xc8, 0x81, 0x16, 0xa7, 0xc3, 0x83, 0xa7, 0x5b, 0x37, 0x2c, 0x60, 0x47, 0x05, 0x3b, 0x8e, 0xdb,
-	0x7b, 0xde, 0xd1, 0x52, 0x95, 0x2f, 0xe2, 0xbf, 0xd4, 0xc0, 0xff, 0xf4, 0x02, 0xe9, 0xf7, 0xbc,
-	0x53, 0x73, 0xbb, 0xcf, 0x3b, 0xee, 0xc7, 0x72, 0x0e, 0x02, 0xf2, 0x89, 0x96, 0xd2, 0x77, 0x79,
-	0x16, 0x01, 0x48, 0xaf, 0x6f, 0x76, 0x79, 0x24, 0x57, 0x0d, 0xbb, 0x55, 0x03, 0xa3, 0xe8, 0x37,
-	0xb8, 0x7e, 0x80, 0x4c, 0xec, 0xd4, 0xef, 0xde, 0x65, 0x2a, 0xff, 0x20, 0xcf, 0x2e, 0xaf, 0xf8,
-	0xe3, 0x07, 0x14, 0x1c, 0xcf, 0x41, 0xa9, 0x46, 0x55, 0x56, 0x37, 0x17, 0x28, 0xbd, 0xab, 0xf0,
-	0xe6, 0x0b, 0xc4, 0xa5, 0xc8, 0x0c, 0x02, 0xd7, 0x31, 0x1d, 0xa3, 0x6e, 0x38, 0x86, 0x96, 0x5e,
-	0x10, 0x66, 0x3a, 0x4d, 0xb7, 0x6e, 0x3b, 0x5a, 0x66, 0x05, 0xdc, 0xb6, 0x6a, 0x5a, 0x76, 0x41,
-	0x10, 0xc0, 0x9d, 0x17, 0x7d, 0x53, 0x96, 0x0f, 0x02, 0x71, 0xd0, 0x36, 0xba, 0xee, 0x41, 0xab,
-	0xae, 0xe5, 0x56, 0x21, 0xfa, 0xb5, 0xbe, 0xb6, 0xb9, 0x38, 0x8f, 0xbe, 0x5b, 0xb7, 0x6b, 0x7d,
-	0x2d, 0x4f, 0x5b, 0x9a, 0x02, 0x37, 0x6b, 0x5d, 0xad, 0xb0, 0x20, 0xa7, 0xd5, 0x77, 0xfb, 0x56,
-	0xcf, 0xe9, 0x69, 0x6c, 0x09, 0x71, 0xf0, 0x90, 0xeb, 0x5a, 0x5c, 0x85, 0x80, 0xc9, 0x6d, 0x2d,
-	0x8c, 0xec, 0xd4, 0xfa, 0x9c, 0x61, 0x7b, 0x05, 0x1c, 0xe8, 0x77, 0x16, 0xe0, 0xfb, 0x75, 0xa4,
-	0xbf, 0xb8, 0x02, 0x0e, 0xf4, 0xda, 0xc2, 0xc0, 0x76, 0xcd, 0x41, 0x86, 0x4b, 0xab, 0x10, 0x75,
-	0x5e, 0x56, 0x2c, 0xac, 0x5d, 0xad, 0x03, 0xca, 0x72, 0xcb, 0x5e, 0x5e, 0x8d, 0xab, 0xf5, 0xea,
-	0xa6, 0x76, 0x65, 0xc1, 0x56, 0x86, 0xd5, 0x77, 0x7b, 0x7d, 0xed, 0xea, 0x82, 0x62, 0x00, 0xb6,
-	0xfb, 0x86, 0x76, 0x6d, 0x05, 0xdc, 0xe9, 0x1b, 0xda, 0xf5, 0x55, 0xf4, 0x4d, 0x43, 0x2b, 0xad,
-	0xa2, 0x6f, 0x1a, 0xda, 0x8d, 0x65, 0xcb, 0x3e, 0xe2, 0x13, 0xbc, 0xb9, 0x0a, 0x01, 0x13, 0xdc,
-	0x5d, 0x9c, 0x04, 0x20, 0x1a, 0x6d, 0xa3, 0x6a, 0xb6, 0xb5, 0x5b, 0xab, 0x26, 0xf8, 0x08, 0x27,
-	0x7f, 0x7b, 0x35, 0x8e, 0x4f, 0xfe, 0x3d, 0xfd, 0x36, 0xbb, 0xb1, 0x28, 0xb3, 0x5b, 0x77, 0x1d,
-	0xc3, 0xda, 0x33, 0x1d, 0xed, 0xce, 0xaa, 0x21, 0xbb, 0x75, 0xd7, 0x6e, 0xb7, 0xb5, 0xbb, 0x6b,
-	0x70, 0x4e, 0xbb, 0xad, 0xdd, 0xa3, 0x5d, 0x5f, 0xc6, 0x4a, 0xbf, 0x6d, 0xbb, 0xa8, 0x69, 0x79,
-	0xc1, 0x1e, 0x1c, 0xe5, 0xd4, 0xb4, 0xaf, 0x2d, 0x86, 0x17, 0xc0, 0xab, 0x3d, 0x5b, 0x7b, 0x7f,
-	0x01, 0xd1, 0xaf, 0x56, 0xdd, 0x96, 0xdd, 0xaa, 0x6b, 0x1f, 0x50, 0x09, 0x24, 0x5d, 0x6d, 0xbf,
-	0xdb, 0x35, 0xdb, 0x6e, 0xab, 0xae, 0x7d, 0x7d, 0x95, 0x6a, 0xe6, 0x73, 0xa7, 0x59, 0xb7, 0xb4,
-	0x6f, 0x54, 0x3e, 0xc5, 0x53, 0x10, 0xff, 0x54, 0x7f, 0x3c, 0xd2, 0x2f, 0xf2, 0xe4, 0x7b, 0xd0,
-	0xaa, 0xbb, 0xdd, 0x5e, 0xd7, 0xe4, 0x5b, 0xdf, 0x0e, 0x01, 0xfa, 0x96, 0x69, 0x9b, 0x5d, 0x47,
-	0x7b, 0x7b, 0xb7, 0xf2, 0x1f, 0x52, 0xd8, 0x08, 0x1d, 0xcf, 0x4f, 0x1e, 0xd1, 0xa7, 0xe5, 0xe2,
-	0x3a, 0x2f, 0x50, 0xb7, 0xcc, 0xe6, 0xd2, 0xde, 0x06, 0x30, 0x10, 0xf9, 0x1c, 0x72, 0x07, 0xee,
-	0x93, 0x00, 0x32, 0xed, 0xbe, 0x96, 0xa6, 0x51, 0xe1, 0xd9, 0xd8, 0x77, 0x9a, 0x5a, 0x56, 0x01,
-	0xd4, 0xa1, 0x98, 0xcc, 0x2b, 0x00, 0x28, 0xba, 0x34, 0x4d, 0x91, 0x6a, 0xf5, 0xf6, 0x21, 0xbf,
-	0xdd, 0x55, 0xa4, 0x36, 0x7b, 0x7d, 0xed, 0x31, 0xed, 0x40, 0xf0, 0xbc, 0xdf, 0xb5, 0xcc, 0x3e,
-	0x6c, 0x67, 0x2a, 0xc8, 0x36, 0x9f, 0x42, 0xe1, 0xf1, 0xd3, 0x74, 0xe2, 0xdb, 0x5e, 0xfa, 0xfb,
-	0x65, 0x40, 0x66, 0xf0, 0xb3, 0x40, 0x7f, 0x1f, 0x32, 0x21, 0x2e, 0x93, 0x01, 0xc5, 0x72, 0xff,
-	0x85, 0xeb, 0x38, 0x6d, 0x7e, 0x4c, 0x28, 0x52, 0xb4, 0xa8, 0xf0, 0x56, 0x57, 0xa6, 0x03, 0x03,
-	0x4b, 0x5c, 0x5c, 0x54, 0xa7, 0x2d, 0xc3, 0xdb, 0x70, 0xdc, 0xba, 0x59, 0x8b, 0xe1, 0x1a, 0x15,
-	0x18, 0x86, 0xe3, 0xf6, 0xf7, 0xed, 0x26, 0xcf, 0x68, 0xda, 0x25, 0x32, 0x26, 0x00, 0x7b, 0x7d,
-	0x84, 0xe9, 0x0b, 0x84, 0x20, 0x41, 0xbb, 0x9c, 0x24, 0xe4, 0xb0, 0x2b, 0x31, 0x21, 0x68, 0xc0,
-	0x4b, 0x30, 0xed, 0x2a, 0x59, 0xd1, 0xa0, 0x23, 0x8c, 0x76, 0x8d, 0x76, 0x38, 0xa2, 0xea, 0x3e,
-	0xe3, 0xda, 0x5c, 0x8f, 0xa1, 0xa0, 0x25, 0x41, 0x4b, 0x49, 0x89, 0x8d, 0x96, 0xd9, 0xae, 0x6b,
-	0x37, 0x94, 0xa1, 0x41, 0x9f, 0x7e, 0xb5, 0xaa, 0xdd, 0xa4, 0xa5, 0x21, 0x75, 0x00, 0xb4, 0xab,
-	0x97, 0xc4, 0xbc, 0x97, 0xb6, 0xa4, 0x03, 0xbc, 0xf0, 0xa3, 0x34, 0x6a, 0xe9, 0x9b, 0x6d, 0x51,
-	0x65, 0x77, 0xda, 0x89, 0x23, 0x39, 0x23, 0x18, 0x14, 0xc1, 0xff, 0xed, 0x5d, 0x86, 0x4a, 0x03,
-	0x80, 0x74, 0x7b, 0x6e, 0x75, 0xbf, 0xd1, 0x20, 0xb9, 0xff, 0x59, 0xb8, 0xa8, 0xf2, 0x5d, 0x26,
-	0x5f, 0x5b, 0x72, 0x1c, 0xb5, 0xb2, 0xc6, 0xf9, 0xb6, 0x1c, 0x77, 0xaf, 0xe7, 0xf4, 0xe8, 0x18,
-	0x9f, 0xa2, 0x78, 0x6a, 0x39, 0xee, 0x33, 0xab, 0xe5, 0x98, 0xea, 0x0e, 0x87, 0x21, 0x28, 0x31,
-	0x46, 0xcd, 0x69, 0xf5, 0xba, 0xb6, 0x96, 0x89, 0x11, 0x46, 0xbf, 0xdf, 0x7e, 0x21, 0x11, 0xd9,
-	0x18, 0x51, 0x6b, 0x9b, 0x86, 0x25, 0x11, 0x1b, 0xc2, 0xaf, 0xe9, 0xdc, 0xa3, 0xe5, 0xc8, 0x52,
-	0xad, 0x15, 0x96, 0xfa, 0xeb, 0x38, 0xa1, 0xc5, 0xef, 0x31, 0xa9, 0xa0, 0x68, 0xd4, 0x12, 0x15,
-	0x4f, 0xa3, 0x26, 0xea, 0x1b, 0xb1, 0x53, 0x4b, 0x88, 0x6b, 0x3b, 0x56, 0xab, 0x06, 0xc7, 0x7c,
-	0x49, 0x4a, 0xc5, 0x51, 0x26, 0x26, 0x45, 0x88, 0x20, 0xcd, 0x56, 0xfe, 0x29, 0xbd, 0xff, 0x95,
-	0xa3, 0x63, 0xbc, 0xa3, 0x31, 0x1b, 0x6a, 0x29, 0x4b, 0x22, 0x1a, 0xae, 0x6d, 0x76, 0xeb, 0xf2,
-	0x00, 0x1e, 0xab, 0xd1, 0x70, 0x6b, 0x4d, 0xb3, 0xf6, 0xc4, 0xed, 0x1d, 0x98, 0x56, 0xdb, 0xe8,
-	0xcb, 0x82, 0xa1, 0xd1, 0x70, 0x21, 0xc1, 0x40, 0x24, 0xed, 0x77, 0x9d, 0xd8, 0x68, 0x8d, 0x06,
-	0x2f, 0xd9, 0x9f, 0x48, 0x44, 0x3e, 0x81, 0xa8, 0xbe, 0x90, 0x08, 0xad, 0x62, 0xe3, 0x11, 0x0a,
-	0xbf, 0x9c, 0xc7, 0xd9, 0xed, 0x2d, 0x35, 0x74, 0xf6, 0x94, 0x86, 0x8e, 0x80, 0xc4, 0xdd, 0x17,
-	0x09, 0x91, 0x0d, 0x95, 0xcf, 0xb1, 0x3c, 0x5c, 0xfa, 0xc2, 0x91, 0x0c, 0xbf, 0x97, 0x34, 0xfc,
-	0x9e, 0x62, 0x78, 0x09, 0x21, 0xfb, 0xa6, 0x2b, 0xb6, 0x7a, 0x45, 0x86, 0xbb, 0x23, 0x09, 0xc1,
-	0x53, 0x9c, 0x14, 0x02, 0x41, 0xd6, 0x36, 0x6b, 0x90, 0x2b, 0x31, 0x0c, 0xf6, 0xc0, 0x5f, 0xeb,
-	0x2d, 0xcb, 0xe4, 0x0b, 0xb7, 0x85, 0x4a, 0x3a, 0x6e, 0xa3, 0xa1, 0x65, 0x2a, 0x7d, 0x74, 0x8c,
-	0xc5, 0xef, 0x00, 0x69, 0x71, 0x2c, 0xb0, 0x52, 0xc7, 0x70, 0x6a, 0x4d, 0xed, 0x02, 0xb9, 0x9b,
-	0x70, 0x40, 0x79, 0xf0, 0xb3, 0x84, 0x91, 0x78, 0xa8, 0xa7, 0x2b, 0x7f, 0x2f, 0x85, 0x6f, 0xa8,
-	0x56, 0x7c, 0x61, 0x47, 0xab, 0x65, 0x59, 0x6e, 0xab, 0xde, 0x36, 0x5d, 0xa7, 0xd5, 0x31, 0x7b,
-	0x4a, 0x86, 0xb4, 0x2c, 0xb7, 0x69, 0x58, 0x75, 0x09, 0x17, 0x46, 0xb0, 0x64, 0x05, 0x9e, 0x8e,
-	0x29, 0xf1, 0x08, 0x29, 0x9d, 0x4f, 0xc2, 0xb1, 0x07, 0x40, 0xf0, 0x6c, 0x65, 0x46, 0x7f, 0x46,
-	0x8d, 0x5f, 0x2a, 0xa0, 0xf2, 0xd9, 0xfd, 0xa1, 0x69, 0xf5, 0xe4, 0x92, 0x76, 0x70, 0x49, 0xdf,
-	0xfe, 0xf4, 0xdd, 0xa6, 0x7e, 0x95, 0xcf, 0xba, 0xe3, 0xda, 0xed, 0xde, 0xb3, 0xbe, 0xe1, 0x34,
-	0xa9, 0x79, 0x86, 0x5d, 0xb5, 0x8e, 0xda, 0x55, 0x53, 0x3b, 0x68, 0x1d, 0x3c, 0x45, 0xf3, 0x05,
-	0x9f, 0x2e, 0x7d, 0xc3, 0xa5, 0x16, 0xf3, 0x55, 0x35, 0x73, 0xa0, 0x3d, 0x01, 0x46, 0xfd, 0x02,
-	0x9c, 0x03, 0x07, 0xd8, 0x35, 0x38, 0x0b, 0x77, 0x0c, 0xeb, 0x89, 0x26, 0x8a, 0x72, 0x80, 0x2f,
-	0xc5, 0xf5, 0xe7, 0xea, 0x07, 0x79, 0xcb, 0xfe, 0xd5, 0x49, 0xfa, 0x57, 0x67, 0xc9, 0xbf, 0x3a,
-	0x8a, 0x7f, 0x1d, 0xaa, 0xb7, 0x1e, 0xd4, 0x10, 0xed, 0x34, 0x12, 0x9d, 0x04, 0x86, 0xa0, 0x27,
-	0xd5, 0x3e, 0x9c, 0xfe, 0x69, 0x16, 0x0d, 0x88, 0xb2, 0xbe, 0x2d, 0xf7, 0xe3, 0x4e, 0xc3, 0xad,
-	0xee, 0x5b, 0xb6, 0x23, 0xf7, 0xe3, 0x4e, 0x43, 0x9c, 0xf7, 0x2b, 0xff, 0x8c, 0x2e, 0x5d, 0x62,
-	0xbf, 0x97, 0xdb, 0x07, 0xa7, 0x6e, 0x52, 0xb3, 0xd1, 0x6d, 0x18, 0xad, 0x36, 0x3f, 0x2f, 0xe1,
-	0x16, 0x69, 0x3a, 0x6e, 0xd5, 0xa8, 0xcb, 0xf6, 0x90, 0xf0, 0x3c, 0x02, 0x93, 0x3f, 0xa6, 0xa9,
-	0x52, 0x22, 0x68, 0xab, 0x6b, 0x3b, 0xd6, 0x3e, 0xa2, 0x32, 0xb4, 0xff, 0x10, 0x0a, 0x1d, 0x3a,
-	0x1b, 0xd3, 0x8b, 0x3e, 0x9d, 0x18, 0x77, 0x83, 0xaa, 0x1e, 0x53, 0xe9, 0xd7, 0x09, 0x5c, 0x2e,
-	0x66, 0x13, 0x7d, 0x3b, 0x81, 0xda, 0x8c, 0xd9, 0x64, 0xff, 0x4e, 0xe0, 0xf2, 0x31, 0x1b, 0xf6,
-	0x34, 0x7a, 0x7d, 0x81, 0x2a, 0xe8, 0xef, 0xb1, 0x9b, 0x88, 0xb2, 0x9f, 0xb5, 0x9c, 0x5a, 0x53,
-	0x34, 0xd5, 0x08, 0xcf, 0xa8, 0xb2, 0x34, 0x93, 0x6d, 0x35, 0x81, 0x2e, 0xc6, 0xa3, 0xca, 0xfe,
-	0x97, 0xc0, 0x6d, 0x51, 0xc7, 0x4e, 0x6a, 0x24, 0xbb, 0xa9, 0x44, 0xb0, 0x4d, 0x7b, 0x86, 0xb9,
-	0xc2, 0xb7, 0xaa, 0xea, 0x5f, 0x5d, 0x7d, 0x35, 0x18, 0x4f, 0xf8, 0xe5, 0x5b, 0xfe, 0x37, 0xc6,
-	0xc0, 0x1f, 0x9b, 0x8d, 0x9a, 0xdb, 0xea, 0xd6, 0x7a, 0x9d, 0xbe, 0xe1, 0xb4, 0x60, 0xd7, 0x13,
-	0x5e, 0x06, 0x08, 0xb3, 0x6f, 0x5a, 0x70, 0x42, 0xfd, 0xf3, 0x34, 0xe6, 0x97, 0x97, 0x83, 0x91,
-	0x78, 0xef, 0x8a, 0x32, 0x70, 0xc1, 0xab, 0x56, 0x8d, 0xaf, 0x08, 0xf5, 0xdd, 0x64, 0xb7, 0x44,
-	0xc0, 0x79, 0xd5, 0x2d, 0x76, 0x53, 0x01, 0x94, 0xbd, 0x4e, 0x2d, 0x4d, 0xcd, 0x60, 0x81, 0x49,
-	0x4c, 0x41, 0x6c, 0x48, 0x0a, 0x12, 0xe5, 0x89, 0x0e, 0x0f, 0x20, 0x50, 0xcf, 0x0d, 0x8a, 0x4f,
-	0x41, 0xda, 0x36, 0xbb, 0xf2, 0xa4, 0xc8, 0x61, 0xbc, 0x34, 0x70, 0xcd, 0x4e, 0xdf, 0x79, 0x21,
-	0x9b, 0xcc, 0x0a, 0x62, 0xbf, 0xfb, 0xa4, 0xdb, 0x7b, 0xd6, 0x95, 0xbb, 0x8b, 0x54, 0x9f, 0xdb,
-	0xbc, 0x05, 0x4b, 0x1c, 0xcf, 0xab, 0x65, 0xbb, 0x76, 0xdb, 0x38, 0x30, 0x35, 0xb6, 0x30, 0x59,
-	0x7e, 0x36, 0x16, 0x55, 0xa1, 0x04, 0xf2, 0x76, 0x93, 0xb6, 0xa5, 0xbf, 0xcf, 0xee, 0x12, 0x38,
-	0xee, 0xf5, 0xd2, 0xf0, 0xb0, 0x1b, 0x82, 0x0b, 0x6b, 0xdb, 0x95, 0xdf, 0xcf, 0x60, 0xfe, 0x01,
-	0x7b, 0x53, 0x51, 0xca, 0xcd, 0x4d, 0x23, 0x19, 0x8a, 0x59, 0x45, 0xcf, 0x52, 0x00, 0x61, 0xd2,
-	0x29, 0x61, 0x50, 0x63, 0x85, 0x41, 0x45, 0xed, 0xa2, 0x20, 0x51, 0x52, 0x66, 0x01, 0xd1, 0xdb,
-	0xc7, 0xd8, 0x90, 0xdb, 0xb0, 0x40, 0x18, 0xd6, 0xde, 0x3e, 0x08, 0xd3, 0x36, 0xc4, 0x12, 0x18,
-	0x62, 0x09, 0x72, 0x8a, 0x8a, 0x4e, 0x0f, 0x36, 0x9d, 0x2e, 0x98, 0x1a, 0x03, 0x5d, 0xf0, 0x63,
-	0x29, 0x9a, 0x17, 0xfe, 0xa0, 0x0c, 0x87, 0x35, 0x69, 0x81, 0x22, 0x05, 0x30, 0x3c, 0xc8, 0xb9,
-	0x83, 0x76, 0xed, 0x96, 0xed, 0xc0, 0xa8, 0x4c, 0xbf, 0xc5, 0x4a, 0x84, 0xde, 0xef, 0xda, 0xfb,
-	0x7d, 0x50, 0xd2, 0xac, 0xbb, 0x3d, 0xab, 0x6e, 0x5a, 0x5a, 0x71, 0xc1, 0x1e, 0x8e, 0xb1, 0xa7,
-	0x6d, 0x2d, 0x4c, 0x00, 0x4a, 0x0c, 0x3e, 0x65, 0x71, 0x38, 0x57, 0x11, 0x60, 0xc0, 0x9d, 0x05,
-	0x03, 0xf2, 0x2e, 0xb5, 0x98, 0xf5, 0xc5, 0xca, 0x5f, 0xa4, 0x58, 0x49, 0x2c, 0x8f, 0x5a, 0x5c,
-	0x2a, 0x61, 0x55, 0x6d, 0xd5, 0x84, 0x3f, 0xf1, 0x1c, 0x26, 0x93, 0x20, 0x22, 0xec, 0xfd, 0x3e,
-	0x82, 0x53, 0x0a, 0x7d, 0xc2, 0xd7, 0x44, 0x1e, 0x8c, 0xe9, 0x65, 0xf5, 0x99, 0xa1, 0x4c, 0xb3,
-	0x8c, 0xc2, 0x3e, 0x72, 0x56, 0x68, 0xdf, 0x5a, 0xb1, 0xfc, 0x1b, 0x0b, 0x03, 0xca, 0xe5, 0xcf,
-	0x09, 0xc3, 0xb5, 0x62, 0x47, 0xda, 0x14, 0x0b, 0xdc, 0x12, 0x0b, 0x9c, 0xaf, 0xfc, 0x73, 0xfa,
-	0x9c, 0x02, 0x26, 0x8f, 0x7d, 0x2e, 0xd5, 0x35, 0x3b, 0xab, 0x5c, 0xb3, 0xa3, 0xba, 0x66, 0x12,
-	0x06, 0xcb, 0x23, 0xe3, 0x9f, 0x60, 0xf5, 0x36, 0x6c, 0x77, 0x16, 0x35, 0xc5, 0x17, 0x90, 0xdd,
-	0x67, 0x0a, 0x32, 0x2b, 0x7c, 0x88, 0x90, 0xcf, 0x5a, 0xed, 0x7a, 0xcd, 0xb0, 0xea, 0x50, 0x56,
-	0x93, 0xcf, 0x11, 0x06, 0x0f, 0x2b, 0xb9, 0x05, 0xe8, 0x81, 0xd1, 0xde, 0x37, 0xb5, 0xcd, 0x05,
-	0xe5, 0xb9, 0x68, 0xd1, 0x31, 0x12, 0xc0, 0xbe, 0x65, 0x5a, 0xe6, 0x53, 0xad, 0xa0, 0x48, 0xa8,
-	0xef, 0xf7, 0x49, 0x2e, 0x13, 0x76, 0xea, 0x08, 0x3b, 0x15, 0x2b, 0x7f, 0x44, 0x4e, 0x12, 0x97,
-	0xcb, 0x4a, 0xee, 0xc5, 0x01, 0x1b, 0x9d, 0x86, 0xf4, 0x12, 0x59, 0x3e, 0x71, 0x20, 0xa5, 0xf9,
-	0xfd, 0x76, 0x5b, 0xe6, 0x4d, 0x0e, 0x5f, 0x70, 0x11, 0x45, 0x8c, 0xa8, 0xa5, 0x33, 0xa2, 0x20,
-	0xef, 0xc8, 0xfc, 0x2d, 0xcb, 0x68, 0x29, 0x81, 0x2a, 0xb3, 0x8d, 0x45, 0x44, 0xad, 0xd7, 0xe9,
-	0x18, 0x5d, 0xb0, 0x13, 0x4e, 0x5e, 0x22, 0x1a, 0x6d, 0x63, 0xcf, 0xd6, 0x36, 0x2b, 0x7f, 0x90,
-	0xc1, 0xef, 0xf1, 0xe2, 0x4a, 0x58, 0x9d, 0x15, 0x2a, 0xba, 0x07, 0x4c, 0xb8, 0xe1, 0x9a, 0xcf,
-	0x5b, 0xb6, 0x63, 0xcb, 0x77, 0x1e, 0x1c, 0x23, 0xca, 0x4c, 0x8c, 0xf5, 0x14, 0xf9, 0x32, 0x47,
-	0x3d, 0x33, 0x5b, 0x7b, 0x4d, 0x47, 0x0d, 0x6a, 0x19, 0x06, 0x1c, 0x0f, 0x29, 0xa2, 0xd7, 0x40,
-	0x4e, 0x38, 0x6b, 0xe1, 0x8e, 0xa9, 0xa2, 0xaa, 0xfb, 0x90, 0x67, 0xe1, 0xe4, 0x70, 0x97, 0xdd,
-	0x12, 0xb8, 0x5a, 0xd3, 0x68, 0x75, 0x5b, 0xdd, 0xbd, 0x84, 0xe0, 0x0d, 0x4a, 0x32, 0x38, 0x30,
-	0xcf, 0x32, 0x2a, 0x3a, 0x27, 0xca, 0x70, 0x40, 0xb7, 0x7b, 0xbd, 0xbe, 0xdc, 0x30, 0xf6, 0x94,
-	0x45, 0xa3, 0x49, 0xe4, 0x55, 0x14, 0x1f, 0xcd, 0xac, 0xcb, 0x5c, 0x86, 0xfe, 0xb2, 0x27, 0x6d,
-	0x0f, 0x91, 0x21, 0xda, 0x8b, 0x7b, 0x8b, 0x86, 0x2f, 0x92, 0x13, 0x48, 0x04, 0x4e, 0x48, 0xdb,
-	0xa2, 0x05, 0x91, 0x70, 0xae, 0xb1, 0x7c, 0x47, 0xb9, 0x17, 0x2f, 0xf6, 0x4e, 0xe5, 0x77, 0xc9,
-	0xf1, 0xc4, 0xdf, 0x3f, 0x4e, 0x2c, 0x11, 0x6a, 0xd3, 0x17, 0x62, 0xa8, 0xc9, 0x8b, 0xda, 0x48,
-	0x68, 0x13, 0x63, 0x4c, 0xd6, 0xb2, 0xfd, 0x58, 0x4d, 0xfe, 0xc2, 0x55, 0x2c, 0x8a, 0x84, 0x1b,
-	0xf5, 0x03, 0xd3, 0x72, 0x5a, 0xb6, 0x29, 0xdd, 0xaf, 0xaf, 0xb8, 0x5f, 0xe5, 0xaf, 0xa2, 0xd3,
-	0xc8, 0xbf, 0x3a, 0x9e, 0xd0, 0x88, 0xde, 0x35, 0x26, 0xbc, 0x5b, 0x06, 0x83, 0xb3, 0x30, 0xb2,
-	0x78, 0x27, 0xe2, 0xc4, 0xe2, 0xd3, 0x95, 0x1f, 0xe2, 0x7c, 0xf1, 0x4e, 0x9b, 0x3f, 0x5f, 0x31,
-	0xdf, 0xa7, 0xbd, 0xe4, 0x7c, 0x71, 0x4c, 0x09, 0xc5, 0x0d, 0x49, 0xc8, 0xe6, 0x60, 0x21, 0xfb,
-	0xaf, 0xb1, 0xdb, 0x4b, 0x7f, 0x7f, 0x7d, 0x85, 0xfa, 0x76, 0x2d, 0x11, 0x28, 0xa2, 0x00, 0x92,
-	0x60, 0x4c, 0x7d, 0x28, 0x9f, 0x03, 0x63, 0xdd, 0x6f, 0x2d, 0xde, 0x68, 0x4b, 0x88, 0xa7, 0x03,
-	0x9c, 0xd5, 0xa8, 0x41, 0xdd, 0xcd, 0x2d, 0xa3, 0x80, 0xb8, 0xc7, 0xc6, 0x47, 0x38, 0x8b, 0x46,
-	0x83, 0xfa, 0x52, 0x4b, 0x57, 0xfe, 0x30, 0x8d, 0x76, 0x8f, 0x8f, 0x15, 0xcb, 0x29, 0xa8, 0x93,
-	0x4c, 0x41, 0x18, 0xc1, 0x1c, 0x88, 0x55, 0x28, 0x45, 0x70, 0x8a, 0x56, 0xbc, 0xa3, 0x46, 0x30,
-	0xf6, 0x2b, 0xd2, 0x2a, 0x4a, 0xc4, 0x05, 0xa2, 0x44, 0x45, 0xd1, 0x59, 0x74, 0xf3, 0x2c, 0x99,
-	0xad, 0x93, 0xcc, 0x2f, 0x22, 0x69, 0x4b, 0xb0, 0x65, 0x38, 0xa6, 0x4c, 0x46, 0x9d, 0x38, 0x26,
-	0x2c, 0x7e, 0x4b, 0x60, 0x81, 0xb8, 0x0a, 0x92, 0xf3, 0xb4, 0x5d, 0x24, 0xa0, 0x6e, 0xdd, 0x74,
-	0x8c, 0x56, 0x5b, 0x2b, 0xa8, 0xaa, 0x52, 0xc6, 0xe0, 0x9a, 0xda, 0x1a, 0x53, 0xa7, 0x2e, 0x92,
-	0x89, 0xd1, 0xad, 0xdb, 0x5a, 0xb1, 0xf2, 0x2f, 0x52, 0x2b, 0xbe, 0xb0, 0x0c, 0x57, 0x39, 0x71,
-	0x63, 0xc1, 0x89, 0xe9, 0xfd, 0xb7, 0x00, 0xcb, 0x1d, 0x5c, 0xac, 0x58, 0xcc, 0x00, 0x59, 0x41,
-	0x5e, 0xba, 0x68, 0x28, 0x5e, 0x93, 0x59, 0x14, 0x22, 0xeb, 0x90, 0xac, 0x88, 0x85, 0x86, 0xf4,
-	0xa7, 0x8d, 0xca, 0x7f, 0xa2, 0xdd, 0x39, 0xf9, 0xf7, 0x17, 0xc4, 0x71, 0x0f, 0x4e, 0xda, 0x76,
-	0x2d, 0x3e, 0xfe, 0xf1, 0x7b, 0x28, 0xcf, 0xe4, 0x3b, 0xee, 0x4e, 0xdf, 0x35, 0xf6, 0xf6, 0x2c,
-	0x73, 0xcf, 0xe0, 0x87, 0x74, 0x3a, 0xf1, 0x89, 0x5b, 0x2d, 0x19, 0x61, 0xf0, 0x7e, 0xf2, 0x6d,
-	0xb0, 0x24, 0xc3, 0x30, 0xda, 0x88, 0x01, 0x98, 0x02, 0x73, 0x31, 0x9f, 0x38, 0xed, 0xdb, 0x35,
-	0x6d, 0x53, 0x18, 0x5c, 0x40, 0xc5, 0x99, 0x46, 0x76, 0x7a, 0x3b, 0x7d, 0x72, 0xa3, 0x82, 0x38,
-	0x52, 0x13, 0x40, 0x24, 0x03, 0x16, 0x8b, 0x40, 0xb8, 0x14, 0x51, 0x8c, 0x31, 0xc9, 0x03, 0x93,
-	0xbc, 0xea, 0x21, 0x26, 0xc1, 0x75, 0x11, 0xc7, 0xa7, 0x4e, 0x7f, 0xd5, 0xd1, 0x7c, 0x77, 0xe5,
-	0xdf, 0xdd, 0x70, 0xc5, 0xdf, 0x10, 0x40, 0xc6, 0x06, 0x9c, 0xe7, 0x96, 0x5e, 0x17, 0x0b, 0x78,
-	0xa7, 0x67, 0x99, 0x5a, 0xaa, 0xd2, 0xa6, 0x78, 0x4c, 0xfe, 0x2d, 0x0d, 0x92, 0x24, 0x34, 0x6e,
-	0xe0, 0x1d, 0x09, 0x45, 0x16, 0xb9, 0xbf, 0xc4, 0x90, 0xb4, 0x3f, 0xcb, 0xa0, 0x6a, 0x6b, 0xbe,
-	0x32, 0x97, 0x7e, 0xd3, 0x77, 0xd4, 0x53, 0x34, 0x24, 0x27, 0xdc, 0xf9, 0x96, 0x30, 0x6e, 0xa7,
-	0x65, 0xdb, 0xb2, 0x22, 0xe5, 0xe8, 0xae, 0xf9, 0x9c, 0xce, 0x9c, 0xb6, 0x96, 0xa6, 0xba, 0x7b,
-	0x11, 0x81, 0x6c, 0x19, 0x71, 0xaf, 0x01, 0xb0, 0xc9, 0xa6, 0x68, 0x96, 0xf6, 0xf8, 0x65, 0x14,
-	0xb2, 0x6e, 0xa8, 0xac, 0xc9, 0xb6, 0x69, 0x4e, 0x65, 0x4d, 0xa0, 0x90, 0x75, 0x53, 0xc6, 0x40,
-	0xdf, 0xa1, 0x86, 0x40, 0x5e, 0x06, 0x23, 0x8c, 0x26, 0x0b, 0x42, 0x26, 0x2e, 0xaa, 0xc4, 0x4a,
-	0xd8, 0xa6, 0x83, 0xe5, 0x9b, 0x38, 0x5f, 0xaf, 0xc0, 0xe1, 0x30, 0xdb, 0x2a, 0x33, 0xaa, 0x21,
-	0x99, 0x77, 0x54, 0xe6, 0x24, 0x0e, 0x99, 0x2f, 0xea, 0x37, 0xe3, 0x95, 0x48, 0xf8, 0xd7, 0xcf,
-	0xde, 0x65, 0xf4, 0x3b, 0xf1, 0x5a, 0xa8, 0x38, 0x64, 0x05, 0x07, 0xfc, 0x3d, 0xfa, 0xc3, 0x23,
-	0x58, 0x72, 0x25, 0x6e, 0x76, 0x50, 0x5f, 0xb0, 0x51, 0x5b, 0xba, 0x05, 0x03, 0x30, 0x6c, 0x1f,
-	0x52, 0x51, 0xa5, 0xa5, 0x44, 0xb5, 0x14, 0x63, 0xda, 0xad, 0x03, 0xb3, 0x6b, 0xda, 0xf1, 0x35,
-	0x8f, 0x3d, 0xa5, 0x58, 0xd2, 0xb2, 0x0a, 0x83, 0xac, 0xa0, 0x78, 0xdf, 0xd6, 0xd6, 0xf2, 0x95,
-	0x2f, 0xb0, 0x21, 0x10, 0x5f, 0xe4, 0xc7, 0xbb, 0xfb, 0x62, 0x0b, 0x55, 0x1b, 0x64, 0xa8, 0xe5,
-	0x53, 0xc7, 0xed, 0xb4, 0xba, 0x98, 0xd1, 0x53, 0x0a, 0xcc, 0x78, 0x8e, 0xb0, 0x34, 0xc5, 0xe0,
-	0xd3, 0x15, 0x2d, 0x8c, 0x1f, 0xe1, 0x69, 0x78, 0xe1, 0x26, 0x37, 0xf9, 0x69, 0xcd, 0xc2, 0x7e,
-	0x4a, 0xb7, 0x57, 0x6b, 0x1a, 0xdd, 0x3d, 0x53, 0x36, 0xf3, 0x05, 0xc2, 0x7c, 0xba, 0x6f, 0xb4,
-	0xe5, 0x45, 0x37, 0x01, 0xed, 0x18, 0x36, 0xee, 0x5e, 0x49, 0x62, 0x3c, 0xd3, 0x67, 0xaa, 0xfb,
-	0xec, 0x3d, 0x3f, 0x38, 0xe4, 0xd7, 0x08, 0x87, 0x7e, 0x30, 0xfa, 0x08, 0xff, 0xb3, 0x1d, 0x79,
-	0xad, 0xf0, 0x93, 0x4f, 0x7f, 0xf8, 0xe9, 0xe1, 0x38, 0x3a, 0x3a, 0x7e, 0xf9, 0xd1, 0xd0, 0x9f,
-	0xde, 0x17, 0x64, 0xf7, 0x91, 0xec, 0x57, 0xe8, 0xff, 0xe4, 0x39, 0xf9, 0xec, 0xfe, 0xa1, 0xaf,
-	0xfe, 0xcf, 0x3c, 0x2f, 0x73, 0x1c, 0xf3, 0xe9, 0xff, 0x09, 0x00, 0x00, 0xff, 0xff, 0x8e, 0xea,
-	0x36, 0xd9, 0xbd, 0x67, 0x00, 0x00,
+	type x struct{}
+	out := protoimpl.TypeBuilder{
+		File: protoimpl.DescBuilder{
+			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+			RawDescriptor: unsafe.Slice(unsafe.StringData(file_voltha_protos_openflow_13_proto_rawDesc), len(file_voltha_protos_openflow_13_proto_rawDesc)),
+			NumEnums:      53,
+			NumMessages:   99,
+			NumExtensions: 0,
+			NumServices:   0,
+		},
+		GoTypes:           file_voltha_protos_openflow_13_proto_goTypes,
+		DependencyIndexes: file_voltha_protos_openflow_13_proto_depIdxs,
+		EnumInfos:         file_voltha_protos_openflow_13_proto_enumTypes,
+		MessageInfos:      file_voltha_protos_openflow_13_proto_msgTypes,
+	}.Build()
+	File_voltha_protos_openflow_13_proto = out.File
+	file_voltha_protos_openflow_13_proto_goTypes = nil
+	file_voltha_protos_openflow_13_proto_depIdxs = nil
 }
diff --git a/go/openolt/openolt.pb.go b/go/openolt/openolt.pb.go
index 106ca11..dd16a41 100644
--- a/go/openolt/openolt.pb.go
+++ b/go/openolt/openolt.pb.go
@@ -1,33 +1,44 @@
+// Copyright 2018-2024 Open Networking Foundation (ONF) and the ONF Contributors
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at:
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
 // Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// 	protoc-gen-go v1.36.11
+// 	protoc        v4.25.8
 // source: voltha_protos/openolt.proto
 
 package openolt
 
 import (
-	context "context"
-	fmt "fmt"
-	proto "github.com/golang/protobuf/proto"
 	common "github.com/opencord/voltha-protos/v5/go/common"
 	config "github.com/opencord/voltha-protos/v5/go/ext/config"
 	extension "github.com/opencord/voltha-protos/v5/go/extension"
 	tech_profile "github.com/opencord/voltha-protos/v5/go/tech_profile"
 	_ "google.golang.org/genproto/googleapis/api/annotations"
-	grpc "google.golang.org/grpc"
-	codes "google.golang.org/grpc/codes"
-	status "google.golang.org/grpc/status"
-	math "math"
+	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+	reflect "reflect"
+	sync "sync"
+	unsafe "unsafe"
 )
 
-// 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
+const (
+	// Verify that this generated code is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+	// Verify that runtime/protoimpl is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
 
 type AlarmState int32
 
@@ -36,60 +47,102 @@
 	AlarmState_ON  AlarmState = 1
 )
 
-var AlarmState_name = map[int32]string{
-	0: "OFF",
-	1: "ON",
-}
+// Enum value maps for AlarmState.
+var (
+	AlarmState_name = map[int32]string{
+		0: "OFF",
+		1: "ON",
+	}
+	AlarmState_value = map[string]int32{
+		"OFF": 0,
+		"ON":  1,
+	}
+)
 
-var AlarmState_value = map[string]int32{
-	"OFF": 0,
-	"ON":  1,
+func (x AlarmState) Enum() *AlarmState {
+	p := new(AlarmState)
+	*p = x
+	return p
 }
 
 func (x AlarmState) String() string {
-	return proto.EnumName(AlarmState_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (AlarmState) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openolt_proto_enumTypes[0].Descriptor()
+}
+
+func (AlarmState) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openolt_proto_enumTypes[0]
+}
+
+func (x AlarmState) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use AlarmState.Descriptor instead.
 func (AlarmState) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{0}
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{0}
 }
 
-//* activation fail reason.
+// * activation fail reason.
 type OnuIndication_ActivationFailReason int32
 
 const (
 	OnuIndication_ONU_ACTIVATION_FAIL_REASON_NONE                    OnuIndication_ActivationFailReason = 0
-	OnuIndication_ONU_ACTIVATION_FAIL_REASON_RANGING                 OnuIndication_ActivationFailReason = 1
-	OnuIndication_ONU_ACTIVATION_FAIL_REASON_PASSWORD_AUTHENTICATION OnuIndication_ActivationFailReason = 2
-	OnuIndication_ONU_ACTIVATION_FAIL_REASON_LOS                     OnuIndication_ActivationFailReason = 3
-	OnuIndication_ONU_ACTIVATION_FAIL_ONU_ALARM                      OnuIndication_ActivationFailReason = 4
-	OnuIndication_ONU_ACTIVATION_FAIL_SWITCH_OVER                    OnuIndication_ActivationFailReason = 5
+	OnuIndication_ONU_ACTIVATION_FAIL_REASON_RANGING                 OnuIndication_ActivationFailReason = 1 //Ranging Failure
+	OnuIndication_ONU_ACTIVATION_FAIL_REASON_PASSWORD_AUTHENTICATION OnuIndication_ActivationFailReason = 2 //Password authentication
+	OnuIndication_ONU_ACTIVATION_FAIL_REASON_LOS                     OnuIndication_ActivationFailReason = 3 //LOS
+	OnuIndication_ONU_ACTIVATION_FAIL_ONU_ALARM                      OnuIndication_ActivationFailReason = 4 // ONU Alarm
+	OnuIndication_ONU_ACTIVATION_FAIL_SWITCH_OVER                    OnuIndication_ActivationFailReason = 5 //protection switch over
 )
 
-var OnuIndication_ActivationFailReason_name = map[int32]string{
-	0: "ONU_ACTIVATION_FAIL_REASON_NONE",
-	1: "ONU_ACTIVATION_FAIL_REASON_RANGING",
-	2: "ONU_ACTIVATION_FAIL_REASON_PASSWORD_AUTHENTICATION",
-	3: "ONU_ACTIVATION_FAIL_REASON_LOS",
-	4: "ONU_ACTIVATION_FAIL_ONU_ALARM",
-	5: "ONU_ACTIVATION_FAIL_SWITCH_OVER",
-}
+// Enum value maps for OnuIndication_ActivationFailReason.
+var (
+	OnuIndication_ActivationFailReason_name = map[int32]string{
+		0: "ONU_ACTIVATION_FAIL_REASON_NONE",
+		1: "ONU_ACTIVATION_FAIL_REASON_RANGING",
+		2: "ONU_ACTIVATION_FAIL_REASON_PASSWORD_AUTHENTICATION",
+		3: "ONU_ACTIVATION_FAIL_REASON_LOS",
+		4: "ONU_ACTIVATION_FAIL_ONU_ALARM",
+		5: "ONU_ACTIVATION_FAIL_SWITCH_OVER",
+	}
+	OnuIndication_ActivationFailReason_value = map[string]int32{
+		"ONU_ACTIVATION_FAIL_REASON_NONE":                    0,
+		"ONU_ACTIVATION_FAIL_REASON_RANGING":                 1,
+		"ONU_ACTIVATION_FAIL_REASON_PASSWORD_AUTHENTICATION": 2,
+		"ONU_ACTIVATION_FAIL_REASON_LOS":                     3,
+		"ONU_ACTIVATION_FAIL_ONU_ALARM":                      4,
+		"ONU_ACTIVATION_FAIL_SWITCH_OVER":                    5,
+	}
+)
 
-var OnuIndication_ActivationFailReason_value = map[string]int32{
-	"ONU_ACTIVATION_FAIL_REASON_NONE":                    0,
-	"ONU_ACTIVATION_FAIL_REASON_RANGING":                 1,
-	"ONU_ACTIVATION_FAIL_REASON_PASSWORD_AUTHENTICATION": 2,
-	"ONU_ACTIVATION_FAIL_REASON_LOS":                     3,
-	"ONU_ACTIVATION_FAIL_ONU_ALARM":                      4,
-	"ONU_ACTIVATION_FAIL_SWITCH_OVER":                    5,
+func (x OnuIndication_ActivationFailReason) Enum() *OnuIndication_ActivationFailReason {
+	p := new(OnuIndication_ActivationFailReason)
+	*p = x
+	return p
 }
 
 func (x OnuIndication_ActivationFailReason) String() string {
-	return proto.EnumName(OnuIndication_ActivationFailReason_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OnuIndication_ActivationFailReason) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openolt_proto_enumTypes[1].Descriptor()
+}
+
+func (OnuIndication_ActivationFailReason) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openolt_proto_enumTypes[1]
+}
+
+func (x OnuIndication_ActivationFailReason) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OnuIndication_ActivationFailReason.Descriptor instead.
 func (OnuIndication_ActivationFailReason) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{5, 0}
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{5, 0}
 }
 
 type IntfOperIndication_PONResourceRanges_Pool_PoolType int32
@@ -101,26 +154,47 @@
 	IntfOperIndication_PONResourceRanges_Pool_FLOW_ID    IntfOperIndication_PONResourceRanges_Pool_PoolType = 3
 )
 
-var IntfOperIndication_PONResourceRanges_Pool_PoolType_name = map[int32]string{
-	0: "ONU_ID",
-	1: "ALLOC_ID",
-	2: "GEMPORT_ID",
-	3: "FLOW_ID",
-}
+// Enum value maps for IntfOperIndication_PONResourceRanges_Pool_PoolType.
+var (
+	IntfOperIndication_PONResourceRanges_Pool_PoolType_name = map[int32]string{
+		0: "ONU_ID",
+		1: "ALLOC_ID",
+		2: "GEMPORT_ID",
+		3: "FLOW_ID",
+	}
+	IntfOperIndication_PONResourceRanges_Pool_PoolType_value = map[string]int32{
+		"ONU_ID":     0,
+		"ALLOC_ID":   1,
+		"GEMPORT_ID": 2,
+		"FLOW_ID":    3,
+	}
+)
 
-var IntfOperIndication_PONResourceRanges_Pool_PoolType_value = map[string]int32{
-	"ONU_ID":     0,
-	"ALLOC_ID":   1,
-	"GEMPORT_ID": 2,
-	"FLOW_ID":    3,
+func (x IntfOperIndication_PONResourceRanges_Pool_PoolType) Enum() *IntfOperIndication_PONResourceRanges_Pool_PoolType {
+	p := new(IntfOperIndication_PONResourceRanges_Pool_PoolType)
+	*p = x
+	return p
 }
 
 func (x IntfOperIndication_PONResourceRanges_Pool_PoolType) String() string {
-	return proto.EnumName(IntfOperIndication_PONResourceRanges_Pool_PoolType_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (IntfOperIndication_PONResourceRanges_Pool_PoolType) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openolt_proto_enumTypes[2].Descriptor()
+}
+
+func (IntfOperIndication_PONResourceRanges_Pool_PoolType) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openolt_proto_enumTypes[2]
+}
+
+func (x IntfOperIndication_PONResourceRanges_Pool_PoolType) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use IntfOperIndication_PONResourceRanges_Pool_PoolType.Descriptor instead.
 func (IntfOperIndication_PONResourceRanges_Pool_PoolType) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{8, 0, 0, 0}
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{8, 0, 0, 0}
 }
 
 type DeviceInfo_DeviceResourceRanges_Pool_PoolType int32
@@ -132,54 +206,96 @@
 	DeviceInfo_DeviceResourceRanges_Pool_FLOW_ID    DeviceInfo_DeviceResourceRanges_Pool_PoolType = 3
 )
 
-var DeviceInfo_DeviceResourceRanges_Pool_PoolType_name = map[int32]string{
-	0: "ONU_ID",
-	1: "ALLOC_ID",
-	2: "GEMPORT_ID",
-	3: "FLOW_ID",
-}
+// Enum value maps for DeviceInfo_DeviceResourceRanges_Pool_PoolType.
+var (
+	DeviceInfo_DeviceResourceRanges_Pool_PoolType_name = map[int32]string{
+		0: "ONU_ID",
+		1: "ALLOC_ID",
+		2: "GEMPORT_ID",
+		3: "FLOW_ID",
+	}
+	DeviceInfo_DeviceResourceRanges_Pool_PoolType_value = map[string]int32{
+		"ONU_ID":     0,
+		"ALLOC_ID":   1,
+		"GEMPORT_ID": 2,
+		"FLOW_ID":    3,
+	}
+)
 
-var DeviceInfo_DeviceResourceRanges_Pool_PoolType_value = map[string]int32{
-	"ONU_ID":     0,
-	"ALLOC_ID":   1,
-	"GEMPORT_ID": 2,
-	"FLOW_ID":    3,
+func (x DeviceInfo_DeviceResourceRanges_Pool_PoolType) Enum() *DeviceInfo_DeviceResourceRanges_Pool_PoolType {
+	p := new(DeviceInfo_DeviceResourceRanges_Pool_PoolType)
+	*p = x
+	return p
 }
 
 func (x DeviceInfo_DeviceResourceRanges_Pool_PoolType) String() string {
-	return proto.EnumName(DeviceInfo_DeviceResourceRanges_Pool_PoolType_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (DeviceInfo_DeviceResourceRanges_Pool_PoolType) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openolt_proto_enumTypes[3].Descriptor()
+}
+
+func (DeviceInfo_DeviceResourceRanges_Pool_PoolType) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openolt_proto_enumTypes[3]
+}
+
+func (x DeviceInfo_DeviceResourceRanges_Pool_PoolType) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use DeviceInfo_DeviceResourceRanges_Pool_PoolType.Descriptor instead.
 func (DeviceInfo_DeviceResourceRanges_Pool_PoolType) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{18, 0, 0, 0}
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{18, 0, 0, 0}
 }
 
 type DeviceInfo_DeviceResourceRanges_Pool_SharingType int32
 
 const (
 	DeviceInfo_DeviceResourceRanges_Pool_DEDICATED_PER_INTF           DeviceInfo_DeviceResourceRanges_Pool_SharingType = 0
-	DeviceInfo_DeviceResourceRanges_Pool_SHARED_BY_ALL_INTF_ALL_TECH  DeviceInfo_DeviceResourceRanges_Pool_SharingType = 1
-	DeviceInfo_DeviceResourceRanges_Pool_SHARED_BY_ALL_INTF_SAME_TECH DeviceInfo_DeviceResourceRanges_Pool_SharingType = 2
+	DeviceInfo_DeviceResourceRanges_Pool_SHARED_BY_ALL_INTF_ALL_TECH  DeviceInfo_DeviceResourceRanges_Pool_SharingType = 1 // Shared across all interfaces in all technologies in all ranges
+	DeviceInfo_DeviceResourceRanges_Pool_SHARED_BY_ALL_INTF_SAME_TECH DeviceInfo_DeviceResourceRanges_Pool_SharingType = 2 // Shared across all interfaces of the same technology used in this range
 )
 
-var DeviceInfo_DeviceResourceRanges_Pool_SharingType_name = map[int32]string{
-	0: "DEDICATED_PER_INTF",
-	1: "SHARED_BY_ALL_INTF_ALL_TECH",
-	2: "SHARED_BY_ALL_INTF_SAME_TECH",
-}
+// Enum value maps for DeviceInfo_DeviceResourceRanges_Pool_SharingType.
+var (
+	DeviceInfo_DeviceResourceRanges_Pool_SharingType_name = map[int32]string{
+		0: "DEDICATED_PER_INTF",
+		1: "SHARED_BY_ALL_INTF_ALL_TECH",
+		2: "SHARED_BY_ALL_INTF_SAME_TECH",
+	}
+	DeviceInfo_DeviceResourceRanges_Pool_SharingType_value = map[string]int32{
+		"DEDICATED_PER_INTF":           0,
+		"SHARED_BY_ALL_INTF_ALL_TECH":  1,
+		"SHARED_BY_ALL_INTF_SAME_TECH": 2,
+	}
+)
 
-var DeviceInfo_DeviceResourceRanges_Pool_SharingType_value = map[string]int32{
-	"DEDICATED_PER_INTF":           0,
-	"SHARED_BY_ALL_INTF_ALL_TECH":  1,
-	"SHARED_BY_ALL_INTF_SAME_TECH": 2,
+func (x DeviceInfo_DeviceResourceRanges_Pool_SharingType) Enum() *DeviceInfo_DeviceResourceRanges_Pool_SharingType {
+	p := new(DeviceInfo_DeviceResourceRanges_Pool_SharingType)
+	*p = x
+	return p
 }
 
 func (x DeviceInfo_DeviceResourceRanges_Pool_SharingType) String() string {
-	return proto.EnumName(DeviceInfo_DeviceResourceRanges_Pool_SharingType_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (DeviceInfo_DeviceResourceRanges_Pool_SharingType) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openolt_proto_enumTypes[4].Descriptor()
+}
+
+func (DeviceInfo_DeviceResourceRanges_Pool_SharingType) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openolt_proto_enumTypes[4]
+}
+
+func (x DeviceInfo_DeviceResourceRanges_Pool_SharingType) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use DeviceInfo_DeviceResourceRanges_Pool_SharingType.Descriptor instead.
 func (DeviceInfo_DeviceResourceRanges_Pool_SharingType) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{18, 0, 0, 1}
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{18, 0, 0, 1}
 }
 
 type GroupMember_InterfaceType int32
@@ -190,24 +306,45 @@
 	GroupMember_EPON_10G_PATH GroupMember_InterfaceType = 2
 )
 
-var GroupMember_InterfaceType_name = map[int32]string{
-	0: "PON",
-	1: "EPON_1G_PATH",
-	2: "EPON_10G_PATH",
-}
+// Enum value maps for GroupMember_InterfaceType.
+var (
+	GroupMember_InterfaceType_name = map[int32]string{
+		0: "PON",
+		1: "EPON_1G_PATH",
+		2: "EPON_10G_PATH",
+	}
+	GroupMember_InterfaceType_value = map[string]int32{
+		"PON":           0,
+		"EPON_1G_PATH":  1,
+		"EPON_10G_PATH": 2,
+	}
+)
 
-var GroupMember_InterfaceType_value = map[string]int32{
-	"PON":           0,
-	"EPON_1G_PATH":  1,
-	"EPON_10G_PATH": 2,
+func (x GroupMember_InterfaceType) Enum() *GroupMember_InterfaceType {
+	p := new(GroupMember_InterfaceType)
+	*p = x
+	return p
 }
 
 func (x GroupMember_InterfaceType) String() string {
-	return proto.EnumName(GroupMember_InterfaceType_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (GroupMember_InterfaceType) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openolt_proto_enumTypes[5].Descriptor()
+}
+
+func (GroupMember_InterfaceType) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openolt_proto_enumTypes[5]
+}
+
+func (x GroupMember_InterfaceType) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use GroupMember_InterfaceType.Descriptor instead.
 func (GroupMember_InterfaceType) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{47, 0}
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{47, 0}
 }
 
 type Group_GroupMembersCommand int32
@@ -218,24 +355,45 @@
 	Group_SET_MEMBERS    Group_GroupMembersCommand = 2
 )
 
-var Group_GroupMembersCommand_name = map[int32]string{
-	0: "ADD_MEMBERS",
-	1: "REMOVE_MEMBERS",
-	2: "SET_MEMBERS",
-}
+// Enum value maps for Group_GroupMembersCommand.
+var (
+	Group_GroupMembersCommand_name = map[int32]string{
+		0: "ADD_MEMBERS",
+		1: "REMOVE_MEMBERS",
+		2: "SET_MEMBERS",
+	}
+	Group_GroupMembersCommand_value = map[string]int32{
+		"ADD_MEMBERS":    0,
+		"REMOVE_MEMBERS": 1,
+		"SET_MEMBERS":    2,
+	}
+)
 
-var Group_GroupMembersCommand_value = map[string]int32{
-	"ADD_MEMBERS":    0,
-	"REMOVE_MEMBERS": 1,
-	"SET_MEMBERS":    2,
+func (x Group_GroupMembersCommand) Enum() *Group_GroupMembersCommand {
+	p := new(Group_GroupMembersCommand)
+	*p = x
+	return p
 }
 
 func (x Group_GroupMembersCommand) String() string {
-	return proto.EnumName(Group_GroupMembersCommand_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (Group_GroupMembersCommand) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openolt_proto_enumTypes[6].Descriptor()
+}
+
+func (Group_GroupMembersCommand) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openolt_proto_enumTypes[6]
+}
+
+func (x Group_GroupMembersCommand) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use Group_GroupMembersCommand.Descriptor instead.
 func (Group_GroupMembersCommand) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{48, 0}
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{48, 0}
 }
 
 type PonRxPowerData_RssiMeasurementFailReason int32
@@ -246,30 +404,50 @@
 	PonRxPowerData_FAIL_REASON_NO_ACCESS    PonRxPowerData_RssiMeasurementFailReason = 2
 )
 
-var PonRxPowerData_RssiMeasurementFailReason_name = map[int32]string{
-	0: "FAIL_REASON_NONE",
-	1: "FAIL_REASON_NO_DELIMITER",
-	2: "FAIL_REASON_NO_ACCESS",
-}
+// Enum value maps for PonRxPowerData_RssiMeasurementFailReason.
+var (
+	PonRxPowerData_RssiMeasurementFailReason_name = map[int32]string{
+		0: "FAIL_REASON_NONE",
+		1: "FAIL_REASON_NO_DELIMITER",
+		2: "FAIL_REASON_NO_ACCESS",
+	}
+	PonRxPowerData_RssiMeasurementFailReason_value = map[string]int32{
+		"FAIL_REASON_NONE":         0,
+		"FAIL_REASON_NO_DELIMITER": 1,
+		"FAIL_REASON_NO_ACCESS":    2,
+	}
+)
 
-var PonRxPowerData_RssiMeasurementFailReason_value = map[string]int32{
-	"FAIL_REASON_NONE":         0,
-	"FAIL_REASON_NO_DELIMITER": 1,
-	"FAIL_REASON_NO_ACCESS":    2,
+func (x PonRxPowerData_RssiMeasurementFailReason) Enum() *PonRxPowerData_RssiMeasurementFailReason {
+	p := new(PonRxPowerData_RssiMeasurementFailReason)
+	*p = x
+	return p
 }
 
 func (x PonRxPowerData_RssiMeasurementFailReason) String() string {
-	return proto.EnumName(PonRxPowerData_RssiMeasurementFailReason_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (PonRxPowerData_RssiMeasurementFailReason) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openolt_proto_enumTypes[7].Descriptor()
+}
+
+func (PonRxPowerData_RssiMeasurementFailReason) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openolt_proto_enumTypes[7]
+}
+
+func (x PonRxPowerData_RssiMeasurementFailReason) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use PonRxPowerData_RssiMeasurementFailReason.Descriptor instead.
 func (PonRxPowerData_RssiMeasurementFailReason) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{50, 0}
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{50, 0}
 }
 
 type OnuInfo_OnuState int32
 
 const (
-	//
 	// There are other states in BAL for ONU, which voltha is not interested as of now.
 	// UNKNOWN is to be filled for the rest of the states other than NOT_CONFIGURED/ACTIVE/INACTIVE/DISABLED
 	OnuInfo_UNKNOWN        OnuInfo_OnuState = 0
@@ -279,28 +457,49 @@
 	OnuInfo_DISABLED       OnuInfo_OnuState = 4
 )
 
-var OnuInfo_OnuState_name = map[int32]string{
-	0: "UNKNOWN",
-	1: "NOT_CONFIGURED",
-	2: "ACTIVE",
-	3: "INACTIVE",
-	4: "DISABLED",
-}
+// Enum value maps for OnuInfo_OnuState.
+var (
+	OnuInfo_OnuState_name = map[int32]string{
+		0: "UNKNOWN",
+		1: "NOT_CONFIGURED",
+		2: "ACTIVE",
+		3: "INACTIVE",
+		4: "DISABLED",
+	}
+	OnuInfo_OnuState_value = map[string]int32{
+		"UNKNOWN":        0,
+		"NOT_CONFIGURED": 1,
+		"ACTIVE":         2,
+		"INACTIVE":       3,
+		"DISABLED":       4,
+	}
+)
 
-var OnuInfo_OnuState_value = map[string]int32{
-	"UNKNOWN":        0,
-	"NOT_CONFIGURED": 1,
-	"ACTIVE":         2,
-	"INACTIVE":       3,
-	"DISABLED":       4,
+func (x OnuInfo_OnuState) Enum() *OnuInfo_OnuState {
+	p := new(OnuInfo_OnuState)
+	*p = x
+	return p
 }
 
 func (x OnuInfo_OnuState) String() string {
-	return proto.EnumName(OnuInfo_OnuState_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (OnuInfo_OnuState) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openolt_proto_enumTypes[8].Descriptor()
+}
+
+func (OnuInfo_OnuState) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openolt_proto_enumTypes[8]
+}
+
+func (x OnuInfo_OnuState) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use OnuInfo_OnuState.Descriptor instead.
 func (OnuInfo_OnuState) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{52, 0}
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{52, 0}
 }
 
 type PonIntfInfo_PonIntfState int32
@@ -313,32 +512,55 @@
 	PonIntfInfo_DISABLED       PonIntfInfo_PonIntfState = 4
 )
 
-var PonIntfInfo_PonIntfState_name = map[int32]string{
-	0: "UNKNOWN",
-	1: "ACTIVE_WORKING",
-	2: "ACTIVE_STANDBY",
-	3: "INACTIVE",
-	4: "DISABLED",
-}
+// Enum value maps for PonIntfInfo_PonIntfState.
+var (
+	PonIntfInfo_PonIntfState_name = map[int32]string{
+		0: "UNKNOWN",
+		1: "ACTIVE_WORKING",
+		2: "ACTIVE_STANDBY",
+		3: "INACTIVE",
+		4: "DISABLED",
+	}
+	PonIntfInfo_PonIntfState_value = map[string]int32{
+		"UNKNOWN":        0,
+		"ACTIVE_WORKING": 1,
+		"ACTIVE_STANDBY": 2,
+		"INACTIVE":       3,
+		"DISABLED":       4,
+	}
+)
 
-var PonIntfInfo_PonIntfState_value = map[string]int32{
-	"UNKNOWN":        0,
-	"ACTIVE_WORKING": 1,
-	"ACTIVE_STANDBY": 2,
-	"INACTIVE":       3,
-	"DISABLED":       4,
+func (x PonIntfInfo_PonIntfState) Enum() *PonIntfInfo_PonIntfState {
+	p := new(PonIntfInfo_PonIntfState)
+	*p = x
+	return p
 }
 
 func (x PonIntfInfo_PonIntfState) String() string {
-	return proto.EnumName(PonIntfInfo_PonIntfState_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (PonIntfInfo_PonIntfState) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_openolt_proto_enumTypes[9].Descriptor()
+}
+
+func (PonIntfInfo_PonIntfState) Type() protoreflect.EnumType {
+	return &file_voltha_protos_openolt_proto_enumTypes[9]
+}
+
+func (x PonIntfInfo_PonIntfState) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use PonIntfInfo_PonIntfState.Descriptor instead.
 func (PonIntfInfo_PonIntfState) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{53, 0}
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{53, 0}
 }
 
 type Indication struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
 	// Types that are valid to be assigned to Data:
+	//
 	//	*Indication_OltInd
 	//	*Indication_IntfInd
 	//	*Indication_IntfOperInd
@@ -351,36 +573,155 @@
 	//	*Indication_AlarmInd
 	//	*Indication_OnuDisabledInd
 	//	*Indication_OnuEnabledInd
-	Data                 isIndication_Data `protobuf_oneof:"data"`
-	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
-	XXX_unrecognized     []byte            `json:"-"`
-	XXX_sizecache        int32             `json:"-"`
+	Data          isIndication_Data `protobuf_oneof:"data"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *Indication) Reset()         { *m = Indication{} }
-func (m *Indication) String() string { return proto.CompactTextString(m) }
-func (*Indication) ProtoMessage()    {}
+func (x *Indication) Reset() {
+	*x = Indication{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *Indication) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Indication) ProtoMessage() {}
+
+func (x *Indication) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[0]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use Indication.ProtoReflect.Descriptor instead.
 func (*Indication) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{0}
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{0}
 }
 
-func (m *Indication) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_Indication.Unmarshal(m, b)
-}
-func (m *Indication) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_Indication.Marshal(b, m, deterministic)
-}
-func (m *Indication) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Indication.Merge(m, src)
-}
-func (m *Indication) XXX_Size() int {
-	return xxx_messageInfo_Indication.Size(m)
-}
-func (m *Indication) XXX_DiscardUnknown() {
-	xxx_messageInfo_Indication.DiscardUnknown(m)
+func (x *Indication) GetData() isIndication_Data {
+	if x != nil {
+		return x.Data
+	}
+	return nil
 }
 
-var xxx_messageInfo_Indication proto.InternalMessageInfo
+func (x *Indication) GetOltInd() *OltIndication {
+	if x != nil {
+		if x, ok := x.Data.(*Indication_OltInd); ok {
+			return x.OltInd
+		}
+	}
+	return nil
+}
+
+func (x *Indication) GetIntfInd() *IntfIndication {
+	if x != nil {
+		if x, ok := x.Data.(*Indication_IntfInd); ok {
+			return x.IntfInd
+		}
+	}
+	return nil
+}
+
+func (x *Indication) GetIntfOperInd() *IntfOperIndication {
+	if x != nil {
+		if x, ok := x.Data.(*Indication_IntfOperInd); ok {
+			return x.IntfOperInd
+		}
+	}
+	return nil
+}
+
+func (x *Indication) GetOnuDiscInd() *OnuDiscIndication {
+	if x != nil {
+		if x, ok := x.Data.(*Indication_OnuDiscInd); ok {
+			return x.OnuDiscInd
+		}
+	}
+	return nil
+}
+
+func (x *Indication) GetOnuInd() *OnuIndication {
+	if x != nil {
+		if x, ok := x.Data.(*Indication_OnuInd); ok {
+			return x.OnuInd
+		}
+	}
+	return nil
+}
+
+func (x *Indication) GetOmciInd() *OmciIndication {
+	if x != nil {
+		if x, ok := x.Data.(*Indication_OmciInd); ok {
+			return x.OmciInd
+		}
+	}
+	return nil
+}
+
+func (x *Indication) GetPktInd() *PacketIndication {
+	if x != nil {
+		if x, ok := x.Data.(*Indication_PktInd); ok {
+			return x.PktInd
+		}
+	}
+	return nil
+}
+
+func (x *Indication) GetPortStats() *common.PortStatistics {
+	if x != nil {
+		if x, ok := x.Data.(*Indication_PortStats); ok {
+			return x.PortStats
+		}
+	}
+	return nil
+}
+
+func (x *Indication) GetFlowStats() *FlowStatistics {
+	if x != nil {
+		if x, ok := x.Data.(*Indication_FlowStats); ok {
+			return x.FlowStats
+		}
+	}
+	return nil
+}
+
+func (x *Indication) GetAlarmInd() *AlarmIndication {
+	if x != nil {
+		if x, ok := x.Data.(*Indication_AlarmInd); ok {
+			return x.AlarmInd
+		}
+	}
+	return nil
+}
+
+func (x *Indication) GetOnuDisabledInd() *OnuDisabledIndication {
+	if x != nil {
+		if x, ok := x.Data.(*Indication_OnuDisabledInd); ok {
+			return x.OnuDisabledInd
+		}
+	}
+	return nil
+}
+
+func (x *Indication) GetOnuEnabledInd() *OnuEnabledIndication {
+	if x != nil {
+		if x, ok := x.Data.(*Indication_OnuEnabledInd); ok {
+			return x.OnuEnabledInd
+		}
+	}
+	return nil
+}
 
 type isIndication_Data interface {
 	isIndication_Data()
@@ -458,117 +799,10 @@
 
 func (*Indication_OnuEnabledInd) isIndication_Data() {}
 
-func (m *Indication) GetData() isIndication_Data {
-	if m != nil {
-		return m.Data
-	}
-	return nil
-}
-
-func (m *Indication) GetOltInd() *OltIndication {
-	if x, ok := m.GetData().(*Indication_OltInd); ok {
-		return x.OltInd
-	}
-	return nil
-}
-
-func (m *Indication) GetIntfInd() *IntfIndication {
-	if x, ok := m.GetData().(*Indication_IntfInd); ok {
-		return x.IntfInd
-	}
-	return nil
-}
-
-func (m *Indication) GetIntfOperInd() *IntfOperIndication {
-	if x, ok := m.GetData().(*Indication_IntfOperInd); ok {
-		return x.IntfOperInd
-	}
-	return nil
-}
-
-func (m *Indication) GetOnuDiscInd() *OnuDiscIndication {
-	if x, ok := m.GetData().(*Indication_OnuDiscInd); ok {
-		return x.OnuDiscInd
-	}
-	return nil
-}
-
-func (m *Indication) GetOnuInd() *OnuIndication {
-	if x, ok := m.GetData().(*Indication_OnuInd); ok {
-		return x.OnuInd
-	}
-	return nil
-}
-
-func (m *Indication) GetOmciInd() *OmciIndication {
-	if x, ok := m.GetData().(*Indication_OmciInd); ok {
-		return x.OmciInd
-	}
-	return nil
-}
-
-func (m *Indication) GetPktInd() *PacketIndication {
-	if x, ok := m.GetData().(*Indication_PktInd); ok {
-		return x.PktInd
-	}
-	return nil
-}
-
-func (m *Indication) GetPortStats() *common.PortStatistics {
-	if x, ok := m.GetData().(*Indication_PortStats); ok {
-		return x.PortStats
-	}
-	return nil
-}
-
-func (m *Indication) GetFlowStats() *FlowStatistics {
-	if x, ok := m.GetData().(*Indication_FlowStats); ok {
-		return x.FlowStats
-	}
-	return nil
-}
-
-func (m *Indication) GetAlarmInd() *AlarmIndication {
-	if x, ok := m.GetData().(*Indication_AlarmInd); ok {
-		return x.AlarmInd
-	}
-	return nil
-}
-
-func (m *Indication) GetOnuDisabledInd() *OnuDisabledIndication {
-	if x, ok := m.GetData().(*Indication_OnuDisabledInd); ok {
-		return x.OnuDisabledInd
-	}
-	return nil
-}
-
-func (m *Indication) GetOnuEnabledInd() *OnuEnabledIndication {
-	if x, ok := m.GetData().(*Indication_OnuEnabledInd); ok {
-		return x.OnuEnabledInd
-	}
-	return nil
-}
-
-// XXX_OneofWrappers is for the internal use of the proto package.
-func (*Indication) XXX_OneofWrappers() []interface{} {
-	return []interface{}{
-		(*Indication_OltInd)(nil),
-		(*Indication_IntfInd)(nil),
-		(*Indication_IntfOperInd)(nil),
-		(*Indication_OnuDiscInd)(nil),
-		(*Indication_OnuInd)(nil),
-		(*Indication_OmciInd)(nil),
-		(*Indication_PktInd)(nil),
-		(*Indication_PortStats)(nil),
-		(*Indication_FlowStats)(nil),
-		(*Indication_AlarmInd)(nil),
-		(*Indication_OnuDisabledInd)(nil),
-		(*Indication_OnuEnabledInd)(nil),
-	}
-}
-
 type AlarmIndication struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
 	// Types that are valid to be assigned to Data:
+	//
 	//	*AlarmIndication_LosInd
 	//	*AlarmIndication_DyingGaspInd
 	//	*AlarmIndication_OnuAlarmInd
@@ -588,36 +822,218 @@
 	//	*AlarmIndication_OnuPhysicalEquipmentErrorInd
 	//	*AlarmIndication_OnuLossOfAckInd
 	//	*AlarmIndication_OnuDiffReachExceededInd
-	Data                 isAlarmIndication_Data `protobuf_oneof:"data"`
-	XXX_NoUnkeyedLiteral struct{}               `json:"-"`
-	XXX_unrecognized     []byte                 `json:"-"`
-	XXX_sizecache        int32                  `json:"-"`
+	Data          isAlarmIndication_Data `protobuf_oneof:"data"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *AlarmIndication) Reset()         { *m = AlarmIndication{} }
-func (m *AlarmIndication) String() string { return proto.CompactTextString(m) }
-func (*AlarmIndication) ProtoMessage()    {}
+func (x *AlarmIndication) Reset() {
+	*x = AlarmIndication{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *AlarmIndication) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AlarmIndication) ProtoMessage() {}
+
+func (x *AlarmIndication) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[1]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use AlarmIndication.ProtoReflect.Descriptor instead.
 func (*AlarmIndication) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{1}
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{1}
 }
 
-func (m *AlarmIndication) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_AlarmIndication.Unmarshal(m, b)
-}
-func (m *AlarmIndication) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_AlarmIndication.Marshal(b, m, deterministic)
-}
-func (m *AlarmIndication) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_AlarmIndication.Merge(m, src)
-}
-func (m *AlarmIndication) XXX_Size() int {
-	return xxx_messageInfo_AlarmIndication.Size(m)
-}
-func (m *AlarmIndication) XXX_DiscardUnknown() {
-	xxx_messageInfo_AlarmIndication.DiscardUnknown(m)
+func (x *AlarmIndication) GetData() isAlarmIndication_Data {
+	if x != nil {
+		return x.Data
+	}
+	return nil
 }
 
-var xxx_messageInfo_AlarmIndication proto.InternalMessageInfo
+func (x *AlarmIndication) GetLosInd() *LosIndication {
+	if x != nil {
+		if x, ok := x.Data.(*AlarmIndication_LosInd); ok {
+			return x.LosInd
+		}
+	}
+	return nil
+}
+
+func (x *AlarmIndication) GetDyingGaspInd() *DyingGaspIndication {
+	if x != nil {
+		if x, ok := x.Data.(*AlarmIndication_DyingGaspInd); ok {
+			return x.DyingGaspInd
+		}
+	}
+	return nil
+}
+
+func (x *AlarmIndication) GetOnuAlarmInd() *OnuAlarmIndication {
+	if x != nil {
+		if x, ok := x.Data.(*AlarmIndication_OnuAlarmInd); ok {
+			return x.OnuAlarmInd
+		}
+	}
+	return nil
+}
+
+func (x *AlarmIndication) GetOnuStartupFailInd() *OnuStartupFailureIndication {
+	if x != nil {
+		if x, ok := x.Data.(*AlarmIndication_OnuStartupFailInd); ok {
+			return x.OnuStartupFailInd
+		}
+	}
+	return nil
+}
+
+func (x *AlarmIndication) GetOnuSignalDegradeInd() *OnuSignalDegradeIndication {
+	if x != nil {
+		if x, ok := x.Data.(*AlarmIndication_OnuSignalDegradeInd); ok {
+			return x.OnuSignalDegradeInd
+		}
+	}
+	return nil
+}
+
+func (x *AlarmIndication) GetOnuDriftOfWindowInd() *OnuDriftOfWindowIndication {
+	if x != nil {
+		if x, ok := x.Data.(*AlarmIndication_OnuDriftOfWindowInd); ok {
+			return x.OnuDriftOfWindowInd
+		}
+	}
+	return nil
+}
+
+func (x *AlarmIndication) GetOnuLossOmciInd() *OnuLossOfOmciChannelIndication {
+	if x != nil {
+		if x, ok := x.Data.(*AlarmIndication_OnuLossOmciInd); ok {
+			return x.OnuLossOmciInd
+		}
+	}
+	return nil
+}
+
+func (x *AlarmIndication) GetOnuSignalsFailInd() *OnuSignalsFailureIndication {
+	if x != nil {
+		if x, ok := x.Data.(*AlarmIndication_OnuSignalsFailInd); ok {
+			return x.OnuSignalsFailInd
+		}
+	}
+	return nil
+}
+
+func (x *AlarmIndication) GetOnuTiwiInd() *OnuTransmissionInterferenceWarning {
+	if x != nil {
+		if x, ok := x.Data.(*AlarmIndication_OnuTiwiInd); ok {
+			return x.OnuTiwiInd
+		}
+	}
+	return nil
+}
+
+func (x *AlarmIndication) GetOnuActivationFailInd() *OnuActivationFailureIndication {
+	if x != nil {
+		if x, ok := x.Data.(*AlarmIndication_OnuActivationFailInd); ok {
+			return x.OnuActivationFailInd
+		}
+	}
+	return nil
+}
+
+func (x *AlarmIndication) GetOnuProcessingErrorInd() *OnuProcessingErrorIndication {
+	if x != nil {
+		if x, ok := x.Data.(*AlarmIndication_OnuProcessingErrorInd); ok {
+			return x.OnuProcessingErrorInd
+		}
+	}
+	return nil
+}
+
+func (x *AlarmIndication) GetOnuLossOfSyncFailInd() *OnuLossOfKeySyncFailureIndication {
+	if x != nil {
+		if x, ok := x.Data.(*AlarmIndication_OnuLossOfSyncFailInd); ok {
+			return x.OnuLossOfSyncFailInd
+		}
+	}
+	return nil
+}
+
+func (x *AlarmIndication) GetOnuItuPonStatsInd() *OnuItuPonStatsIndication {
+	if x != nil {
+		if x, ok := x.Data.(*AlarmIndication_OnuItuPonStatsInd); ok {
+			return x.OnuItuPonStatsInd
+		}
+	}
+	return nil
+}
+
+func (x *AlarmIndication) GetOnuDeactivationFailureInd() *OnuDeactivationFailureIndication {
+	if x != nil {
+		if x, ok := x.Data.(*AlarmIndication_OnuDeactivationFailureInd); ok {
+			return x.OnuDeactivationFailureInd
+		}
+	}
+	return nil
+}
+
+func (x *AlarmIndication) GetOnuRemoteDefectInd() *OnuRemoteDefectIndication {
+	if x != nil {
+		if x, ok := x.Data.(*AlarmIndication_OnuRemoteDefectInd); ok {
+			return x.OnuRemoteDefectInd
+		}
+	}
+	return nil
+}
+
+func (x *AlarmIndication) GetOnuLossGemDelineationInd() *OnuLossOfGEMChannelDelineationIndication {
+	if x != nil {
+		if x, ok := x.Data.(*AlarmIndication_OnuLossGemDelineationInd); ok {
+			return x.OnuLossGemDelineationInd
+		}
+	}
+	return nil
+}
+
+func (x *AlarmIndication) GetOnuPhysicalEquipmentErrorInd() *OnuPhysicalEquipmentErrorIndication {
+	if x != nil {
+		if x, ok := x.Data.(*AlarmIndication_OnuPhysicalEquipmentErrorInd); ok {
+			return x.OnuPhysicalEquipmentErrorInd
+		}
+	}
+	return nil
+}
+
+func (x *AlarmIndication) GetOnuLossOfAckInd() *OnuLossOfAcknowledgementIndication {
+	if x != nil {
+		if x, ok := x.Data.(*AlarmIndication_OnuLossOfAckInd); ok {
+			return x.OnuLossOfAckInd
+		}
+	}
+	return nil
+}
+
+func (x *AlarmIndication) GetOnuDiffReachExceededInd() *OnuDifferentialReachExceededIndication {
+	if x != nil {
+		if x, ok := x.Data.(*AlarmIndication_OnuDiffReachExceededInd); ok {
+			return x.OnuDiffReachExceededInd
+		}
+	}
+	return nil
+}
 
 type isAlarmIndication_Data interface {
 	isAlarmIndication_Data()
@@ -737,149 +1153,5103 @@
 
 func (*AlarmIndication_OnuDiffReachExceededInd) isAlarmIndication_Data() {}
 
-func (m *AlarmIndication) GetData() isAlarmIndication_Data {
-	if m != nil {
-		return m.Data
+type OltIndication struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	OperState     string                 `protobuf:"bytes,1,opt,name=oper_state,json=operState,proto3" json:"oper_state,omitempty"` // up, down
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OltIndication) Reset() {
+	*x = OltIndication{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OltIndication) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OltIndication) ProtoMessage() {}
+
+func (x *OltIndication) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[2]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OltIndication.ProtoReflect.Descriptor instead.
+func (*OltIndication) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *OltIndication) GetOperState() string {
+	if x != nil {
+		return x.OperState
+	}
+	return ""
+}
+
+type IntfIndication struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	IntfId        uint32                 `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
+	OperState     string                 `protobuf:"bytes,2,opt,name=oper_state,json=operState,proto3" json:"oper_state,omitempty"` // up, down
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *IntfIndication) Reset() {
+	*x = IntfIndication{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *IntfIndication) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*IntfIndication) ProtoMessage() {}
+
+func (x *IntfIndication) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[3]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use IntfIndication.ProtoReflect.Descriptor instead.
+func (*IntfIndication) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *IntfIndication) GetIntfId() uint32 {
+	if x != nil {
+		return x.IntfId
+	}
+	return 0
+}
+
+func (x *IntfIndication) GetOperState() string {
+	if x != nil {
+		return x.OperState
+	}
+	return ""
+}
+
+type OnuDiscIndication struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	IntfId        uint32                 `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
+	SerialNumber  *SerialNumber          `protobuf:"bytes,2,opt,name=serial_number,json=serialNumber,proto3" json:"serial_number,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OnuDiscIndication) Reset() {
+	*x = OnuDiscIndication{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OnuDiscIndication) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OnuDiscIndication) ProtoMessage() {}
+
+func (x *OnuDiscIndication) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[4]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OnuDiscIndication.ProtoReflect.Descriptor instead.
+func (*OnuDiscIndication) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{4}
+}
+
+func (x *OnuDiscIndication) GetIntfId() uint32 {
+	if x != nil {
+		return x.IntfId
+	}
+	return 0
+}
+
+func (x *OnuDiscIndication) GetSerialNumber() *SerialNumber {
+	if x != nil {
+		return x.SerialNumber
 	}
 	return nil
 }
 
-func (m *AlarmIndication) GetLosInd() *LosIndication {
-	if x, ok := m.GetData().(*AlarmIndication_LosInd); ok {
-		return x.LosInd
+type OnuIndication struct {
+	state         protoimpl.MessageState             `protogen:"open.v1"`
+	IntfId        uint32                             `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
+	OnuId         uint32                             `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
+	OperState     string                             `protobuf:"bytes,3,opt,name=oper_state,json=operState,proto3" json:"oper_state,omitempty"`    // up, down
+	AdminState    string                             `protobuf:"bytes,5,opt,name=admin_state,json=adminState,proto3" json:"admin_state,omitempty"` // up, down
+	SerialNumber  *SerialNumber                      `protobuf:"bytes,4,opt,name=serial_number,json=serialNumber,proto3" json:"serial_number,omitempty"`
+	FailReason    OnuIndication_ActivationFailReason `protobuf:"varint,6,opt,name=fail_reason,json=failReason,proto3,enum=openolt.OnuIndication_ActivationFailReason" json:"fail_reason,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OnuIndication) Reset() {
+	*x = OnuIndication{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OnuIndication) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OnuIndication) ProtoMessage() {}
+
+func (x *OnuIndication) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[5]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OnuIndication.ProtoReflect.Descriptor instead.
+func (*OnuIndication) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{5}
+}
+
+func (x *OnuIndication) GetIntfId() uint32 {
+	if x != nil {
+		return x.IntfId
+	}
+	return 0
+}
+
+func (x *OnuIndication) GetOnuId() uint32 {
+	if x != nil {
+		return x.OnuId
+	}
+	return 0
+}
+
+func (x *OnuIndication) GetOperState() string {
+	if x != nil {
+		return x.OperState
+	}
+	return ""
+}
+
+func (x *OnuIndication) GetAdminState() string {
+	if x != nil {
+		return x.AdminState
+	}
+	return ""
+}
+
+func (x *OnuIndication) GetSerialNumber() *SerialNumber {
+	if x != nil {
+		return x.SerialNumber
 	}
 	return nil
 }
 
-func (m *AlarmIndication) GetDyingGaspInd() *DyingGaspIndication {
-	if x, ok := m.GetData().(*AlarmIndication_DyingGaspInd); ok {
-		return x.DyingGaspInd
+func (x *OnuIndication) GetFailReason() OnuIndication_ActivationFailReason {
+	if x != nil {
+		return x.FailReason
+	}
+	return OnuIndication_ONU_ACTIVATION_FAIL_REASON_NONE
+}
+
+type OnuDisabledIndication struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	IntfId        uint32                 `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
+	OnuId         uint32                 `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
+	SerialNumber  *SerialNumber          `protobuf:"bytes,4,opt,name=serial_number,json=serialNumber,proto3" json:"serial_number,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OnuDisabledIndication) Reset() {
+	*x = OnuDisabledIndication{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OnuDisabledIndication) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OnuDisabledIndication) ProtoMessage() {}
+
+func (x *OnuDisabledIndication) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[6]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OnuDisabledIndication.ProtoReflect.Descriptor instead.
+func (*OnuDisabledIndication) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{6}
+}
+
+func (x *OnuDisabledIndication) GetIntfId() uint32 {
+	if x != nil {
+		return x.IntfId
+	}
+	return 0
+}
+
+func (x *OnuDisabledIndication) GetOnuId() uint32 {
+	if x != nil {
+		return x.OnuId
+	}
+	return 0
+}
+
+func (x *OnuDisabledIndication) GetSerialNumber() *SerialNumber {
+	if x != nil {
+		return x.SerialNumber
 	}
 	return nil
 }
 
-func (m *AlarmIndication) GetOnuAlarmInd() *OnuAlarmIndication {
-	if x, ok := m.GetData().(*AlarmIndication_OnuAlarmInd); ok {
-		return x.OnuAlarmInd
+type OnuEnabledIndication struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	IntfId        uint32                 `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
+	OnuId         uint32                 `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
+	SerialNumber  *SerialNumber          `protobuf:"bytes,4,opt,name=serial_number,json=serialNumber,proto3" json:"serial_number,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OnuEnabledIndication) Reset() {
+	*x = OnuEnabledIndication{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[7]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OnuEnabledIndication) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OnuEnabledIndication) ProtoMessage() {}
+
+func (x *OnuEnabledIndication) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[7]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OnuEnabledIndication.ProtoReflect.Descriptor instead.
+func (*OnuEnabledIndication) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{7}
+}
+
+func (x *OnuEnabledIndication) GetIntfId() uint32 {
+	if x != nil {
+		return x.IntfId
+	}
+	return 0
+}
+
+func (x *OnuEnabledIndication) GetOnuId() uint32 {
+	if x != nil {
+		return x.OnuId
+	}
+	return 0
+}
+
+func (x *OnuEnabledIndication) GetSerialNumber() *SerialNumber {
+	if x != nil {
+		return x.SerialNumber
 	}
 	return nil
 }
 
-func (m *AlarmIndication) GetOnuStartupFailInd() *OnuStartupFailureIndication {
-	if x, ok := m.GetData().(*AlarmIndication_OnuStartupFailInd); ok {
-		return x.OnuStartupFailInd
+type IntfOperIndication struct {
+	state         protoimpl.MessageState                `protogen:"open.v1"`
+	Type          string                                `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` // nni, pon
+	IntfId        uint32                                `protobuf:"fixed32,2,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
+	OperState     string                                `protobuf:"bytes,3,opt,name=oper_state,json=operState,proto3" json:"oper_state,omitempty"` // up, down
+	Speed         uint32                                `protobuf:"fixed32,4,opt,name=speed,proto3" json:"speed,omitempty"`                        // measured in Mbps
+	Technology    string                                `protobuf:"bytes,5,opt,name=technology,proto3" json:"technology,omitempty"`
+	Ranges        *IntfOperIndication_PONResourceRanges `protobuf:"bytes,6,opt,name=ranges,proto3" json:"ranges,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *IntfOperIndication) Reset() {
+	*x = IntfOperIndication{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[8]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *IntfOperIndication) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*IntfOperIndication) ProtoMessage() {}
+
+func (x *IntfOperIndication) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[8]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use IntfOperIndication.ProtoReflect.Descriptor instead.
+func (*IntfOperIndication) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{8}
+}
+
+func (x *IntfOperIndication) GetType() string {
+	if x != nil {
+		return x.Type
+	}
+	return ""
+}
+
+func (x *IntfOperIndication) GetIntfId() uint32 {
+	if x != nil {
+		return x.IntfId
+	}
+	return 0
+}
+
+func (x *IntfOperIndication) GetOperState() string {
+	if x != nil {
+		return x.OperState
+	}
+	return ""
+}
+
+func (x *IntfOperIndication) GetSpeed() uint32 {
+	if x != nil {
+		return x.Speed
+	}
+	return 0
+}
+
+func (x *IntfOperIndication) GetTechnology() string {
+	if x != nil {
+		return x.Technology
+	}
+	return ""
+}
+
+func (x *IntfOperIndication) GetRanges() *IntfOperIndication_PONResourceRanges {
+	if x != nil {
+		return x.Ranges
 	}
 	return nil
 }
 
-func (m *AlarmIndication) GetOnuSignalDegradeInd() *OnuSignalDegradeIndication {
-	if x, ok := m.GetData().(*AlarmIndication_OnuSignalDegradeInd); ok {
-		return x.OnuSignalDegradeInd
+type OmciIndication struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	IntfId        uint32                 `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
+	OnuId         uint32                 `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
+	Pkt           []byte                 `protobuf:"bytes,3,opt,name=pkt,proto3" json:"pkt,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OmciIndication) Reset() {
+	*x = OmciIndication{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[9]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OmciIndication) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OmciIndication) ProtoMessage() {}
+
+func (x *OmciIndication) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[9]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OmciIndication.ProtoReflect.Descriptor instead.
+func (*OmciIndication) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{9}
+}
+
+func (x *OmciIndication) GetIntfId() uint32 {
+	if x != nil {
+		return x.IntfId
+	}
+	return 0
+}
+
+func (x *OmciIndication) GetOnuId() uint32 {
+	if x != nil {
+		return x.OnuId
+	}
+	return 0
+}
+
+func (x *OmciIndication) GetPkt() []byte {
+	if x != nil {
+		return x.Pkt
 	}
 	return nil
 }
 
-func (m *AlarmIndication) GetOnuDriftOfWindowInd() *OnuDriftOfWindowIndication {
-	if x, ok := m.GetData().(*AlarmIndication_OnuDriftOfWindowInd); ok {
-		return x.OnuDriftOfWindowInd
+type PacketIndication struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	IntfType      string                 `protobuf:"bytes,5,opt,name=intf_type,json=intfType,proto3" json:"intf_type,omitempty"` // nni, pon, unknown
+	IntfId        uint32                 `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
+	OnuId         uint32                 `protobuf:"fixed32,8,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
+	UniId         uint32                 `protobuf:"fixed32,9,opt,name=uni_id,json=uniId,proto3" json:"uni_id,omitempty"`
+	GemportId     uint32                 `protobuf:"fixed32,2,opt,name=gemport_id,json=gemportId,proto3" json:"gemport_id,omitempty"`
+	FlowId        uint32                 `protobuf:"fixed32,3,opt,name=flow_id,json=flowId,proto3" json:"flow_id,omitempty"`
+	PortNo        uint32                 `protobuf:"fixed32,6,opt,name=port_no,json=portNo,proto3" json:"port_no,omitempty"`
+	Cookie        uint64                 `protobuf:"fixed64,7,opt,name=cookie,proto3" json:"cookie,omitempty"`
+	Pkt           []byte                 `protobuf:"bytes,4,opt,name=pkt,proto3" json:"pkt,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *PacketIndication) Reset() {
+	*x = PacketIndication{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[10]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *PacketIndication) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PacketIndication) ProtoMessage() {}
+
+func (x *PacketIndication) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[10]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use PacketIndication.ProtoReflect.Descriptor instead.
+func (*PacketIndication) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{10}
+}
+
+func (x *PacketIndication) GetIntfType() string {
+	if x != nil {
+		return x.IntfType
+	}
+	return ""
+}
+
+func (x *PacketIndication) GetIntfId() uint32 {
+	if x != nil {
+		return x.IntfId
+	}
+	return 0
+}
+
+func (x *PacketIndication) GetOnuId() uint32 {
+	if x != nil {
+		return x.OnuId
+	}
+	return 0
+}
+
+func (x *PacketIndication) GetUniId() uint32 {
+	if x != nil {
+		return x.UniId
+	}
+	return 0
+}
+
+func (x *PacketIndication) GetGemportId() uint32 {
+	if x != nil {
+		return x.GemportId
+	}
+	return 0
+}
+
+func (x *PacketIndication) GetFlowId() uint32 {
+	if x != nil {
+		return x.FlowId
+	}
+	return 0
+}
+
+func (x *PacketIndication) GetPortNo() uint32 {
+	if x != nil {
+		return x.PortNo
+	}
+	return 0
+}
+
+func (x *PacketIndication) GetCookie() uint64 {
+	if x != nil {
+		return x.Cookie
+	}
+	return 0
+}
+
+func (x *PacketIndication) GetPkt() []byte {
+	if x != nil {
+		return x.Pkt
 	}
 	return nil
 }
 
-func (m *AlarmIndication) GetOnuLossOmciInd() *OnuLossOfOmciChannelIndication {
-	if x, ok := m.GetData().(*AlarmIndication_OnuLossOmciInd); ok {
-		return x.OnuLossOmciInd
+type Interface struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	IntfId        uint32                 `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
+	IntfType      uint32                 `protobuf:"fixed32,2,opt,name=intf_type,json=intfType,proto3" json:"intf_type,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *Interface) Reset() {
+	*x = Interface{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[11]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *Interface) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Interface) ProtoMessage() {}
+
+func (x *Interface) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[11]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use Interface.ProtoReflect.Descriptor instead.
+func (*Interface) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{11}
+}
+
+func (x *Interface) GetIntfId() uint32 {
+	if x != nil {
+		return x.IntfId
+	}
+	return 0
+}
+
+func (x *Interface) GetIntfType() uint32 {
+	if x != nil {
+		return x.IntfType
+	}
+	return 0
+}
+
+type Heartbeat struct {
+	state              protoimpl.MessageState `protogen:"open.v1"`
+	HeartbeatSignature uint32                 `protobuf:"fixed32,1,opt,name=heartbeat_signature,json=heartbeatSignature,proto3" json:"heartbeat_signature,omitempty"`
+	unknownFields      protoimpl.UnknownFields
+	sizeCache          protoimpl.SizeCache
+}
+
+func (x *Heartbeat) Reset() {
+	*x = Heartbeat{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[12]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *Heartbeat) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Heartbeat) ProtoMessage() {}
+
+func (x *Heartbeat) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[12]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use Heartbeat.ProtoReflect.Descriptor instead.
+func (*Heartbeat) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{12}
+}
+
+func (x *Heartbeat) GetHeartbeatSignature() uint32 {
+	if x != nil {
+		return x.HeartbeatSignature
+	}
+	return 0
+}
+
+type Onu struct {
+	state          protoimpl.MessageState `protogen:"open.v1"`
+	IntfId         uint32                 `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
+	OnuId          uint32                 `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
+	SerialNumber   *SerialNumber          `protobuf:"bytes,3,opt,name=serial_number,json=serialNumber,proto3" json:"serial_number,omitempty"`
+	Pir            uint32                 `protobuf:"fixed32,4,opt,name=pir,proto3" json:"pir,omitempty"` // peak information rate assigned to onu
+	OmccEncryption bool                   `protobuf:"varint,5,opt,name=omcc_encryption,json=omccEncryption,proto3" json:"omcc_encryption,omitempty"`
+	unknownFields  protoimpl.UnknownFields
+	sizeCache      protoimpl.SizeCache
+}
+
+func (x *Onu) Reset() {
+	*x = Onu{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[13]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *Onu) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Onu) ProtoMessage() {}
+
+func (x *Onu) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[13]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use Onu.ProtoReflect.Descriptor instead.
+func (*Onu) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{13}
+}
+
+func (x *Onu) GetIntfId() uint32 {
+	if x != nil {
+		return x.IntfId
+	}
+	return 0
+}
+
+func (x *Onu) GetOnuId() uint32 {
+	if x != nil {
+		return x.OnuId
+	}
+	return 0
+}
+
+func (x *Onu) GetSerialNumber() *SerialNumber {
+	if x != nil {
+		return x.SerialNumber
 	}
 	return nil
 }
 
-func (m *AlarmIndication) GetOnuSignalsFailInd() *OnuSignalsFailureIndication {
-	if x, ok := m.GetData().(*AlarmIndication_OnuSignalsFailInd); ok {
-		return x.OnuSignalsFailInd
+func (x *Onu) GetPir() uint32 {
+	if x != nil {
+		return x.Pir
+	}
+	return 0
+}
+
+func (x *Onu) GetOmccEncryption() bool {
+	if x != nil {
+		return x.OmccEncryption
+	}
+	return false
+}
+
+type OnuLogicalDistance struct {
+	state                  protoimpl.MessageState `protogen:"open.v1"`
+	IntfId                 uint32                 `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
+	OnuId                  uint32                 `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
+	LogicalOnuDistanceZero uint32                 `protobuf:"fixed32,3,opt,name=logical_onu_distance_zero,json=logicalOnuDistanceZero,proto3" json:"logical_onu_distance_zero,omitempty"` //0km logical distance
+	LogicalOnuDistance     uint32                 `protobuf:"fixed32,4,opt,name=logical_onu_distance,json=logicalOnuDistance,proto3" json:"logical_onu_distance,omitempty"`
+	unknownFields          protoimpl.UnknownFields
+	sizeCache              protoimpl.SizeCache
+}
+
+func (x *OnuLogicalDistance) Reset() {
+	*x = OnuLogicalDistance{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[14]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OnuLogicalDistance) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OnuLogicalDistance) ProtoMessage() {}
+
+func (x *OnuLogicalDistance) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[14]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OnuLogicalDistance.ProtoReflect.Descriptor instead.
+func (*OnuLogicalDistance) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{14}
+}
+
+func (x *OnuLogicalDistance) GetIntfId() uint32 {
+	if x != nil {
+		return x.IntfId
+	}
+	return 0
+}
+
+func (x *OnuLogicalDistance) GetOnuId() uint32 {
+	if x != nil {
+		return x.OnuId
+	}
+	return 0
+}
+
+func (x *OnuLogicalDistance) GetLogicalOnuDistanceZero() uint32 {
+	if x != nil {
+		return x.LogicalOnuDistanceZero
+	}
+	return 0
+}
+
+func (x *OnuLogicalDistance) GetLogicalOnuDistance() uint32 {
+	if x != nil {
+		return x.LogicalOnuDistance
+	}
+	return 0
+}
+
+type OmciMsg struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	IntfId        uint32                 `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
+	OnuId         uint32                 `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
+	Pkt           []byte                 `protobuf:"bytes,3,opt,name=pkt,proto3" json:"pkt,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OmciMsg) Reset() {
+	*x = OmciMsg{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[15]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OmciMsg) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OmciMsg) ProtoMessage() {}
+
+func (x *OmciMsg) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[15]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OmciMsg.ProtoReflect.Descriptor instead.
+func (*OmciMsg) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{15}
+}
+
+func (x *OmciMsg) GetIntfId() uint32 {
+	if x != nil {
+		return x.IntfId
+	}
+	return 0
+}
+
+func (x *OmciMsg) GetOnuId() uint32 {
+	if x != nil {
+		return x.OnuId
+	}
+	return 0
+}
+
+func (x *OmciMsg) GetPkt() []byte {
+	if x != nil {
+		return x.Pkt
 	}
 	return nil
 }
 
-func (m *AlarmIndication) GetOnuTiwiInd() *OnuTransmissionInterferenceWarning {
-	if x, ok := m.GetData().(*AlarmIndication_OnuTiwiInd); ok {
-		return x.OnuTiwiInd
+type OnuPacket struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	IntfId        uint32                 `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
+	OnuId         uint32                 `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
+	PortNo        uint32                 `protobuf:"fixed32,4,opt,name=port_no,json=portNo,proto3" json:"port_no,omitempty"`
+	GemportId     uint32                 `protobuf:"fixed32,5,opt,name=gemport_id,json=gemportId,proto3" json:"gemport_id,omitempty"`
+	AllocId       uint32                 `protobuf:"fixed32,6,opt,name=alloc_id,json=allocId,proto3" json:"alloc_id,omitempty"`
+	Pkt           []byte                 `protobuf:"bytes,3,opt,name=pkt,proto3" json:"pkt,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OnuPacket) Reset() {
+	*x = OnuPacket{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[16]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OnuPacket) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OnuPacket) ProtoMessage() {}
+
+func (x *OnuPacket) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[16]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OnuPacket.ProtoReflect.Descriptor instead.
+func (*OnuPacket) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{16}
+}
+
+func (x *OnuPacket) GetIntfId() uint32 {
+	if x != nil {
+		return x.IntfId
+	}
+	return 0
+}
+
+func (x *OnuPacket) GetOnuId() uint32 {
+	if x != nil {
+		return x.OnuId
+	}
+	return 0
+}
+
+func (x *OnuPacket) GetPortNo() uint32 {
+	if x != nil {
+		return x.PortNo
+	}
+	return 0
+}
+
+func (x *OnuPacket) GetGemportId() uint32 {
+	if x != nil {
+		return x.GemportId
+	}
+	return 0
+}
+
+func (x *OnuPacket) GetAllocId() uint32 {
+	if x != nil {
+		return x.AllocId
+	}
+	return 0
+}
+
+func (x *OnuPacket) GetPkt() []byte {
+	if x != nil {
+		return x.Pkt
 	}
 	return nil
 }
 
-func (m *AlarmIndication) GetOnuActivationFailInd() *OnuActivationFailureIndication {
-	if x, ok := m.GetData().(*AlarmIndication_OnuActivationFailInd); ok {
-		return x.OnuActivationFailInd
+type UplinkPacket struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	IntfId        uint32                 `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
+	Pkt           []byte                 `protobuf:"bytes,2,opt,name=pkt,proto3" json:"pkt,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *UplinkPacket) Reset() {
+	*x = UplinkPacket{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[17]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *UplinkPacket) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UplinkPacket) ProtoMessage() {}
+
+func (x *UplinkPacket) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[17]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use UplinkPacket.ProtoReflect.Descriptor instead.
+func (*UplinkPacket) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{17}
+}
+
+func (x *UplinkPacket) GetIntfId() uint32 {
+	if x != nil {
+		return x.IntfId
+	}
+	return 0
+}
+
+func (x *UplinkPacket) GetPkt() []byte {
+	if x != nil {
+		return x.Pkt
 	}
 	return nil
 }
 
-func (m *AlarmIndication) GetOnuProcessingErrorInd() *OnuProcessingErrorIndication {
-	if x, ok := m.GetData().(*AlarmIndication_OnuProcessingErrorInd); ok {
-		return x.OnuProcessingErrorInd
+type DeviceInfo struct {
+	state               protoimpl.MessageState `protogen:"open.v1"`
+	Vendor              string                 `protobuf:"bytes,1,opt,name=vendor,proto3" json:"vendor,omitempty"`
+	Model               string                 `protobuf:"bytes,2,opt,name=model,proto3" json:"model,omitempty"`
+	HardwareVersion     string                 `protobuf:"bytes,3,opt,name=hardware_version,json=hardwareVersion,proto3" json:"hardware_version,omitempty"`
+	FirmwareVersion     string                 `protobuf:"bytes,4,opt,name=firmware_version,json=firmwareVersion,proto3" json:"firmware_version,omitempty"`
+	DeviceId            string                 `protobuf:"bytes,16,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
+	DeviceSerialNumber  string                 `protobuf:"bytes,17,opt,name=device_serial_number,json=deviceSerialNumber,proto3" json:"device_serial_number,omitempty"`
+	PreviouslyConnected bool                   `protobuf:"varint,19,opt,name=previously_connected,json=previouslyConnected,proto3" json:"previously_connected,omitempty"` // used to indicate agent reconcile status
+	// Total number of pon intf ports on the device
+	PonPorts uint32 `protobuf:"fixed32,12,opt,name=pon_ports,json=ponPorts,proto3" json:"pon_ports,omitempty"`
+	// Total number of nni intf ports on the device
+	NniPorts      uint32                             `protobuf:"fixed32,20,opt,name=nni_ports,json=nniPorts,proto3" json:"nni_ports,omitempty"`
+	Ranges        []*DeviceInfo_DeviceResourceRanges `protobuf:"bytes,15,rep,name=ranges,proto3" json:"ranges,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *DeviceInfo) Reset() {
+	*x = DeviceInfo{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[18]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *DeviceInfo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeviceInfo) ProtoMessage() {}
+
+func (x *DeviceInfo) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[18]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeviceInfo.ProtoReflect.Descriptor instead.
+func (*DeviceInfo) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{18}
+}
+
+func (x *DeviceInfo) GetVendor() string {
+	if x != nil {
+		return x.Vendor
+	}
+	return ""
+}
+
+func (x *DeviceInfo) GetModel() string {
+	if x != nil {
+		return x.Model
+	}
+	return ""
+}
+
+func (x *DeviceInfo) GetHardwareVersion() string {
+	if x != nil {
+		return x.HardwareVersion
+	}
+	return ""
+}
+
+func (x *DeviceInfo) GetFirmwareVersion() string {
+	if x != nil {
+		return x.FirmwareVersion
+	}
+	return ""
+}
+
+func (x *DeviceInfo) GetDeviceId() string {
+	if x != nil {
+		return x.DeviceId
+	}
+	return ""
+}
+
+func (x *DeviceInfo) GetDeviceSerialNumber() string {
+	if x != nil {
+		return x.DeviceSerialNumber
+	}
+	return ""
+}
+
+func (x *DeviceInfo) GetPreviouslyConnected() bool {
+	if x != nil {
+		return x.PreviouslyConnected
+	}
+	return false
+}
+
+func (x *DeviceInfo) GetPonPorts() uint32 {
+	if x != nil {
+		return x.PonPorts
+	}
+	return 0
+}
+
+func (x *DeviceInfo) GetNniPorts() uint32 {
+	if x != nil {
+		return x.NniPorts
+	}
+	return 0
+}
+
+func (x *DeviceInfo) GetRanges() []*DeviceInfo_DeviceResourceRanges {
+	if x != nil {
+		return x.Ranges
 	}
 	return nil
 }
 
-func (m *AlarmIndication) GetOnuLossOfSyncFailInd() *OnuLossOfKeySyncFailureIndication {
-	if x, ok := m.GetData().(*AlarmIndication_OnuLossOfSyncFailInd); ok {
-		return x.OnuLossOfSyncFailInd
+type Classifier struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	OTpid         uint32                 `protobuf:"fixed32,1,opt,name=o_tpid,json=oTpid,proto3" json:"o_tpid,omitempty"`
+	OVid          uint32                 `protobuf:"fixed32,2,opt,name=o_vid,json=oVid,proto3" json:"o_vid,omitempty"`
+	ITpid         uint32                 `protobuf:"fixed32,3,opt,name=i_tpid,json=iTpid,proto3" json:"i_tpid,omitempty"`
+	IVid          uint32                 `protobuf:"fixed32,4,opt,name=i_vid,json=iVid,proto3" json:"i_vid,omitempty"`
+	OPbits        uint32                 `protobuf:"fixed32,5,opt,name=o_pbits,json=oPbits,proto3" json:"o_pbits,omitempty"`
+	IPbits        uint32                 `protobuf:"fixed32,6,opt,name=i_pbits,json=iPbits,proto3" json:"i_pbits,omitempty"`
+	EthType       uint32                 `protobuf:"fixed32,7,opt,name=eth_type,json=ethType,proto3" json:"eth_type,omitempty"`
+	DstMac        []byte                 `protobuf:"bytes,8,opt,name=dst_mac,json=dstMac,proto3" json:"dst_mac,omitempty"`
+	SrcMac        []byte                 `protobuf:"bytes,9,opt,name=src_mac,json=srcMac,proto3" json:"src_mac,omitempty"`
+	IpProto       uint32                 `protobuf:"fixed32,10,opt,name=ip_proto,json=ipProto,proto3" json:"ip_proto,omitempty"`
+	DstIp         uint32                 `protobuf:"fixed32,11,opt,name=dst_ip,json=dstIp,proto3" json:"dst_ip,omitempty"`
+	SrcIp         uint32                 `protobuf:"fixed32,12,opt,name=src_ip,json=srcIp,proto3" json:"src_ip,omitempty"`
+	SrcPort       uint32                 `protobuf:"fixed32,13,opt,name=src_port,json=srcPort,proto3" json:"src_port,omitempty"`
+	DstPort       uint32                 `protobuf:"fixed32,14,opt,name=dst_port,json=dstPort,proto3" json:"dst_port,omitempty"`
+	PktTagType    string                 `protobuf:"bytes,15,opt,name=pkt_tag_type,json=pktTagType,proto3" json:"pkt_tag_type,omitempty"` // untagged, single_tag, double_tag
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *Classifier) Reset() {
+	*x = Classifier{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[19]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *Classifier) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Classifier) ProtoMessage() {}
+
+func (x *Classifier) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[19]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use Classifier.ProtoReflect.Descriptor instead.
+func (*Classifier) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{19}
+}
+
+func (x *Classifier) GetOTpid() uint32 {
+	if x != nil {
+		return x.OTpid
+	}
+	return 0
+}
+
+func (x *Classifier) GetOVid() uint32 {
+	if x != nil {
+		return x.OVid
+	}
+	return 0
+}
+
+func (x *Classifier) GetITpid() uint32 {
+	if x != nil {
+		return x.ITpid
+	}
+	return 0
+}
+
+func (x *Classifier) GetIVid() uint32 {
+	if x != nil {
+		return x.IVid
+	}
+	return 0
+}
+
+func (x *Classifier) GetOPbits() uint32 {
+	if x != nil {
+		return x.OPbits
+	}
+	return 0
+}
+
+func (x *Classifier) GetIPbits() uint32 {
+	if x != nil {
+		return x.IPbits
+	}
+	return 0
+}
+
+func (x *Classifier) GetEthType() uint32 {
+	if x != nil {
+		return x.EthType
+	}
+	return 0
+}
+
+func (x *Classifier) GetDstMac() []byte {
+	if x != nil {
+		return x.DstMac
 	}
 	return nil
 }
 
-func (m *AlarmIndication) GetOnuItuPonStatsInd() *OnuItuPonStatsIndication {
-	if x, ok := m.GetData().(*AlarmIndication_OnuItuPonStatsInd); ok {
-		return x.OnuItuPonStatsInd
+func (x *Classifier) GetSrcMac() []byte {
+	if x != nil {
+		return x.SrcMac
 	}
 	return nil
 }
 
-func (m *AlarmIndication) GetOnuDeactivationFailureInd() *OnuDeactivationFailureIndication {
-	if x, ok := m.GetData().(*AlarmIndication_OnuDeactivationFailureInd); ok {
-		return x.OnuDeactivationFailureInd
+func (x *Classifier) GetIpProto() uint32 {
+	if x != nil {
+		return x.IpProto
+	}
+	return 0
+}
+
+func (x *Classifier) GetDstIp() uint32 {
+	if x != nil {
+		return x.DstIp
+	}
+	return 0
+}
+
+func (x *Classifier) GetSrcIp() uint32 {
+	if x != nil {
+		return x.SrcIp
+	}
+	return 0
+}
+
+func (x *Classifier) GetSrcPort() uint32 {
+	if x != nil {
+		return x.SrcPort
+	}
+	return 0
+}
+
+func (x *Classifier) GetDstPort() uint32 {
+	if x != nil {
+		return x.DstPort
+	}
+	return 0
+}
+
+func (x *Classifier) GetPktTagType() string {
+	if x != nil {
+		return x.PktTagType
+	}
+	return ""
+}
+
+type ActionCmd struct {
+	state             protoimpl.MessageState `protogen:"open.v1"`
+	AddOuterTag       bool                   `protobuf:"varint,1,opt,name=add_outer_tag,json=addOuterTag,proto3" json:"add_outer_tag,omitempty"`
+	RemoveOuterTag    bool                   `protobuf:"varint,2,opt,name=remove_outer_tag,json=removeOuterTag,proto3" json:"remove_outer_tag,omitempty"`
+	TrapToHost        bool                   `protobuf:"varint,3,opt,name=trap_to_host,json=trapToHost,proto3" json:"trap_to_host,omitempty"`
+	RemarkOuterPbits  bool                   `protobuf:"varint,4,opt,name=remark_outer_pbits,json=remarkOuterPbits,proto3" json:"remark_outer_pbits,omitempty"`
+	RemarkInnerPbits  bool                   `protobuf:"varint,5,opt,name=remark_inner_pbits,json=remarkInnerPbits,proto3" json:"remark_inner_pbits,omitempty"`
+	AddInnerTag       bool                   `protobuf:"varint,6,opt,name=add_inner_tag,json=addInnerTag,proto3" json:"add_inner_tag,omitempty"`
+	RemoveInnerTag    bool                   `protobuf:"varint,7,opt,name=remove_inner_tag,json=removeInnerTag,proto3" json:"remove_inner_tag,omitempty"`
+	TranslateInnerTag bool                   `protobuf:"varint,8,opt,name=translate_inner_tag,json=translateInnerTag,proto3" json:"translate_inner_tag,omitempty"`
+	TranslateOuterTag bool                   `protobuf:"varint,9,opt,name=translate_outer_tag,json=translateOuterTag,proto3" json:"translate_outer_tag,omitempty"`
+	unknownFields     protoimpl.UnknownFields
+	sizeCache         protoimpl.SizeCache
+}
+
+func (x *ActionCmd) Reset() {
+	*x = ActionCmd{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[20]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ActionCmd) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ActionCmd) ProtoMessage() {}
+
+func (x *ActionCmd) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[20]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ActionCmd.ProtoReflect.Descriptor instead.
+func (*ActionCmd) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{20}
+}
+
+func (x *ActionCmd) GetAddOuterTag() bool {
+	if x != nil {
+		return x.AddOuterTag
+	}
+	return false
+}
+
+func (x *ActionCmd) GetRemoveOuterTag() bool {
+	if x != nil {
+		return x.RemoveOuterTag
+	}
+	return false
+}
+
+func (x *ActionCmd) GetTrapToHost() bool {
+	if x != nil {
+		return x.TrapToHost
+	}
+	return false
+}
+
+func (x *ActionCmd) GetRemarkOuterPbits() bool {
+	if x != nil {
+		return x.RemarkOuterPbits
+	}
+	return false
+}
+
+func (x *ActionCmd) GetRemarkInnerPbits() bool {
+	if x != nil {
+		return x.RemarkInnerPbits
+	}
+	return false
+}
+
+func (x *ActionCmd) GetAddInnerTag() bool {
+	if x != nil {
+		return x.AddInnerTag
+	}
+	return false
+}
+
+func (x *ActionCmd) GetRemoveInnerTag() bool {
+	if x != nil {
+		return x.RemoveInnerTag
+	}
+	return false
+}
+
+func (x *ActionCmd) GetTranslateInnerTag() bool {
+	if x != nil {
+		return x.TranslateInnerTag
+	}
+	return false
+}
+
+func (x *ActionCmd) GetTranslateOuterTag() bool {
+	if x != nil {
+		return x.TranslateOuterTag
+	}
+	return false
+}
+
+type Action struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Cmd           *ActionCmd             `protobuf:"bytes,1,opt,name=cmd,proto3" json:"cmd,omitempty"`
+	OVid          uint32                 `protobuf:"fixed32,2,opt,name=o_vid,json=oVid,proto3" json:"o_vid,omitempty"`
+	OPbits        uint32                 `protobuf:"fixed32,3,opt,name=o_pbits,json=oPbits,proto3" json:"o_pbits,omitempty"`
+	OTpid         uint32                 `protobuf:"fixed32,4,opt,name=o_tpid,json=oTpid,proto3" json:"o_tpid,omitempty"`
+	IVid          uint32                 `protobuf:"fixed32,5,opt,name=i_vid,json=iVid,proto3" json:"i_vid,omitempty"`
+	IPbits        uint32                 `protobuf:"fixed32,6,opt,name=i_pbits,json=iPbits,proto3" json:"i_pbits,omitempty"`
+	ITpid         uint32                 `protobuf:"fixed32,7,opt,name=i_tpid,json=iTpid,proto3" json:"i_tpid,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *Action) Reset() {
+	*x = Action{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[21]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *Action) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Action) ProtoMessage() {}
+
+func (x *Action) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[21]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use Action.ProtoReflect.Descriptor instead.
+func (*Action) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{21}
+}
+
+func (x *Action) GetCmd() *ActionCmd {
+	if x != nil {
+		return x.Cmd
 	}
 	return nil
 }
 
-func (m *AlarmIndication) GetOnuRemoteDefectInd() *OnuRemoteDefectIndication {
-	if x, ok := m.GetData().(*AlarmIndication_OnuRemoteDefectInd); ok {
-		return x.OnuRemoteDefectInd
+func (x *Action) GetOVid() uint32 {
+	if x != nil {
+		return x.OVid
+	}
+	return 0
+}
+
+func (x *Action) GetOPbits() uint32 {
+	if x != nil {
+		return x.OPbits
+	}
+	return 0
+}
+
+func (x *Action) GetOTpid() uint32 {
+	if x != nil {
+		return x.OTpid
+	}
+	return 0
+}
+
+func (x *Action) GetIVid() uint32 {
+	if x != nil {
+		return x.IVid
+	}
+	return 0
+}
+
+func (x *Action) GetIPbits() uint32 {
+	if x != nil {
+		return x.IPbits
+	}
+	return 0
+}
+
+func (x *Action) GetITpid() uint32 {
+	if x != nil {
+		return x.ITpid
+	}
+	return 0
+}
+
+type Flow struct {
+	state           protoimpl.MessageState `protogen:"open.v1"`
+	AccessIntfId    int32                  `protobuf:"fixed32,1,opt,name=access_intf_id,json=accessIntfId,proto3" json:"access_intf_id,omitempty"`
+	OnuId           int32                  `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
+	UniId           int32                  `protobuf:"fixed32,11,opt,name=uni_id,json=uniId,proto3" json:"uni_id,omitempty"`
+	FlowId          uint64                 `protobuf:"fixed64,3,opt,name=flow_id,json=flowId,proto3" json:"flow_id,omitempty"`                               // voltha flow-id. 0 is not a valid flow_id
+	SymmetricFlowId uint64                 `protobuf:"fixed64,18,opt,name=symmetric_flow_id,json=symmetricFlowId,proto3" json:"symmetric_flow_id,omitempty"` // symmetric voltha flow-id, if applicable. All data path flows generally have a symmetric flow,
+	FlowType        string                 `protobuf:"bytes,4,opt,name=flow_type,json=flowType,proto3" json:"flow_type,omitempty"`                           // upstream, downstream, broadcast, multicast
+	AllocId         int32                  `protobuf:"fixed32,10,opt,name=alloc_id,json=allocId,proto3" json:"alloc_id,omitempty"`
+	NetworkIntfId   int32                  `protobuf:"fixed32,5,opt,name=network_intf_id,json=networkIntfId,proto3" json:"network_intf_id,omitempty"`
+	GemportId       int32                  `protobuf:"fixed32,6,opt,name=gemport_id,json=gemportId,proto3" json:"gemport_id,omitempty"` // When 'replicate_flow' field is true, this field is obsolete.
+	Classifier      *Classifier            `protobuf:"bytes,7,opt,name=classifier,proto3" json:"classifier,omitempty"`
+	Action          *Action                `protobuf:"bytes,8,opt,name=action,proto3" json:"action,omitempty"`
+	Priority        int32                  `protobuf:"fixed32,9,opt,name=priority,proto3" json:"priority,omitempty"`
+	Cookie          uint64                 `protobuf:"fixed64,12,opt,name=cookie,proto3" json:"cookie,omitempty"`               // must be provided for any flow with trap_to_host action. Returned in PacketIndication
+	PortNo          uint32                 `protobuf:"fixed32,13,opt,name=port_no,json=portNo,proto3" json:"port_no,omitempty"` // must be provided for any flow with trap_to_host action. Returned in PacketIndication
+	GroupId         uint32                 `protobuf:"fixed32,14,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
+	TechProfileId   uint32                 `protobuf:"fixed32,15,opt,name=tech_profile_id,json=techProfileId,proto3" json:"tech_profile_id,omitempty"`
+	ReplicateFlow   bool                   `protobuf:"varint,16,opt,name=replicate_flow,json=replicateFlow,proto3" json:"replicate_flow,omitempty"`                                                                                // When this field is true, use pbitToGemPortID to know which p-bit needs to be classfied to which gem port.
+	PbitToGemport   map[uint32]uint32      `protobuf:"bytes,17,rep,name=pbit_to_gemport,json=pbitToGemport,proto3" json:"pbit_to_gemport,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` // Map of p-bit to gem port ID
+	GemportToAes    map[uint32]bool        `protobuf:"bytes,19,rep,name=gemport_to_aes,json=gemportToAes,proto3" json:"gemport_to_aes,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"`     // Map of gem port ID to aes encryption
+	unknownFields   protoimpl.UnknownFields
+	sizeCache       protoimpl.SizeCache
+}
+
+func (x *Flow) Reset() {
+	*x = Flow{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[22]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *Flow) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Flow) ProtoMessage() {}
+
+func (x *Flow) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[22]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use Flow.ProtoReflect.Descriptor instead.
+func (*Flow) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{22}
+}
+
+func (x *Flow) GetAccessIntfId() int32 {
+	if x != nil {
+		return x.AccessIntfId
+	}
+	return 0
+}
+
+func (x *Flow) GetOnuId() int32 {
+	if x != nil {
+		return x.OnuId
+	}
+	return 0
+}
+
+func (x *Flow) GetUniId() int32 {
+	if x != nil {
+		return x.UniId
+	}
+	return 0
+}
+
+func (x *Flow) GetFlowId() uint64 {
+	if x != nil {
+		return x.FlowId
+	}
+	return 0
+}
+
+func (x *Flow) GetSymmetricFlowId() uint64 {
+	if x != nil {
+		return x.SymmetricFlowId
+	}
+	return 0
+}
+
+func (x *Flow) GetFlowType() string {
+	if x != nil {
+		return x.FlowType
+	}
+	return ""
+}
+
+func (x *Flow) GetAllocId() int32 {
+	if x != nil {
+		return x.AllocId
+	}
+	return 0
+}
+
+func (x *Flow) GetNetworkIntfId() int32 {
+	if x != nil {
+		return x.NetworkIntfId
+	}
+	return 0
+}
+
+func (x *Flow) GetGemportId() int32 {
+	if x != nil {
+		return x.GemportId
+	}
+	return 0
+}
+
+func (x *Flow) GetClassifier() *Classifier {
+	if x != nil {
+		return x.Classifier
 	}
 	return nil
 }
 
-func (m *AlarmIndication) GetOnuLossGemDelineationInd() *OnuLossOfGEMChannelDelineationIndication {
-	if x, ok := m.GetData().(*AlarmIndication_OnuLossGemDelineationInd); ok {
-		return x.OnuLossGemDelineationInd
+func (x *Flow) GetAction() *Action {
+	if x != nil {
+		return x.Action
 	}
 	return nil
 }
 
-func (m *AlarmIndication) GetOnuPhysicalEquipmentErrorInd() *OnuPhysicalEquipmentErrorIndication {
-	if x, ok := m.GetData().(*AlarmIndication_OnuPhysicalEquipmentErrorInd); ok {
-		return x.OnuPhysicalEquipmentErrorInd
+func (x *Flow) GetPriority() int32 {
+	if x != nil {
+		return x.Priority
+	}
+	return 0
+}
+
+func (x *Flow) GetCookie() uint64 {
+	if x != nil {
+		return x.Cookie
+	}
+	return 0
+}
+
+func (x *Flow) GetPortNo() uint32 {
+	if x != nil {
+		return x.PortNo
+	}
+	return 0
+}
+
+func (x *Flow) GetGroupId() uint32 {
+	if x != nil {
+		return x.GroupId
+	}
+	return 0
+}
+
+func (x *Flow) GetTechProfileId() uint32 {
+	if x != nil {
+		return x.TechProfileId
+	}
+	return 0
+}
+
+func (x *Flow) GetReplicateFlow() bool {
+	if x != nil {
+		return x.ReplicateFlow
+	}
+	return false
+}
+
+func (x *Flow) GetPbitToGemport() map[uint32]uint32 {
+	if x != nil {
+		return x.PbitToGemport
 	}
 	return nil
 }
 
-func (m *AlarmIndication) GetOnuLossOfAckInd() *OnuLossOfAcknowledgementIndication {
-	if x, ok := m.GetData().(*AlarmIndication_OnuLossOfAckInd); ok {
-		return x.OnuLossOfAckInd
+func (x *Flow) GetGemportToAes() map[uint32]bool {
+	if x != nil {
+		return x.GemportToAes
 	}
 	return nil
 }
 
-func (m *AlarmIndication) GetOnuDiffReachExceededInd() *OnuDifferentialReachExceededIndication {
-	if x, ok := m.GetData().(*AlarmIndication_OnuDiffReachExceededInd); ok {
-		return x.OnuDiffReachExceededInd
+type SerialNumber struct {
+	state          protoimpl.MessageState `protogen:"open.v1"`
+	VendorId       []byte                 `protobuf:"bytes,1,opt,name=vendor_id,json=vendorId,proto3" json:"vendor_id,omitempty"`
+	VendorSpecific []byte                 `protobuf:"bytes,2,opt,name=vendor_specific,json=vendorSpecific,proto3" json:"vendor_specific,omitempty"`
+	unknownFields  protoimpl.UnknownFields
+	sizeCache      protoimpl.SizeCache
+}
+
+func (x *SerialNumber) Reset() {
+	*x = SerialNumber{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[23]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *SerialNumber) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SerialNumber) ProtoMessage() {}
+
+func (x *SerialNumber) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[23]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SerialNumber.ProtoReflect.Descriptor instead.
+func (*SerialNumber) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{23}
+}
+
+func (x *SerialNumber) GetVendorId() []byte {
+	if x != nil {
+		return x.VendorId
 	}
 	return nil
 }
 
-// XXX_OneofWrappers is for the internal use of the proto package.
-func (*AlarmIndication) XXX_OneofWrappers() []interface{} {
-	return []interface{}{
+func (x *SerialNumber) GetVendorSpecific() []byte {
+	if x != nil {
+		return x.VendorSpecific
+	}
+	return nil
+}
+
+type OnuStatistics struct {
+	state                     protoimpl.MessageState `protogen:"open.v1"`
+	IntfId                    uint32                 `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
+	OnuId                     uint32                 `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
+	PositiveDrift             uint64                 `protobuf:"fixed64,3,opt,name=positive_drift,json=positiveDrift,proto3" json:"positive_drift,omitempty"`
+	NegativeDrift             uint64                 `protobuf:"fixed64,4,opt,name=negative_drift,json=negativeDrift,proto3" json:"negative_drift,omitempty"`
+	DelimiterMissDetection    uint64                 `protobuf:"fixed64,5,opt,name=delimiter_miss_detection,json=delimiterMissDetection,proto3" json:"delimiter_miss_detection,omitempty"`
+	BipErrors                 uint64                 `protobuf:"fixed64,6,opt,name=bip_errors,json=bipErrors,proto3" json:"bip_errors,omitempty"`
+	BipUnits                  uint64                 `protobuf:"fixed64,7,opt,name=bip_units,json=bipUnits,proto3" json:"bip_units,omitempty"`
+	FecCorrectedSymbols       uint64                 `protobuf:"fixed64,8,opt,name=fec_corrected_symbols,json=fecCorrectedSymbols,proto3" json:"fec_corrected_symbols,omitempty"`
+	FecCodewordsCorrected     uint64                 `protobuf:"fixed64,9,opt,name=fec_codewords_corrected,json=fecCodewordsCorrected,proto3" json:"fec_codewords_corrected,omitempty"`
+	FecCodewordsUncorrectable uint64                 `protobuf:"fixed64,10,opt,name=fec_codewords_uncorrectable,json=fecCodewordsUncorrectable,proto3" json:"fec_codewords_uncorrectable,omitempty"`
+	FecCodewords              uint64                 `protobuf:"fixed64,11,opt,name=fec_codewords,json=fecCodewords,proto3" json:"fec_codewords,omitempty"`
+	FecCorrectedUnits         uint64                 `protobuf:"fixed64,12,opt,name=fec_corrected_units,json=fecCorrectedUnits,proto3" json:"fec_corrected_units,omitempty"`
+	XgemKeyErrors             uint64                 `protobuf:"fixed64,13,opt,name=xgem_key_errors,json=xgemKeyErrors,proto3" json:"xgem_key_errors,omitempty"`
+	XgemLoss                  uint64                 `protobuf:"fixed64,14,opt,name=xgem_loss,json=xgemLoss,proto3" json:"xgem_loss,omitempty"`
+	RxPloamsError             uint64                 `protobuf:"fixed64,15,opt,name=rx_ploams_error,json=rxPloamsError,proto3" json:"rx_ploams_error,omitempty"`
+	RxPloamsNonIdle           uint64                 `protobuf:"fixed64,16,opt,name=rx_ploams_non_idle,json=rxPloamsNonIdle,proto3" json:"rx_ploams_non_idle,omitempty"`
+	RxOmci                    uint64                 `protobuf:"fixed64,17,opt,name=rx_omci,json=rxOmci,proto3" json:"rx_omci,omitempty"`
+	RxOmciPacketsCrcError     uint64                 `protobuf:"fixed64,18,opt,name=rx_omci_packets_crc_error,json=rxOmciPacketsCrcError,proto3" json:"rx_omci_packets_crc_error,omitempty"`
+	RxBytes                   uint64                 `protobuf:"fixed64,19,opt,name=rx_bytes,json=rxBytes,proto3" json:"rx_bytes,omitempty"`
+	RxPackets                 uint64                 `protobuf:"fixed64,20,opt,name=rx_packets,json=rxPackets,proto3" json:"rx_packets,omitempty"`
+	TxBytes                   uint64                 `protobuf:"fixed64,21,opt,name=tx_bytes,json=txBytes,proto3" json:"tx_bytes,omitempty"`
+	TxPackets                 uint64                 `protobuf:"fixed64,22,opt,name=tx_packets,json=txPackets,proto3" json:"tx_packets,omitempty"`
+	BerReported               uint64                 `protobuf:"fixed64,23,opt,name=ber_reported,json=berReported,proto3" json:"ber_reported,omitempty"`
+	LcdgErrors                uint64                 `protobuf:"fixed64,24,opt,name=lcdg_errors,json=lcdgErrors,proto3" json:"lcdg_errors,omitempty"`
+	RdiErrors                 uint64                 `protobuf:"fixed64,25,opt,name=rdi_errors,json=rdiErrors,proto3" json:"rdi_errors,omitempty"`
+	Timestamp                 uint32                 `protobuf:"fixed32,26,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
+	unknownFields             protoimpl.UnknownFields
+	sizeCache                 protoimpl.SizeCache
+}
+
+func (x *OnuStatistics) Reset() {
+	*x = OnuStatistics{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[24]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OnuStatistics) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OnuStatistics) ProtoMessage() {}
+
+func (x *OnuStatistics) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[24]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OnuStatistics.ProtoReflect.Descriptor instead.
+func (*OnuStatistics) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{24}
+}
+
+func (x *OnuStatistics) GetIntfId() uint32 {
+	if x != nil {
+		return x.IntfId
+	}
+	return 0
+}
+
+func (x *OnuStatistics) GetOnuId() uint32 {
+	if x != nil {
+		return x.OnuId
+	}
+	return 0
+}
+
+func (x *OnuStatistics) GetPositiveDrift() uint64 {
+	if x != nil {
+		return x.PositiveDrift
+	}
+	return 0
+}
+
+func (x *OnuStatistics) GetNegativeDrift() uint64 {
+	if x != nil {
+		return x.NegativeDrift
+	}
+	return 0
+}
+
+func (x *OnuStatistics) GetDelimiterMissDetection() uint64 {
+	if x != nil {
+		return x.DelimiterMissDetection
+	}
+	return 0
+}
+
+func (x *OnuStatistics) GetBipErrors() uint64 {
+	if x != nil {
+		return x.BipErrors
+	}
+	return 0
+}
+
+func (x *OnuStatistics) GetBipUnits() uint64 {
+	if x != nil {
+		return x.BipUnits
+	}
+	return 0
+}
+
+func (x *OnuStatistics) GetFecCorrectedSymbols() uint64 {
+	if x != nil {
+		return x.FecCorrectedSymbols
+	}
+	return 0
+}
+
+func (x *OnuStatistics) GetFecCodewordsCorrected() uint64 {
+	if x != nil {
+		return x.FecCodewordsCorrected
+	}
+	return 0
+}
+
+func (x *OnuStatistics) GetFecCodewordsUncorrectable() uint64 {
+	if x != nil {
+		return x.FecCodewordsUncorrectable
+	}
+	return 0
+}
+
+func (x *OnuStatistics) GetFecCodewords() uint64 {
+	if x != nil {
+		return x.FecCodewords
+	}
+	return 0
+}
+
+func (x *OnuStatistics) GetFecCorrectedUnits() uint64 {
+	if x != nil {
+		return x.FecCorrectedUnits
+	}
+	return 0
+}
+
+func (x *OnuStatistics) GetXgemKeyErrors() uint64 {
+	if x != nil {
+		return x.XgemKeyErrors
+	}
+	return 0
+}
+
+func (x *OnuStatistics) GetXgemLoss() uint64 {
+	if x != nil {
+		return x.XgemLoss
+	}
+	return 0
+}
+
+func (x *OnuStatistics) GetRxPloamsError() uint64 {
+	if x != nil {
+		return x.RxPloamsError
+	}
+	return 0
+}
+
+func (x *OnuStatistics) GetRxPloamsNonIdle() uint64 {
+	if x != nil {
+		return x.RxPloamsNonIdle
+	}
+	return 0
+}
+
+func (x *OnuStatistics) GetRxOmci() uint64 {
+	if x != nil {
+		return x.RxOmci
+	}
+	return 0
+}
+
+func (x *OnuStatistics) GetRxOmciPacketsCrcError() uint64 {
+	if x != nil {
+		return x.RxOmciPacketsCrcError
+	}
+	return 0
+}
+
+func (x *OnuStatistics) GetRxBytes() uint64 {
+	if x != nil {
+		return x.RxBytes
+	}
+	return 0
+}
+
+func (x *OnuStatistics) GetRxPackets() uint64 {
+	if x != nil {
+		return x.RxPackets
+	}
+	return 0
+}
+
+func (x *OnuStatistics) GetTxBytes() uint64 {
+	if x != nil {
+		return x.TxBytes
+	}
+	return 0
+}
+
+func (x *OnuStatistics) GetTxPackets() uint64 {
+	if x != nil {
+		return x.TxPackets
+	}
+	return 0
+}
+
+func (x *OnuStatistics) GetBerReported() uint64 {
+	if x != nil {
+		return x.BerReported
+	}
+	return 0
+}
+
+func (x *OnuStatistics) GetLcdgErrors() uint64 {
+	if x != nil {
+		return x.LcdgErrors
+	}
+	return 0
+}
+
+func (x *OnuStatistics) GetRdiErrors() uint64 {
+	if x != nil {
+		return x.RdiErrors
+	}
+	return 0
+}
+
+func (x *OnuStatistics) GetTimestamp() uint32 {
+	if x != nil {
+		return x.Timestamp
+	}
+	return 0
+}
+
+type GemPortStatistics struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	IntfId        uint32                 `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
+	GemportId     uint32                 `protobuf:"fixed32,2,opt,name=gemport_id,json=gemportId,proto3" json:"gemport_id,omitempty"`
+	RxPackets     uint64                 `protobuf:"fixed64,3,opt,name=rx_packets,json=rxPackets,proto3" json:"rx_packets,omitempty"`
+	RxBytes       uint64                 `protobuf:"fixed64,4,opt,name=rx_bytes,json=rxBytes,proto3" json:"rx_bytes,omitempty"`
+	TxPackets     uint64                 `protobuf:"fixed64,5,opt,name=tx_packets,json=txPackets,proto3" json:"tx_packets,omitempty"`
+	TxBytes       uint64                 `protobuf:"fixed64,6,opt,name=tx_bytes,json=txBytes,proto3" json:"tx_bytes,omitempty"`
+	Timestamp     uint32                 `protobuf:"fixed32,26,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *GemPortStatistics) Reset() {
+	*x = GemPortStatistics{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[25]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GemPortStatistics) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GemPortStatistics) ProtoMessage() {}
+
+func (x *GemPortStatistics) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[25]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GemPortStatistics.ProtoReflect.Descriptor instead.
+func (*GemPortStatistics) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{25}
+}
+
+func (x *GemPortStatistics) GetIntfId() uint32 {
+	if x != nil {
+		return x.IntfId
+	}
+	return 0
+}
+
+func (x *GemPortStatistics) GetGemportId() uint32 {
+	if x != nil {
+		return x.GemportId
+	}
+	return 0
+}
+
+func (x *GemPortStatistics) GetRxPackets() uint64 {
+	if x != nil {
+		return x.RxPackets
+	}
+	return 0
+}
+
+func (x *GemPortStatistics) GetRxBytes() uint64 {
+	if x != nil {
+		return x.RxBytes
+	}
+	return 0
+}
+
+func (x *GemPortStatistics) GetTxPackets() uint64 {
+	if x != nil {
+		return x.TxPackets
+	}
+	return 0
+}
+
+func (x *GemPortStatistics) GetTxBytes() uint64 {
+	if x != nil {
+		return x.TxBytes
+	}
+	return 0
+}
+
+func (x *GemPortStatistics) GetTimestamp() uint32 {
+	if x != nil {
+		return x.Timestamp
+	}
+	return 0
+}
+
+type FlowStatistics struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	FlowId        uint32                 `protobuf:"fixed32,1,opt,name=flow_id,json=flowId,proto3" json:"flow_id,omitempty"`
+	RxBytes       uint64                 `protobuf:"fixed64,2,opt,name=rx_bytes,json=rxBytes,proto3" json:"rx_bytes,omitempty"`
+	RxPackets     uint64                 `protobuf:"fixed64,3,opt,name=rx_packets,json=rxPackets,proto3" json:"rx_packets,omitempty"`
+	TxBytes       uint64                 `protobuf:"fixed64,8,opt,name=tx_bytes,json=txBytes,proto3" json:"tx_bytes,omitempty"`
+	TxPackets     uint64                 `protobuf:"fixed64,9,opt,name=tx_packets,json=txPackets,proto3" json:"tx_packets,omitempty"`
+	Timestamp     uint32                 `protobuf:"fixed32,16,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *FlowStatistics) Reset() {
+	*x = FlowStatistics{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[26]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *FlowStatistics) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*FlowStatistics) ProtoMessage() {}
+
+func (x *FlowStatistics) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[26]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use FlowStatistics.ProtoReflect.Descriptor instead.
+func (*FlowStatistics) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{26}
+}
+
+func (x *FlowStatistics) GetFlowId() uint32 {
+	if x != nil {
+		return x.FlowId
+	}
+	return 0
+}
+
+func (x *FlowStatistics) GetRxBytes() uint64 {
+	if x != nil {
+		return x.RxBytes
+	}
+	return 0
+}
+
+func (x *FlowStatistics) GetRxPackets() uint64 {
+	if x != nil {
+		return x.RxPackets
+	}
+	return 0
+}
+
+func (x *FlowStatistics) GetTxBytes() uint64 {
+	if x != nil {
+		return x.TxBytes
+	}
+	return 0
+}
+
+func (x *FlowStatistics) GetTxPackets() uint64 {
+	if x != nil {
+		return x.TxPackets
+	}
+	return 0
+}
+
+func (x *FlowStatistics) GetTimestamp() uint32 {
+	if x != nil {
+		return x.Timestamp
+	}
+	return 0
+}
+
+type LosIndication struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	IntfId        uint32                 `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
+	Status        string                 `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *LosIndication) Reset() {
+	*x = LosIndication{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[27]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *LosIndication) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*LosIndication) ProtoMessage() {}
+
+func (x *LosIndication) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[27]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use LosIndication.ProtoReflect.Descriptor instead.
+func (*LosIndication) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{27}
+}
+
+func (x *LosIndication) GetIntfId() uint32 {
+	if x != nil {
+		return x.IntfId
+	}
+	return 0
+}
+
+func (x *LosIndication) GetStatus() string {
+	if x != nil {
+		return x.Status
+	}
+	return ""
+}
+
+type DyingGaspIndication struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	IntfId        uint32                 `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
+	OnuId         uint32                 `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
+	Status        string                 `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *DyingGaspIndication) Reset() {
+	*x = DyingGaspIndication{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[28]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *DyingGaspIndication) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DyingGaspIndication) ProtoMessage() {}
+
+func (x *DyingGaspIndication) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[28]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use DyingGaspIndication.ProtoReflect.Descriptor instead.
+func (*DyingGaspIndication) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{28}
+}
+
+func (x *DyingGaspIndication) GetIntfId() uint32 {
+	if x != nil {
+		return x.IntfId
+	}
+	return 0
+}
+
+func (x *DyingGaspIndication) GetOnuId() uint32 {
+	if x != nil {
+		return x.OnuId
+	}
+	return 0
+}
+
+func (x *DyingGaspIndication) GetStatus() string {
+	if x != nil {
+		return x.Status
+	}
+	return ""
+}
+
+type OnuAlarmIndication struct {
+	state              protoimpl.MessageState `protogen:"open.v1"`
+	IntfId             uint32                 `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
+	OnuId              uint32                 `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
+	LosStatus          string                 `protobuf:"bytes,3,opt,name=los_status,json=losStatus,proto3" json:"los_status,omitempty"`
+	LobStatus          string                 `protobuf:"bytes,4,opt,name=lob_status,json=lobStatus,proto3" json:"lob_status,omitempty"`
+	LopcMissStatus     string                 `protobuf:"bytes,5,opt,name=lopc_miss_status,json=lopcMissStatus,proto3" json:"lopc_miss_status,omitempty"`
+	LopcMicErrorStatus string                 `protobuf:"bytes,6,opt,name=lopc_mic_error_status,json=lopcMicErrorStatus,proto3" json:"lopc_mic_error_status,omitempty"`
+	LofiStatus         string                 `protobuf:"bytes,7,opt,name=lofi_status,json=lofiStatus,proto3" json:"lofi_status,omitempty"`
+	LoamiStatus        string                 `protobuf:"bytes,8,opt,name=loami_status,json=loamiStatus,proto3" json:"loami_status,omitempty"`
+	unknownFields      protoimpl.UnknownFields
+	sizeCache          protoimpl.SizeCache
+}
+
+func (x *OnuAlarmIndication) Reset() {
+	*x = OnuAlarmIndication{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[29]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OnuAlarmIndication) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OnuAlarmIndication) ProtoMessage() {}
+
+func (x *OnuAlarmIndication) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[29]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OnuAlarmIndication.ProtoReflect.Descriptor instead.
+func (*OnuAlarmIndication) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{29}
+}
+
+func (x *OnuAlarmIndication) GetIntfId() uint32 {
+	if x != nil {
+		return x.IntfId
+	}
+	return 0
+}
+
+func (x *OnuAlarmIndication) GetOnuId() uint32 {
+	if x != nil {
+		return x.OnuId
+	}
+	return 0
+}
+
+func (x *OnuAlarmIndication) GetLosStatus() string {
+	if x != nil {
+		return x.LosStatus
+	}
+	return ""
+}
+
+func (x *OnuAlarmIndication) GetLobStatus() string {
+	if x != nil {
+		return x.LobStatus
+	}
+	return ""
+}
+
+func (x *OnuAlarmIndication) GetLopcMissStatus() string {
+	if x != nil {
+		return x.LopcMissStatus
+	}
+	return ""
+}
+
+func (x *OnuAlarmIndication) GetLopcMicErrorStatus() string {
+	if x != nil {
+		return x.LopcMicErrorStatus
+	}
+	return ""
+}
+
+func (x *OnuAlarmIndication) GetLofiStatus() string {
+	if x != nil {
+		return x.LofiStatus
+	}
+	return ""
+}
+
+func (x *OnuAlarmIndication) GetLoamiStatus() string {
+	if x != nil {
+		return x.LoamiStatus
+	}
+	return ""
+}
+
+type OnuStartupFailureIndication struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	IntfId        uint32                 `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
+	OnuId         uint32                 `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
+	Status        string                 `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OnuStartupFailureIndication) Reset() {
+	*x = OnuStartupFailureIndication{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[30]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OnuStartupFailureIndication) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OnuStartupFailureIndication) ProtoMessage() {}
+
+func (x *OnuStartupFailureIndication) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[30]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OnuStartupFailureIndication.ProtoReflect.Descriptor instead.
+func (*OnuStartupFailureIndication) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{30}
+}
+
+func (x *OnuStartupFailureIndication) GetIntfId() uint32 {
+	if x != nil {
+		return x.IntfId
+	}
+	return 0
+}
+
+func (x *OnuStartupFailureIndication) GetOnuId() uint32 {
+	if x != nil {
+		return x.OnuId
+	}
+	return 0
+}
+
+func (x *OnuStartupFailureIndication) GetStatus() string {
+	if x != nil {
+		return x.Status
+	}
+	return ""
+}
+
+type OnuSignalDegradeIndication struct {
+	state               protoimpl.MessageState `protogen:"open.v1"`
+	IntfId              uint32                 `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
+	OnuId               uint32                 `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
+	Status              string                 `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"`
+	InverseBitErrorRate uint32                 `protobuf:"fixed32,4,opt,name=inverse_bit_error_rate,json=inverseBitErrorRate,proto3" json:"inverse_bit_error_rate,omitempty"`
+	unknownFields       protoimpl.UnknownFields
+	sizeCache           protoimpl.SizeCache
+}
+
+func (x *OnuSignalDegradeIndication) Reset() {
+	*x = OnuSignalDegradeIndication{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[31]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OnuSignalDegradeIndication) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OnuSignalDegradeIndication) ProtoMessage() {}
+
+func (x *OnuSignalDegradeIndication) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[31]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OnuSignalDegradeIndication.ProtoReflect.Descriptor instead.
+func (*OnuSignalDegradeIndication) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{31}
+}
+
+func (x *OnuSignalDegradeIndication) GetIntfId() uint32 {
+	if x != nil {
+		return x.IntfId
+	}
+	return 0
+}
+
+func (x *OnuSignalDegradeIndication) GetOnuId() uint32 {
+	if x != nil {
+		return x.OnuId
+	}
+	return 0
+}
+
+func (x *OnuSignalDegradeIndication) GetStatus() string {
+	if x != nil {
+		return x.Status
+	}
+	return ""
+}
+
+func (x *OnuSignalDegradeIndication) GetInverseBitErrorRate() uint32 {
+	if x != nil {
+		return x.InverseBitErrorRate
+	}
+	return 0
+}
+
+type OnuDriftOfWindowIndication struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	IntfId        uint32                 `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
+	OnuId         uint32                 `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
+	Status        string                 `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"`
+	Drift         uint32                 `protobuf:"fixed32,4,opt,name=drift,proto3" json:"drift,omitempty"`
+	NewEqd        uint32                 `protobuf:"fixed32,5,opt,name=new_eqd,json=newEqd,proto3" json:"new_eqd,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OnuDriftOfWindowIndication) Reset() {
+	*x = OnuDriftOfWindowIndication{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[32]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OnuDriftOfWindowIndication) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OnuDriftOfWindowIndication) ProtoMessage() {}
+
+func (x *OnuDriftOfWindowIndication) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[32]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OnuDriftOfWindowIndication.ProtoReflect.Descriptor instead.
+func (*OnuDriftOfWindowIndication) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{32}
+}
+
+func (x *OnuDriftOfWindowIndication) GetIntfId() uint32 {
+	if x != nil {
+		return x.IntfId
+	}
+	return 0
+}
+
+func (x *OnuDriftOfWindowIndication) GetOnuId() uint32 {
+	if x != nil {
+		return x.OnuId
+	}
+	return 0
+}
+
+func (x *OnuDriftOfWindowIndication) GetStatus() string {
+	if x != nil {
+		return x.Status
+	}
+	return ""
+}
+
+func (x *OnuDriftOfWindowIndication) GetDrift() uint32 {
+	if x != nil {
+		return x.Drift
+	}
+	return 0
+}
+
+func (x *OnuDriftOfWindowIndication) GetNewEqd() uint32 {
+	if x != nil {
+		return x.NewEqd
+	}
+	return 0
+}
+
+type OnuLossOfOmciChannelIndication struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	IntfId        uint32                 `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
+	OnuId         uint32                 `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
+	Status        string                 `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OnuLossOfOmciChannelIndication) Reset() {
+	*x = OnuLossOfOmciChannelIndication{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[33]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OnuLossOfOmciChannelIndication) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OnuLossOfOmciChannelIndication) ProtoMessage() {}
+
+func (x *OnuLossOfOmciChannelIndication) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[33]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OnuLossOfOmciChannelIndication.ProtoReflect.Descriptor instead.
+func (*OnuLossOfOmciChannelIndication) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{33}
+}
+
+func (x *OnuLossOfOmciChannelIndication) GetIntfId() uint32 {
+	if x != nil {
+		return x.IntfId
+	}
+	return 0
+}
+
+func (x *OnuLossOfOmciChannelIndication) GetOnuId() uint32 {
+	if x != nil {
+		return x.OnuId
+	}
+	return 0
+}
+
+func (x *OnuLossOfOmciChannelIndication) GetStatus() string {
+	if x != nil {
+		return x.Status
+	}
+	return ""
+}
+
+type OnuSignalsFailureIndication struct {
+	state               protoimpl.MessageState `protogen:"open.v1"`
+	IntfId              uint32                 `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
+	OnuId               uint32                 `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
+	Status              string                 `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"`
+	InverseBitErrorRate uint32                 `protobuf:"fixed32,4,opt,name=inverse_bit_error_rate,json=inverseBitErrorRate,proto3" json:"inverse_bit_error_rate,omitempty"`
+	unknownFields       protoimpl.UnknownFields
+	sizeCache           protoimpl.SizeCache
+}
+
+func (x *OnuSignalsFailureIndication) Reset() {
+	*x = OnuSignalsFailureIndication{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[34]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OnuSignalsFailureIndication) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OnuSignalsFailureIndication) ProtoMessage() {}
+
+func (x *OnuSignalsFailureIndication) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[34]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OnuSignalsFailureIndication.ProtoReflect.Descriptor instead.
+func (*OnuSignalsFailureIndication) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{34}
+}
+
+func (x *OnuSignalsFailureIndication) GetIntfId() uint32 {
+	if x != nil {
+		return x.IntfId
+	}
+	return 0
+}
+
+func (x *OnuSignalsFailureIndication) GetOnuId() uint32 {
+	if x != nil {
+		return x.OnuId
+	}
+	return 0
+}
+
+func (x *OnuSignalsFailureIndication) GetStatus() string {
+	if x != nil {
+		return x.Status
+	}
+	return ""
+}
+
+func (x *OnuSignalsFailureIndication) GetInverseBitErrorRate() uint32 {
+	if x != nil {
+		return x.InverseBitErrorRate
+	}
+	return 0
+}
+
+type OnuTransmissionInterferenceWarning struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	IntfId        uint32                 `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
+	OnuId         uint32                 `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
+	Status        string                 `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"`
+	Drift         uint32                 `protobuf:"fixed32,4,opt,name=drift,proto3" json:"drift,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OnuTransmissionInterferenceWarning) Reset() {
+	*x = OnuTransmissionInterferenceWarning{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[35]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OnuTransmissionInterferenceWarning) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OnuTransmissionInterferenceWarning) ProtoMessage() {}
+
+func (x *OnuTransmissionInterferenceWarning) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[35]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OnuTransmissionInterferenceWarning.ProtoReflect.Descriptor instead.
+func (*OnuTransmissionInterferenceWarning) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{35}
+}
+
+func (x *OnuTransmissionInterferenceWarning) GetIntfId() uint32 {
+	if x != nil {
+		return x.IntfId
+	}
+	return 0
+}
+
+func (x *OnuTransmissionInterferenceWarning) GetOnuId() uint32 {
+	if x != nil {
+		return x.OnuId
+	}
+	return 0
+}
+
+func (x *OnuTransmissionInterferenceWarning) GetStatus() string {
+	if x != nil {
+		return x.Status
+	}
+	return ""
+}
+
+func (x *OnuTransmissionInterferenceWarning) GetDrift() uint32 {
+	if x != nil {
+		return x.Drift
+	}
+	return 0
+}
+
+type OnuActivationFailureIndication struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	IntfId        uint32                 `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
+	OnuId         uint32                 `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
+	FailReason    uint32                 `protobuf:"fixed32,3,opt,name=fail_reason,json=failReason,proto3" json:"fail_reason,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OnuActivationFailureIndication) Reset() {
+	*x = OnuActivationFailureIndication{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[36]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OnuActivationFailureIndication) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OnuActivationFailureIndication) ProtoMessage() {}
+
+func (x *OnuActivationFailureIndication) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[36]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OnuActivationFailureIndication.ProtoReflect.Descriptor instead.
+func (*OnuActivationFailureIndication) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{36}
+}
+
+func (x *OnuActivationFailureIndication) GetIntfId() uint32 {
+	if x != nil {
+		return x.IntfId
+	}
+	return 0
+}
+
+func (x *OnuActivationFailureIndication) GetOnuId() uint32 {
+	if x != nil {
+		return x.OnuId
+	}
+	return 0
+}
+
+func (x *OnuActivationFailureIndication) GetFailReason() uint32 {
+	if x != nil {
+		return x.FailReason
+	}
+	return 0
+}
+
+type OnuLossOfKeySyncFailureIndication struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	IntfId        uint32                 `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
+	OnuId         uint32                 `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
+	Status        string                 `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OnuLossOfKeySyncFailureIndication) Reset() {
+	*x = OnuLossOfKeySyncFailureIndication{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[37]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OnuLossOfKeySyncFailureIndication) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OnuLossOfKeySyncFailureIndication) ProtoMessage() {}
+
+func (x *OnuLossOfKeySyncFailureIndication) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[37]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OnuLossOfKeySyncFailureIndication.ProtoReflect.Descriptor instead.
+func (*OnuLossOfKeySyncFailureIndication) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{37}
+}
+
+func (x *OnuLossOfKeySyncFailureIndication) GetIntfId() uint32 {
+	if x != nil {
+		return x.IntfId
+	}
+	return 0
+}
+
+func (x *OnuLossOfKeySyncFailureIndication) GetOnuId() uint32 {
+	if x != nil {
+		return x.OnuId
+	}
+	return 0
+}
+
+func (x *OnuLossOfKeySyncFailureIndication) GetStatus() string {
+	if x != nil {
+		return x.Status
+	}
+	return ""
+}
+
+type RdiErrorIndication struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	RdiErrorCount uint64                 `protobuf:"fixed64,1,opt,name=rdi_error_count,json=rdiErrorCount,proto3" json:"rdi_error_count,omitempty"` // RDI Error count
+	Status        string                 `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"`                                        // on/off based on configured reporting condition
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *RdiErrorIndication) Reset() {
+	*x = RdiErrorIndication{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[38]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *RdiErrorIndication) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*RdiErrorIndication) ProtoMessage() {}
+
+func (x *RdiErrorIndication) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[38]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use RdiErrorIndication.ProtoReflect.Descriptor instead.
+func (*RdiErrorIndication) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{38}
+}
+
+func (x *RdiErrorIndication) GetRdiErrorCount() uint64 {
+	if x != nil {
+		return x.RdiErrorCount
+	}
+	return 0
+}
+
+func (x *RdiErrorIndication) GetStatus() string {
+	if x != nil {
+		return x.Status
+	}
+	return ""
+}
+
+type OnuItuPonStatsIndication struct {
+	state  protoimpl.MessageState `protogen:"open.v1"`
+	IntfId uint32                 `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
+	OnuId  uint32                 `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
+	// Types that are valid to be assigned to Stats:
+	//
+	//	*OnuItuPonStatsIndication_RdiErrorInd
+	Stats         isOnuItuPonStatsIndication_Stats `protobuf_oneof:"stats"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OnuItuPonStatsIndication) Reset() {
+	*x = OnuItuPonStatsIndication{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[39]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OnuItuPonStatsIndication) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OnuItuPonStatsIndication) ProtoMessage() {}
+
+func (x *OnuItuPonStatsIndication) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[39]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OnuItuPonStatsIndication.ProtoReflect.Descriptor instead.
+func (*OnuItuPonStatsIndication) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{39}
+}
+
+func (x *OnuItuPonStatsIndication) GetIntfId() uint32 {
+	if x != nil {
+		return x.IntfId
+	}
+	return 0
+}
+
+func (x *OnuItuPonStatsIndication) GetOnuId() uint32 {
+	if x != nil {
+		return x.OnuId
+	}
+	return 0
+}
+
+func (x *OnuItuPonStatsIndication) GetStats() isOnuItuPonStatsIndication_Stats {
+	if x != nil {
+		return x.Stats
+	}
+	return nil
+}
+
+func (x *OnuItuPonStatsIndication) GetRdiErrorInd() *RdiErrorIndication {
+	if x != nil {
+		if x, ok := x.Stats.(*OnuItuPonStatsIndication_RdiErrorInd); ok {
+			return x.RdiErrorInd
+		}
+	}
+	return nil
+}
+
+type isOnuItuPonStatsIndication_Stats interface {
+	isOnuItuPonStatsIndication_Stats()
+}
+
+type OnuItuPonStatsIndication_RdiErrorInd struct {
+	RdiErrorInd *RdiErrorIndication `protobuf:"bytes,3,opt,name=rdi_error_ind,json=rdiErrorInd,proto3,oneof"` // add more here
+}
+
+func (*OnuItuPonStatsIndication_RdiErrorInd) isOnuItuPonStatsIndication_Stats() {}
+
+type OnuProcessingErrorIndication struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	IntfId        uint32                 `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
+	OnuId         uint32                 `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OnuProcessingErrorIndication) Reset() {
+	*x = OnuProcessingErrorIndication{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[40]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OnuProcessingErrorIndication) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OnuProcessingErrorIndication) ProtoMessage() {}
+
+func (x *OnuProcessingErrorIndication) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[40]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OnuProcessingErrorIndication.ProtoReflect.Descriptor instead.
+func (*OnuProcessingErrorIndication) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{40}
+}
+
+func (x *OnuProcessingErrorIndication) GetIntfId() uint32 {
+	if x != nil {
+		return x.IntfId
+	}
+	return 0
+}
+
+func (x *OnuProcessingErrorIndication) GetOnuId() uint32 {
+	if x != nil {
+		return x.OnuId
+	}
+	return 0
+}
+
+type OnuDeactivationFailureIndication struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	IntfId        uint32                 `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
+	OnuId         uint32                 `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
+	Status        string                 `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OnuDeactivationFailureIndication) Reset() {
+	*x = OnuDeactivationFailureIndication{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[41]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OnuDeactivationFailureIndication) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OnuDeactivationFailureIndication) ProtoMessage() {}
+
+func (x *OnuDeactivationFailureIndication) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[41]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OnuDeactivationFailureIndication.ProtoReflect.Descriptor instead.
+func (*OnuDeactivationFailureIndication) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{41}
+}
+
+func (x *OnuDeactivationFailureIndication) GetIntfId() uint32 {
+	if x != nil {
+		return x.IntfId
+	}
+	return 0
+}
+
+func (x *OnuDeactivationFailureIndication) GetOnuId() uint32 {
+	if x != nil {
+		return x.OnuId
+	}
+	return 0
+}
+
+func (x *OnuDeactivationFailureIndication) GetStatus() string {
+	if x != nil {
+		return x.Status
+	}
+	return ""
+}
+
+type OnuRemoteDefectIndication struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	IntfId        uint32                 `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
+	OnuId         uint32                 `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
+	RdiErrors     uint64                 `protobuf:"fixed64,3,opt,name=rdi_errors,json=rdiErrors,proto3" json:"rdi_errors,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OnuRemoteDefectIndication) Reset() {
+	*x = OnuRemoteDefectIndication{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[42]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OnuRemoteDefectIndication) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OnuRemoteDefectIndication) ProtoMessage() {}
+
+func (x *OnuRemoteDefectIndication) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[42]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OnuRemoteDefectIndication.ProtoReflect.Descriptor instead.
+func (*OnuRemoteDefectIndication) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{42}
+}
+
+func (x *OnuRemoteDefectIndication) GetIntfId() uint32 {
+	if x != nil {
+		return x.IntfId
+	}
+	return 0
+}
+
+func (x *OnuRemoteDefectIndication) GetOnuId() uint32 {
+	if x != nil {
+		return x.OnuId
+	}
+	return 0
+}
+
+func (x *OnuRemoteDefectIndication) GetRdiErrors() uint64 {
+	if x != nil {
+		return x.RdiErrors
+	}
+	return 0
+}
+
+type OnuLossOfGEMChannelDelineationIndication struct {
+	state             protoimpl.MessageState `protogen:"open.v1"`
+	IntfId            uint32                 `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
+	OnuId             uint32                 `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
+	Status            string                 `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"`
+	DelineationErrors uint32                 `protobuf:"fixed32,4,opt,name=delineation_errors,json=delineationErrors,proto3" json:"delineation_errors,omitempty"`
+	unknownFields     protoimpl.UnknownFields
+	sizeCache         protoimpl.SizeCache
+}
+
+func (x *OnuLossOfGEMChannelDelineationIndication) Reset() {
+	*x = OnuLossOfGEMChannelDelineationIndication{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[43]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OnuLossOfGEMChannelDelineationIndication) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OnuLossOfGEMChannelDelineationIndication) ProtoMessage() {}
+
+func (x *OnuLossOfGEMChannelDelineationIndication) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[43]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OnuLossOfGEMChannelDelineationIndication.ProtoReflect.Descriptor instead.
+func (*OnuLossOfGEMChannelDelineationIndication) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{43}
+}
+
+func (x *OnuLossOfGEMChannelDelineationIndication) GetIntfId() uint32 {
+	if x != nil {
+		return x.IntfId
+	}
+	return 0
+}
+
+func (x *OnuLossOfGEMChannelDelineationIndication) GetOnuId() uint32 {
+	if x != nil {
+		return x.OnuId
+	}
+	return 0
+}
+
+func (x *OnuLossOfGEMChannelDelineationIndication) GetStatus() string {
+	if x != nil {
+		return x.Status
+	}
+	return ""
+}
+
+func (x *OnuLossOfGEMChannelDelineationIndication) GetDelineationErrors() uint32 {
+	if x != nil {
+		return x.DelineationErrors
+	}
+	return 0
+}
+
+type OnuPhysicalEquipmentErrorIndication struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	IntfId        uint32                 `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
+	OnuId         uint32                 `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
+	Status        string                 `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OnuPhysicalEquipmentErrorIndication) Reset() {
+	*x = OnuPhysicalEquipmentErrorIndication{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[44]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OnuPhysicalEquipmentErrorIndication) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OnuPhysicalEquipmentErrorIndication) ProtoMessage() {}
+
+func (x *OnuPhysicalEquipmentErrorIndication) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[44]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OnuPhysicalEquipmentErrorIndication.ProtoReflect.Descriptor instead.
+func (*OnuPhysicalEquipmentErrorIndication) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{44}
+}
+
+func (x *OnuPhysicalEquipmentErrorIndication) GetIntfId() uint32 {
+	if x != nil {
+		return x.IntfId
+	}
+	return 0
+}
+
+func (x *OnuPhysicalEquipmentErrorIndication) GetOnuId() uint32 {
+	if x != nil {
+		return x.OnuId
+	}
+	return 0
+}
+
+func (x *OnuPhysicalEquipmentErrorIndication) GetStatus() string {
+	if x != nil {
+		return x.Status
+	}
+	return ""
+}
+
+type OnuLossOfAcknowledgementIndication struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	IntfId        uint32                 `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
+	OnuId         uint32                 `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
+	Status        string                 `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OnuLossOfAcknowledgementIndication) Reset() {
+	*x = OnuLossOfAcknowledgementIndication{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[45]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OnuLossOfAcknowledgementIndication) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OnuLossOfAcknowledgementIndication) ProtoMessage() {}
+
+func (x *OnuLossOfAcknowledgementIndication) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[45]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OnuLossOfAcknowledgementIndication.ProtoReflect.Descriptor instead.
+func (*OnuLossOfAcknowledgementIndication) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{45}
+}
+
+func (x *OnuLossOfAcknowledgementIndication) GetIntfId() uint32 {
+	if x != nil {
+		return x.IntfId
+	}
+	return 0
+}
+
+func (x *OnuLossOfAcknowledgementIndication) GetOnuId() uint32 {
+	if x != nil {
+		return x.OnuId
+	}
+	return 0
+}
+
+func (x *OnuLossOfAcknowledgementIndication) GetStatus() string {
+	if x != nil {
+		return x.Status
+	}
+	return ""
+}
+
+type OnuDifferentialReachExceededIndication struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	IntfId        uint32                 `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
+	OnuId         uint32                 `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
+	Status        string                 `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"`
+	Distance      uint32                 `protobuf:"fixed32,4,opt,name=distance,proto3" json:"distance,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OnuDifferentialReachExceededIndication) Reset() {
+	*x = OnuDifferentialReachExceededIndication{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[46]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OnuDifferentialReachExceededIndication) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OnuDifferentialReachExceededIndication) ProtoMessage() {}
+
+func (x *OnuDifferentialReachExceededIndication) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[46]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OnuDifferentialReachExceededIndication.ProtoReflect.Descriptor instead.
+func (*OnuDifferentialReachExceededIndication) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{46}
+}
+
+func (x *OnuDifferentialReachExceededIndication) GetIntfId() uint32 {
+	if x != nil {
+		return x.IntfId
+	}
+	return 0
+}
+
+func (x *OnuDifferentialReachExceededIndication) GetOnuId() uint32 {
+	if x != nil {
+		return x.OnuId
+	}
+	return 0
+}
+
+func (x *OnuDifferentialReachExceededIndication) GetStatus() string {
+	if x != nil {
+		return x.Status
+	}
+	return ""
+}
+
+func (x *OnuDifferentialReachExceededIndication) GetDistance() uint32 {
+	if x != nil {
+		return x.Distance
+	}
+	return 0
+}
+
+type GroupMember struct {
+	state         protoimpl.MessageState    `protogen:"open.v1"`
+	InterfaceId   uint32                    `protobuf:"varint,1,opt,name=interface_id,json=interfaceId,proto3" json:"interface_id,omitempty"`
+	InterfaceType GroupMember_InterfaceType `protobuf:"varint,2,opt,name=interface_type,json=interfaceType,proto3,enum=openolt.GroupMember_InterfaceType" json:"interface_type,omitempty"`
+	GemPortId     uint32                    `protobuf:"varint,3,opt,name=gem_port_id,json=gemPortId,proto3" json:"gem_port_id,omitempty"`
+	Priority      uint32                    `protobuf:"varint,4,opt,name=priority,proto3" json:"priority,omitempty"` // Priority (and also the ID) of the default fixed queue for the multicast traffic.
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *GroupMember) Reset() {
+	*x = GroupMember{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[47]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GroupMember) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GroupMember) ProtoMessage() {}
+
+func (x *GroupMember) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[47]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GroupMember.ProtoReflect.Descriptor instead.
+func (*GroupMember) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{47}
+}
+
+func (x *GroupMember) GetInterfaceId() uint32 {
+	if x != nil {
+		return x.InterfaceId
+	}
+	return 0
+}
+
+func (x *GroupMember) GetInterfaceType() GroupMember_InterfaceType {
+	if x != nil {
+		return x.InterfaceType
+	}
+	return GroupMember_PON
+}
+
+func (x *GroupMember) GetGemPortId() uint32 {
+	if x != nil {
+		return x.GemPortId
+	}
+	return 0
+}
+
+func (x *GroupMember) GetPriority() uint32 {
+	if x != nil {
+		return x.Priority
+	}
+	return 0
+}
+
+type Group struct {
+	state         protoimpl.MessageState    `protogen:"open.v1"`
+	GroupId       uint32                    `protobuf:"varint,1,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
+	Command       Group_GroupMembersCommand `protobuf:"varint,2,opt,name=command,proto3,enum=openolt.Group_GroupMembersCommand" json:"command,omitempty"`
+	Members       []*GroupMember            `protobuf:"bytes,3,rep,name=members,proto3" json:"members,omitempty"`
+	Action        *Action                   `protobuf:"bytes,4,opt,name=action,proto3" json:"action,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *Group) Reset() {
+	*x = Group{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[48]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *Group) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Group) ProtoMessage() {}
+
+func (x *Group) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[48]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use Group.ProtoReflect.Descriptor instead.
+func (*Group) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{48}
+}
+
+func (x *Group) GetGroupId() uint32 {
+	if x != nil {
+		return x.GroupId
+	}
+	return 0
+}
+
+func (x *Group) GetCommand() Group_GroupMembersCommand {
+	if x != nil {
+		return x.Command
+	}
+	return Group_ADD_MEMBERS
+}
+
+func (x *Group) GetMembers() []*GroupMember {
+	if x != nil {
+		return x.Members
+	}
+	return nil
+}
+
+func (x *Group) GetAction() *Action {
+	if x != nil {
+		return x.Action
+	}
+	return nil
+}
+
+type ValueParam struct {
+	state         protoimpl.MessageState   `protogen:"open.v1"`
+	Onu           *Onu                     `protobuf:"bytes,1,opt,name=onu,proto3" json:"onu,omitempty"`
+	Value         extension.ValueType_Type `protobuf:"varint,2,opt,name=value,proto3,enum=extension.ValueType_Type" json:"value,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *ValueParam) Reset() {
+	*x = ValueParam{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[49]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ValueParam) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ValueParam) ProtoMessage() {}
+
+func (x *ValueParam) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[49]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ValueParam.ProtoReflect.Descriptor instead.
+func (*ValueParam) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{49}
+}
+
+func (x *ValueParam) GetOnu() *Onu {
+	if x != nil {
+		return x.Onu
+	}
+	return nil
+}
+
+func (x *ValueParam) GetValue() extension.ValueType_Type {
+	if x != nil {
+		return x.Value
+	}
+	return extension.ValueType_Type(0)
+}
+
+type PonRxPowerData struct {
+	state          protoimpl.MessageState                   `protogen:"open.v1"`
+	IntfId         uint32                                   `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
+	OnuId          uint32                                   `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
+	Status         string                                   `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"`
+	FailReason     PonRxPowerData_RssiMeasurementFailReason `protobuf:"varint,4,opt,name=fail_reason,json=failReason,proto3,enum=openolt.PonRxPowerData_RssiMeasurementFailReason" json:"fail_reason,omitempty"`
+	RxPowerMeanDbm float64                                  `protobuf:"fixed64,5,opt,name=rx_power_mean_dbm,json=rxPowerMeanDbm,proto3" json:"rx_power_mean_dbm,omitempty"`
+	unknownFields  protoimpl.UnknownFields
+	sizeCache      protoimpl.SizeCache
+}
+
+func (x *PonRxPowerData) Reset() {
+	*x = PonRxPowerData{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[50]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *PonRxPowerData) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PonRxPowerData) ProtoMessage() {}
+
+func (x *PonRxPowerData) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[50]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use PonRxPowerData.ProtoReflect.Descriptor instead.
+func (*PonRxPowerData) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{50}
+}
+
+func (x *PonRxPowerData) GetIntfId() uint32 {
+	if x != nil {
+		return x.IntfId
+	}
+	return 0
+}
+
+func (x *PonRxPowerData) GetOnuId() uint32 {
+	if x != nil {
+		return x.OnuId
+	}
+	return 0
+}
+
+func (x *PonRxPowerData) GetStatus() string {
+	if x != nil {
+		return x.Status
+	}
+	return ""
+}
+
+func (x *PonRxPowerData) GetFailReason() PonRxPowerData_RssiMeasurementFailReason {
+	if x != nil {
+		return x.FailReason
+	}
+	return PonRxPowerData_FAIL_REASON_NONE
+}
+
+func (x *PonRxPowerData) GetRxPowerMeanDbm() float64 {
+	if x != nil {
+		return x.RxPowerMeanDbm
+	}
+	return 0
+}
+
+type OnuAllocIdStatistics struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	IntfId        uint32                 `protobuf:"fixed32,1,opt,name=intfId,proto3" json:"intfId,omitempty"`
+	AllocId       uint32                 `protobuf:"fixed32,2,opt,name=allocId,proto3" json:"allocId,omitempty"`
+	RxBytes       uint64                 `protobuf:"fixed64,3,opt,name=rxBytes,proto3" json:"rxBytes,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OnuAllocIdStatistics) Reset() {
+	*x = OnuAllocIdStatistics{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[51]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OnuAllocIdStatistics) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OnuAllocIdStatistics) ProtoMessage() {}
+
+func (x *OnuAllocIdStatistics) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[51]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OnuAllocIdStatistics.ProtoReflect.Descriptor instead.
+func (*OnuAllocIdStatistics) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{51}
+}
+
+func (x *OnuAllocIdStatistics) GetIntfId() uint32 {
+	if x != nil {
+		return x.IntfId
+	}
+	return 0
+}
+
+func (x *OnuAllocIdStatistics) GetAllocId() uint32 {
+	if x != nil {
+		return x.AllocId
+	}
+	return 0
+}
+
+func (x *OnuAllocIdStatistics) GetRxBytes() uint64 {
+	if x != nil {
+		return x.RxBytes
+	}
+	return 0
+}
+
+// contains the onu id, state of the onu and the information about the alarms on the onu.
+// As of now only few alarms are added, any further information needed can be added to the structure.
+type OnuInfo struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	OnuId         uint32                 `protobuf:"fixed32,1,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
+	State         OnuInfo_OnuState       `protobuf:"varint,2,opt,name=state,proto3,enum=openolt.OnuInfo_OnuState" json:"state,omitempty"`
+	Losi          AlarmState             `protobuf:"varint,3,opt,name=losi,proto3,enum=openolt.AlarmState" json:"losi,omitempty"`
+	Lofi          AlarmState             `protobuf:"varint,4,opt,name=lofi,proto3,enum=openolt.AlarmState" json:"lofi,omitempty"`
+	Loami         AlarmState             `protobuf:"varint,5,opt,name=loami,proto3,enum=openolt.AlarmState" json:"loami,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *OnuInfo) Reset() {
+	*x = OnuInfo{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[52]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OnuInfo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OnuInfo) ProtoMessage() {}
+
+func (x *OnuInfo) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[52]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OnuInfo.ProtoReflect.Descriptor instead.
+func (*OnuInfo) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{52}
+}
+
+func (x *OnuInfo) GetOnuId() uint32 {
+	if x != nil {
+		return x.OnuId
+	}
+	return 0
+}
+
+func (x *OnuInfo) GetState() OnuInfo_OnuState {
+	if x != nil {
+		return x.State
+	}
+	return OnuInfo_UNKNOWN
+}
+
+func (x *OnuInfo) GetLosi() AlarmState {
+	if x != nil {
+		return x.Losi
+	}
+	return AlarmState_OFF
+}
+
+func (x *OnuInfo) GetLofi() AlarmState {
+	if x != nil {
+		return x.Lofi
+	}
+	return AlarmState_OFF
+}
+
+func (x *OnuInfo) GetLoami() AlarmState {
+	if x != nil {
+		return x.Loami
+	}
+	return AlarmState_OFF
+}
+
+// IntfInfo has the interface Id and if there are any alarms active on that interface.
+// Any further information needed from the interface object can be added to the structure.
+type PonIntfInfo struct {
+	state         protoimpl.MessageState   `protogen:"open.v1"`
+	IntfId        uint32                   `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
+	State         PonIntfInfo_PonIntfState `protobuf:"varint,3,opt,name=state,proto3,enum=openolt.PonIntfInfo_PonIntfState" json:"state,omitempty"`
+	Los           AlarmState               `protobuf:"varint,4,opt,name=los,proto3,enum=openolt.AlarmState" json:"los,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *PonIntfInfo) Reset() {
+	*x = PonIntfInfo{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[53]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *PonIntfInfo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PonIntfInfo) ProtoMessage() {}
+
+func (x *PonIntfInfo) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[53]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use PonIntfInfo.ProtoReflect.Descriptor instead.
+func (*PonIntfInfo) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{53}
+}
+
+func (x *PonIntfInfo) GetIntfId() uint32 {
+	if x != nil {
+		return x.IntfId
+	}
+	return 0
+}
+
+func (x *PonIntfInfo) GetState() PonIntfInfo_PonIntfState {
+	if x != nil {
+		return x.State
+	}
+	return PonIntfInfo_UNKNOWN
+}
+
+func (x *PonIntfInfo) GetLos() AlarmState {
+	if x != nil {
+		return x.Los
+	}
+	return AlarmState_OFF
+}
+
+// Message used for disabling device by serialnumber, disable at PLOAM
+type InterfaceOnuSerialNumberOnuId struct {
+	state           protoimpl.MessageState    `protogen:"open.v1"`
+	IntfIdSerialNum *InterfaceOnuSerialNumber `protobuf:"bytes,1,opt,name=intf_id_serial_num,json=intfIdSerialNum,proto3" json:"intf_id_serial_num,omitempty"`
+	OnuId           uint32                    `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
+	unknownFields   protoimpl.UnknownFields
+	sizeCache       protoimpl.SizeCache
+}
+
+func (x *InterfaceOnuSerialNumberOnuId) Reset() {
+	*x = InterfaceOnuSerialNumberOnuId{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[54]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *InterfaceOnuSerialNumberOnuId) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*InterfaceOnuSerialNumberOnuId) ProtoMessage() {}
+
+func (x *InterfaceOnuSerialNumberOnuId) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[54]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use InterfaceOnuSerialNumberOnuId.ProtoReflect.Descriptor instead.
+func (*InterfaceOnuSerialNumberOnuId) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{54}
+}
+
+func (x *InterfaceOnuSerialNumberOnuId) GetIntfIdSerialNum() *InterfaceOnuSerialNumber {
+	if x != nil {
+		return x.IntfIdSerialNum
+	}
+	return nil
+}
+
+func (x *InterfaceOnuSerialNumberOnuId) GetOnuId() uint32 {
+	if x != nil {
+		return x.OnuId
+	}
+	return 0
+}
+
+type InterfaceOnuSerialNumber struct {
+	state           protoimpl.MessageState `protogen:"open.v1"`
+	IntfId          uint32                 `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
+	OnuSerialNumber *SerialNumber          `protobuf:"bytes,2,opt,name=onu_serial_number,json=onuSerialNumber,proto3" json:"onu_serial_number,omitempty"`
+	unknownFields   protoimpl.UnknownFields
+	sizeCache       protoimpl.SizeCache
+}
+
+func (x *InterfaceOnuSerialNumber) Reset() {
+	*x = InterfaceOnuSerialNumber{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[55]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *InterfaceOnuSerialNumber) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*InterfaceOnuSerialNumber) ProtoMessage() {}
+
+func (x *InterfaceOnuSerialNumber) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[55]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use InterfaceOnuSerialNumber.ProtoReflect.Descriptor instead.
+func (*InterfaceOnuSerialNumber) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{55}
+}
+
+func (x *InterfaceOnuSerialNumber) GetIntfId() uint32 {
+	if x != nil {
+		return x.IntfId
+	}
+	return 0
+}
+
+func (x *InterfaceOnuSerialNumber) GetOnuSerialNumber() *SerialNumber {
+	if x != nil {
+		return x.OnuSerialNumber
+	}
+	return nil
+}
+
+type Empty struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *Empty) Reset() {
+	*x = Empty{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[56]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *Empty) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Empty) ProtoMessage() {}
+
+func (x *Empty) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[56]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use Empty.ProtoReflect.Descriptor instead.
+func (*Empty) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{56}
+}
+
+type IntfOperIndication_PONResourceRanges struct {
+	state         protoimpl.MessageState                       `protogen:"open.v1"`
+	Pools         []*IntfOperIndication_PONResourceRanges_Pool `protobuf:"bytes,3,rep,name=pools,proto3" json:"pools,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *IntfOperIndication_PONResourceRanges) Reset() {
+	*x = IntfOperIndication_PONResourceRanges{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[57]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *IntfOperIndication_PONResourceRanges) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*IntfOperIndication_PONResourceRanges) ProtoMessage() {}
+
+func (x *IntfOperIndication_PONResourceRanges) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[57]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use IntfOperIndication_PONResourceRanges.ProtoReflect.Descriptor instead.
+func (*IntfOperIndication_PONResourceRanges) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{8, 0}
+}
+
+func (x *IntfOperIndication_PONResourceRanges) GetPools() []*IntfOperIndication_PONResourceRanges_Pool {
+	if x != nil {
+		return x.Pools
+	}
+	return nil
+}
+
+type IntfOperIndication_PONResourceRanges_Pool struct {
+	state         protoimpl.MessageState                             `protogen:"open.v1"`
+	Type          IntfOperIndication_PONResourceRanges_Pool_PoolType `protobuf:"varint,1,opt,name=type,proto3,enum=openolt.IntfOperIndication_PONResourceRanges_Pool_PoolType" json:"type,omitempty"`
+	Start         uint32                                             `protobuf:"fixed32,3,opt,name=start,proto3" json:"start,omitempty"` // lower bound on IDs allocated from this pool
+	End           uint32                                             `protobuf:"fixed32,4,opt,name=end,proto3" json:"end,omitempty"`     // upper bound on IDs allocated from this pool
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *IntfOperIndication_PONResourceRanges_Pool) Reset() {
+	*x = IntfOperIndication_PONResourceRanges_Pool{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[58]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *IntfOperIndication_PONResourceRanges_Pool) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*IntfOperIndication_PONResourceRanges_Pool) ProtoMessage() {}
+
+func (x *IntfOperIndication_PONResourceRanges_Pool) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[58]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use IntfOperIndication_PONResourceRanges_Pool.ProtoReflect.Descriptor instead.
+func (*IntfOperIndication_PONResourceRanges_Pool) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{8, 0, 0}
+}
+
+func (x *IntfOperIndication_PONResourceRanges_Pool) GetType() IntfOperIndication_PONResourceRanges_Pool_PoolType {
+	if x != nil {
+		return x.Type
+	}
+	return IntfOperIndication_PONResourceRanges_Pool_ONU_ID
+}
+
+func (x *IntfOperIndication_PONResourceRanges_Pool) GetStart() uint32 {
+	if x != nil {
+		return x.Start
+	}
+	return 0
+}
+
+func (x *IntfOperIndication_PONResourceRanges_Pool) GetEnd() uint32 {
+	if x != nil {
+		return x.End
+	}
+	return 0
+}
+
+type DeviceInfo_DeviceResourceRanges struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// List of 0 or more intf_ids that use the same technology and pools.
+	// If 0 intf_ids supplied, it implies ALL interfaces
+	IntfIds []uint32 `protobuf:"fixed32,1,rep,packed,name=intf_ids,json=intfIds,proto3" json:"intf_ids,omitempty"`
+	// Technology profile for this pool
+	Technology    string                                  `protobuf:"bytes,2,opt,name=technology,proto3" json:"technology,omitempty"`
+	Pools         []*DeviceInfo_DeviceResourceRanges_Pool `protobuf:"bytes,3,rep,name=pools,proto3" json:"pools,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *DeviceInfo_DeviceResourceRanges) Reset() {
+	*x = DeviceInfo_DeviceResourceRanges{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[59]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *DeviceInfo_DeviceResourceRanges) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeviceInfo_DeviceResourceRanges) ProtoMessage() {}
+
+func (x *DeviceInfo_DeviceResourceRanges) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[59]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeviceInfo_DeviceResourceRanges.ProtoReflect.Descriptor instead.
+func (*DeviceInfo_DeviceResourceRanges) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{18, 0}
+}
+
+func (x *DeviceInfo_DeviceResourceRanges) GetIntfIds() []uint32 {
+	if x != nil {
+		return x.IntfIds
+	}
+	return nil
+}
+
+func (x *DeviceInfo_DeviceResourceRanges) GetTechnology() string {
+	if x != nil {
+		return x.Technology
+	}
+	return ""
+}
+
+func (x *DeviceInfo_DeviceResourceRanges) GetPools() []*DeviceInfo_DeviceResourceRanges_Pool {
+	if x != nil {
+		return x.Pools
+	}
+	return nil
+}
+
+type DeviceInfo_DeviceResourceRanges_Pool struct {
+	state         protoimpl.MessageState                           `protogen:"open.v1"`
+	Type          DeviceInfo_DeviceResourceRanges_Pool_PoolType    `protobuf:"varint,1,opt,name=type,proto3,enum=openolt.DeviceInfo_DeviceResourceRanges_Pool_PoolType" json:"type,omitempty"`
+	Sharing       DeviceInfo_DeviceResourceRanges_Pool_SharingType `protobuf:"varint,2,opt,name=sharing,proto3,enum=openolt.DeviceInfo_DeviceResourceRanges_Pool_SharingType" json:"sharing,omitempty"`
+	Start         uint32                                           `protobuf:"fixed32,3,opt,name=start,proto3" json:"start,omitempty"` // lower bound on IDs allocated from this pool
+	End           uint32                                           `protobuf:"fixed32,4,opt,name=end,proto3" json:"end,omitempty"`     // upper bound on IDs allocated from this pool
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
+}
+
+func (x *DeviceInfo_DeviceResourceRanges_Pool) Reset() {
+	*x = DeviceInfo_DeviceResourceRanges_Pool{}
+	mi := &file_voltha_protos_openolt_proto_msgTypes[60]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *DeviceInfo_DeviceResourceRanges_Pool) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeviceInfo_DeviceResourceRanges_Pool) ProtoMessage() {}
+
+func (x *DeviceInfo_DeviceResourceRanges_Pool) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_openolt_proto_msgTypes[60]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeviceInfo_DeviceResourceRanges_Pool.ProtoReflect.Descriptor instead.
+func (*DeviceInfo_DeviceResourceRanges_Pool) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_openolt_proto_rawDescGZIP(), []int{18, 0, 0}
+}
+
+func (x *DeviceInfo_DeviceResourceRanges_Pool) GetType() DeviceInfo_DeviceResourceRanges_Pool_PoolType {
+	if x != nil {
+		return x.Type
+	}
+	return DeviceInfo_DeviceResourceRanges_Pool_ONU_ID
+}
+
+func (x *DeviceInfo_DeviceResourceRanges_Pool) GetSharing() DeviceInfo_DeviceResourceRanges_Pool_SharingType {
+	if x != nil {
+		return x.Sharing
+	}
+	return DeviceInfo_DeviceResourceRanges_Pool_DEDICATED_PER_INTF
+}
+
+func (x *DeviceInfo_DeviceResourceRanges_Pool) GetStart() uint32 {
+	if x != nil {
+		return x.Start
+	}
+	return 0
+}
+
+func (x *DeviceInfo_DeviceResourceRanges_Pool) GetEnd() uint32 {
+	if x != nil {
+		return x.End
+	}
+	return 0
+}
+
+var File_voltha_protos_openolt_proto protoreflect.FileDescriptor
+
+const file_voltha_protos_openolt_proto_rawDesc = "" +
+	"\n" +
+	"\x1bvoltha_protos/openolt.proto\x12\aopenolt\x1a\x1cgoogle/api/annotations.proto\x1a voltha_protos/tech_profile.proto\x1a\x1evoltha_protos/ext_config.proto\x1a\x1evoltha_protos/extensions.proto\x1a\x1avoltha_protos/common.proto\"\xe0\x05\n" +
+	"\n" +
+	"Indication\x121\n" +
+	"\aolt_ind\x18\x01 \x01(\v2\x16.openolt.OltIndicationH\x00R\x06oltInd\x124\n" +
+	"\bintf_ind\x18\x02 \x01(\v2\x17.openolt.IntfIndicationH\x00R\aintfInd\x12A\n" +
+	"\rintf_oper_ind\x18\x03 \x01(\v2\x1b.openolt.IntfOperIndicationH\x00R\vintfOperInd\x12>\n" +
+	"\fonu_disc_ind\x18\x04 \x01(\v2\x1a.openolt.OnuDiscIndicationH\x00R\n" +
+	"onuDiscInd\x121\n" +
+	"\aonu_ind\x18\x05 \x01(\v2\x16.openolt.OnuIndicationH\x00R\x06onuInd\x124\n" +
+	"\bomci_ind\x18\x06 \x01(\v2\x17.openolt.OmciIndicationH\x00R\aomciInd\x124\n" +
+	"\apkt_ind\x18\a \x01(\v2\x19.openolt.PacketIndicationH\x00R\x06pktInd\x127\n" +
+	"\n" +
+	"port_stats\x18\b \x01(\v2\x16.common.PortStatisticsH\x00R\tportStats\x128\n" +
+	"\n" +
+	"flow_stats\x18\t \x01(\v2\x17.openolt.FlowStatisticsH\x00R\tflowStats\x127\n" +
+	"\talarm_ind\x18\n" +
+	" \x01(\v2\x18.openolt.AlarmIndicationH\x00R\balarmInd\x12J\n" +
+	"\x10onu_disabled_ind\x18\v \x01(\v2\x1e.openolt.OnuDisabledIndicationH\x00R\x0eonuDisabledInd\x12G\n" +
+	"\x0fonu_enabled_ind\x18\f \x01(\v2\x1d.openolt.OnuEnabledIndicationH\x00R\ronuEnabledIndB\x06\n" +
+	"\x04data\"\xeb\r\n" +
+	"\x0fAlarmIndication\x121\n" +
+	"\alos_ind\x18\x01 \x01(\v2\x16.openolt.LosIndicationH\x00R\x06losInd\x12D\n" +
+	"\x0edying_gasp_ind\x18\x02 \x01(\v2\x1c.openolt.DyingGaspIndicationH\x00R\fdyingGaspInd\x12A\n" +
+	"\ronu_alarm_ind\x18\x03 \x01(\v2\x1b.openolt.OnuAlarmIndicationH\x00R\vonuAlarmInd\x12W\n" +
+	"\x14onu_startup_fail_ind\x18\x04 \x01(\v2$.openolt.OnuStartupFailureIndicationH\x00R\x11onuStartupFailInd\x12Z\n" +
+	"\x16onu_signal_degrade_ind\x18\x05 \x01(\v2#.openolt.OnuSignalDegradeIndicationH\x00R\x13onuSignalDegradeInd\x12[\n" +
+	"\x17onu_drift_of_window_ind\x18\x06 \x01(\v2#.openolt.OnuDriftOfWindowIndicationH\x00R\x13onuDriftOfWindowInd\x12T\n" +
+	"\x11onu_loss_omci_ind\x18\a \x01(\v2'.openolt.OnuLossOfOmciChannelIndicationH\x00R\x0eonuLossOmciInd\x12W\n" +
+	"\x14onu_signals_fail_ind\x18\b \x01(\v2$.openolt.OnuSignalsFailureIndicationH\x00R\x11onuSignalsFailInd\x12O\n" +
+	"\fonu_tiwi_ind\x18\t \x01(\v2+.openolt.OnuTransmissionInterferenceWarningH\x00R\n" +
+	"onuTiwiInd\x12`\n" +
+	"\x17onu_activation_fail_ind\x18\n" +
+	" \x01(\v2'.openolt.OnuActivationFailureIndicationH\x00R\x14onuActivationFailInd\x12`\n" +
+	"\x18onu_processing_error_ind\x18\v \x01(\v2%.openolt.OnuProcessingErrorIndicationH\x00R\x15onuProcessingErrorInd\x12e\n" +
+	"\x19onu_loss_of_sync_fail_ind\x18\f \x01(\v2*.openolt.OnuLossOfKeySyncFailureIndicationH\x00R\x14onuLossOfSyncFailInd\x12U\n" +
+	"\x15onu_itu_pon_stats_ind\x18\r \x01(\v2!.openolt.OnuItuPonStatsIndicationH\x00R\x11onuItuPonStatsInd\x12l\n" +
+	"\x1conu_deactivation_failure_ind\x18\x0e \x01(\v2).openolt.OnuDeactivationFailureIndicationH\x00R\x19onuDeactivationFailureInd\x12W\n" +
+	"\x15onu_remote_defect_ind\x18\x0f \x01(\v2\".openolt.OnuRemoteDefectIndicationH\x00R\x12onuRemoteDefectInd\x12s\n" +
+	"\x1conu_loss_gem_delineation_ind\x18\x10 \x01(\v21.openolt.OnuLossOfGEMChannelDelineationIndicationH\x00R\x18onuLossGemDelineationInd\x12v\n" +
+	" onu_physical_equipment_error_ind\x18\x11 \x01(\v2,.openolt.OnuPhysicalEquipmentErrorIndicationH\x00R\x1conuPhysicalEquipmentErrorInd\x12[\n" +
+	"\x13onu_loss_of_ack_ind\x18\x12 \x01(\v2+.openolt.OnuLossOfAcknowledgementIndicationH\x00R\x0fonuLossOfAckInd\x12o\n" +
+	"\x1bonu_diff_reach_exceeded_ind\x18\x13 \x01(\v2/.openolt.OnuDifferentialReachExceededIndicationH\x00R\x17onuDiffReachExceededIndB\x06\n" +
+	"\x04data\".\n" +
+	"\rOltIndication\x12\x1d\n" +
+	"\n" +
+	"oper_state\x18\x01 \x01(\tR\toperState\"H\n" +
+	"\x0eIntfIndication\x12\x17\n" +
+	"\aintf_id\x18\x01 \x01(\aR\x06intfId\x12\x1d\n" +
+	"\n" +
+	"oper_state\x18\x02 \x01(\tR\toperState\"h\n" +
+	"\x11OnuDiscIndication\x12\x17\n" +
+	"\aintf_id\x18\x01 \x01(\aR\x06intfId\x12:\n" +
+	"\rserial_number\x18\x02 \x01(\v2\x15.openolt.SerialNumberR\fserialNumber\"\x93\x04\n" +
+	"\rOnuIndication\x12\x17\n" +
+	"\aintf_id\x18\x01 \x01(\aR\x06intfId\x12\x15\n" +
+	"\x06onu_id\x18\x02 \x01(\aR\x05onuId\x12\x1d\n" +
+	"\n" +
+	"oper_state\x18\x03 \x01(\tR\toperState\x12\x1f\n" +
+	"\vadmin_state\x18\x05 \x01(\tR\n" +
+	"adminState\x12:\n" +
+	"\rserial_number\x18\x04 \x01(\v2\x15.openolt.SerialNumberR\fserialNumber\x12L\n" +
+	"\vfail_reason\x18\x06 \x01(\x0e2+.openolt.OnuIndication.ActivationFailReasonR\n" +
+	"failReason\"\x87\x02\n" +
+	"\x14ActivationFailReason\x12#\n" +
+	"\x1fONU_ACTIVATION_FAIL_REASON_NONE\x10\x00\x12&\n" +
+	"\"ONU_ACTIVATION_FAIL_REASON_RANGING\x10\x01\x126\n" +
+	"2ONU_ACTIVATION_FAIL_REASON_PASSWORD_AUTHENTICATION\x10\x02\x12\"\n" +
+	"\x1eONU_ACTIVATION_FAIL_REASON_LOS\x10\x03\x12!\n" +
+	"\x1dONU_ACTIVATION_FAIL_ONU_ALARM\x10\x04\x12#\n" +
+	"\x1fONU_ACTIVATION_FAIL_SWITCH_OVER\x10\x05\"\x83\x01\n" +
+	"\x15OnuDisabledIndication\x12\x17\n" +
+	"\aintf_id\x18\x01 \x01(\aR\x06intfId\x12\x15\n" +
+	"\x06onu_id\x18\x02 \x01(\aR\x05onuId\x12:\n" +
+	"\rserial_number\x18\x04 \x01(\v2\x15.openolt.SerialNumberR\fserialNumber\"\x82\x01\n" +
+	"\x14OnuEnabledIndication\x12\x17\n" +
+	"\aintf_id\x18\x01 \x01(\aR\x06intfId\x12\x15\n" +
+	"\x06onu_id\x18\x02 \x01(\aR\x05onuId\x12:\n" +
+	"\rserial_number\x18\x04 \x01(\v2\x15.openolt.SerialNumberR\fserialNumber\"\x82\x04\n" +
+	"\x12IntfOperIndication\x12\x12\n" +
+	"\x04type\x18\x01 \x01(\tR\x04type\x12\x17\n" +
+	"\aintf_id\x18\x02 \x01(\aR\x06intfId\x12\x1d\n" +
+	"\n" +
+	"oper_state\x18\x03 \x01(\tR\toperState\x12\x14\n" +
+	"\x05speed\x18\x04 \x01(\aR\x05speed\x12\x1e\n" +
+	"\n" +
+	"technology\x18\x05 \x01(\tR\n" +
+	"technology\x12E\n" +
+	"\x06ranges\x18\x06 \x01(\v2-.openolt.IntfOperIndication.PONResourceRangesR\x06ranges\x1a\xa2\x02\n" +
+	"\x11PONResourceRanges\x12H\n" +
+	"\x05pools\x18\x03 \x03(\v22.openolt.IntfOperIndication.PONResourceRanges.PoolR\x05pools\x1a\xc2\x01\n" +
+	"\x04Pool\x12O\n" +
+	"\x04type\x18\x01 \x01(\x0e2;.openolt.IntfOperIndication.PONResourceRanges.Pool.PoolTypeR\x04type\x12\x14\n" +
+	"\x05start\x18\x03 \x01(\aR\x05start\x12\x10\n" +
+	"\x03end\x18\x04 \x01(\aR\x03end\"A\n" +
+	"\bPoolType\x12\n" +
+	"\n" +
+	"\x06ONU_ID\x10\x00\x12\f\n" +
+	"\bALLOC_ID\x10\x01\x12\x0e\n" +
+	"\n" +
+	"GEMPORT_ID\x10\x02\x12\v\n" +
+	"\aFLOW_ID\x10\x03\"R\n" +
+	"\x0eOmciIndication\x12\x17\n" +
+	"\aintf_id\x18\x01 \x01(\aR\x06intfId\x12\x15\n" +
+	"\x06onu_id\x18\x02 \x01(\aR\x05onuId\x12\x10\n" +
+	"\x03pkt\x18\x03 \x01(\fR\x03pkt\"\xf1\x01\n" +
+	"\x10PacketIndication\x12\x1b\n" +
+	"\tintf_type\x18\x05 \x01(\tR\bintfType\x12\x17\n" +
+	"\aintf_id\x18\x01 \x01(\aR\x06intfId\x12\x15\n" +
+	"\x06onu_id\x18\b \x01(\aR\x05onuId\x12\x15\n" +
+	"\x06uni_id\x18\t \x01(\aR\x05uniId\x12\x1d\n" +
+	"\n" +
+	"gemport_id\x18\x02 \x01(\aR\tgemportId\x12\x17\n" +
+	"\aflow_id\x18\x03 \x01(\aR\x06flowId\x12\x17\n" +
+	"\aport_no\x18\x06 \x01(\aR\x06portNo\x12\x16\n" +
+	"\x06cookie\x18\a \x01(\x06R\x06cookie\x12\x10\n" +
+	"\x03pkt\x18\x04 \x01(\fR\x03pkt\"A\n" +
+	"\tInterface\x12\x17\n" +
+	"\aintf_id\x18\x01 \x01(\aR\x06intfId\x12\x1b\n" +
+	"\tintf_type\x18\x02 \x01(\aR\bintfType\"<\n" +
+	"\tHeartbeat\x12/\n" +
+	"\x13heartbeat_signature\x18\x01 \x01(\aR\x12heartbeatSignature\"\xac\x01\n" +
+	"\x03Onu\x12\x17\n" +
+	"\aintf_id\x18\x01 \x01(\aR\x06intfId\x12\x15\n" +
+	"\x06onu_id\x18\x02 \x01(\aR\x05onuId\x12:\n" +
+	"\rserial_number\x18\x03 \x01(\v2\x15.openolt.SerialNumberR\fserialNumber\x12\x10\n" +
+	"\x03pir\x18\x04 \x01(\aR\x03pir\x12'\n" +
+	"\x0fomcc_encryption\x18\x05 \x01(\bR\x0eomccEncryption\"\xb1\x01\n" +
+	"\x12OnuLogicalDistance\x12\x17\n" +
+	"\aintf_id\x18\x01 \x01(\aR\x06intfId\x12\x15\n" +
+	"\x06onu_id\x18\x02 \x01(\aR\x05onuId\x129\n" +
+	"\x19logical_onu_distance_zero\x18\x03 \x01(\aR\x16logicalOnuDistanceZero\x120\n" +
+	"\x14logical_onu_distance\x18\x04 \x01(\aR\x12logicalOnuDistance\"K\n" +
+	"\aOmciMsg\x12\x17\n" +
+	"\aintf_id\x18\x01 \x01(\aR\x06intfId\x12\x15\n" +
+	"\x06onu_id\x18\x02 \x01(\aR\x05onuId\x12\x10\n" +
+	"\x03pkt\x18\x03 \x01(\fR\x03pkt\"\xa0\x01\n" +
+	"\tOnuPacket\x12\x17\n" +
+	"\aintf_id\x18\x01 \x01(\aR\x06intfId\x12\x15\n" +
+	"\x06onu_id\x18\x02 \x01(\aR\x05onuId\x12\x17\n" +
+	"\aport_no\x18\x04 \x01(\aR\x06portNo\x12\x1d\n" +
+	"\n" +
+	"gemport_id\x18\x05 \x01(\aR\tgemportId\x12\x19\n" +
+	"\balloc_id\x18\x06 \x01(\aR\aallocId\x12\x10\n" +
+	"\x03pkt\x18\x03 \x01(\fR\x03pkt\"9\n" +
+	"\fUplinkPacket\x12\x17\n" +
+	"\aintf_id\x18\x01 \x01(\aR\x06intfId\x12\x10\n" +
+	"\x03pkt\x18\x02 \x01(\fR\x03pkt\"\xb8\a\n" +
+	"\n" +
+	"DeviceInfo\x12\x16\n" +
+	"\x06vendor\x18\x01 \x01(\tR\x06vendor\x12\x14\n" +
+	"\x05model\x18\x02 \x01(\tR\x05model\x12)\n" +
+	"\x10hardware_version\x18\x03 \x01(\tR\x0fhardwareVersion\x12)\n" +
+	"\x10firmware_version\x18\x04 \x01(\tR\x0ffirmwareVersion\x12\x1b\n" +
+	"\tdevice_id\x18\x10 \x01(\tR\bdeviceId\x120\n" +
+	"\x14device_serial_number\x18\x11 \x01(\tR\x12deviceSerialNumber\x121\n" +
+	"\x14previously_connected\x18\x13 \x01(\bR\x13previouslyConnected\x12\x1b\n" +
+	"\tpon_ports\x18\f \x01(\aR\bponPorts\x12\x1b\n" +
+	"\tnni_ports\x18\x14 \x01(\aR\bnniPorts\x12@\n" +
+	"\x06ranges\x18\x0f \x03(\v2(.openolt.DeviceInfo.DeviceResourceRangesR\x06ranges\x1a\x95\x04\n" +
+	"\x14DeviceResourceRanges\x12\x19\n" +
+	"\bintf_ids\x18\x01 \x03(\aR\aintfIds\x12\x1e\n" +
+	"\n" +
+	"technology\x18\x02 \x01(\tR\n" +
+	"technology\x12C\n" +
+	"\x05pools\x18\x03 \x03(\v2-.openolt.DeviceInfo.DeviceResourceRanges.PoolR\x05pools\x1a\xfc\x02\n" +
+	"\x04Pool\x12J\n" +
+	"\x04type\x18\x01 \x01(\x0e26.openolt.DeviceInfo.DeviceResourceRanges.Pool.PoolTypeR\x04type\x12S\n" +
+	"\asharing\x18\x02 \x01(\x0e29.openolt.DeviceInfo.DeviceResourceRanges.Pool.SharingTypeR\asharing\x12\x14\n" +
+	"\x05start\x18\x03 \x01(\aR\x05start\x12\x10\n" +
+	"\x03end\x18\x04 \x01(\aR\x03end\"A\n" +
+	"\bPoolType\x12\n" +
+	"\n" +
+	"\x06ONU_ID\x10\x00\x12\f\n" +
+	"\bALLOC_ID\x10\x01\x12\x0e\n" +
+	"\n" +
+	"GEMPORT_ID\x10\x02\x12\v\n" +
+	"\aFLOW_ID\x10\x03\"h\n" +
+	"\vSharingType\x12\x16\n" +
+	"\x12DEDICATED_PER_INTF\x10\x00\x12\x1f\n" +
+	"\x1bSHARED_BY_ALL_INTF_ALL_TECH\x10\x01\x12 \n" +
+	"\x1cSHARED_BY_ALL_INTF_SAME_TECH\x10\x02J\x04\b\x05\x10\fJ\x04\b\r\x10\x0eJ\x04\b\x0e\x10\x0f\"\x84\x03\n" +
+	"\n" +
+	"Classifier\x12\x15\n" +
+	"\x06o_tpid\x18\x01 \x01(\aR\x05oTpid\x12\x13\n" +
+	"\x05o_vid\x18\x02 \x01(\aR\x04oVid\x12\x15\n" +
+	"\x06i_tpid\x18\x03 \x01(\aR\x05iTpid\x12\x13\n" +
+	"\x05i_vid\x18\x04 \x01(\aR\x04iVid\x12\x17\n" +
+	"\ao_pbits\x18\x05 \x01(\aR\x06oPbits\x12\x17\n" +
+	"\ai_pbits\x18\x06 \x01(\aR\x06iPbits\x12\x19\n" +
+	"\beth_type\x18\a \x01(\aR\aethType\x12\x17\n" +
+	"\adst_mac\x18\b \x01(\fR\x06dstMac\x12\x17\n" +
+	"\asrc_mac\x18\t \x01(\fR\x06srcMac\x12\x19\n" +
+	"\bip_proto\x18\n" +
+	" \x01(\aR\aipProto\x12\x15\n" +
+	"\x06dst_ip\x18\v \x01(\aR\x05dstIp\x12\x15\n" +
+	"\x06src_ip\x18\f \x01(\aR\x05srcIp\x12\x19\n" +
+	"\bsrc_port\x18\r \x01(\aR\asrcPort\x12\x19\n" +
+	"\bdst_port\x18\x0e \x01(\aR\adstPort\x12 \n" +
+	"\fpkt_tag_type\x18\x0f \x01(\tR\n" +
+	"pktTagType\"\x85\x03\n" +
+	"\tActionCmd\x12\"\n" +
+	"\radd_outer_tag\x18\x01 \x01(\bR\vaddOuterTag\x12(\n" +
+	"\x10remove_outer_tag\x18\x02 \x01(\bR\x0eremoveOuterTag\x12 \n" +
+	"\ftrap_to_host\x18\x03 \x01(\bR\n" +
+	"trapToHost\x12,\n" +
+	"\x12remark_outer_pbits\x18\x04 \x01(\bR\x10remarkOuterPbits\x12,\n" +
+	"\x12remark_inner_pbits\x18\x05 \x01(\bR\x10remarkInnerPbits\x12\"\n" +
+	"\radd_inner_tag\x18\x06 \x01(\bR\vaddInnerTag\x12(\n" +
+	"\x10remove_inner_tag\x18\a \x01(\bR\x0eremoveInnerTag\x12.\n" +
+	"\x13translate_inner_tag\x18\b \x01(\bR\x11translateInnerTag\x12.\n" +
+	"\x13translate_outer_tag\x18\t \x01(\bR\x11translateOuterTag\"\xb8\x01\n" +
+	"\x06Action\x12$\n" +
+	"\x03cmd\x18\x01 \x01(\v2\x12.openolt.ActionCmdR\x03cmd\x12\x13\n" +
+	"\x05o_vid\x18\x02 \x01(\aR\x04oVid\x12\x17\n" +
+	"\ao_pbits\x18\x03 \x01(\aR\x06oPbits\x12\x15\n" +
+	"\x06o_tpid\x18\x04 \x01(\aR\x05oTpid\x12\x13\n" +
+	"\x05i_vid\x18\x05 \x01(\aR\x04iVid\x12\x17\n" +
+	"\ai_pbits\x18\x06 \x01(\aR\x06iPbits\x12\x15\n" +
+	"\x06i_tpid\x18\a \x01(\aR\x05iTpid\"\xc7\x06\n" +
+	"\x04Flow\x12$\n" +
+	"\x0eaccess_intf_id\x18\x01 \x01(\x0fR\faccessIntfId\x12\x15\n" +
+	"\x06onu_id\x18\x02 \x01(\x0fR\x05onuId\x12\x15\n" +
+	"\x06uni_id\x18\v \x01(\x0fR\x05uniId\x12\x17\n" +
+	"\aflow_id\x18\x03 \x01(\x06R\x06flowId\x12*\n" +
+	"\x11symmetric_flow_id\x18\x12 \x01(\x06R\x0fsymmetricFlowId\x12\x1b\n" +
+	"\tflow_type\x18\x04 \x01(\tR\bflowType\x12\x19\n" +
+	"\balloc_id\x18\n" +
+	" \x01(\x0fR\aallocId\x12&\n" +
+	"\x0fnetwork_intf_id\x18\x05 \x01(\x0fR\rnetworkIntfId\x12\x1d\n" +
+	"\n" +
+	"gemport_id\x18\x06 \x01(\x0fR\tgemportId\x123\n" +
+	"\n" +
+	"classifier\x18\a \x01(\v2\x13.openolt.ClassifierR\n" +
+	"classifier\x12'\n" +
+	"\x06action\x18\b \x01(\v2\x0f.openolt.ActionR\x06action\x12\x1a\n" +
+	"\bpriority\x18\t \x01(\x0fR\bpriority\x12\x16\n" +
+	"\x06cookie\x18\f \x01(\x06R\x06cookie\x12\x17\n" +
+	"\aport_no\x18\r \x01(\aR\x06portNo\x12\x19\n" +
+	"\bgroup_id\x18\x0e \x01(\aR\agroupId\x12&\n" +
+	"\x0ftech_profile_id\x18\x0f \x01(\aR\rtechProfileId\x12%\n" +
+	"\x0ereplicate_flow\x18\x10 \x01(\bR\rreplicateFlow\x12H\n" +
+	"\x0fpbit_to_gemport\x18\x11 \x03(\v2 .openolt.Flow.PbitToGemportEntryR\rpbitToGemport\x12E\n" +
+	"\x0egemport_to_aes\x18\x13 \x03(\v2\x1f.openolt.Flow.GemportToAesEntryR\fgemportToAes\x1a@\n" +
+	"\x12PbitToGemportEntry\x12\x10\n" +
+	"\x03key\x18\x01 \x01(\aR\x03key\x12\x14\n" +
+	"\x05value\x18\x02 \x01(\aR\x05value:\x028\x01\x1a?\n" +
+	"\x11GemportToAesEntry\x12\x10\n" +
+	"\x03key\x18\x01 \x01(\aR\x03key\x12\x14\n" +
+	"\x05value\x18\x02 \x01(\bR\x05value:\x028\x01\"T\n" +
+	"\fSerialNumber\x12\x1b\n" +
+	"\tvendor_id\x18\x01 \x01(\fR\bvendorId\x12'\n" +
+	"\x0fvendor_specific\x18\x02 \x01(\fR\x0evendorSpecific\"\xe6\a\n" +
+	"\rOnuStatistics\x12\x17\n" +
+	"\aintf_id\x18\x01 \x01(\aR\x06intfId\x12\x15\n" +
+	"\x06onu_id\x18\x02 \x01(\aR\x05onuId\x12%\n" +
+	"\x0epositive_drift\x18\x03 \x01(\x06R\rpositiveDrift\x12%\n" +
+	"\x0enegative_drift\x18\x04 \x01(\x06R\rnegativeDrift\x128\n" +
+	"\x18delimiter_miss_detection\x18\x05 \x01(\x06R\x16delimiterMissDetection\x12\x1d\n" +
+	"\n" +
+	"bip_errors\x18\x06 \x01(\x06R\tbipErrors\x12\x1b\n" +
+	"\tbip_units\x18\a \x01(\x06R\bbipUnits\x122\n" +
+	"\x15fec_corrected_symbols\x18\b \x01(\x06R\x13fecCorrectedSymbols\x126\n" +
+	"\x17fec_codewords_corrected\x18\t \x01(\x06R\x15fecCodewordsCorrected\x12>\n" +
+	"\x1bfec_codewords_uncorrectable\x18\n" +
+	" \x01(\x06R\x19fecCodewordsUncorrectable\x12#\n" +
+	"\rfec_codewords\x18\v \x01(\x06R\ffecCodewords\x12.\n" +
+	"\x13fec_corrected_units\x18\f \x01(\x06R\x11fecCorrectedUnits\x12&\n" +
+	"\x0fxgem_key_errors\x18\r \x01(\x06R\rxgemKeyErrors\x12\x1b\n" +
+	"\txgem_loss\x18\x0e \x01(\x06R\bxgemLoss\x12&\n" +
+	"\x0frx_ploams_error\x18\x0f \x01(\x06R\rrxPloamsError\x12+\n" +
+	"\x12rx_ploams_non_idle\x18\x10 \x01(\x06R\x0frxPloamsNonIdle\x12\x17\n" +
+	"\arx_omci\x18\x11 \x01(\x06R\x06rxOmci\x128\n" +
+	"\x19rx_omci_packets_crc_error\x18\x12 \x01(\x06R\x15rxOmciPacketsCrcError\x12\x19\n" +
+	"\brx_bytes\x18\x13 \x01(\x06R\arxBytes\x12\x1d\n" +
+	"\n" +
+	"rx_packets\x18\x14 \x01(\x06R\trxPackets\x12\x19\n" +
+	"\btx_bytes\x18\x15 \x01(\x06R\atxBytes\x12\x1d\n" +
+	"\n" +
+	"tx_packets\x18\x16 \x01(\x06R\ttxPackets\x12!\n" +
+	"\fber_reported\x18\x17 \x01(\x06R\vberReported\x12\x1f\n" +
+	"\vlcdg_errors\x18\x18 \x01(\x06R\n" +
+	"lcdgErrors\x12\x1d\n" +
+	"\n" +
+	"rdi_errors\x18\x19 \x01(\x06R\trdiErrors\x12\x1c\n" +
+	"\ttimestamp\x18\x1a \x01(\aR\ttimestamp\"\xdd\x01\n" +
+	"\x11GemPortStatistics\x12\x17\n" +
+	"\aintf_id\x18\x01 \x01(\aR\x06intfId\x12\x1d\n" +
+	"\n" +
+	"gemport_id\x18\x02 \x01(\aR\tgemportId\x12\x1d\n" +
+	"\n" +
+	"rx_packets\x18\x03 \x01(\x06R\trxPackets\x12\x19\n" +
+	"\brx_bytes\x18\x04 \x01(\x06R\arxBytes\x12\x1d\n" +
+	"\n" +
+	"tx_packets\x18\x05 \x01(\x06R\ttxPackets\x12\x19\n" +
+	"\btx_bytes\x18\x06 \x01(\x06R\atxBytes\x12\x1c\n" +
+	"\ttimestamp\x18\x1a \x01(\aR\ttimestamp\"\xbb\x01\n" +
+	"\x0eFlowStatistics\x12\x17\n" +
+	"\aflow_id\x18\x01 \x01(\aR\x06flowId\x12\x19\n" +
+	"\brx_bytes\x18\x02 \x01(\x06R\arxBytes\x12\x1d\n" +
+	"\n" +
+	"rx_packets\x18\x03 \x01(\x06R\trxPackets\x12\x19\n" +
+	"\btx_bytes\x18\b \x01(\x06R\atxBytes\x12\x1d\n" +
+	"\n" +
+	"tx_packets\x18\t \x01(\x06R\ttxPackets\x12\x1c\n" +
+	"\ttimestamp\x18\x10 \x01(\aR\ttimestamp\"@\n" +
+	"\rLosIndication\x12\x17\n" +
+	"\aintf_id\x18\x01 \x01(\aR\x06intfId\x12\x16\n" +
+	"\x06status\x18\x02 \x01(\tR\x06status\"]\n" +
+	"\x13DyingGaspIndication\x12\x17\n" +
+	"\aintf_id\x18\x01 \x01(\aR\x06intfId\x12\x15\n" +
+	"\x06onu_id\x18\x02 \x01(\aR\x05onuId\x12\x16\n" +
+	"\x06status\x18\x03 \x01(\tR\x06status\"\xa3\x02\n" +
+	"\x12OnuAlarmIndication\x12\x17\n" +
+	"\aintf_id\x18\x01 \x01(\aR\x06intfId\x12\x15\n" +
+	"\x06onu_id\x18\x02 \x01(\aR\x05onuId\x12\x1d\n" +
+	"\n" +
+	"los_status\x18\x03 \x01(\tR\tlosStatus\x12\x1d\n" +
+	"\n" +
+	"lob_status\x18\x04 \x01(\tR\tlobStatus\x12(\n" +
+	"\x10lopc_miss_status\x18\x05 \x01(\tR\x0elopcMissStatus\x121\n" +
+	"\x15lopc_mic_error_status\x18\x06 \x01(\tR\x12lopcMicErrorStatus\x12\x1f\n" +
+	"\vlofi_status\x18\a \x01(\tR\n" +
+	"lofiStatus\x12!\n" +
+	"\floami_status\x18\b \x01(\tR\vloamiStatus\"e\n" +
+	"\x1bOnuStartupFailureIndication\x12\x17\n" +
+	"\aintf_id\x18\x01 \x01(\aR\x06intfId\x12\x15\n" +
+	"\x06onu_id\x18\x02 \x01(\aR\x05onuId\x12\x16\n" +
+	"\x06status\x18\x03 \x01(\tR\x06status\"\x99\x01\n" +
+	"\x1aOnuSignalDegradeIndication\x12\x17\n" +
+	"\aintf_id\x18\x01 \x01(\aR\x06intfId\x12\x15\n" +
+	"\x06onu_id\x18\x02 \x01(\aR\x05onuId\x12\x16\n" +
+	"\x06status\x18\x03 \x01(\tR\x06status\x123\n" +
+	"\x16inverse_bit_error_rate\x18\x04 \x01(\aR\x13inverseBitErrorRate\"\x93\x01\n" +
+	"\x1aOnuDriftOfWindowIndication\x12\x17\n" +
+	"\aintf_id\x18\x01 \x01(\aR\x06intfId\x12\x15\n" +
+	"\x06onu_id\x18\x02 \x01(\aR\x05onuId\x12\x16\n" +
+	"\x06status\x18\x03 \x01(\tR\x06status\x12\x14\n" +
+	"\x05drift\x18\x04 \x01(\aR\x05drift\x12\x17\n" +
+	"\anew_eqd\x18\x05 \x01(\aR\x06newEqd\"h\n" +
+	"\x1eOnuLossOfOmciChannelIndication\x12\x17\n" +
+	"\aintf_id\x18\x01 \x01(\aR\x06intfId\x12\x15\n" +
+	"\x06onu_id\x18\x02 \x01(\aR\x05onuId\x12\x16\n" +
+	"\x06status\x18\x03 \x01(\tR\x06status\"\x9a\x01\n" +
+	"\x1bOnuSignalsFailureIndication\x12\x17\n" +
+	"\aintf_id\x18\x01 \x01(\aR\x06intfId\x12\x15\n" +
+	"\x06onu_id\x18\x02 \x01(\aR\x05onuId\x12\x16\n" +
+	"\x06status\x18\x03 \x01(\tR\x06status\x123\n" +
+	"\x16inverse_bit_error_rate\x18\x04 \x01(\aR\x13inverseBitErrorRate\"\x82\x01\n" +
+	"\"OnuTransmissionInterferenceWarning\x12\x17\n" +
+	"\aintf_id\x18\x01 \x01(\aR\x06intfId\x12\x15\n" +
+	"\x06onu_id\x18\x02 \x01(\aR\x05onuId\x12\x16\n" +
+	"\x06status\x18\x03 \x01(\tR\x06status\x12\x14\n" +
+	"\x05drift\x18\x04 \x01(\aR\x05drift\"q\n" +
+	"\x1eOnuActivationFailureIndication\x12\x17\n" +
+	"\aintf_id\x18\x01 \x01(\aR\x06intfId\x12\x15\n" +
+	"\x06onu_id\x18\x02 \x01(\aR\x05onuId\x12\x1f\n" +
+	"\vfail_reason\x18\x03 \x01(\aR\n" +
+	"failReason\"k\n" +
+	"!OnuLossOfKeySyncFailureIndication\x12\x17\n" +
+	"\aintf_id\x18\x01 \x01(\aR\x06intfId\x12\x15\n" +
+	"\x06onu_id\x18\x02 \x01(\aR\x05onuId\x12\x16\n" +
+	"\x06status\x18\x03 \x01(\tR\x06status\"T\n" +
+	"\x12RdiErrorIndication\x12&\n" +
+	"\x0frdi_error_count\x18\x01 \x01(\x06R\rrdiErrorCount\x12\x16\n" +
+	"\x06status\x18\x02 \x01(\tR\x06status\"\x96\x01\n" +
+	"\x18OnuItuPonStatsIndication\x12\x17\n" +
+	"\aintf_id\x18\x01 \x01(\aR\x06intfId\x12\x15\n" +
+	"\x06onu_id\x18\x02 \x01(\aR\x05onuId\x12A\n" +
+	"\rrdi_error_ind\x18\x03 \x01(\v2\x1b.openolt.RdiErrorIndicationH\x00R\vrdiErrorIndB\a\n" +
+	"\x05stats\"N\n" +
+	"\x1cOnuProcessingErrorIndication\x12\x17\n" +
+	"\aintf_id\x18\x01 \x01(\aR\x06intfId\x12\x15\n" +
+	"\x06onu_id\x18\x02 \x01(\aR\x05onuId\"j\n" +
+	" OnuDeactivationFailureIndication\x12\x17\n" +
+	"\aintf_id\x18\x01 \x01(\aR\x06intfId\x12\x15\n" +
+	"\x06onu_id\x18\x02 \x01(\aR\x05onuId\x12\x16\n" +
+	"\x06status\x18\x03 \x01(\tR\x06status\"j\n" +
+	"\x19OnuRemoteDefectIndication\x12\x17\n" +
+	"\aintf_id\x18\x01 \x01(\aR\x06intfId\x12\x15\n" +
+	"\x06onu_id\x18\x02 \x01(\aR\x05onuId\x12\x1d\n" +
+	"\n" +
+	"rdi_errors\x18\x03 \x01(\x06R\trdiErrors\"\xa1\x01\n" +
+	"(OnuLossOfGEMChannelDelineationIndication\x12\x17\n" +
+	"\aintf_id\x18\x01 \x01(\aR\x06intfId\x12\x15\n" +
+	"\x06onu_id\x18\x02 \x01(\aR\x05onuId\x12\x16\n" +
+	"\x06status\x18\x03 \x01(\tR\x06status\x12-\n" +
+	"\x12delineation_errors\x18\x04 \x01(\aR\x11delineationErrors\"m\n" +
+	"#OnuPhysicalEquipmentErrorIndication\x12\x17\n" +
+	"\aintf_id\x18\x01 \x01(\aR\x06intfId\x12\x15\n" +
+	"\x06onu_id\x18\x02 \x01(\aR\x05onuId\x12\x16\n" +
+	"\x06status\x18\x03 \x01(\tR\x06status\"l\n" +
+	"\"OnuLossOfAcknowledgementIndication\x12\x17\n" +
+	"\aintf_id\x18\x01 \x01(\aR\x06intfId\x12\x15\n" +
+	"\x06onu_id\x18\x02 \x01(\aR\x05onuId\x12\x16\n" +
+	"\x06status\x18\x03 \x01(\tR\x06status\"\x8c\x01\n" +
+	"&OnuDifferentialReachExceededIndication\x12\x17\n" +
+	"\aintf_id\x18\x01 \x01(\aR\x06intfId\x12\x15\n" +
+	"\x06onu_id\x18\x02 \x01(\aR\x05onuId\x12\x16\n" +
+	"\x06status\x18\x03 \x01(\tR\x06status\x12\x1a\n" +
+	"\bdistance\x18\x04 \x01(\aR\bdistance\"\xf6\x01\n" +
+	"\vGroupMember\x12!\n" +
+	"\finterface_id\x18\x01 \x01(\rR\vinterfaceId\x12I\n" +
+	"\x0einterface_type\x18\x02 \x01(\x0e2\".openolt.GroupMember.InterfaceTypeR\rinterfaceType\x12\x1e\n" +
+	"\vgem_port_id\x18\x03 \x01(\rR\tgemPortId\x12\x1a\n" +
+	"\bpriority\x18\x04 \x01(\rR\bpriority\"=\n" +
+	"\rInterfaceType\x12\a\n" +
+	"\x03PON\x10\x00\x12\x10\n" +
+	"\fEPON_1G_PATH\x10\x01\x12\x11\n" +
+	"\rEPON_10G_PATH\x10\x02\"\x86\x02\n" +
+	"\x05Group\x12\x19\n" +
+	"\bgroup_id\x18\x01 \x01(\rR\agroupId\x12<\n" +
+	"\acommand\x18\x02 \x01(\x0e2\".openolt.Group.GroupMembersCommandR\acommand\x12.\n" +
+	"\amembers\x18\x03 \x03(\v2\x14.openolt.GroupMemberR\amembers\x12'\n" +
+	"\x06action\x18\x04 \x01(\v2\x0f.openolt.ActionR\x06action\"K\n" +
+	"\x13GroupMembersCommand\x12\x0f\n" +
+	"\vADD_MEMBERS\x10\x00\x12\x12\n" +
+	"\x0eREMOVE_MEMBERS\x10\x01\x12\x0f\n" +
+	"\vSET_MEMBERS\x10\x02\"]\n" +
+	"\n" +
+	"ValueParam\x12\x1e\n" +
+	"\x03onu\x18\x01 \x01(\v2\f.openolt.OnuR\x03onu\x12/\n" +
+	"\x05value\x18\x02 \x01(\x0e2\x19.extension.ValueType.TypeR\x05value\"\xc3\x02\n" +
+	"\x0ePonRxPowerData\x12\x17\n" +
+	"\aintf_id\x18\x01 \x01(\aR\x06intfId\x12\x15\n" +
+	"\x06onu_id\x18\x02 \x01(\aR\x05onuId\x12\x16\n" +
+	"\x06status\x18\x03 \x01(\tR\x06status\x12R\n" +
+	"\vfail_reason\x18\x04 \x01(\x0e21.openolt.PonRxPowerData.RssiMeasurementFailReasonR\n" +
+	"failReason\x12)\n" +
+	"\x11rx_power_mean_dbm\x18\x05 \x01(\x01R\x0erxPowerMeanDbm\"j\n" +
+	"\x19RssiMeasurementFailReason\x12\x14\n" +
+	"\x10FAIL_REASON_NONE\x10\x00\x12\x1c\n" +
+	"\x18FAIL_REASON_NO_DELIMITER\x10\x01\x12\x19\n" +
+	"\x15FAIL_REASON_NO_ACCESS\x10\x02\"b\n" +
+	"\x14OnuAllocIdStatistics\x12\x16\n" +
+	"\x06intfId\x18\x01 \x01(\aR\x06intfId\x12\x18\n" +
+	"\aallocId\x18\x02 \x01(\aR\aallocId\x12\x18\n" +
+	"\arxBytes\x18\x03 \x01(\x06R\arxBytes\"\xa3\x02\n" +
+	"\aOnuInfo\x12\x15\n" +
+	"\x06onu_id\x18\x01 \x01(\aR\x05onuId\x12/\n" +
+	"\x05state\x18\x02 \x01(\x0e2\x19.openolt.OnuInfo.OnuStateR\x05state\x12'\n" +
+	"\x04losi\x18\x03 \x01(\x0e2\x13.openolt.AlarmStateR\x04losi\x12'\n" +
+	"\x04lofi\x18\x04 \x01(\x0e2\x13.openolt.AlarmStateR\x04lofi\x12)\n" +
+	"\x05loami\x18\x05 \x01(\x0e2\x13.openolt.AlarmStateR\x05loami\"S\n" +
+	"\bOnuState\x12\v\n" +
+	"\aUNKNOWN\x10\x00\x12\x12\n" +
+	"\x0eNOT_CONFIGURED\x10\x01\x12\n" +
+	"\n" +
+	"\x06ACTIVE\x10\x02\x12\f\n" +
+	"\bINACTIVE\x10\x03\x12\f\n" +
+	"\bDISABLED\x10\x04\"\xe7\x01\n" +
+	"\vPonIntfInfo\x12\x17\n" +
+	"\aintf_id\x18\x01 \x01(\aR\x06intfId\x127\n" +
+	"\x05state\x18\x03 \x01(\x0e2!.openolt.PonIntfInfo.PonIntfStateR\x05state\x12%\n" +
+	"\x03los\x18\x04 \x01(\x0e2\x13.openolt.AlarmStateR\x03los\"_\n" +
+	"\fPonIntfState\x12\v\n" +
+	"\aUNKNOWN\x10\x00\x12\x12\n" +
+	"\x0eACTIVE_WORKING\x10\x01\x12\x12\n" +
+	"\x0eACTIVE_STANDBY\x10\x02\x12\f\n" +
+	"\bINACTIVE\x10\x03\x12\f\n" +
+	"\bDISABLED\x10\x04\"\x86\x01\n" +
+	"\x1dInterfaceOnuSerialNumberOnuId\x12N\n" +
+	"\x12intf_id_serial_num\x18\x01 \x01(\v2!.openolt.InterfaceOnuSerialNumberR\x0fintfIdSerialNum\x12\x15\n" +
+	"\x06onu_id\x18\x02 \x01(\aR\x05onuId\"v\n" +
+	"\x18InterfaceOnuSerialNumber\x12\x17\n" +
+	"\aintf_id\x18\x01 \x01(\aR\x06intfId\x12A\n" +
+	"\x11onu_serial_number\x18\x02 \x01(\v2\x15.openolt.SerialNumberR\x0fonuSerialNumber\"\a\n" +
+	"\x05Empty*\x1d\n" +
+	"\n" +
+	"AlarmState\x12\a\n" +
+	"\x03OFF\x10\x00\x12\x06\n" +
+	"\x02ON\x10\x012\xa6\x1b\n" +
+	"\aOpenolt\x12D\n" +
+	"\n" +
+	"DisableOlt\x12\x0e.openolt.Empty\x1a\x0e.openolt.Empty\"\x16\x82\xd3\xe4\x93\x02\x10:\x01*\"\v/v1/Disable\x12F\n" +
+	"\vReenableOlt\x12\x0e.openolt.Empty\x1a\x0e.openolt.Empty\"\x17\x82\xd3\xe4\x93\x02\x11:\x01*\"\f/v1/Reenable\x12E\n" +
+	"\vActivateOnu\x12\f.openolt.Onu\x1a\x0e.openolt.Empty\"\x18\x82\xd3\xe4\x93\x02\x12:\x01*\"\r/v1/EnableOnu\x12H\n" +
+	"\rDeactivateOnu\x12\f.openolt.Onu\x1a\x0e.openolt.Empty\"\x19\x82\xd3\xe4\x93\x02\x13:\x01*\"\x0e/v1/DisableOnu\x12C\n" +
+	"\tDeleteOnu\x12\f.openolt.Onu\x1a\x0e.openolt.Empty\"\x18\x82\xd3\xe4\x93\x02\x12:\x01*\"\r/v1/DeleteOnu\x12I\n" +
+	"\n" +
+	"OmciMsgOut\x12\x10.openolt.OmciMsg\x1a\x0e.openolt.Empty\"\x19\x82\xd3\xe4\x93\x02\x13:\x01*\"\x0e/v1/OmciMsgOut\x12O\n" +
+	"\fOnuPacketOut\x12\x12.openolt.OnuPacket\x1a\x0e.openolt.Empty\"\x1b\x82\xd3\xe4\x93\x02\x15:\x01*\"\x10/v1/OnuPacketOut\x12X\n" +
+	"\x0fUplinkPacketOut\x12\x15.openolt.UplinkPacket\x1a\x0e.openolt.Empty\"\x1e\x82\xd3\xe4\x93\x02\x18:\x01*\"\x13/v1/UplinkPacketOut\x12@\n" +
+	"\aFlowAdd\x12\r.openolt.Flow\x1a\x0e.openolt.Empty\"\x16\x82\xd3\xe4\x93\x02\x10:\x01*\"\v/v1/FlowAdd\x12F\n" +
+	"\n" +
+	"FlowRemove\x12\r.openolt.Flow\x1a\x0e.openolt.Empty\"\x19\x82\xd3\xe4\x93\x02\x13:\x01*\"\x0e/v1/FlowRemove\x12S\n" +
+	"\x0eHeartbeatCheck\x12\x0e.openolt.Empty\x1a\x12.openolt.Heartbeat\"\x1d\x82\xd3\xe4\x93\x02\x17:\x01*\"\x12/v1/HeartbeatCheck\x12M\n" +
+	"\vEnablePonIf\x12\x12.openolt.Interface\x1a\x0e.openolt.Empty\"\x1a\x82\xd3\xe4\x93\x02\x14:\x01*\"\x0f/v1/EnablePonIf\x12O\n" +
+	"\fDisablePonIf\x12\x12.openolt.Interface\x1a\x0e.openolt.Empty\"\x1b\x82\xd3\xe4\x93\x02\x15:\x01*\"\x10/v1/DisablePonIf\x12R\n" +
+	"\rGetDeviceInfo\x12\x0e.openolt.Empty\x1a\x13.openolt.DeviceInfo\"\x1c\x82\xd3\xe4\x93\x02\x16:\x01*\"\x11/v1/GetDeviceInfo\x12?\n" +
+	"\x06Reboot\x12\x0e.openolt.Empty\x1a\x0e.openolt.Empty\"\x15\x82\xd3\xe4\x93\x02\x0f:\x01*\"\n" +
+	"/v1/Reboot\x12U\n" +
+	"\x11CollectStatistics\x12\x0e.openolt.Empty\x1a\x0e.openolt.Empty\" \x82\xd3\xe4\x93\x02\x1a:\x01*\"\x15/v1/CollectStatistics\x12Y\n" +
+	"\x10GetOnuStatistics\x12\f.openolt.Onu\x1a\x16.openolt.OnuStatistics\"\x1f\x82\xd3\xe4\x93\x02\x19:\x01*\"\x14/v1/GetOnuStatistics\x12k\n" +
+	"\x14GetGemPortStatistics\x12\x12.openolt.OnuPacket\x1a\x1a.openolt.GemPortStatistics\"#\x82\xd3\xe4\x93\x02\x1d:\x01*\"\x18/v1/GetGemPortStatistics\x12r\n" +
+	"\x17CreateTrafficSchedulers\x12\x1f.tech_profile.TrafficSchedulers\x1a\x0e.openolt.Empty\"&\x82\xd3\xe4\x93\x02 :\x01*\"\x1b/v1/CreateTrafficSchedulers\x12r\n" +
+	"\x17RemoveTrafficSchedulers\x12\x1f.tech_profile.TrafficSchedulers\x1a\x0e.openolt.Empty\"&\x82\xd3\xe4\x93\x02 :\x01*\"\x1b/v1/RemoveTrafficSchedulers\x12f\n" +
+	"\x13CreateTrafficQueues\x12\x1b.tech_profile.TrafficQueues\x1a\x0e.openolt.Empty\"\"\x82\xd3\xe4\x93\x02\x1c:\x01*\"\x17/v1/CreateTrafficQueues\x12f\n" +
+	"\x13RemoveTrafficQueues\x12\x1b.tech_profile.TrafficQueues\x1a\x0e.openolt.Empty\"\"\x82\xd3\xe4\x93\x02\x1c:\x01*\"\x17/v1/RemoveTrafficQueues\x12;\n" +
+	"\x10EnableIndication\x12\x0e.openolt.Empty\x1a\x13.openolt.Indication\"\x000\x01\x12]\n" +
+	"\x15PerformGroupOperation\x12\x0e.openolt.Group\x1a\x0e.openolt.Empty\"$\x82\xd3\xe4\x93\x02\x1e:\x01*\"\x19/v1/PerformGroupOperation\x12I\n" +
+	"\vDeleteGroup\x12\x0e.openolt.Group\x1a\x0e.openolt.Empty\"\x1a\x82\xd3\xe4\x93\x02\x14:\x01*\"\x0f/v1/DeleteGroup\x12W\n" +
+	"\vGetExtValue\x12\x13.openolt.ValueParam\x1a\x17.extension.ReturnValues\"\x1a\x82\xd3\xe4\x93\x02\x14:\x01*\"\x0f/v1/GetExtValue\x12]\n" +
+	"\x11OnuItuPonAlarmSet\x12\x16.config.OnuItuPonAlarm\x1a\x0e.openolt.Empty\" \x82\xd3\xe4\x93\x02\x1a:\x01*\"\x15/v1/OnuItuPonAlarmSet\x12p\n" +
+	"\x19GetLogicalOnuDistanceZero\x12\f.openolt.Onu\x1a\x1b.openolt.OnuLogicalDistance\"(\x82\xd3\xe4\x93\x02\":\x01*\"\x1d/v1/GetLogicalOnuDistanceZero\x12h\n" +
+	"\x15GetLogicalOnuDistance\x12\f.openolt.Onu\x1a\x1b.openolt.OnuLogicalDistance\"$\x82\xd3\xe4\x93\x02\x1e:\x01*\"\x19/v1/GetLogicalOnuDistance\x12T\n" +
+	"\rGetPonRxPower\x12\f.openolt.Onu\x1a\x17.openolt.PonRxPowerData\"\x1c\x82\xd3\xe4\x93\x02\x16:\x01*\"\x11/v1/GetPonRxPower\x12G\n" +
+	"\n" +
+	"GetOnuInfo\x12\f.openolt.Onu\x1a\x10.openolt.OnuInfo\"\x19\x82\xd3\xe4\x93\x02\x13:\x01*\"\x0e/v1/GetOnuInfo\x12`\n" +
+	"\x13GetPonInterfaceInfo\x12\x12.openolt.Interface\x1a\x14.openolt.PonIntfInfo\"\x1f\x82\xd3\xe4\x93\x02\x19:\x01*\"\x14/v1/GetInterfaceInfo\x12n\n" +
+	"\x14GetAllocIdStatistics\x12\x12.openolt.OnuPacket\x1a\x1d.openolt.OnuAllocIdStatistics\"#\x82\xd3\xe4\x93\x02\x1d:\x01*\"\x18/v1/GetAllocIdStatistics\x12g\n" +
+	"\x14GetPonPortStatistics\x12\x12.openolt.Interface\x1a\x16.common.PortStatistics\"#\x82\xd3\xe4\x93\x02\x1d:\x01*\"\x18/v1/GetPonPortStatistics\x12g\n" +
+	"\x14GetNniPortStatistics\x12\x12.openolt.Interface\x1a\x16.common.PortStatistics\"#\x82\xd3\xe4\x93\x02\x1d:\x01*\"\x18/v1/GetNniPortStatistics\x12\\\n" +
+	"\n" +
+	"DisableOnu\x12&.openolt.InterfaceOnuSerialNumberOnuId\x1a\x0e.openolt.Empty\"\x16\x82\xd3\xe4\x93\x02\x10\"\x0e/v1/DisableOnu\x12Z\n" +
+	"\tEnableOnu\x12&.openolt.InterfaceOnuSerialNumberOnuId\x1a\x0e.openolt.Empty\"\x15\x82\xd3\xe4\x93\x02\x0f\"\r/v1/EnableOnu\x12o\n" +
+	"\x16DisableOnuSerialNumber\x12!.openolt.InterfaceOnuSerialNumber\x1a\x0e.openolt.Empty\"\"\x82\xd3\xe4\x93\x02\x1c\"\x1a/v1/DisableOnuSerialNumber\x12m\n" +
+	"\x15EnableOnuSerialNumber\x12!.openolt.InterfaceOnuSerialNumber\x1a\x0e.openolt.Empty\"!\x82\xd3\xe4\x93\x02\x1b\"\x19/v1/EnableOnuSerialNumberB]\n" +
+	"\x1borg.opencord.voltha.openoltB\rVolthaOpenOLTZ/github.com/opencord/voltha-protos/v5/go/openoltb\x06proto3"
+
+var (
+	file_voltha_protos_openolt_proto_rawDescOnce sync.Once
+	file_voltha_protos_openolt_proto_rawDescData []byte
+)
+
+func file_voltha_protos_openolt_proto_rawDescGZIP() []byte {
+	file_voltha_protos_openolt_proto_rawDescOnce.Do(func() {
+		file_voltha_protos_openolt_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_voltha_protos_openolt_proto_rawDesc), len(file_voltha_protos_openolt_proto_rawDesc)))
+	})
+	return file_voltha_protos_openolt_proto_rawDescData
+}
+
+var file_voltha_protos_openolt_proto_enumTypes = make([]protoimpl.EnumInfo, 10)
+var file_voltha_protos_openolt_proto_msgTypes = make([]protoimpl.MessageInfo, 63)
+var file_voltha_protos_openolt_proto_goTypes = []any{
+	(AlarmState)(0),                                         // 0: openolt.AlarmState
+	(OnuIndication_ActivationFailReason)(0),                 // 1: openolt.OnuIndication.ActivationFailReason
+	(IntfOperIndication_PONResourceRanges_Pool_PoolType)(0), // 2: openolt.IntfOperIndication.PONResourceRanges.Pool.PoolType
+	(DeviceInfo_DeviceResourceRanges_Pool_PoolType)(0),      // 3: openolt.DeviceInfo.DeviceResourceRanges.Pool.PoolType
+	(DeviceInfo_DeviceResourceRanges_Pool_SharingType)(0),   // 4: openolt.DeviceInfo.DeviceResourceRanges.Pool.SharingType
+	(GroupMember_InterfaceType)(0),                          // 5: openolt.GroupMember.InterfaceType
+	(Group_GroupMembersCommand)(0),                          // 6: openolt.Group.GroupMembersCommand
+	(PonRxPowerData_RssiMeasurementFailReason)(0),           // 7: openolt.PonRxPowerData.RssiMeasurementFailReason
+	(OnuInfo_OnuState)(0),                                   // 8: openolt.OnuInfo.OnuState
+	(PonIntfInfo_PonIntfState)(0),                           // 9: openolt.PonIntfInfo.PonIntfState
+	(*Indication)(nil),                                      // 10: openolt.Indication
+	(*AlarmIndication)(nil),                                 // 11: openolt.AlarmIndication
+	(*OltIndication)(nil),                                   // 12: openolt.OltIndication
+	(*IntfIndication)(nil),                                  // 13: openolt.IntfIndication
+	(*OnuDiscIndication)(nil),                               // 14: openolt.OnuDiscIndication
+	(*OnuIndication)(nil),                                   // 15: openolt.OnuIndication
+	(*OnuDisabledIndication)(nil),                           // 16: openolt.OnuDisabledIndication
+	(*OnuEnabledIndication)(nil),                            // 17: openolt.OnuEnabledIndication
+	(*IntfOperIndication)(nil),                              // 18: openolt.IntfOperIndication
+	(*OmciIndication)(nil),                                  // 19: openolt.OmciIndication
+	(*PacketIndication)(nil),                                // 20: openolt.PacketIndication
+	(*Interface)(nil),                                       // 21: openolt.Interface
+	(*Heartbeat)(nil),                                       // 22: openolt.Heartbeat
+	(*Onu)(nil),                                             // 23: openolt.Onu
+	(*OnuLogicalDistance)(nil),                              // 24: openolt.OnuLogicalDistance
+	(*OmciMsg)(nil),                                         // 25: openolt.OmciMsg
+	(*OnuPacket)(nil),                                       // 26: openolt.OnuPacket
+	(*UplinkPacket)(nil),                                    // 27: openolt.UplinkPacket
+	(*DeviceInfo)(nil),                                      // 28: openolt.DeviceInfo
+	(*Classifier)(nil),                                      // 29: openolt.Classifier
+	(*ActionCmd)(nil),                                       // 30: openolt.ActionCmd
+	(*Action)(nil),                                          // 31: openolt.Action
+	(*Flow)(nil),                                            // 32: openolt.Flow
+	(*SerialNumber)(nil),                                    // 33: openolt.SerialNumber
+	(*OnuStatistics)(nil),                                   // 34: openolt.OnuStatistics
+	(*GemPortStatistics)(nil),                               // 35: openolt.GemPortStatistics
+	(*FlowStatistics)(nil),                                  // 36: openolt.FlowStatistics
+	(*LosIndication)(nil),                                   // 37: openolt.LosIndication
+	(*DyingGaspIndication)(nil),                             // 38: openolt.DyingGaspIndication
+	(*OnuAlarmIndication)(nil),                              // 39: openolt.OnuAlarmIndication
+	(*OnuStartupFailureIndication)(nil),                     // 40: openolt.OnuStartupFailureIndication
+	(*OnuSignalDegradeIndication)(nil),                      // 41: openolt.OnuSignalDegradeIndication
+	(*OnuDriftOfWindowIndication)(nil),                      // 42: openolt.OnuDriftOfWindowIndication
+	(*OnuLossOfOmciChannelIndication)(nil),                  // 43: openolt.OnuLossOfOmciChannelIndication
+	(*OnuSignalsFailureIndication)(nil),                     // 44: openolt.OnuSignalsFailureIndication
+	(*OnuTransmissionInterferenceWarning)(nil),              // 45: openolt.OnuTransmissionInterferenceWarning
+	(*OnuActivationFailureIndication)(nil),                  // 46: openolt.OnuActivationFailureIndication
+	(*OnuLossOfKeySyncFailureIndication)(nil),               // 47: openolt.OnuLossOfKeySyncFailureIndication
+	(*RdiErrorIndication)(nil),                              // 48: openolt.RdiErrorIndication
+	(*OnuItuPonStatsIndication)(nil),                        // 49: openolt.OnuItuPonStatsIndication
+	(*OnuProcessingErrorIndication)(nil),                    // 50: openolt.OnuProcessingErrorIndication
+	(*OnuDeactivationFailureIndication)(nil),                // 51: openolt.OnuDeactivationFailureIndication
+	(*OnuRemoteDefectIndication)(nil),                       // 52: openolt.OnuRemoteDefectIndication
+	(*OnuLossOfGEMChannelDelineationIndication)(nil),        // 53: openolt.OnuLossOfGEMChannelDelineationIndication
+	(*OnuPhysicalEquipmentErrorIndication)(nil),             // 54: openolt.OnuPhysicalEquipmentErrorIndication
+	(*OnuLossOfAcknowledgementIndication)(nil),              // 55: openolt.OnuLossOfAcknowledgementIndication
+	(*OnuDifferentialReachExceededIndication)(nil),          // 56: openolt.OnuDifferentialReachExceededIndication
+	(*GroupMember)(nil),                                     // 57: openolt.GroupMember
+	(*Group)(nil),                                           // 58: openolt.Group
+	(*ValueParam)(nil),                                      // 59: openolt.ValueParam
+	(*PonRxPowerData)(nil),                                  // 60: openolt.PonRxPowerData
+	(*OnuAllocIdStatistics)(nil),                            // 61: openolt.OnuAllocIdStatistics
+	(*OnuInfo)(nil),                                         // 62: openolt.OnuInfo
+	(*PonIntfInfo)(nil),                                     // 63: openolt.PonIntfInfo
+	(*InterfaceOnuSerialNumberOnuId)(nil),                   // 64: openolt.InterfaceOnuSerialNumberOnuId
+	(*InterfaceOnuSerialNumber)(nil),                        // 65: openolt.InterfaceOnuSerialNumber
+	(*Empty)(nil),                                           // 66: openolt.Empty
+	(*IntfOperIndication_PONResourceRanges)(nil),            // 67: openolt.IntfOperIndication.PONResourceRanges
+	(*IntfOperIndication_PONResourceRanges_Pool)(nil),       // 68: openolt.IntfOperIndication.PONResourceRanges.Pool
+	(*DeviceInfo_DeviceResourceRanges)(nil),                 // 69: openolt.DeviceInfo.DeviceResourceRanges
+	(*DeviceInfo_DeviceResourceRanges_Pool)(nil),            // 70: openolt.DeviceInfo.DeviceResourceRanges.Pool
+	nil,                                    // 71: openolt.Flow.PbitToGemportEntry
+	nil,                                    // 72: openolt.Flow.GemportToAesEntry
+	(*common.PortStatistics)(nil),          // 73: common.PortStatistics
+	(extension.ValueType_Type)(0),          // 74: extension.ValueType.Type
+	(*tech_profile.TrafficSchedulers)(nil), // 75: tech_profile.TrafficSchedulers
+	(*tech_profile.TrafficQueues)(nil),     // 76: tech_profile.TrafficQueues
+	(*config.OnuItuPonAlarm)(nil),          // 77: config.OnuItuPonAlarm
+	(*extension.ReturnValues)(nil),         // 78: extension.ReturnValues
+}
+var file_voltha_protos_openolt_proto_depIdxs = []int32{
+	12,  // 0: openolt.Indication.olt_ind:type_name -> openolt.OltIndication
+	13,  // 1: openolt.Indication.intf_ind:type_name -> openolt.IntfIndication
+	18,  // 2: openolt.Indication.intf_oper_ind:type_name -> openolt.IntfOperIndication
+	14,  // 3: openolt.Indication.onu_disc_ind:type_name -> openolt.OnuDiscIndication
+	15,  // 4: openolt.Indication.onu_ind:type_name -> openolt.OnuIndication
+	19,  // 5: openolt.Indication.omci_ind:type_name -> openolt.OmciIndication
+	20,  // 6: openolt.Indication.pkt_ind:type_name -> openolt.PacketIndication
+	73,  // 7: openolt.Indication.port_stats:type_name -> common.PortStatistics
+	36,  // 8: openolt.Indication.flow_stats:type_name -> openolt.FlowStatistics
+	11,  // 9: openolt.Indication.alarm_ind:type_name -> openolt.AlarmIndication
+	16,  // 10: openolt.Indication.onu_disabled_ind:type_name -> openolt.OnuDisabledIndication
+	17,  // 11: openolt.Indication.onu_enabled_ind:type_name -> openolt.OnuEnabledIndication
+	37,  // 12: openolt.AlarmIndication.los_ind:type_name -> openolt.LosIndication
+	38,  // 13: openolt.AlarmIndication.dying_gasp_ind:type_name -> openolt.DyingGaspIndication
+	39,  // 14: openolt.AlarmIndication.onu_alarm_ind:type_name -> openolt.OnuAlarmIndication
+	40,  // 15: openolt.AlarmIndication.onu_startup_fail_ind:type_name -> openolt.OnuStartupFailureIndication
+	41,  // 16: openolt.AlarmIndication.onu_signal_degrade_ind:type_name -> openolt.OnuSignalDegradeIndication
+	42,  // 17: openolt.AlarmIndication.onu_drift_of_window_ind:type_name -> openolt.OnuDriftOfWindowIndication
+	43,  // 18: openolt.AlarmIndication.onu_loss_omci_ind:type_name -> openolt.OnuLossOfOmciChannelIndication
+	44,  // 19: openolt.AlarmIndication.onu_signals_fail_ind:type_name -> openolt.OnuSignalsFailureIndication
+	45,  // 20: openolt.AlarmIndication.onu_tiwi_ind:type_name -> openolt.OnuTransmissionInterferenceWarning
+	46,  // 21: openolt.AlarmIndication.onu_activation_fail_ind:type_name -> openolt.OnuActivationFailureIndication
+	50,  // 22: openolt.AlarmIndication.onu_processing_error_ind:type_name -> openolt.OnuProcessingErrorIndication
+	47,  // 23: openolt.AlarmIndication.onu_loss_of_sync_fail_ind:type_name -> openolt.OnuLossOfKeySyncFailureIndication
+	49,  // 24: openolt.AlarmIndication.onu_itu_pon_stats_ind:type_name -> openolt.OnuItuPonStatsIndication
+	51,  // 25: openolt.AlarmIndication.onu_deactivation_failure_ind:type_name -> openolt.OnuDeactivationFailureIndication
+	52,  // 26: openolt.AlarmIndication.onu_remote_defect_ind:type_name -> openolt.OnuRemoteDefectIndication
+	53,  // 27: openolt.AlarmIndication.onu_loss_gem_delineation_ind:type_name -> openolt.OnuLossOfGEMChannelDelineationIndication
+	54,  // 28: openolt.AlarmIndication.onu_physical_equipment_error_ind:type_name -> openolt.OnuPhysicalEquipmentErrorIndication
+	55,  // 29: openolt.AlarmIndication.onu_loss_of_ack_ind:type_name -> openolt.OnuLossOfAcknowledgementIndication
+	56,  // 30: openolt.AlarmIndication.onu_diff_reach_exceeded_ind:type_name -> openolt.OnuDifferentialReachExceededIndication
+	33,  // 31: openolt.OnuDiscIndication.serial_number:type_name -> openolt.SerialNumber
+	33,  // 32: openolt.OnuIndication.serial_number:type_name -> openolt.SerialNumber
+	1,   // 33: openolt.OnuIndication.fail_reason:type_name -> openolt.OnuIndication.ActivationFailReason
+	33,  // 34: openolt.OnuDisabledIndication.serial_number:type_name -> openolt.SerialNumber
+	33,  // 35: openolt.OnuEnabledIndication.serial_number:type_name -> openolt.SerialNumber
+	67,  // 36: openolt.IntfOperIndication.ranges:type_name -> openolt.IntfOperIndication.PONResourceRanges
+	33,  // 37: openolt.Onu.serial_number:type_name -> openolt.SerialNumber
+	69,  // 38: openolt.DeviceInfo.ranges:type_name -> openolt.DeviceInfo.DeviceResourceRanges
+	30,  // 39: openolt.Action.cmd:type_name -> openolt.ActionCmd
+	29,  // 40: openolt.Flow.classifier:type_name -> openolt.Classifier
+	31,  // 41: openolt.Flow.action:type_name -> openolt.Action
+	71,  // 42: openolt.Flow.pbit_to_gemport:type_name -> openolt.Flow.PbitToGemportEntry
+	72,  // 43: openolt.Flow.gemport_to_aes:type_name -> openolt.Flow.GemportToAesEntry
+	48,  // 44: openolt.OnuItuPonStatsIndication.rdi_error_ind:type_name -> openolt.RdiErrorIndication
+	5,   // 45: openolt.GroupMember.interface_type:type_name -> openolt.GroupMember.InterfaceType
+	6,   // 46: openolt.Group.command:type_name -> openolt.Group.GroupMembersCommand
+	57,  // 47: openolt.Group.members:type_name -> openolt.GroupMember
+	31,  // 48: openolt.Group.action:type_name -> openolt.Action
+	23,  // 49: openolt.ValueParam.onu:type_name -> openolt.Onu
+	74,  // 50: openolt.ValueParam.value:type_name -> extension.ValueType.Type
+	7,   // 51: openolt.PonRxPowerData.fail_reason:type_name -> openolt.PonRxPowerData.RssiMeasurementFailReason
+	8,   // 52: openolt.OnuInfo.state:type_name -> openolt.OnuInfo.OnuState
+	0,   // 53: openolt.OnuInfo.losi:type_name -> openolt.AlarmState
+	0,   // 54: openolt.OnuInfo.lofi:type_name -> openolt.AlarmState
+	0,   // 55: openolt.OnuInfo.loami:type_name -> openolt.AlarmState
+	9,   // 56: openolt.PonIntfInfo.state:type_name -> openolt.PonIntfInfo.PonIntfState
+	0,   // 57: openolt.PonIntfInfo.los:type_name -> openolt.AlarmState
+	65,  // 58: openolt.InterfaceOnuSerialNumberOnuId.intf_id_serial_num:type_name -> openolt.InterfaceOnuSerialNumber
+	33,  // 59: openolt.InterfaceOnuSerialNumber.onu_serial_number:type_name -> openolt.SerialNumber
+	68,  // 60: openolt.IntfOperIndication.PONResourceRanges.pools:type_name -> openolt.IntfOperIndication.PONResourceRanges.Pool
+	2,   // 61: openolt.IntfOperIndication.PONResourceRanges.Pool.type:type_name -> openolt.IntfOperIndication.PONResourceRanges.Pool.PoolType
+	70,  // 62: openolt.DeviceInfo.DeviceResourceRanges.pools:type_name -> openolt.DeviceInfo.DeviceResourceRanges.Pool
+	3,   // 63: openolt.DeviceInfo.DeviceResourceRanges.Pool.type:type_name -> openolt.DeviceInfo.DeviceResourceRanges.Pool.PoolType
+	4,   // 64: openolt.DeviceInfo.DeviceResourceRanges.Pool.sharing:type_name -> openolt.DeviceInfo.DeviceResourceRanges.Pool.SharingType
+	66,  // 65: openolt.Openolt.DisableOlt:input_type -> openolt.Empty
+	66,  // 66: openolt.Openolt.ReenableOlt:input_type -> openolt.Empty
+	23,  // 67: openolt.Openolt.ActivateOnu:input_type -> openolt.Onu
+	23,  // 68: openolt.Openolt.DeactivateOnu:input_type -> openolt.Onu
+	23,  // 69: openolt.Openolt.DeleteOnu:input_type -> openolt.Onu
+	25,  // 70: openolt.Openolt.OmciMsgOut:input_type -> openolt.OmciMsg
+	26,  // 71: openolt.Openolt.OnuPacketOut:input_type -> openolt.OnuPacket
+	27,  // 72: openolt.Openolt.UplinkPacketOut:input_type -> openolt.UplinkPacket
+	32,  // 73: openolt.Openolt.FlowAdd:input_type -> openolt.Flow
+	32,  // 74: openolt.Openolt.FlowRemove:input_type -> openolt.Flow
+	66,  // 75: openolt.Openolt.HeartbeatCheck:input_type -> openolt.Empty
+	21,  // 76: openolt.Openolt.EnablePonIf:input_type -> openolt.Interface
+	21,  // 77: openolt.Openolt.DisablePonIf:input_type -> openolt.Interface
+	66,  // 78: openolt.Openolt.GetDeviceInfo:input_type -> openolt.Empty
+	66,  // 79: openolt.Openolt.Reboot:input_type -> openolt.Empty
+	66,  // 80: openolt.Openolt.CollectStatistics:input_type -> openolt.Empty
+	23,  // 81: openolt.Openolt.GetOnuStatistics:input_type -> openolt.Onu
+	26,  // 82: openolt.Openolt.GetGemPortStatistics:input_type -> openolt.OnuPacket
+	75,  // 83: openolt.Openolt.CreateTrafficSchedulers:input_type -> tech_profile.TrafficSchedulers
+	75,  // 84: openolt.Openolt.RemoveTrafficSchedulers:input_type -> tech_profile.TrafficSchedulers
+	76,  // 85: openolt.Openolt.CreateTrafficQueues:input_type -> tech_profile.TrafficQueues
+	76,  // 86: openolt.Openolt.RemoveTrafficQueues:input_type -> tech_profile.TrafficQueues
+	66,  // 87: openolt.Openolt.EnableIndication:input_type -> openolt.Empty
+	58,  // 88: openolt.Openolt.PerformGroupOperation:input_type -> openolt.Group
+	58,  // 89: openolt.Openolt.DeleteGroup:input_type -> openolt.Group
+	59,  // 90: openolt.Openolt.GetExtValue:input_type -> openolt.ValueParam
+	77,  // 91: openolt.Openolt.OnuItuPonAlarmSet:input_type -> config.OnuItuPonAlarm
+	23,  // 92: openolt.Openolt.GetLogicalOnuDistanceZero:input_type -> openolt.Onu
+	23,  // 93: openolt.Openolt.GetLogicalOnuDistance:input_type -> openolt.Onu
+	23,  // 94: openolt.Openolt.GetPonRxPower:input_type -> openolt.Onu
+	23,  // 95: openolt.Openolt.GetOnuInfo:input_type -> openolt.Onu
+	21,  // 96: openolt.Openolt.GetPonInterfaceInfo:input_type -> openolt.Interface
+	26,  // 97: openolt.Openolt.GetAllocIdStatistics:input_type -> openolt.OnuPacket
+	21,  // 98: openolt.Openolt.GetPonPortStatistics:input_type -> openolt.Interface
+	21,  // 99: openolt.Openolt.GetNniPortStatistics:input_type -> openolt.Interface
+	64,  // 100: openolt.Openolt.DisableOnu:input_type -> openolt.InterfaceOnuSerialNumberOnuId
+	64,  // 101: openolt.Openolt.EnableOnu:input_type -> openolt.InterfaceOnuSerialNumberOnuId
+	65,  // 102: openolt.Openolt.DisableOnuSerialNumber:input_type -> openolt.InterfaceOnuSerialNumber
+	65,  // 103: openolt.Openolt.EnableOnuSerialNumber:input_type -> openolt.InterfaceOnuSerialNumber
+	66,  // 104: openolt.Openolt.DisableOlt:output_type -> openolt.Empty
+	66,  // 105: openolt.Openolt.ReenableOlt:output_type -> openolt.Empty
+	66,  // 106: openolt.Openolt.ActivateOnu:output_type -> openolt.Empty
+	66,  // 107: openolt.Openolt.DeactivateOnu:output_type -> openolt.Empty
+	66,  // 108: openolt.Openolt.DeleteOnu:output_type -> openolt.Empty
+	66,  // 109: openolt.Openolt.OmciMsgOut:output_type -> openolt.Empty
+	66,  // 110: openolt.Openolt.OnuPacketOut:output_type -> openolt.Empty
+	66,  // 111: openolt.Openolt.UplinkPacketOut:output_type -> openolt.Empty
+	66,  // 112: openolt.Openolt.FlowAdd:output_type -> openolt.Empty
+	66,  // 113: openolt.Openolt.FlowRemove:output_type -> openolt.Empty
+	22,  // 114: openolt.Openolt.HeartbeatCheck:output_type -> openolt.Heartbeat
+	66,  // 115: openolt.Openolt.EnablePonIf:output_type -> openolt.Empty
+	66,  // 116: openolt.Openolt.DisablePonIf:output_type -> openolt.Empty
+	28,  // 117: openolt.Openolt.GetDeviceInfo:output_type -> openolt.DeviceInfo
+	66,  // 118: openolt.Openolt.Reboot:output_type -> openolt.Empty
+	66,  // 119: openolt.Openolt.CollectStatistics:output_type -> openolt.Empty
+	34,  // 120: openolt.Openolt.GetOnuStatistics:output_type -> openolt.OnuStatistics
+	35,  // 121: openolt.Openolt.GetGemPortStatistics:output_type -> openolt.GemPortStatistics
+	66,  // 122: openolt.Openolt.CreateTrafficSchedulers:output_type -> openolt.Empty
+	66,  // 123: openolt.Openolt.RemoveTrafficSchedulers:output_type -> openolt.Empty
+	66,  // 124: openolt.Openolt.CreateTrafficQueues:output_type -> openolt.Empty
+	66,  // 125: openolt.Openolt.RemoveTrafficQueues:output_type -> openolt.Empty
+	10,  // 126: openolt.Openolt.EnableIndication:output_type -> openolt.Indication
+	66,  // 127: openolt.Openolt.PerformGroupOperation:output_type -> openolt.Empty
+	66,  // 128: openolt.Openolt.DeleteGroup:output_type -> openolt.Empty
+	78,  // 129: openolt.Openolt.GetExtValue:output_type -> extension.ReturnValues
+	66,  // 130: openolt.Openolt.OnuItuPonAlarmSet:output_type -> openolt.Empty
+	24,  // 131: openolt.Openolt.GetLogicalOnuDistanceZero:output_type -> openolt.OnuLogicalDistance
+	24,  // 132: openolt.Openolt.GetLogicalOnuDistance:output_type -> openolt.OnuLogicalDistance
+	60,  // 133: openolt.Openolt.GetPonRxPower:output_type -> openolt.PonRxPowerData
+	62,  // 134: openolt.Openolt.GetOnuInfo:output_type -> openolt.OnuInfo
+	63,  // 135: openolt.Openolt.GetPonInterfaceInfo:output_type -> openolt.PonIntfInfo
+	61,  // 136: openolt.Openolt.GetAllocIdStatistics:output_type -> openolt.OnuAllocIdStatistics
+	73,  // 137: openolt.Openolt.GetPonPortStatistics:output_type -> common.PortStatistics
+	73,  // 138: openolt.Openolt.GetNniPortStatistics:output_type -> common.PortStatistics
+	66,  // 139: openolt.Openolt.DisableOnu:output_type -> openolt.Empty
+	66,  // 140: openolt.Openolt.EnableOnu:output_type -> openolt.Empty
+	66,  // 141: openolt.Openolt.DisableOnuSerialNumber:output_type -> openolt.Empty
+	66,  // 142: openolt.Openolt.EnableOnuSerialNumber:output_type -> openolt.Empty
+	104, // [104:143] is the sub-list for method output_type
+	65,  // [65:104] is the sub-list for method input_type
+	65,  // [65:65] is the sub-list for extension type_name
+	65,  // [65:65] is the sub-list for extension extendee
+	0,   // [0:65] is the sub-list for field type_name
+}
+
+func init() { file_voltha_protos_openolt_proto_init() }
+func file_voltha_protos_openolt_proto_init() {
+	if File_voltha_protos_openolt_proto != nil {
+		return
+	}
+	file_voltha_protos_openolt_proto_msgTypes[0].OneofWrappers = []any{
+		(*Indication_OltInd)(nil),
+		(*Indication_IntfInd)(nil),
+		(*Indication_IntfOperInd)(nil),
+		(*Indication_OnuDiscInd)(nil),
+		(*Indication_OnuInd)(nil),
+		(*Indication_OmciInd)(nil),
+		(*Indication_PktInd)(nil),
+		(*Indication_PortStats)(nil),
+		(*Indication_FlowStats)(nil),
+		(*Indication_AlarmInd)(nil),
+		(*Indication_OnuDisabledInd)(nil),
+		(*Indication_OnuEnabledInd)(nil),
+	}
+	file_voltha_protos_openolt_proto_msgTypes[1].OneofWrappers = []any{
 		(*AlarmIndication_LosInd)(nil),
 		(*AlarmIndication_DyingGaspInd)(nil),
 		(*AlarmIndication_OnuAlarmInd)(nil),
@@ -900,5996 +6270,25 @@
 		(*AlarmIndication_OnuLossOfAckInd)(nil),
 		(*AlarmIndication_OnuDiffReachExceededInd)(nil),
 	}
-}
-
-type OltIndication struct {
-	OperState            string   `protobuf:"bytes,1,opt,name=oper_state,json=operState,proto3" json:"oper_state,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OltIndication) Reset()         { *m = OltIndication{} }
-func (m *OltIndication) String() string { return proto.CompactTextString(m) }
-func (*OltIndication) ProtoMessage()    {}
-func (*OltIndication) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{2}
-}
-
-func (m *OltIndication) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OltIndication.Unmarshal(m, b)
-}
-func (m *OltIndication) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OltIndication.Marshal(b, m, deterministic)
-}
-func (m *OltIndication) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OltIndication.Merge(m, src)
-}
-func (m *OltIndication) XXX_Size() int {
-	return xxx_messageInfo_OltIndication.Size(m)
-}
-func (m *OltIndication) XXX_DiscardUnknown() {
-	xxx_messageInfo_OltIndication.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OltIndication proto.InternalMessageInfo
-
-func (m *OltIndication) GetOperState() string {
-	if m != nil {
-		return m.OperState
-	}
-	return ""
-}
-
-type IntfIndication struct {
-	IntfId               uint32   `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
-	OperState            string   `protobuf:"bytes,2,opt,name=oper_state,json=operState,proto3" json:"oper_state,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *IntfIndication) Reset()         { *m = IntfIndication{} }
-func (m *IntfIndication) String() string { return proto.CompactTextString(m) }
-func (*IntfIndication) ProtoMessage()    {}
-func (*IntfIndication) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{3}
-}
-
-func (m *IntfIndication) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_IntfIndication.Unmarshal(m, b)
-}
-func (m *IntfIndication) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_IntfIndication.Marshal(b, m, deterministic)
-}
-func (m *IntfIndication) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_IntfIndication.Merge(m, src)
-}
-func (m *IntfIndication) XXX_Size() int {
-	return xxx_messageInfo_IntfIndication.Size(m)
-}
-func (m *IntfIndication) XXX_DiscardUnknown() {
-	xxx_messageInfo_IntfIndication.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_IntfIndication proto.InternalMessageInfo
-
-func (m *IntfIndication) GetIntfId() uint32 {
-	if m != nil {
-		return m.IntfId
-	}
-	return 0
-}
-
-func (m *IntfIndication) GetOperState() string {
-	if m != nil {
-		return m.OperState
-	}
-	return ""
-}
-
-type OnuDiscIndication struct {
-	IntfId               uint32        `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
-	SerialNumber         *SerialNumber `protobuf:"bytes,2,opt,name=serial_number,json=serialNumber,proto3" json:"serial_number,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
-	XXX_unrecognized     []byte        `json:"-"`
-	XXX_sizecache        int32         `json:"-"`
-}
-
-func (m *OnuDiscIndication) Reset()         { *m = OnuDiscIndication{} }
-func (m *OnuDiscIndication) String() string { return proto.CompactTextString(m) }
-func (*OnuDiscIndication) ProtoMessage()    {}
-func (*OnuDiscIndication) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{4}
-}
-
-func (m *OnuDiscIndication) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OnuDiscIndication.Unmarshal(m, b)
-}
-func (m *OnuDiscIndication) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OnuDiscIndication.Marshal(b, m, deterministic)
-}
-func (m *OnuDiscIndication) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OnuDiscIndication.Merge(m, src)
-}
-func (m *OnuDiscIndication) XXX_Size() int {
-	return xxx_messageInfo_OnuDiscIndication.Size(m)
-}
-func (m *OnuDiscIndication) XXX_DiscardUnknown() {
-	xxx_messageInfo_OnuDiscIndication.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OnuDiscIndication proto.InternalMessageInfo
-
-func (m *OnuDiscIndication) GetIntfId() uint32 {
-	if m != nil {
-		return m.IntfId
-	}
-	return 0
-}
-
-func (m *OnuDiscIndication) GetSerialNumber() *SerialNumber {
-	if m != nil {
-		return m.SerialNumber
-	}
-	return nil
-}
-
-type OnuIndication struct {
-	IntfId               uint32                             `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
-	OnuId                uint32                             `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
-	OperState            string                             `protobuf:"bytes,3,opt,name=oper_state,json=operState,proto3" json:"oper_state,omitempty"`
-	AdminState           string                             `protobuf:"bytes,5,opt,name=admin_state,json=adminState,proto3" json:"admin_state,omitempty"`
-	SerialNumber         *SerialNumber                      `protobuf:"bytes,4,opt,name=serial_number,json=serialNumber,proto3" json:"serial_number,omitempty"`
-	FailReason           OnuIndication_ActivationFailReason `protobuf:"varint,6,opt,name=fail_reason,json=failReason,proto3,enum=openolt.OnuIndication_ActivationFailReason" json:"fail_reason,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                           `json:"-"`
-	XXX_unrecognized     []byte                             `json:"-"`
-	XXX_sizecache        int32                              `json:"-"`
-}
-
-func (m *OnuIndication) Reset()         { *m = OnuIndication{} }
-func (m *OnuIndication) String() string { return proto.CompactTextString(m) }
-func (*OnuIndication) ProtoMessage()    {}
-func (*OnuIndication) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{5}
-}
-
-func (m *OnuIndication) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OnuIndication.Unmarshal(m, b)
-}
-func (m *OnuIndication) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OnuIndication.Marshal(b, m, deterministic)
-}
-func (m *OnuIndication) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OnuIndication.Merge(m, src)
-}
-func (m *OnuIndication) XXX_Size() int {
-	return xxx_messageInfo_OnuIndication.Size(m)
-}
-func (m *OnuIndication) XXX_DiscardUnknown() {
-	xxx_messageInfo_OnuIndication.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OnuIndication proto.InternalMessageInfo
-
-func (m *OnuIndication) GetIntfId() uint32 {
-	if m != nil {
-		return m.IntfId
-	}
-	return 0
-}
-
-func (m *OnuIndication) GetOnuId() uint32 {
-	if m != nil {
-		return m.OnuId
-	}
-	return 0
-}
-
-func (m *OnuIndication) GetOperState() string {
-	if m != nil {
-		return m.OperState
-	}
-	return ""
-}
-
-func (m *OnuIndication) GetAdminState() string {
-	if m != nil {
-		return m.AdminState
-	}
-	return ""
-}
-
-func (m *OnuIndication) GetSerialNumber() *SerialNumber {
-	if m != nil {
-		return m.SerialNumber
-	}
-	return nil
-}
-
-func (m *OnuIndication) GetFailReason() OnuIndication_ActivationFailReason {
-	if m != nil {
-		return m.FailReason
-	}
-	return OnuIndication_ONU_ACTIVATION_FAIL_REASON_NONE
-}
-
-type OnuDisabledIndication struct {
-	IntfId               uint32        `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
-	OnuId                uint32        `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
-	SerialNumber         *SerialNumber `protobuf:"bytes,4,opt,name=serial_number,json=serialNumber,proto3" json:"serial_number,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
-	XXX_unrecognized     []byte        `json:"-"`
-	XXX_sizecache        int32         `json:"-"`
-}
-
-func (m *OnuDisabledIndication) Reset()         { *m = OnuDisabledIndication{} }
-func (m *OnuDisabledIndication) String() string { return proto.CompactTextString(m) }
-func (*OnuDisabledIndication) ProtoMessage()    {}
-func (*OnuDisabledIndication) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{6}
-}
-
-func (m *OnuDisabledIndication) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OnuDisabledIndication.Unmarshal(m, b)
-}
-func (m *OnuDisabledIndication) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OnuDisabledIndication.Marshal(b, m, deterministic)
-}
-func (m *OnuDisabledIndication) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OnuDisabledIndication.Merge(m, src)
-}
-func (m *OnuDisabledIndication) XXX_Size() int {
-	return xxx_messageInfo_OnuDisabledIndication.Size(m)
-}
-func (m *OnuDisabledIndication) XXX_DiscardUnknown() {
-	xxx_messageInfo_OnuDisabledIndication.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OnuDisabledIndication proto.InternalMessageInfo
-
-func (m *OnuDisabledIndication) GetIntfId() uint32 {
-	if m != nil {
-		return m.IntfId
-	}
-	return 0
-}
-
-func (m *OnuDisabledIndication) GetOnuId() uint32 {
-	if m != nil {
-		return m.OnuId
-	}
-	return 0
-}
-
-func (m *OnuDisabledIndication) GetSerialNumber() *SerialNumber {
-	if m != nil {
-		return m.SerialNumber
-	}
-	return nil
-}
-
-type OnuEnabledIndication struct {
-	IntfId               uint32        `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
-	OnuId                uint32        `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
-	SerialNumber         *SerialNumber `protobuf:"bytes,4,opt,name=serial_number,json=serialNumber,proto3" json:"serial_number,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
-	XXX_unrecognized     []byte        `json:"-"`
-	XXX_sizecache        int32         `json:"-"`
-}
-
-func (m *OnuEnabledIndication) Reset()         { *m = OnuEnabledIndication{} }
-func (m *OnuEnabledIndication) String() string { return proto.CompactTextString(m) }
-func (*OnuEnabledIndication) ProtoMessage()    {}
-func (*OnuEnabledIndication) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{7}
-}
-
-func (m *OnuEnabledIndication) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OnuEnabledIndication.Unmarshal(m, b)
-}
-func (m *OnuEnabledIndication) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OnuEnabledIndication.Marshal(b, m, deterministic)
-}
-func (m *OnuEnabledIndication) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OnuEnabledIndication.Merge(m, src)
-}
-func (m *OnuEnabledIndication) XXX_Size() int {
-	return xxx_messageInfo_OnuEnabledIndication.Size(m)
-}
-func (m *OnuEnabledIndication) XXX_DiscardUnknown() {
-	xxx_messageInfo_OnuEnabledIndication.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OnuEnabledIndication proto.InternalMessageInfo
-
-func (m *OnuEnabledIndication) GetIntfId() uint32 {
-	if m != nil {
-		return m.IntfId
-	}
-	return 0
-}
-
-func (m *OnuEnabledIndication) GetOnuId() uint32 {
-	if m != nil {
-		return m.OnuId
-	}
-	return 0
-}
-
-func (m *OnuEnabledIndication) GetSerialNumber() *SerialNumber {
-	if m != nil {
-		return m.SerialNumber
-	}
-	return nil
-}
-
-type IntfOperIndication struct {
-	Type                 string                                `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
-	IntfId               uint32                                `protobuf:"fixed32,2,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
-	OperState            string                                `protobuf:"bytes,3,opt,name=oper_state,json=operState,proto3" json:"oper_state,omitempty"`
-	Speed                uint32                                `protobuf:"fixed32,4,opt,name=speed,proto3" json:"speed,omitempty"`
-	Technology           string                                `protobuf:"bytes,5,opt,name=technology,proto3" json:"technology,omitempty"`
-	Ranges               *IntfOperIndication_PONResourceRanges `protobuf:"bytes,6,opt,name=ranges,proto3" json:"ranges,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                              `json:"-"`
-	XXX_unrecognized     []byte                                `json:"-"`
-	XXX_sizecache        int32                                 `json:"-"`
-}
-
-func (m *IntfOperIndication) Reset()         { *m = IntfOperIndication{} }
-func (m *IntfOperIndication) String() string { return proto.CompactTextString(m) }
-func (*IntfOperIndication) ProtoMessage()    {}
-func (*IntfOperIndication) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{8}
-}
-
-func (m *IntfOperIndication) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_IntfOperIndication.Unmarshal(m, b)
-}
-func (m *IntfOperIndication) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_IntfOperIndication.Marshal(b, m, deterministic)
-}
-func (m *IntfOperIndication) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_IntfOperIndication.Merge(m, src)
-}
-func (m *IntfOperIndication) XXX_Size() int {
-	return xxx_messageInfo_IntfOperIndication.Size(m)
-}
-func (m *IntfOperIndication) XXX_DiscardUnknown() {
-	xxx_messageInfo_IntfOperIndication.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_IntfOperIndication proto.InternalMessageInfo
-
-func (m *IntfOperIndication) GetType() string {
-	if m != nil {
-		return m.Type
-	}
-	return ""
-}
-
-func (m *IntfOperIndication) GetIntfId() uint32 {
-	if m != nil {
-		return m.IntfId
-	}
-	return 0
-}
-
-func (m *IntfOperIndication) GetOperState() string {
-	if m != nil {
-		return m.OperState
-	}
-	return ""
-}
-
-func (m *IntfOperIndication) GetSpeed() uint32 {
-	if m != nil {
-		return m.Speed
-	}
-	return 0
-}
-
-func (m *IntfOperIndication) GetTechnology() string {
-	if m != nil {
-		return m.Technology
-	}
-	return ""
-}
-
-func (m *IntfOperIndication) GetRanges() *IntfOperIndication_PONResourceRanges {
-	if m != nil {
-		return m.Ranges
-	}
-	return nil
-}
-
-type IntfOperIndication_PONResourceRanges struct {
-	Pools                []*IntfOperIndication_PONResourceRanges_Pool `protobuf:"bytes,3,rep,name=pools,proto3" json:"pools,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                                     `json:"-"`
-	XXX_unrecognized     []byte                                       `json:"-"`
-	XXX_sizecache        int32                                        `json:"-"`
-}
-
-func (m *IntfOperIndication_PONResourceRanges) Reset()         { *m = IntfOperIndication_PONResourceRanges{} }
-func (m *IntfOperIndication_PONResourceRanges) String() string { return proto.CompactTextString(m) }
-func (*IntfOperIndication_PONResourceRanges) ProtoMessage()    {}
-func (*IntfOperIndication_PONResourceRanges) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{8, 0}
-}
-
-func (m *IntfOperIndication_PONResourceRanges) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_IntfOperIndication_PONResourceRanges.Unmarshal(m, b)
-}
-func (m *IntfOperIndication_PONResourceRanges) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_IntfOperIndication_PONResourceRanges.Marshal(b, m, deterministic)
-}
-func (m *IntfOperIndication_PONResourceRanges) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_IntfOperIndication_PONResourceRanges.Merge(m, src)
-}
-func (m *IntfOperIndication_PONResourceRanges) XXX_Size() int {
-	return xxx_messageInfo_IntfOperIndication_PONResourceRanges.Size(m)
-}
-func (m *IntfOperIndication_PONResourceRanges) XXX_DiscardUnknown() {
-	xxx_messageInfo_IntfOperIndication_PONResourceRanges.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_IntfOperIndication_PONResourceRanges proto.InternalMessageInfo
-
-func (m *IntfOperIndication_PONResourceRanges) GetPools() []*IntfOperIndication_PONResourceRanges_Pool {
-	if m != nil {
-		return m.Pools
-	}
-	return nil
-}
-
-type IntfOperIndication_PONResourceRanges_Pool struct {
-	Type                 IntfOperIndication_PONResourceRanges_Pool_PoolType `protobuf:"varint,1,opt,name=type,proto3,enum=openolt.IntfOperIndication_PONResourceRanges_Pool_PoolType" json:"type,omitempty"`
-	Start                uint32                                             `protobuf:"fixed32,3,opt,name=start,proto3" json:"start,omitempty"`
-	End                  uint32                                             `protobuf:"fixed32,4,opt,name=end,proto3" json:"end,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                                           `json:"-"`
-	XXX_unrecognized     []byte                                             `json:"-"`
-	XXX_sizecache        int32                                              `json:"-"`
-}
-
-func (m *IntfOperIndication_PONResourceRanges_Pool) Reset() {
-	*m = IntfOperIndication_PONResourceRanges_Pool{}
-}
-func (m *IntfOperIndication_PONResourceRanges_Pool) String() string {
-	return proto.CompactTextString(m)
-}
-func (*IntfOperIndication_PONResourceRanges_Pool) ProtoMessage() {}
-func (*IntfOperIndication_PONResourceRanges_Pool) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{8, 0, 0}
-}
-
-func (m *IntfOperIndication_PONResourceRanges_Pool) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_IntfOperIndication_PONResourceRanges_Pool.Unmarshal(m, b)
-}
-func (m *IntfOperIndication_PONResourceRanges_Pool) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_IntfOperIndication_PONResourceRanges_Pool.Marshal(b, m, deterministic)
-}
-func (m *IntfOperIndication_PONResourceRanges_Pool) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_IntfOperIndication_PONResourceRanges_Pool.Merge(m, src)
-}
-func (m *IntfOperIndication_PONResourceRanges_Pool) XXX_Size() int {
-	return xxx_messageInfo_IntfOperIndication_PONResourceRanges_Pool.Size(m)
-}
-func (m *IntfOperIndication_PONResourceRanges_Pool) XXX_DiscardUnknown() {
-	xxx_messageInfo_IntfOperIndication_PONResourceRanges_Pool.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_IntfOperIndication_PONResourceRanges_Pool proto.InternalMessageInfo
-
-func (m *IntfOperIndication_PONResourceRanges_Pool) GetType() IntfOperIndication_PONResourceRanges_Pool_PoolType {
-	if m != nil {
-		return m.Type
-	}
-	return IntfOperIndication_PONResourceRanges_Pool_ONU_ID
-}
-
-func (m *IntfOperIndication_PONResourceRanges_Pool) GetStart() uint32 {
-	if m != nil {
-		return m.Start
-	}
-	return 0
-}
-
-func (m *IntfOperIndication_PONResourceRanges_Pool) GetEnd() uint32 {
-	if m != nil {
-		return m.End
-	}
-	return 0
-}
-
-type OmciIndication struct {
-	IntfId               uint32   `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
-	OnuId                uint32   `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
-	Pkt                  []byte   `protobuf:"bytes,3,opt,name=pkt,proto3" json:"pkt,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OmciIndication) Reset()         { *m = OmciIndication{} }
-func (m *OmciIndication) String() string { return proto.CompactTextString(m) }
-func (*OmciIndication) ProtoMessage()    {}
-func (*OmciIndication) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{9}
-}
-
-func (m *OmciIndication) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OmciIndication.Unmarshal(m, b)
-}
-func (m *OmciIndication) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OmciIndication.Marshal(b, m, deterministic)
-}
-func (m *OmciIndication) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OmciIndication.Merge(m, src)
-}
-func (m *OmciIndication) XXX_Size() int {
-	return xxx_messageInfo_OmciIndication.Size(m)
-}
-func (m *OmciIndication) XXX_DiscardUnknown() {
-	xxx_messageInfo_OmciIndication.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OmciIndication proto.InternalMessageInfo
-
-func (m *OmciIndication) GetIntfId() uint32 {
-	if m != nil {
-		return m.IntfId
-	}
-	return 0
-}
-
-func (m *OmciIndication) GetOnuId() uint32 {
-	if m != nil {
-		return m.OnuId
-	}
-	return 0
-}
-
-func (m *OmciIndication) GetPkt() []byte {
-	if m != nil {
-		return m.Pkt
-	}
-	return nil
-}
-
-type PacketIndication struct {
-	IntfType             string   `protobuf:"bytes,5,opt,name=intf_type,json=intfType,proto3" json:"intf_type,omitempty"`
-	IntfId               uint32   `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
-	OnuId                uint32   `protobuf:"fixed32,8,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
-	UniId                uint32   `protobuf:"fixed32,9,opt,name=uni_id,json=uniId,proto3" json:"uni_id,omitempty"`
-	GemportId            uint32   `protobuf:"fixed32,2,opt,name=gemport_id,json=gemportId,proto3" json:"gemport_id,omitempty"`
-	FlowId               uint32   `protobuf:"fixed32,3,opt,name=flow_id,json=flowId,proto3" json:"flow_id,omitempty"`
-	PortNo               uint32   `protobuf:"fixed32,6,opt,name=port_no,json=portNo,proto3" json:"port_no,omitempty"`
-	Cookie               uint64   `protobuf:"fixed64,7,opt,name=cookie,proto3" json:"cookie,omitempty"`
-	Pkt                  []byte   `protobuf:"bytes,4,opt,name=pkt,proto3" json:"pkt,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *PacketIndication) Reset()         { *m = PacketIndication{} }
-func (m *PacketIndication) String() string { return proto.CompactTextString(m) }
-func (*PacketIndication) ProtoMessage()    {}
-func (*PacketIndication) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{10}
-}
-
-func (m *PacketIndication) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_PacketIndication.Unmarshal(m, b)
-}
-func (m *PacketIndication) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_PacketIndication.Marshal(b, m, deterministic)
-}
-func (m *PacketIndication) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_PacketIndication.Merge(m, src)
-}
-func (m *PacketIndication) XXX_Size() int {
-	return xxx_messageInfo_PacketIndication.Size(m)
-}
-func (m *PacketIndication) XXX_DiscardUnknown() {
-	xxx_messageInfo_PacketIndication.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_PacketIndication proto.InternalMessageInfo
-
-func (m *PacketIndication) GetIntfType() string {
-	if m != nil {
-		return m.IntfType
-	}
-	return ""
-}
-
-func (m *PacketIndication) GetIntfId() uint32 {
-	if m != nil {
-		return m.IntfId
-	}
-	return 0
-}
-
-func (m *PacketIndication) GetOnuId() uint32 {
-	if m != nil {
-		return m.OnuId
-	}
-	return 0
-}
-
-func (m *PacketIndication) GetUniId() uint32 {
-	if m != nil {
-		return m.UniId
-	}
-	return 0
-}
-
-func (m *PacketIndication) GetGemportId() uint32 {
-	if m != nil {
-		return m.GemportId
-	}
-	return 0
-}
-
-func (m *PacketIndication) GetFlowId() uint32 {
-	if m != nil {
-		return m.FlowId
-	}
-	return 0
-}
-
-func (m *PacketIndication) GetPortNo() uint32 {
-	if m != nil {
-		return m.PortNo
-	}
-	return 0
-}
-
-func (m *PacketIndication) GetCookie() uint64 {
-	if m != nil {
-		return m.Cookie
-	}
-	return 0
-}
-
-func (m *PacketIndication) GetPkt() []byte {
-	if m != nil {
-		return m.Pkt
-	}
-	return nil
-}
-
-type Interface struct {
-	IntfId               uint32   `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
-	IntfType             uint32   `protobuf:"fixed32,2,opt,name=intf_type,json=intfType,proto3" json:"intf_type,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *Interface) Reset()         { *m = Interface{} }
-func (m *Interface) String() string { return proto.CompactTextString(m) }
-func (*Interface) ProtoMessage()    {}
-func (*Interface) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{11}
-}
-
-func (m *Interface) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_Interface.Unmarshal(m, b)
-}
-func (m *Interface) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_Interface.Marshal(b, m, deterministic)
-}
-func (m *Interface) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Interface.Merge(m, src)
-}
-func (m *Interface) XXX_Size() int {
-	return xxx_messageInfo_Interface.Size(m)
-}
-func (m *Interface) XXX_DiscardUnknown() {
-	xxx_messageInfo_Interface.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_Interface proto.InternalMessageInfo
-
-func (m *Interface) GetIntfId() uint32 {
-	if m != nil {
-		return m.IntfId
-	}
-	return 0
-}
-
-func (m *Interface) GetIntfType() uint32 {
-	if m != nil {
-		return m.IntfType
-	}
-	return 0
-}
-
-type Heartbeat struct {
-	HeartbeatSignature   uint32   `protobuf:"fixed32,1,opt,name=heartbeat_signature,json=heartbeatSignature,proto3" json:"heartbeat_signature,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *Heartbeat) Reset()         { *m = Heartbeat{} }
-func (m *Heartbeat) String() string { return proto.CompactTextString(m) }
-func (*Heartbeat) ProtoMessage()    {}
-func (*Heartbeat) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{12}
-}
-
-func (m *Heartbeat) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_Heartbeat.Unmarshal(m, b)
-}
-func (m *Heartbeat) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_Heartbeat.Marshal(b, m, deterministic)
-}
-func (m *Heartbeat) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Heartbeat.Merge(m, src)
-}
-func (m *Heartbeat) XXX_Size() int {
-	return xxx_messageInfo_Heartbeat.Size(m)
-}
-func (m *Heartbeat) XXX_DiscardUnknown() {
-	xxx_messageInfo_Heartbeat.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_Heartbeat proto.InternalMessageInfo
-
-func (m *Heartbeat) GetHeartbeatSignature() uint32 {
-	if m != nil {
-		return m.HeartbeatSignature
-	}
-	return 0
-}
-
-type Onu struct {
-	IntfId               uint32        `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
-	OnuId                uint32        `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
-	SerialNumber         *SerialNumber `protobuf:"bytes,3,opt,name=serial_number,json=serialNumber,proto3" json:"serial_number,omitempty"`
-	Pir                  uint32        `protobuf:"fixed32,4,opt,name=pir,proto3" json:"pir,omitempty"`
-	OmccEncryption       bool          `protobuf:"varint,5,opt,name=omcc_encryption,json=omccEncryption,proto3" json:"omcc_encryption,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
-	XXX_unrecognized     []byte        `json:"-"`
-	XXX_sizecache        int32         `json:"-"`
-}
-
-func (m *Onu) Reset()         { *m = Onu{} }
-func (m *Onu) String() string { return proto.CompactTextString(m) }
-func (*Onu) ProtoMessage()    {}
-func (*Onu) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{13}
-}
-
-func (m *Onu) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_Onu.Unmarshal(m, b)
-}
-func (m *Onu) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_Onu.Marshal(b, m, deterministic)
-}
-func (m *Onu) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Onu.Merge(m, src)
-}
-func (m *Onu) XXX_Size() int {
-	return xxx_messageInfo_Onu.Size(m)
-}
-func (m *Onu) XXX_DiscardUnknown() {
-	xxx_messageInfo_Onu.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_Onu proto.InternalMessageInfo
-
-func (m *Onu) GetIntfId() uint32 {
-	if m != nil {
-		return m.IntfId
-	}
-	return 0
-}
-
-func (m *Onu) GetOnuId() uint32 {
-	if m != nil {
-		return m.OnuId
-	}
-	return 0
-}
-
-func (m *Onu) GetSerialNumber() *SerialNumber {
-	if m != nil {
-		return m.SerialNumber
-	}
-	return nil
-}
-
-func (m *Onu) GetPir() uint32 {
-	if m != nil {
-		return m.Pir
-	}
-	return 0
-}
-
-func (m *Onu) GetOmccEncryption() bool {
-	if m != nil {
-		return m.OmccEncryption
-	}
-	return false
-}
-
-type OnuLogicalDistance struct {
-	IntfId                 uint32   `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
-	OnuId                  uint32   `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
-	LogicalOnuDistanceZero uint32   `protobuf:"fixed32,3,opt,name=logical_onu_distance_zero,json=logicalOnuDistanceZero,proto3" json:"logical_onu_distance_zero,omitempty"`
-	LogicalOnuDistance     uint32   `protobuf:"fixed32,4,opt,name=logical_onu_distance,json=logicalOnuDistance,proto3" json:"logical_onu_distance,omitempty"`
-	XXX_NoUnkeyedLiteral   struct{} `json:"-"`
-	XXX_unrecognized       []byte   `json:"-"`
-	XXX_sizecache          int32    `json:"-"`
-}
-
-func (m *OnuLogicalDistance) Reset()         { *m = OnuLogicalDistance{} }
-func (m *OnuLogicalDistance) String() string { return proto.CompactTextString(m) }
-func (*OnuLogicalDistance) ProtoMessage()    {}
-func (*OnuLogicalDistance) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{14}
-}
-
-func (m *OnuLogicalDistance) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OnuLogicalDistance.Unmarshal(m, b)
-}
-func (m *OnuLogicalDistance) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OnuLogicalDistance.Marshal(b, m, deterministic)
-}
-func (m *OnuLogicalDistance) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OnuLogicalDistance.Merge(m, src)
-}
-func (m *OnuLogicalDistance) XXX_Size() int {
-	return xxx_messageInfo_OnuLogicalDistance.Size(m)
-}
-func (m *OnuLogicalDistance) XXX_DiscardUnknown() {
-	xxx_messageInfo_OnuLogicalDistance.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OnuLogicalDistance proto.InternalMessageInfo
-
-func (m *OnuLogicalDistance) GetIntfId() uint32 {
-	if m != nil {
-		return m.IntfId
-	}
-	return 0
-}
-
-func (m *OnuLogicalDistance) GetOnuId() uint32 {
-	if m != nil {
-		return m.OnuId
-	}
-	return 0
-}
-
-func (m *OnuLogicalDistance) GetLogicalOnuDistanceZero() uint32 {
-	if m != nil {
-		return m.LogicalOnuDistanceZero
-	}
-	return 0
-}
-
-func (m *OnuLogicalDistance) GetLogicalOnuDistance() uint32 {
-	if m != nil {
-		return m.LogicalOnuDistance
-	}
-	return 0
-}
-
-type OmciMsg struct {
-	IntfId               uint32   `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
-	OnuId                uint32   `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
-	Pkt                  []byte   `protobuf:"bytes,3,opt,name=pkt,proto3" json:"pkt,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OmciMsg) Reset()         { *m = OmciMsg{} }
-func (m *OmciMsg) String() string { return proto.CompactTextString(m) }
-func (*OmciMsg) ProtoMessage()    {}
-func (*OmciMsg) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{15}
-}
-
-func (m *OmciMsg) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OmciMsg.Unmarshal(m, b)
-}
-func (m *OmciMsg) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OmciMsg.Marshal(b, m, deterministic)
-}
-func (m *OmciMsg) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OmciMsg.Merge(m, src)
-}
-func (m *OmciMsg) XXX_Size() int {
-	return xxx_messageInfo_OmciMsg.Size(m)
-}
-func (m *OmciMsg) XXX_DiscardUnknown() {
-	xxx_messageInfo_OmciMsg.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OmciMsg proto.InternalMessageInfo
-
-func (m *OmciMsg) GetIntfId() uint32 {
-	if m != nil {
-		return m.IntfId
-	}
-	return 0
-}
-
-func (m *OmciMsg) GetOnuId() uint32 {
-	if m != nil {
-		return m.OnuId
-	}
-	return 0
-}
-
-func (m *OmciMsg) GetPkt() []byte {
-	if m != nil {
-		return m.Pkt
-	}
-	return nil
-}
-
-type OnuPacket struct {
-	IntfId               uint32   `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
-	OnuId                uint32   `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
-	PortNo               uint32   `protobuf:"fixed32,4,opt,name=port_no,json=portNo,proto3" json:"port_no,omitempty"`
-	GemportId            uint32   `protobuf:"fixed32,5,opt,name=gemport_id,json=gemportId,proto3" json:"gemport_id,omitempty"`
-	AllocId              uint32   `protobuf:"fixed32,6,opt,name=alloc_id,json=allocId,proto3" json:"alloc_id,omitempty"`
-	Pkt                  []byte   `protobuf:"bytes,3,opt,name=pkt,proto3" json:"pkt,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OnuPacket) Reset()         { *m = OnuPacket{} }
-func (m *OnuPacket) String() string { return proto.CompactTextString(m) }
-func (*OnuPacket) ProtoMessage()    {}
-func (*OnuPacket) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{16}
-}
-
-func (m *OnuPacket) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OnuPacket.Unmarshal(m, b)
-}
-func (m *OnuPacket) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OnuPacket.Marshal(b, m, deterministic)
-}
-func (m *OnuPacket) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OnuPacket.Merge(m, src)
-}
-func (m *OnuPacket) XXX_Size() int {
-	return xxx_messageInfo_OnuPacket.Size(m)
-}
-func (m *OnuPacket) XXX_DiscardUnknown() {
-	xxx_messageInfo_OnuPacket.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OnuPacket proto.InternalMessageInfo
-
-func (m *OnuPacket) GetIntfId() uint32 {
-	if m != nil {
-		return m.IntfId
-	}
-	return 0
-}
-
-func (m *OnuPacket) GetOnuId() uint32 {
-	if m != nil {
-		return m.OnuId
-	}
-	return 0
-}
-
-func (m *OnuPacket) GetPortNo() uint32 {
-	if m != nil {
-		return m.PortNo
-	}
-	return 0
-}
-
-func (m *OnuPacket) GetGemportId() uint32 {
-	if m != nil {
-		return m.GemportId
-	}
-	return 0
-}
-
-func (m *OnuPacket) GetAllocId() uint32 {
-	if m != nil {
-		return m.AllocId
-	}
-	return 0
-}
-
-func (m *OnuPacket) GetPkt() []byte {
-	if m != nil {
-		return m.Pkt
-	}
-	return nil
-}
-
-type UplinkPacket struct {
-	IntfId               uint32   `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
-	Pkt                  []byte   `protobuf:"bytes,2,opt,name=pkt,proto3" json:"pkt,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *UplinkPacket) Reset()         { *m = UplinkPacket{} }
-func (m *UplinkPacket) String() string { return proto.CompactTextString(m) }
-func (*UplinkPacket) ProtoMessage()    {}
-func (*UplinkPacket) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{17}
-}
-
-func (m *UplinkPacket) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_UplinkPacket.Unmarshal(m, b)
-}
-func (m *UplinkPacket) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_UplinkPacket.Marshal(b, m, deterministic)
-}
-func (m *UplinkPacket) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_UplinkPacket.Merge(m, src)
-}
-func (m *UplinkPacket) XXX_Size() int {
-	return xxx_messageInfo_UplinkPacket.Size(m)
-}
-func (m *UplinkPacket) XXX_DiscardUnknown() {
-	xxx_messageInfo_UplinkPacket.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_UplinkPacket proto.InternalMessageInfo
-
-func (m *UplinkPacket) GetIntfId() uint32 {
-	if m != nil {
-		return m.IntfId
-	}
-	return 0
-}
-
-func (m *UplinkPacket) GetPkt() []byte {
-	if m != nil {
-		return m.Pkt
-	}
-	return nil
-}
-
-type DeviceInfo struct {
-	Vendor              string `protobuf:"bytes,1,opt,name=vendor,proto3" json:"vendor,omitempty"`
-	Model               string `protobuf:"bytes,2,opt,name=model,proto3" json:"model,omitempty"`
-	HardwareVersion     string `protobuf:"bytes,3,opt,name=hardware_version,json=hardwareVersion,proto3" json:"hardware_version,omitempty"`
-	FirmwareVersion     string `protobuf:"bytes,4,opt,name=firmware_version,json=firmwareVersion,proto3" json:"firmware_version,omitempty"`
-	DeviceId            string `protobuf:"bytes,16,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
-	DeviceSerialNumber  string `protobuf:"bytes,17,opt,name=device_serial_number,json=deviceSerialNumber,proto3" json:"device_serial_number,omitempty"`
-	PreviouslyConnected bool   `protobuf:"varint,19,opt,name=previously_connected,json=previouslyConnected,proto3" json:"previously_connected,omitempty"`
-	// Total number of pon intf ports on the device
-	PonPorts uint32 `protobuf:"fixed32,12,opt,name=pon_ports,json=ponPorts,proto3" json:"pon_ports,omitempty"`
-	// Total number of nni intf ports on the device
-	NniPorts             uint32                             `protobuf:"fixed32,20,opt,name=nni_ports,json=nniPorts,proto3" json:"nni_ports,omitempty"`
-	Ranges               []*DeviceInfo_DeviceResourceRanges `protobuf:"bytes,15,rep,name=ranges,proto3" json:"ranges,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                           `json:"-"`
-	XXX_unrecognized     []byte                             `json:"-"`
-	XXX_sizecache        int32                              `json:"-"`
-}
-
-func (m *DeviceInfo) Reset()         { *m = DeviceInfo{} }
-func (m *DeviceInfo) String() string { return proto.CompactTextString(m) }
-func (*DeviceInfo) ProtoMessage()    {}
-func (*DeviceInfo) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{18}
-}
-
-func (m *DeviceInfo) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_DeviceInfo.Unmarshal(m, b)
-}
-func (m *DeviceInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_DeviceInfo.Marshal(b, m, deterministic)
-}
-func (m *DeviceInfo) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_DeviceInfo.Merge(m, src)
-}
-func (m *DeviceInfo) XXX_Size() int {
-	return xxx_messageInfo_DeviceInfo.Size(m)
-}
-func (m *DeviceInfo) XXX_DiscardUnknown() {
-	xxx_messageInfo_DeviceInfo.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_DeviceInfo proto.InternalMessageInfo
-
-func (m *DeviceInfo) GetVendor() string {
-	if m != nil {
-		return m.Vendor
-	}
-	return ""
-}
-
-func (m *DeviceInfo) GetModel() string {
-	if m != nil {
-		return m.Model
-	}
-	return ""
-}
-
-func (m *DeviceInfo) GetHardwareVersion() string {
-	if m != nil {
-		return m.HardwareVersion
-	}
-	return ""
-}
-
-func (m *DeviceInfo) GetFirmwareVersion() string {
-	if m != nil {
-		return m.FirmwareVersion
-	}
-	return ""
-}
-
-func (m *DeviceInfo) GetDeviceId() string {
-	if m != nil {
-		return m.DeviceId
-	}
-	return ""
-}
-
-func (m *DeviceInfo) GetDeviceSerialNumber() string {
-	if m != nil {
-		return m.DeviceSerialNumber
-	}
-	return ""
-}
-
-func (m *DeviceInfo) GetPreviouslyConnected() bool {
-	if m != nil {
-		return m.PreviouslyConnected
-	}
-	return false
-}
-
-func (m *DeviceInfo) GetPonPorts() uint32 {
-	if m != nil {
-		return m.PonPorts
-	}
-	return 0
-}
-
-func (m *DeviceInfo) GetNniPorts() uint32 {
-	if m != nil {
-		return m.NniPorts
-	}
-	return 0
-}
-
-func (m *DeviceInfo) GetRanges() []*DeviceInfo_DeviceResourceRanges {
-	if m != nil {
-		return m.Ranges
-	}
-	return nil
-}
-
-type DeviceInfo_DeviceResourceRanges struct {
-	// List of 0 or more intf_ids that use the same technology and pools.
-	// If 0 intf_ids supplied, it implies ALL interfaces
-	IntfIds []uint32 `protobuf:"fixed32,1,rep,packed,name=intf_ids,json=intfIds,proto3" json:"intf_ids,omitempty"`
-	// Technology profile for this pool
-	Technology           string                                  `protobuf:"bytes,2,opt,name=technology,proto3" json:"technology,omitempty"`
-	Pools                []*DeviceInfo_DeviceResourceRanges_Pool `protobuf:"bytes,3,rep,name=pools,proto3" json:"pools,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                                `json:"-"`
-	XXX_unrecognized     []byte                                  `json:"-"`
-	XXX_sizecache        int32                                   `json:"-"`
-}
-
-func (m *DeviceInfo_DeviceResourceRanges) Reset()         { *m = DeviceInfo_DeviceResourceRanges{} }
-func (m *DeviceInfo_DeviceResourceRanges) String() string { return proto.CompactTextString(m) }
-func (*DeviceInfo_DeviceResourceRanges) ProtoMessage()    {}
-func (*DeviceInfo_DeviceResourceRanges) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{18, 0}
-}
-
-func (m *DeviceInfo_DeviceResourceRanges) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_DeviceInfo_DeviceResourceRanges.Unmarshal(m, b)
-}
-func (m *DeviceInfo_DeviceResourceRanges) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_DeviceInfo_DeviceResourceRanges.Marshal(b, m, deterministic)
-}
-func (m *DeviceInfo_DeviceResourceRanges) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_DeviceInfo_DeviceResourceRanges.Merge(m, src)
-}
-func (m *DeviceInfo_DeviceResourceRanges) XXX_Size() int {
-	return xxx_messageInfo_DeviceInfo_DeviceResourceRanges.Size(m)
-}
-func (m *DeviceInfo_DeviceResourceRanges) XXX_DiscardUnknown() {
-	xxx_messageInfo_DeviceInfo_DeviceResourceRanges.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_DeviceInfo_DeviceResourceRanges proto.InternalMessageInfo
-
-func (m *DeviceInfo_DeviceResourceRanges) GetIntfIds() []uint32 {
-	if m != nil {
-		return m.IntfIds
-	}
-	return nil
-}
-
-func (m *DeviceInfo_DeviceResourceRanges) GetTechnology() string {
-	if m != nil {
-		return m.Technology
-	}
-	return ""
-}
-
-func (m *DeviceInfo_DeviceResourceRanges) GetPools() []*DeviceInfo_DeviceResourceRanges_Pool {
-	if m != nil {
-		return m.Pools
-	}
-	return nil
-}
-
-type DeviceInfo_DeviceResourceRanges_Pool struct {
-	Type                 DeviceInfo_DeviceResourceRanges_Pool_PoolType    `protobuf:"varint,1,opt,name=type,proto3,enum=openolt.DeviceInfo_DeviceResourceRanges_Pool_PoolType" json:"type,omitempty"`
-	Sharing              DeviceInfo_DeviceResourceRanges_Pool_SharingType `protobuf:"varint,2,opt,name=sharing,proto3,enum=openolt.DeviceInfo_DeviceResourceRanges_Pool_SharingType" json:"sharing,omitempty"`
-	Start                uint32                                           `protobuf:"fixed32,3,opt,name=start,proto3" json:"start,omitempty"`
-	End                  uint32                                           `protobuf:"fixed32,4,opt,name=end,proto3" json:"end,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                                         `json:"-"`
-	XXX_unrecognized     []byte                                           `json:"-"`
-	XXX_sizecache        int32                                            `json:"-"`
-}
-
-func (m *DeviceInfo_DeviceResourceRanges_Pool) Reset()         { *m = DeviceInfo_DeviceResourceRanges_Pool{} }
-func (m *DeviceInfo_DeviceResourceRanges_Pool) String() string { return proto.CompactTextString(m) }
-func (*DeviceInfo_DeviceResourceRanges_Pool) ProtoMessage()    {}
-func (*DeviceInfo_DeviceResourceRanges_Pool) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{18, 0, 0}
-}
-
-func (m *DeviceInfo_DeviceResourceRanges_Pool) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_DeviceInfo_DeviceResourceRanges_Pool.Unmarshal(m, b)
-}
-func (m *DeviceInfo_DeviceResourceRanges_Pool) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_DeviceInfo_DeviceResourceRanges_Pool.Marshal(b, m, deterministic)
-}
-func (m *DeviceInfo_DeviceResourceRanges_Pool) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_DeviceInfo_DeviceResourceRanges_Pool.Merge(m, src)
-}
-func (m *DeviceInfo_DeviceResourceRanges_Pool) XXX_Size() int {
-	return xxx_messageInfo_DeviceInfo_DeviceResourceRanges_Pool.Size(m)
-}
-func (m *DeviceInfo_DeviceResourceRanges_Pool) XXX_DiscardUnknown() {
-	xxx_messageInfo_DeviceInfo_DeviceResourceRanges_Pool.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_DeviceInfo_DeviceResourceRanges_Pool proto.InternalMessageInfo
-
-func (m *DeviceInfo_DeviceResourceRanges_Pool) GetType() DeviceInfo_DeviceResourceRanges_Pool_PoolType {
-	if m != nil {
-		return m.Type
-	}
-	return DeviceInfo_DeviceResourceRanges_Pool_ONU_ID
-}
-
-func (m *DeviceInfo_DeviceResourceRanges_Pool) GetSharing() DeviceInfo_DeviceResourceRanges_Pool_SharingType {
-	if m != nil {
-		return m.Sharing
-	}
-	return DeviceInfo_DeviceResourceRanges_Pool_DEDICATED_PER_INTF
-}
-
-func (m *DeviceInfo_DeviceResourceRanges_Pool) GetStart() uint32 {
-	if m != nil {
-		return m.Start
-	}
-	return 0
-}
-
-func (m *DeviceInfo_DeviceResourceRanges_Pool) GetEnd() uint32 {
-	if m != nil {
-		return m.End
-	}
-	return 0
-}
-
-type Classifier struct {
-	OTpid                uint32   `protobuf:"fixed32,1,opt,name=o_tpid,json=oTpid,proto3" json:"o_tpid,omitempty"`
-	OVid                 uint32   `protobuf:"fixed32,2,opt,name=o_vid,json=oVid,proto3" json:"o_vid,omitempty"`
-	ITpid                uint32   `protobuf:"fixed32,3,opt,name=i_tpid,json=iTpid,proto3" json:"i_tpid,omitempty"`
-	IVid                 uint32   `protobuf:"fixed32,4,opt,name=i_vid,json=iVid,proto3" json:"i_vid,omitempty"`
-	OPbits               uint32   `protobuf:"fixed32,5,opt,name=o_pbits,json=oPbits,proto3" json:"o_pbits,omitempty"`
-	IPbits               uint32   `protobuf:"fixed32,6,opt,name=i_pbits,json=iPbits,proto3" json:"i_pbits,omitempty"`
-	EthType              uint32   `protobuf:"fixed32,7,opt,name=eth_type,json=ethType,proto3" json:"eth_type,omitempty"`
-	DstMac               []byte   `protobuf:"bytes,8,opt,name=dst_mac,json=dstMac,proto3" json:"dst_mac,omitempty"`
-	SrcMac               []byte   `protobuf:"bytes,9,opt,name=src_mac,json=srcMac,proto3" json:"src_mac,omitempty"`
-	IpProto              uint32   `protobuf:"fixed32,10,opt,name=ip_proto,json=ipProto,proto3" json:"ip_proto,omitempty"`
-	DstIp                uint32   `protobuf:"fixed32,11,opt,name=dst_ip,json=dstIp,proto3" json:"dst_ip,omitempty"`
-	SrcIp                uint32   `protobuf:"fixed32,12,opt,name=src_ip,json=srcIp,proto3" json:"src_ip,omitempty"`
-	SrcPort              uint32   `protobuf:"fixed32,13,opt,name=src_port,json=srcPort,proto3" json:"src_port,omitempty"`
-	DstPort              uint32   `protobuf:"fixed32,14,opt,name=dst_port,json=dstPort,proto3" json:"dst_port,omitempty"`
-	PktTagType           string   `protobuf:"bytes,15,opt,name=pkt_tag_type,json=pktTagType,proto3" json:"pkt_tag_type,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *Classifier) Reset()         { *m = Classifier{} }
-func (m *Classifier) String() string { return proto.CompactTextString(m) }
-func (*Classifier) ProtoMessage()    {}
-func (*Classifier) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{19}
-}
-
-func (m *Classifier) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_Classifier.Unmarshal(m, b)
-}
-func (m *Classifier) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_Classifier.Marshal(b, m, deterministic)
-}
-func (m *Classifier) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Classifier.Merge(m, src)
-}
-func (m *Classifier) XXX_Size() int {
-	return xxx_messageInfo_Classifier.Size(m)
-}
-func (m *Classifier) XXX_DiscardUnknown() {
-	xxx_messageInfo_Classifier.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_Classifier proto.InternalMessageInfo
-
-func (m *Classifier) GetOTpid() uint32 {
-	if m != nil {
-		return m.OTpid
-	}
-	return 0
-}
-
-func (m *Classifier) GetOVid() uint32 {
-	if m != nil {
-		return m.OVid
-	}
-	return 0
-}
-
-func (m *Classifier) GetITpid() uint32 {
-	if m != nil {
-		return m.ITpid
-	}
-	return 0
-}
-
-func (m *Classifier) GetIVid() uint32 {
-	if m != nil {
-		return m.IVid
-	}
-	return 0
-}
-
-func (m *Classifier) GetOPbits() uint32 {
-	if m != nil {
-		return m.OPbits
-	}
-	return 0
-}
-
-func (m *Classifier) GetIPbits() uint32 {
-	if m != nil {
-		return m.IPbits
-	}
-	return 0
-}
-
-func (m *Classifier) GetEthType() uint32 {
-	if m != nil {
-		return m.EthType
-	}
-	return 0
-}
-
-func (m *Classifier) GetDstMac() []byte {
-	if m != nil {
-		return m.DstMac
-	}
-	return nil
-}
-
-func (m *Classifier) GetSrcMac() []byte {
-	if m != nil {
-		return m.SrcMac
-	}
-	return nil
-}
-
-func (m *Classifier) GetIpProto() uint32 {
-	if m != nil {
-		return m.IpProto
-	}
-	return 0
-}
-
-func (m *Classifier) GetDstIp() uint32 {
-	if m != nil {
-		return m.DstIp
-	}
-	return 0
-}
-
-func (m *Classifier) GetSrcIp() uint32 {
-	if m != nil {
-		return m.SrcIp
-	}
-	return 0
-}
-
-func (m *Classifier) GetSrcPort() uint32 {
-	if m != nil {
-		return m.SrcPort
-	}
-	return 0
-}
-
-func (m *Classifier) GetDstPort() uint32 {
-	if m != nil {
-		return m.DstPort
-	}
-	return 0
-}
-
-func (m *Classifier) GetPktTagType() string {
-	if m != nil {
-		return m.PktTagType
-	}
-	return ""
-}
-
-type ActionCmd struct {
-	AddOuterTag          bool     `protobuf:"varint,1,opt,name=add_outer_tag,json=addOuterTag,proto3" json:"add_outer_tag,omitempty"`
-	RemoveOuterTag       bool     `protobuf:"varint,2,opt,name=remove_outer_tag,json=removeOuterTag,proto3" json:"remove_outer_tag,omitempty"`
-	TrapToHost           bool     `protobuf:"varint,3,opt,name=trap_to_host,json=trapToHost,proto3" json:"trap_to_host,omitempty"`
-	RemarkOuterPbits     bool     `protobuf:"varint,4,opt,name=remark_outer_pbits,json=remarkOuterPbits,proto3" json:"remark_outer_pbits,omitempty"`
-	RemarkInnerPbits     bool     `protobuf:"varint,5,opt,name=remark_inner_pbits,json=remarkInnerPbits,proto3" json:"remark_inner_pbits,omitempty"`
-	AddInnerTag          bool     `protobuf:"varint,6,opt,name=add_inner_tag,json=addInnerTag,proto3" json:"add_inner_tag,omitempty"`
-	RemoveInnerTag       bool     `protobuf:"varint,7,opt,name=remove_inner_tag,json=removeInnerTag,proto3" json:"remove_inner_tag,omitempty"`
-	TranslateInnerTag    bool     `protobuf:"varint,8,opt,name=translate_inner_tag,json=translateInnerTag,proto3" json:"translate_inner_tag,omitempty"`
-	TranslateOuterTag    bool     `protobuf:"varint,9,opt,name=translate_outer_tag,json=translateOuterTag,proto3" json:"translate_outer_tag,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *ActionCmd) Reset()         { *m = ActionCmd{} }
-func (m *ActionCmd) String() string { return proto.CompactTextString(m) }
-func (*ActionCmd) ProtoMessage()    {}
-func (*ActionCmd) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{20}
-}
-
-func (m *ActionCmd) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_ActionCmd.Unmarshal(m, b)
-}
-func (m *ActionCmd) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_ActionCmd.Marshal(b, m, deterministic)
-}
-func (m *ActionCmd) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_ActionCmd.Merge(m, src)
-}
-func (m *ActionCmd) XXX_Size() int {
-	return xxx_messageInfo_ActionCmd.Size(m)
-}
-func (m *ActionCmd) XXX_DiscardUnknown() {
-	xxx_messageInfo_ActionCmd.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_ActionCmd proto.InternalMessageInfo
-
-func (m *ActionCmd) GetAddOuterTag() bool {
-	if m != nil {
-		return m.AddOuterTag
-	}
-	return false
-}
-
-func (m *ActionCmd) GetRemoveOuterTag() bool {
-	if m != nil {
-		return m.RemoveOuterTag
-	}
-	return false
-}
-
-func (m *ActionCmd) GetTrapToHost() bool {
-	if m != nil {
-		return m.TrapToHost
-	}
-	return false
-}
-
-func (m *ActionCmd) GetRemarkOuterPbits() bool {
-	if m != nil {
-		return m.RemarkOuterPbits
-	}
-	return false
-}
-
-func (m *ActionCmd) GetRemarkInnerPbits() bool {
-	if m != nil {
-		return m.RemarkInnerPbits
-	}
-	return false
-}
-
-func (m *ActionCmd) GetAddInnerTag() bool {
-	if m != nil {
-		return m.AddInnerTag
-	}
-	return false
-}
-
-func (m *ActionCmd) GetRemoveInnerTag() bool {
-	if m != nil {
-		return m.RemoveInnerTag
-	}
-	return false
-}
-
-func (m *ActionCmd) GetTranslateInnerTag() bool {
-	if m != nil {
-		return m.TranslateInnerTag
-	}
-	return false
-}
-
-func (m *ActionCmd) GetTranslateOuterTag() bool {
-	if m != nil {
-		return m.TranslateOuterTag
-	}
-	return false
-}
-
-type Action struct {
-	Cmd                  *ActionCmd `protobuf:"bytes,1,opt,name=cmd,proto3" json:"cmd,omitempty"`
-	OVid                 uint32     `protobuf:"fixed32,2,opt,name=o_vid,json=oVid,proto3" json:"o_vid,omitempty"`
-	OPbits               uint32     `protobuf:"fixed32,3,opt,name=o_pbits,json=oPbits,proto3" json:"o_pbits,omitempty"`
-	OTpid                uint32     `protobuf:"fixed32,4,opt,name=o_tpid,json=oTpid,proto3" json:"o_tpid,omitempty"`
-	IVid                 uint32     `protobuf:"fixed32,5,opt,name=i_vid,json=iVid,proto3" json:"i_vid,omitempty"`
-	IPbits               uint32     `protobuf:"fixed32,6,opt,name=i_pbits,json=iPbits,proto3" json:"i_pbits,omitempty"`
-	ITpid                uint32     `protobuf:"fixed32,7,opt,name=i_tpid,json=iTpid,proto3" json:"i_tpid,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
-	XXX_unrecognized     []byte     `json:"-"`
-	XXX_sizecache        int32      `json:"-"`
-}
-
-func (m *Action) Reset()         { *m = Action{} }
-func (m *Action) String() string { return proto.CompactTextString(m) }
-func (*Action) ProtoMessage()    {}
-func (*Action) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{21}
-}
-
-func (m *Action) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_Action.Unmarshal(m, b)
-}
-func (m *Action) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_Action.Marshal(b, m, deterministic)
-}
-func (m *Action) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Action.Merge(m, src)
-}
-func (m *Action) XXX_Size() int {
-	return xxx_messageInfo_Action.Size(m)
-}
-func (m *Action) XXX_DiscardUnknown() {
-	xxx_messageInfo_Action.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_Action proto.InternalMessageInfo
-
-func (m *Action) GetCmd() *ActionCmd {
-	if m != nil {
-		return m.Cmd
-	}
-	return nil
-}
-
-func (m *Action) GetOVid() uint32 {
-	if m != nil {
-		return m.OVid
-	}
-	return 0
-}
-
-func (m *Action) GetOPbits() uint32 {
-	if m != nil {
-		return m.OPbits
-	}
-	return 0
-}
-
-func (m *Action) GetOTpid() uint32 {
-	if m != nil {
-		return m.OTpid
-	}
-	return 0
-}
-
-func (m *Action) GetIVid() uint32 {
-	if m != nil {
-		return m.IVid
-	}
-	return 0
-}
-
-func (m *Action) GetIPbits() uint32 {
-	if m != nil {
-		return m.IPbits
-	}
-	return 0
-}
-
-func (m *Action) GetITpid() uint32 {
-	if m != nil {
-		return m.ITpid
-	}
-	return 0
-}
-
-type Flow struct {
-	AccessIntfId         int32             `protobuf:"fixed32,1,opt,name=access_intf_id,json=accessIntfId,proto3" json:"access_intf_id,omitempty"`
-	OnuId                int32             `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
-	UniId                int32             `protobuf:"fixed32,11,opt,name=uni_id,json=uniId,proto3" json:"uni_id,omitempty"`
-	FlowId               uint64            `protobuf:"fixed64,3,opt,name=flow_id,json=flowId,proto3" json:"flow_id,omitempty"`
-	SymmetricFlowId      uint64            `protobuf:"fixed64,18,opt,name=symmetric_flow_id,json=symmetricFlowId,proto3" json:"symmetric_flow_id,omitempty"`
-	FlowType             string            `protobuf:"bytes,4,opt,name=flow_type,json=flowType,proto3" json:"flow_type,omitempty"`
-	AllocId              int32             `protobuf:"fixed32,10,opt,name=alloc_id,json=allocId,proto3" json:"alloc_id,omitempty"`
-	NetworkIntfId        int32             `protobuf:"fixed32,5,opt,name=network_intf_id,json=networkIntfId,proto3" json:"network_intf_id,omitempty"`
-	GemportId            int32             `protobuf:"fixed32,6,opt,name=gemport_id,json=gemportId,proto3" json:"gemport_id,omitempty"`
-	Classifier           *Classifier       `protobuf:"bytes,7,opt,name=classifier,proto3" json:"classifier,omitempty"`
-	Action               *Action           `protobuf:"bytes,8,opt,name=action,proto3" json:"action,omitempty"`
-	Priority             int32             `protobuf:"fixed32,9,opt,name=priority,proto3" json:"priority,omitempty"`
-	Cookie               uint64            `protobuf:"fixed64,12,opt,name=cookie,proto3" json:"cookie,omitempty"`
-	PortNo               uint32            `protobuf:"fixed32,13,opt,name=port_no,json=portNo,proto3" json:"port_no,omitempty"`
-	GroupId              uint32            `protobuf:"fixed32,14,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
-	TechProfileId        uint32            `protobuf:"fixed32,15,opt,name=tech_profile_id,json=techProfileId,proto3" json:"tech_profile_id,omitempty"`
-	ReplicateFlow        bool              `protobuf:"varint,16,opt,name=replicate_flow,json=replicateFlow,proto3" json:"replicate_flow,omitempty"`
-	PbitToGemport        map[uint32]uint32 `protobuf:"bytes,17,rep,name=pbit_to_gemport,json=pbitToGemport,proto3" json:"pbit_to_gemport,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"`
-	GemportToAes         map[uint32]bool   `protobuf:"bytes,19,rep,name=gemport_to_aes,json=gemportToAes,proto3" json:"gemport_to_aes,omitempty" protobuf_key:"fixed32,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
-	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
-	XXX_unrecognized     []byte            `json:"-"`
-	XXX_sizecache        int32             `json:"-"`
-}
-
-func (m *Flow) Reset()         { *m = Flow{} }
-func (m *Flow) String() string { return proto.CompactTextString(m) }
-func (*Flow) ProtoMessage()    {}
-func (*Flow) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{22}
-}
-
-func (m *Flow) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_Flow.Unmarshal(m, b)
-}
-func (m *Flow) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_Flow.Marshal(b, m, deterministic)
-}
-func (m *Flow) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Flow.Merge(m, src)
-}
-func (m *Flow) XXX_Size() int {
-	return xxx_messageInfo_Flow.Size(m)
-}
-func (m *Flow) XXX_DiscardUnknown() {
-	xxx_messageInfo_Flow.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_Flow proto.InternalMessageInfo
-
-func (m *Flow) GetAccessIntfId() int32 {
-	if m != nil {
-		return m.AccessIntfId
-	}
-	return 0
-}
-
-func (m *Flow) GetOnuId() int32 {
-	if m != nil {
-		return m.OnuId
-	}
-	return 0
-}
-
-func (m *Flow) GetUniId() int32 {
-	if m != nil {
-		return m.UniId
-	}
-	return 0
-}
-
-func (m *Flow) GetFlowId() uint64 {
-	if m != nil {
-		return m.FlowId
-	}
-	return 0
-}
-
-func (m *Flow) GetSymmetricFlowId() uint64 {
-	if m != nil {
-		return m.SymmetricFlowId
-	}
-	return 0
-}
-
-func (m *Flow) GetFlowType() string {
-	if m != nil {
-		return m.FlowType
-	}
-	return ""
-}
-
-func (m *Flow) GetAllocId() int32 {
-	if m != nil {
-		return m.AllocId
-	}
-	return 0
-}
-
-func (m *Flow) GetNetworkIntfId() int32 {
-	if m != nil {
-		return m.NetworkIntfId
-	}
-	return 0
-}
-
-func (m *Flow) GetGemportId() int32 {
-	if m != nil {
-		return m.GemportId
-	}
-	return 0
-}
-
-func (m *Flow) GetClassifier() *Classifier {
-	if m != nil {
-		return m.Classifier
-	}
-	return nil
-}
-
-func (m *Flow) GetAction() *Action {
-	if m != nil {
-		return m.Action
-	}
-	return nil
-}
-
-func (m *Flow) GetPriority() int32 {
-	if m != nil {
-		return m.Priority
-	}
-	return 0
-}
-
-func (m *Flow) GetCookie() uint64 {
-	if m != nil {
-		return m.Cookie
-	}
-	return 0
-}
-
-func (m *Flow) GetPortNo() uint32 {
-	if m != nil {
-		return m.PortNo
-	}
-	return 0
-}
-
-func (m *Flow) GetGroupId() uint32 {
-	if m != nil {
-		return m.GroupId
-	}
-	return 0
-}
-
-func (m *Flow) GetTechProfileId() uint32 {
-	if m != nil {
-		return m.TechProfileId
-	}
-	return 0
-}
-
-func (m *Flow) GetReplicateFlow() bool {
-	if m != nil {
-		return m.ReplicateFlow
-	}
-	return false
-}
-
-func (m *Flow) GetPbitToGemport() map[uint32]uint32 {
-	if m != nil {
-		return m.PbitToGemport
-	}
-	return nil
-}
-
-func (m *Flow) GetGemportToAes() map[uint32]bool {
-	if m != nil {
-		return m.GemportToAes
-	}
-	return nil
-}
-
-type SerialNumber struct {
-	VendorId             []byte   `protobuf:"bytes,1,opt,name=vendor_id,json=vendorId,proto3" json:"vendor_id,omitempty"`
-	VendorSpecific       []byte   `protobuf:"bytes,2,opt,name=vendor_specific,json=vendorSpecific,proto3" json:"vendor_specific,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *SerialNumber) Reset()         { *m = SerialNumber{} }
-func (m *SerialNumber) String() string { return proto.CompactTextString(m) }
-func (*SerialNumber) ProtoMessage()    {}
-func (*SerialNumber) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{23}
-}
-
-func (m *SerialNumber) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_SerialNumber.Unmarshal(m, b)
-}
-func (m *SerialNumber) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_SerialNumber.Marshal(b, m, deterministic)
-}
-func (m *SerialNumber) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_SerialNumber.Merge(m, src)
-}
-func (m *SerialNumber) XXX_Size() int {
-	return xxx_messageInfo_SerialNumber.Size(m)
-}
-func (m *SerialNumber) XXX_DiscardUnknown() {
-	xxx_messageInfo_SerialNumber.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_SerialNumber proto.InternalMessageInfo
-
-func (m *SerialNumber) GetVendorId() []byte {
-	if m != nil {
-		return m.VendorId
-	}
-	return nil
-}
-
-func (m *SerialNumber) GetVendorSpecific() []byte {
-	if m != nil {
-		return m.VendorSpecific
-	}
-	return nil
-}
-
-type OnuStatistics struct {
-	IntfId                    uint32   `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
-	OnuId                     uint32   `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
-	PositiveDrift             uint64   `protobuf:"fixed64,3,opt,name=positive_drift,json=positiveDrift,proto3" json:"positive_drift,omitempty"`
-	NegativeDrift             uint64   `protobuf:"fixed64,4,opt,name=negative_drift,json=negativeDrift,proto3" json:"negative_drift,omitempty"`
-	DelimiterMissDetection    uint64   `protobuf:"fixed64,5,opt,name=delimiter_miss_detection,json=delimiterMissDetection,proto3" json:"delimiter_miss_detection,omitempty"`
-	BipErrors                 uint64   `protobuf:"fixed64,6,opt,name=bip_errors,json=bipErrors,proto3" json:"bip_errors,omitempty"`
-	BipUnits                  uint64   `protobuf:"fixed64,7,opt,name=bip_units,json=bipUnits,proto3" json:"bip_units,omitempty"`
-	FecCorrectedSymbols       uint64   `protobuf:"fixed64,8,opt,name=fec_corrected_symbols,json=fecCorrectedSymbols,proto3" json:"fec_corrected_symbols,omitempty"`
-	FecCodewordsCorrected     uint64   `protobuf:"fixed64,9,opt,name=fec_codewords_corrected,json=fecCodewordsCorrected,proto3" json:"fec_codewords_corrected,omitempty"`
-	FecCodewordsUncorrectable uint64   `protobuf:"fixed64,10,opt,name=fec_codewords_uncorrectable,json=fecCodewordsUncorrectable,proto3" json:"fec_codewords_uncorrectable,omitempty"`
-	FecCodewords              uint64   `protobuf:"fixed64,11,opt,name=fec_codewords,json=fecCodewords,proto3" json:"fec_codewords,omitempty"`
-	FecCorrectedUnits         uint64   `protobuf:"fixed64,12,opt,name=fec_corrected_units,json=fecCorrectedUnits,proto3" json:"fec_corrected_units,omitempty"`
-	XgemKeyErrors             uint64   `protobuf:"fixed64,13,opt,name=xgem_key_errors,json=xgemKeyErrors,proto3" json:"xgem_key_errors,omitempty"`
-	XgemLoss                  uint64   `protobuf:"fixed64,14,opt,name=xgem_loss,json=xgemLoss,proto3" json:"xgem_loss,omitempty"`
-	RxPloamsError             uint64   `protobuf:"fixed64,15,opt,name=rx_ploams_error,json=rxPloamsError,proto3" json:"rx_ploams_error,omitempty"`
-	RxPloamsNonIdle           uint64   `protobuf:"fixed64,16,opt,name=rx_ploams_non_idle,json=rxPloamsNonIdle,proto3" json:"rx_ploams_non_idle,omitempty"`
-	RxOmci                    uint64   `protobuf:"fixed64,17,opt,name=rx_omci,json=rxOmci,proto3" json:"rx_omci,omitempty"`
-	RxOmciPacketsCrcError     uint64   `protobuf:"fixed64,18,opt,name=rx_omci_packets_crc_error,json=rxOmciPacketsCrcError,proto3" json:"rx_omci_packets_crc_error,omitempty"`
-	RxBytes                   uint64   `protobuf:"fixed64,19,opt,name=rx_bytes,json=rxBytes,proto3" json:"rx_bytes,omitempty"`
-	RxPackets                 uint64   `protobuf:"fixed64,20,opt,name=rx_packets,json=rxPackets,proto3" json:"rx_packets,omitempty"`
-	TxBytes                   uint64   `protobuf:"fixed64,21,opt,name=tx_bytes,json=txBytes,proto3" json:"tx_bytes,omitempty"`
-	TxPackets                 uint64   `protobuf:"fixed64,22,opt,name=tx_packets,json=txPackets,proto3" json:"tx_packets,omitempty"`
-	BerReported               uint64   `protobuf:"fixed64,23,opt,name=ber_reported,json=berReported,proto3" json:"ber_reported,omitempty"`
-	LcdgErrors                uint64   `protobuf:"fixed64,24,opt,name=lcdg_errors,json=lcdgErrors,proto3" json:"lcdg_errors,omitempty"`
-	RdiErrors                 uint64   `protobuf:"fixed64,25,opt,name=rdi_errors,json=rdiErrors,proto3" json:"rdi_errors,omitempty"`
-	Timestamp                 uint32   `protobuf:"fixed32,26,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
-	XXX_NoUnkeyedLiteral      struct{} `json:"-"`
-	XXX_unrecognized          []byte   `json:"-"`
-	XXX_sizecache             int32    `json:"-"`
-}
-
-func (m *OnuStatistics) Reset()         { *m = OnuStatistics{} }
-func (m *OnuStatistics) String() string { return proto.CompactTextString(m) }
-func (*OnuStatistics) ProtoMessage()    {}
-func (*OnuStatistics) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{24}
-}
-
-func (m *OnuStatistics) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OnuStatistics.Unmarshal(m, b)
-}
-func (m *OnuStatistics) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OnuStatistics.Marshal(b, m, deterministic)
-}
-func (m *OnuStatistics) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OnuStatistics.Merge(m, src)
-}
-func (m *OnuStatistics) XXX_Size() int {
-	return xxx_messageInfo_OnuStatistics.Size(m)
-}
-func (m *OnuStatistics) XXX_DiscardUnknown() {
-	xxx_messageInfo_OnuStatistics.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OnuStatistics proto.InternalMessageInfo
-
-func (m *OnuStatistics) GetIntfId() uint32 {
-	if m != nil {
-		return m.IntfId
-	}
-	return 0
-}
-
-func (m *OnuStatistics) GetOnuId() uint32 {
-	if m != nil {
-		return m.OnuId
-	}
-	return 0
-}
-
-func (m *OnuStatistics) GetPositiveDrift() uint64 {
-	if m != nil {
-		return m.PositiveDrift
-	}
-	return 0
-}
-
-func (m *OnuStatistics) GetNegativeDrift() uint64 {
-	if m != nil {
-		return m.NegativeDrift
-	}
-	return 0
-}
-
-func (m *OnuStatistics) GetDelimiterMissDetection() uint64 {
-	if m != nil {
-		return m.DelimiterMissDetection
-	}
-	return 0
-}
-
-func (m *OnuStatistics) GetBipErrors() uint64 {
-	if m != nil {
-		return m.BipErrors
-	}
-	return 0
-}
-
-func (m *OnuStatistics) GetBipUnits() uint64 {
-	if m != nil {
-		return m.BipUnits
-	}
-	return 0
-}
-
-func (m *OnuStatistics) GetFecCorrectedSymbols() uint64 {
-	if m != nil {
-		return m.FecCorrectedSymbols
-	}
-	return 0
-}
-
-func (m *OnuStatistics) GetFecCodewordsCorrected() uint64 {
-	if m != nil {
-		return m.FecCodewordsCorrected
-	}
-	return 0
-}
-
-func (m *OnuStatistics) GetFecCodewordsUncorrectable() uint64 {
-	if m != nil {
-		return m.FecCodewordsUncorrectable
-	}
-	return 0
-}
-
-func (m *OnuStatistics) GetFecCodewords() uint64 {
-	if m != nil {
-		return m.FecCodewords
-	}
-	return 0
-}
-
-func (m *OnuStatistics) GetFecCorrectedUnits() uint64 {
-	if m != nil {
-		return m.FecCorrectedUnits
-	}
-	return 0
-}
-
-func (m *OnuStatistics) GetXgemKeyErrors() uint64 {
-	if m != nil {
-		return m.XgemKeyErrors
-	}
-	return 0
-}
-
-func (m *OnuStatistics) GetXgemLoss() uint64 {
-	if m != nil {
-		return m.XgemLoss
-	}
-	return 0
-}
-
-func (m *OnuStatistics) GetRxPloamsError() uint64 {
-	if m != nil {
-		return m.RxPloamsError
-	}
-	return 0
-}
-
-func (m *OnuStatistics) GetRxPloamsNonIdle() uint64 {
-	if m != nil {
-		return m.RxPloamsNonIdle
-	}
-	return 0
-}
-
-func (m *OnuStatistics) GetRxOmci() uint64 {
-	if m != nil {
-		return m.RxOmci
-	}
-	return 0
-}
-
-func (m *OnuStatistics) GetRxOmciPacketsCrcError() uint64 {
-	if m != nil {
-		return m.RxOmciPacketsCrcError
-	}
-	return 0
-}
-
-func (m *OnuStatistics) GetRxBytes() uint64 {
-	if m != nil {
-		return m.RxBytes
-	}
-	return 0
-}
-
-func (m *OnuStatistics) GetRxPackets() uint64 {
-	if m != nil {
-		return m.RxPackets
-	}
-	return 0
-}
-
-func (m *OnuStatistics) GetTxBytes() uint64 {
-	if m != nil {
-		return m.TxBytes
-	}
-	return 0
-}
-
-func (m *OnuStatistics) GetTxPackets() uint64 {
-	if m != nil {
-		return m.TxPackets
-	}
-	return 0
-}
-
-func (m *OnuStatistics) GetBerReported() uint64 {
-	if m != nil {
-		return m.BerReported
-	}
-	return 0
-}
-
-func (m *OnuStatistics) GetLcdgErrors() uint64 {
-	if m != nil {
-		return m.LcdgErrors
-	}
-	return 0
-}
-
-func (m *OnuStatistics) GetRdiErrors() uint64 {
-	if m != nil {
-		return m.RdiErrors
-	}
-	return 0
-}
-
-func (m *OnuStatistics) GetTimestamp() uint32 {
-	if m != nil {
-		return m.Timestamp
-	}
-	return 0
-}
-
-type GemPortStatistics struct {
-	IntfId               uint32   `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
-	GemportId            uint32   `protobuf:"fixed32,2,opt,name=gemport_id,json=gemportId,proto3" json:"gemport_id,omitempty"`
-	RxPackets            uint64   `protobuf:"fixed64,3,opt,name=rx_packets,json=rxPackets,proto3" json:"rx_packets,omitempty"`
-	RxBytes              uint64   `protobuf:"fixed64,4,opt,name=rx_bytes,json=rxBytes,proto3" json:"rx_bytes,omitempty"`
-	TxPackets            uint64   `protobuf:"fixed64,5,opt,name=tx_packets,json=txPackets,proto3" json:"tx_packets,omitempty"`
-	TxBytes              uint64   `protobuf:"fixed64,6,opt,name=tx_bytes,json=txBytes,proto3" json:"tx_bytes,omitempty"`
-	Timestamp            uint32   `protobuf:"fixed32,26,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *GemPortStatistics) Reset()         { *m = GemPortStatistics{} }
-func (m *GemPortStatistics) String() string { return proto.CompactTextString(m) }
-func (*GemPortStatistics) ProtoMessage()    {}
-func (*GemPortStatistics) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{25}
-}
-
-func (m *GemPortStatistics) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_GemPortStatistics.Unmarshal(m, b)
-}
-func (m *GemPortStatistics) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_GemPortStatistics.Marshal(b, m, deterministic)
-}
-func (m *GemPortStatistics) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_GemPortStatistics.Merge(m, src)
-}
-func (m *GemPortStatistics) XXX_Size() int {
-	return xxx_messageInfo_GemPortStatistics.Size(m)
-}
-func (m *GemPortStatistics) XXX_DiscardUnknown() {
-	xxx_messageInfo_GemPortStatistics.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_GemPortStatistics proto.InternalMessageInfo
-
-func (m *GemPortStatistics) GetIntfId() uint32 {
-	if m != nil {
-		return m.IntfId
-	}
-	return 0
-}
-
-func (m *GemPortStatistics) GetGemportId() uint32 {
-	if m != nil {
-		return m.GemportId
-	}
-	return 0
-}
-
-func (m *GemPortStatistics) GetRxPackets() uint64 {
-	if m != nil {
-		return m.RxPackets
-	}
-	return 0
-}
-
-func (m *GemPortStatistics) GetRxBytes() uint64 {
-	if m != nil {
-		return m.RxBytes
-	}
-	return 0
-}
-
-func (m *GemPortStatistics) GetTxPackets() uint64 {
-	if m != nil {
-		return m.TxPackets
-	}
-	return 0
-}
-
-func (m *GemPortStatistics) GetTxBytes() uint64 {
-	if m != nil {
-		return m.TxBytes
-	}
-	return 0
-}
-
-func (m *GemPortStatistics) GetTimestamp() uint32 {
-	if m != nil {
-		return m.Timestamp
-	}
-	return 0
-}
-
-type FlowStatistics struct {
-	FlowId               uint32   `protobuf:"fixed32,1,opt,name=flow_id,json=flowId,proto3" json:"flow_id,omitempty"`
-	RxBytes              uint64   `protobuf:"fixed64,2,opt,name=rx_bytes,json=rxBytes,proto3" json:"rx_bytes,omitempty"`
-	RxPackets            uint64   `protobuf:"fixed64,3,opt,name=rx_packets,json=rxPackets,proto3" json:"rx_packets,omitempty"`
-	TxBytes              uint64   `protobuf:"fixed64,8,opt,name=tx_bytes,json=txBytes,proto3" json:"tx_bytes,omitempty"`
-	TxPackets            uint64   `protobuf:"fixed64,9,opt,name=tx_packets,json=txPackets,proto3" json:"tx_packets,omitempty"`
-	Timestamp            uint32   `protobuf:"fixed32,16,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *FlowStatistics) Reset()         { *m = FlowStatistics{} }
-func (m *FlowStatistics) String() string { return proto.CompactTextString(m) }
-func (*FlowStatistics) ProtoMessage()    {}
-func (*FlowStatistics) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{26}
-}
-
-func (m *FlowStatistics) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_FlowStatistics.Unmarshal(m, b)
-}
-func (m *FlowStatistics) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_FlowStatistics.Marshal(b, m, deterministic)
-}
-func (m *FlowStatistics) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_FlowStatistics.Merge(m, src)
-}
-func (m *FlowStatistics) XXX_Size() int {
-	return xxx_messageInfo_FlowStatistics.Size(m)
-}
-func (m *FlowStatistics) XXX_DiscardUnknown() {
-	xxx_messageInfo_FlowStatistics.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_FlowStatistics proto.InternalMessageInfo
-
-func (m *FlowStatistics) GetFlowId() uint32 {
-	if m != nil {
-		return m.FlowId
-	}
-	return 0
-}
-
-func (m *FlowStatistics) GetRxBytes() uint64 {
-	if m != nil {
-		return m.RxBytes
-	}
-	return 0
-}
-
-func (m *FlowStatistics) GetRxPackets() uint64 {
-	if m != nil {
-		return m.RxPackets
-	}
-	return 0
-}
-
-func (m *FlowStatistics) GetTxBytes() uint64 {
-	if m != nil {
-		return m.TxBytes
-	}
-	return 0
-}
-
-func (m *FlowStatistics) GetTxPackets() uint64 {
-	if m != nil {
-		return m.TxPackets
-	}
-	return 0
-}
-
-func (m *FlowStatistics) GetTimestamp() uint32 {
-	if m != nil {
-		return m.Timestamp
-	}
-	return 0
-}
-
-type LosIndication struct {
-	IntfId               uint32   `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
-	Status               string   `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *LosIndication) Reset()         { *m = LosIndication{} }
-func (m *LosIndication) String() string { return proto.CompactTextString(m) }
-func (*LosIndication) ProtoMessage()    {}
-func (*LosIndication) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{27}
-}
-
-func (m *LosIndication) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_LosIndication.Unmarshal(m, b)
-}
-func (m *LosIndication) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_LosIndication.Marshal(b, m, deterministic)
-}
-func (m *LosIndication) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_LosIndication.Merge(m, src)
-}
-func (m *LosIndication) XXX_Size() int {
-	return xxx_messageInfo_LosIndication.Size(m)
-}
-func (m *LosIndication) XXX_DiscardUnknown() {
-	xxx_messageInfo_LosIndication.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_LosIndication proto.InternalMessageInfo
-
-func (m *LosIndication) GetIntfId() uint32 {
-	if m != nil {
-		return m.IntfId
-	}
-	return 0
-}
-
-func (m *LosIndication) GetStatus() string {
-	if m != nil {
-		return m.Status
-	}
-	return ""
-}
-
-type DyingGaspIndication struct {
-	IntfId               uint32   `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
-	OnuId                uint32   `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
-	Status               string   `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *DyingGaspIndication) Reset()         { *m = DyingGaspIndication{} }
-func (m *DyingGaspIndication) String() string { return proto.CompactTextString(m) }
-func (*DyingGaspIndication) ProtoMessage()    {}
-func (*DyingGaspIndication) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{28}
-}
-
-func (m *DyingGaspIndication) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_DyingGaspIndication.Unmarshal(m, b)
-}
-func (m *DyingGaspIndication) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_DyingGaspIndication.Marshal(b, m, deterministic)
-}
-func (m *DyingGaspIndication) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_DyingGaspIndication.Merge(m, src)
-}
-func (m *DyingGaspIndication) XXX_Size() int {
-	return xxx_messageInfo_DyingGaspIndication.Size(m)
-}
-func (m *DyingGaspIndication) XXX_DiscardUnknown() {
-	xxx_messageInfo_DyingGaspIndication.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_DyingGaspIndication proto.InternalMessageInfo
-
-func (m *DyingGaspIndication) GetIntfId() uint32 {
-	if m != nil {
-		return m.IntfId
-	}
-	return 0
-}
-
-func (m *DyingGaspIndication) GetOnuId() uint32 {
-	if m != nil {
-		return m.OnuId
-	}
-	return 0
-}
-
-func (m *DyingGaspIndication) GetStatus() string {
-	if m != nil {
-		return m.Status
-	}
-	return ""
-}
-
-type OnuAlarmIndication struct {
-	IntfId               uint32   `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
-	OnuId                uint32   `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
-	LosStatus            string   `protobuf:"bytes,3,opt,name=los_status,json=losStatus,proto3" json:"los_status,omitempty"`
-	LobStatus            string   `protobuf:"bytes,4,opt,name=lob_status,json=lobStatus,proto3" json:"lob_status,omitempty"`
-	LopcMissStatus       string   `protobuf:"bytes,5,opt,name=lopc_miss_status,json=lopcMissStatus,proto3" json:"lopc_miss_status,omitempty"`
-	LopcMicErrorStatus   string   `protobuf:"bytes,6,opt,name=lopc_mic_error_status,json=lopcMicErrorStatus,proto3" json:"lopc_mic_error_status,omitempty"`
-	LofiStatus           string   `protobuf:"bytes,7,opt,name=lofi_status,json=lofiStatus,proto3" json:"lofi_status,omitempty"`
-	LoamiStatus          string   `protobuf:"bytes,8,opt,name=loami_status,json=loamiStatus,proto3" json:"loami_status,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OnuAlarmIndication) Reset()         { *m = OnuAlarmIndication{} }
-func (m *OnuAlarmIndication) String() string { return proto.CompactTextString(m) }
-func (*OnuAlarmIndication) ProtoMessage()    {}
-func (*OnuAlarmIndication) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{29}
-}
-
-func (m *OnuAlarmIndication) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OnuAlarmIndication.Unmarshal(m, b)
-}
-func (m *OnuAlarmIndication) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OnuAlarmIndication.Marshal(b, m, deterministic)
-}
-func (m *OnuAlarmIndication) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OnuAlarmIndication.Merge(m, src)
-}
-func (m *OnuAlarmIndication) XXX_Size() int {
-	return xxx_messageInfo_OnuAlarmIndication.Size(m)
-}
-func (m *OnuAlarmIndication) XXX_DiscardUnknown() {
-	xxx_messageInfo_OnuAlarmIndication.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OnuAlarmIndication proto.InternalMessageInfo
-
-func (m *OnuAlarmIndication) GetIntfId() uint32 {
-	if m != nil {
-		return m.IntfId
-	}
-	return 0
-}
-
-func (m *OnuAlarmIndication) GetOnuId() uint32 {
-	if m != nil {
-		return m.OnuId
-	}
-	return 0
-}
-
-func (m *OnuAlarmIndication) GetLosStatus() string {
-	if m != nil {
-		return m.LosStatus
-	}
-	return ""
-}
-
-func (m *OnuAlarmIndication) GetLobStatus() string {
-	if m != nil {
-		return m.LobStatus
-	}
-	return ""
-}
-
-func (m *OnuAlarmIndication) GetLopcMissStatus() string {
-	if m != nil {
-		return m.LopcMissStatus
-	}
-	return ""
-}
-
-func (m *OnuAlarmIndication) GetLopcMicErrorStatus() string {
-	if m != nil {
-		return m.LopcMicErrorStatus
-	}
-	return ""
-}
-
-func (m *OnuAlarmIndication) GetLofiStatus() string {
-	if m != nil {
-		return m.LofiStatus
-	}
-	return ""
-}
-
-func (m *OnuAlarmIndication) GetLoamiStatus() string {
-	if m != nil {
-		return m.LoamiStatus
-	}
-	return ""
-}
-
-type OnuStartupFailureIndication struct {
-	IntfId               uint32   `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
-	OnuId                uint32   `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
-	Status               string   `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OnuStartupFailureIndication) Reset()         { *m = OnuStartupFailureIndication{} }
-func (m *OnuStartupFailureIndication) String() string { return proto.CompactTextString(m) }
-func (*OnuStartupFailureIndication) ProtoMessage()    {}
-func (*OnuStartupFailureIndication) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{30}
-}
-
-func (m *OnuStartupFailureIndication) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OnuStartupFailureIndication.Unmarshal(m, b)
-}
-func (m *OnuStartupFailureIndication) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OnuStartupFailureIndication.Marshal(b, m, deterministic)
-}
-func (m *OnuStartupFailureIndication) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OnuStartupFailureIndication.Merge(m, src)
-}
-func (m *OnuStartupFailureIndication) XXX_Size() int {
-	return xxx_messageInfo_OnuStartupFailureIndication.Size(m)
-}
-func (m *OnuStartupFailureIndication) XXX_DiscardUnknown() {
-	xxx_messageInfo_OnuStartupFailureIndication.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OnuStartupFailureIndication proto.InternalMessageInfo
-
-func (m *OnuStartupFailureIndication) GetIntfId() uint32 {
-	if m != nil {
-		return m.IntfId
-	}
-	return 0
-}
-
-func (m *OnuStartupFailureIndication) GetOnuId() uint32 {
-	if m != nil {
-		return m.OnuId
-	}
-	return 0
-}
-
-func (m *OnuStartupFailureIndication) GetStatus() string {
-	if m != nil {
-		return m.Status
-	}
-	return ""
-}
-
-type OnuSignalDegradeIndication struct {
-	IntfId               uint32   `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
-	OnuId                uint32   `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
-	Status               string   `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"`
-	InverseBitErrorRate  uint32   `protobuf:"fixed32,4,opt,name=inverse_bit_error_rate,json=inverseBitErrorRate,proto3" json:"inverse_bit_error_rate,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OnuSignalDegradeIndication) Reset()         { *m = OnuSignalDegradeIndication{} }
-func (m *OnuSignalDegradeIndication) String() string { return proto.CompactTextString(m) }
-func (*OnuSignalDegradeIndication) ProtoMessage()    {}
-func (*OnuSignalDegradeIndication) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{31}
-}
-
-func (m *OnuSignalDegradeIndication) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OnuSignalDegradeIndication.Unmarshal(m, b)
-}
-func (m *OnuSignalDegradeIndication) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OnuSignalDegradeIndication.Marshal(b, m, deterministic)
-}
-func (m *OnuSignalDegradeIndication) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OnuSignalDegradeIndication.Merge(m, src)
-}
-func (m *OnuSignalDegradeIndication) XXX_Size() int {
-	return xxx_messageInfo_OnuSignalDegradeIndication.Size(m)
-}
-func (m *OnuSignalDegradeIndication) XXX_DiscardUnknown() {
-	xxx_messageInfo_OnuSignalDegradeIndication.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OnuSignalDegradeIndication proto.InternalMessageInfo
-
-func (m *OnuSignalDegradeIndication) GetIntfId() uint32 {
-	if m != nil {
-		return m.IntfId
-	}
-	return 0
-}
-
-func (m *OnuSignalDegradeIndication) GetOnuId() uint32 {
-	if m != nil {
-		return m.OnuId
-	}
-	return 0
-}
-
-func (m *OnuSignalDegradeIndication) GetStatus() string {
-	if m != nil {
-		return m.Status
-	}
-	return ""
-}
-
-func (m *OnuSignalDegradeIndication) GetInverseBitErrorRate() uint32 {
-	if m != nil {
-		return m.InverseBitErrorRate
-	}
-	return 0
-}
-
-type OnuDriftOfWindowIndication struct {
-	IntfId               uint32   `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
-	OnuId                uint32   `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
-	Status               string   `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"`
-	Drift                uint32   `protobuf:"fixed32,4,opt,name=drift,proto3" json:"drift,omitempty"`
-	NewEqd               uint32   `protobuf:"fixed32,5,opt,name=new_eqd,json=newEqd,proto3" json:"new_eqd,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OnuDriftOfWindowIndication) Reset()         { *m = OnuDriftOfWindowIndication{} }
-func (m *OnuDriftOfWindowIndication) String() string { return proto.CompactTextString(m) }
-func (*OnuDriftOfWindowIndication) ProtoMessage()    {}
-func (*OnuDriftOfWindowIndication) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{32}
-}
-
-func (m *OnuDriftOfWindowIndication) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OnuDriftOfWindowIndication.Unmarshal(m, b)
-}
-func (m *OnuDriftOfWindowIndication) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OnuDriftOfWindowIndication.Marshal(b, m, deterministic)
-}
-func (m *OnuDriftOfWindowIndication) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OnuDriftOfWindowIndication.Merge(m, src)
-}
-func (m *OnuDriftOfWindowIndication) XXX_Size() int {
-	return xxx_messageInfo_OnuDriftOfWindowIndication.Size(m)
-}
-func (m *OnuDriftOfWindowIndication) XXX_DiscardUnknown() {
-	xxx_messageInfo_OnuDriftOfWindowIndication.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OnuDriftOfWindowIndication proto.InternalMessageInfo
-
-func (m *OnuDriftOfWindowIndication) GetIntfId() uint32 {
-	if m != nil {
-		return m.IntfId
-	}
-	return 0
-}
-
-func (m *OnuDriftOfWindowIndication) GetOnuId() uint32 {
-	if m != nil {
-		return m.OnuId
-	}
-	return 0
-}
-
-func (m *OnuDriftOfWindowIndication) GetStatus() string {
-	if m != nil {
-		return m.Status
-	}
-	return ""
-}
-
-func (m *OnuDriftOfWindowIndication) GetDrift() uint32 {
-	if m != nil {
-		return m.Drift
-	}
-	return 0
-}
-
-func (m *OnuDriftOfWindowIndication) GetNewEqd() uint32 {
-	if m != nil {
-		return m.NewEqd
-	}
-	return 0
-}
-
-type OnuLossOfOmciChannelIndication struct {
-	IntfId               uint32   `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
-	OnuId                uint32   `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
-	Status               string   `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OnuLossOfOmciChannelIndication) Reset()         { *m = OnuLossOfOmciChannelIndication{} }
-func (m *OnuLossOfOmciChannelIndication) String() string { return proto.CompactTextString(m) }
-func (*OnuLossOfOmciChannelIndication) ProtoMessage()    {}
-func (*OnuLossOfOmciChannelIndication) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{33}
-}
-
-func (m *OnuLossOfOmciChannelIndication) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OnuLossOfOmciChannelIndication.Unmarshal(m, b)
-}
-func (m *OnuLossOfOmciChannelIndication) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OnuLossOfOmciChannelIndication.Marshal(b, m, deterministic)
-}
-func (m *OnuLossOfOmciChannelIndication) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OnuLossOfOmciChannelIndication.Merge(m, src)
-}
-func (m *OnuLossOfOmciChannelIndication) XXX_Size() int {
-	return xxx_messageInfo_OnuLossOfOmciChannelIndication.Size(m)
-}
-func (m *OnuLossOfOmciChannelIndication) XXX_DiscardUnknown() {
-	xxx_messageInfo_OnuLossOfOmciChannelIndication.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OnuLossOfOmciChannelIndication proto.InternalMessageInfo
-
-func (m *OnuLossOfOmciChannelIndication) GetIntfId() uint32 {
-	if m != nil {
-		return m.IntfId
-	}
-	return 0
-}
-
-func (m *OnuLossOfOmciChannelIndication) GetOnuId() uint32 {
-	if m != nil {
-		return m.OnuId
-	}
-	return 0
-}
-
-func (m *OnuLossOfOmciChannelIndication) GetStatus() string {
-	if m != nil {
-		return m.Status
-	}
-	return ""
-}
-
-type OnuSignalsFailureIndication struct {
-	IntfId               uint32   `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
-	OnuId                uint32   `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
-	Status               string   `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"`
-	InverseBitErrorRate  uint32   `protobuf:"fixed32,4,opt,name=inverse_bit_error_rate,json=inverseBitErrorRate,proto3" json:"inverse_bit_error_rate,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OnuSignalsFailureIndication) Reset()         { *m = OnuSignalsFailureIndication{} }
-func (m *OnuSignalsFailureIndication) String() string { return proto.CompactTextString(m) }
-func (*OnuSignalsFailureIndication) ProtoMessage()    {}
-func (*OnuSignalsFailureIndication) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{34}
-}
-
-func (m *OnuSignalsFailureIndication) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OnuSignalsFailureIndication.Unmarshal(m, b)
-}
-func (m *OnuSignalsFailureIndication) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OnuSignalsFailureIndication.Marshal(b, m, deterministic)
-}
-func (m *OnuSignalsFailureIndication) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OnuSignalsFailureIndication.Merge(m, src)
-}
-func (m *OnuSignalsFailureIndication) XXX_Size() int {
-	return xxx_messageInfo_OnuSignalsFailureIndication.Size(m)
-}
-func (m *OnuSignalsFailureIndication) XXX_DiscardUnknown() {
-	xxx_messageInfo_OnuSignalsFailureIndication.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OnuSignalsFailureIndication proto.InternalMessageInfo
-
-func (m *OnuSignalsFailureIndication) GetIntfId() uint32 {
-	if m != nil {
-		return m.IntfId
-	}
-	return 0
-}
-
-func (m *OnuSignalsFailureIndication) GetOnuId() uint32 {
-	if m != nil {
-		return m.OnuId
-	}
-	return 0
-}
-
-func (m *OnuSignalsFailureIndication) GetStatus() string {
-	if m != nil {
-		return m.Status
-	}
-	return ""
-}
-
-func (m *OnuSignalsFailureIndication) GetInverseBitErrorRate() uint32 {
-	if m != nil {
-		return m.InverseBitErrorRate
-	}
-	return 0
-}
-
-type OnuTransmissionInterferenceWarning struct {
-	IntfId               uint32   `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
-	OnuId                uint32   `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
-	Status               string   `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"`
-	Drift                uint32   `protobuf:"fixed32,4,opt,name=drift,proto3" json:"drift,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OnuTransmissionInterferenceWarning) Reset()         { *m = OnuTransmissionInterferenceWarning{} }
-func (m *OnuTransmissionInterferenceWarning) String() string { return proto.CompactTextString(m) }
-func (*OnuTransmissionInterferenceWarning) ProtoMessage()    {}
-func (*OnuTransmissionInterferenceWarning) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{35}
-}
-
-func (m *OnuTransmissionInterferenceWarning) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OnuTransmissionInterferenceWarning.Unmarshal(m, b)
-}
-func (m *OnuTransmissionInterferenceWarning) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OnuTransmissionInterferenceWarning.Marshal(b, m, deterministic)
-}
-func (m *OnuTransmissionInterferenceWarning) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OnuTransmissionInterferenceWarning.Merge(m, src)
-}
-func (m *OnuTransmissionInterferenceWarning) XXX_Size() int {
-	return xxx_messageInfo_OnuTransmissionInterferenceWarning.Size(m)
-}
-func (m *OnuTransmissionInterferenceWarning) XXX_DiscardUnknown() {
-	xxx_messageInfo_OnuTransmissionInterferenceWarning.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OnuTransmissionInterferenceWarning proto.InternalMessageInfo
-
-func (m *OnuTransmissionInterferenceWarning) GetIntfId() uint32 {
-	if m != nil {
-		return m.IntfId
-	}
-	return 0
-}
-
-func (m *OnuTransmissionInterferenceWarning) GetOnuId() uint32 {
-	if m != nil {
-		return m.OnuId
-	}
-	return 0
-}
-
-func (m *OnuTransmissionInterferenceWarning) GetStatus() string {
-	if m != nil {
-		return m.Status
-	}
-	return ""
-}
-
-func (m *OnuTransmissionInterferenceWarning) GetDrift() uint32 {
-	if m != nil {
-		return m.Drift
-	}
-	return 0
-}
-
-type OnuActivationFailureIndication struct {
-	IntfId               uint32   `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
-	OnuId                uint32   `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
-	FailReason           uint32   `protobuf:"fixed32,3,opt,name=fail_reason,json=failReason,proto3" json:"fail_reason,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OnuActivationFailureIndication) Reset()         { *m = OnuActivationFailureIndication{} }
-func (m *OnuActivationFailureIndication) String() string { return proto.CompactTextString(m) }
-func (*OnuActivationFailureIndication) ProtoMessage()    {}
-func (*OnuActivationFailureIndication) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{36}
-}
-
-func (m *OnuActivationFailureIndication) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OnuActivationFailureIndication.Unmarshal(m, b)
-}
-func (m *OnuActivationFailureIndication) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OnuActivationFailureIndication.Marshal(b, m, deterministic)
-}
-func (m *OnuActivationFailureIndication) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OnuActivationFailureIndication.Merge(m, src)
-}
-func (m *OnuActivationFailureIndication) XXX_Size() int {
-	return xxx_messageInfo_OnuActivationFailureIndication.Size(m)
-}
-func (m *OnuActivationFailureIndication) XXX_DiscardUnknown() {
-	xxx_messageInfo_OnuActivationFailureIndication.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OnuActivationFailureIndication proto.InternalMessageInfo
-
-func (m *OnuActivationFailureIndication) GetIntfId() uint32 {
-	if m != nil {
-		return m.IntfId
-	}
-	return 0
-}
-
-func (m *OnuActivationFailureIndication) GetOnuId() uint32 {
-	if m != nil {
-		return m.OnuId
-	}
-	return 0
-}
-
-func (m *OnuActivationFailureIndication) GetFailReason() uint32 {
-	if m != nil {
-		return m.FailReason
-	}
-	return 0
-}
-
-type OnuLossOfKeySyncFailureIndication struct {
-	IntfId               uint32   `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
-	OnuId                uint32   `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
-	Status               string   `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OnuLossOfKeySyncFailureIndication) Reset()         { *m = OnuLossOfKeySyncFailureIndication{} }
-func (m *OnuLossOfKeySyncFailureIndication) String() string { return proto.CompactTextString(m) }
-func (*OnuLossOfKeySyncFailureIndication) ProtoMessage()    {}
-func (*OnuLossOfKeySyncFailureIndication) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{37}
-}
-
-func (m *OnuLossOfKeySyncFailureIndication) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OnuLossOfKeySyncFailureIndication.Unmarshal(m, b)
-}
-func (m *OnuLossOfKeySyncFailureIndication) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OnuLossOfKeySyncFailureIndication.Marshal(b, m, deterministic)
-}
-func (m *OnuLossOfKeySyncFailureIndication) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OnuLossOfKeySyncFailureIndication.Merge(m, src)
-}
-func (m *OnuLossOfKeySyncFailureIndication) XXX_Size() int {
-	return xxx_messageInfo_OnuLossOfKeySyncFailureIndication.Size(m)
-}
-func (m *OnuLossOfKeySyncFailureIndication) XXX_DiscardUnknown() {
-	xxx_messageInfo_OnuLossOfKeySyncFailureIndication.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OnuLossOfKeySyncFailureIndication proto.InternalMessageInfo
-
-func (m *OnuLossOfKeySyncFailureIndication) GetIntfId() uint32 {
-	if m != nil {
-		return m.IntfId
-	}
-	return 0
-}
-
-func (m *OnuLossOfKeySyncFailureIndication) GetOnuId() uint32 {
-	if m != nil {
-		return m.OnuId
-	}
-	return 0
-}
-
-func (m *OnuLossOfKeySyncFailureIndication) GetStatus() string {
-	if m != nil {
-		return m.Status
-	}
-	return ""
-}
-
-type RdiErrorIndication struct {
-	RdiErrorCount        uint64   `protobuf:"fixed64,1,opt,name=rdi_error_count,json=rdiErrorCount,proto3" json:"rdi_error_count,omitempty"`
-	Status               string   `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *RdiErrorIndication) Reset()         { *m = RdiErrorIndication{} }
-func (m *RdiErrorIndication) String() string { return proto.CompactTextString(m) }
-func (*RdiErrorIndication) ProtoMessage()    {}
-func (*RdiErrorIndication) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{38}
-}
-
-func (m *RdiErrorIndication) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_RdiErrorIndication.Unmarshal(m, b)
-}
-func (m *RdiErrorIndication) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_RdiErrorIndication.Marshal(b, m, deterministic)
-}
-func (m *RdiErrorIndication) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_RdiErrorIndication.Merge(m, src)
-}
-func (m *RdiErrorIndication) XXX_Size() int {
-	return xxx_messageInfo_RdiErrorIndication.Size(m)
-}
-func (m *RdiErrorIndication) XXX_DiscardUnknown() {
-	xxx_messageInfo_RdiErrorIndication.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_RdiErrorIndication proto.InternalMessageInfo
-
-func (m *RdiErrorIndication) GetRdiErrorCount() uint64 {
-	if m != nil {
-		return m.RdiErrorCount
-	}
-	return 0
-}
-
-func (m *RdiErrorIndication) GetStatus() string {
-	if m != nil {
-		return m.Status
-	}
-	return ""
-}
-
-type OnuItuPonStatsIndication struct {
-	IntfId uint32 `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
-	OnuId  uint32 `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
-	// Types that are valid to be assigned to Stats:
-	//	*OnuItuPonStatsIndication_RdiErrorInd
-	Stats                isOnuItuPonStatsIndication_Stats `protobuf_oneof:"stats"`
-	XXX_NoUnkeyedLiteral struct{}                         `json:"-"`
-	XXX_unrecognized     []byte                           `json:"-"`
-	XXX_sizecache        int32                            `json:"-"`
-}
-
-func (m *OnuItuPonStatsIndication) Reset()         { *m = OnuItuPonStatsIndication{} }
-func (m *OnuItuPonStatsIndication) String() string { return proto.CompactTextString(m) }
-func (*OnuItuPonStatsIndication) ProtoMessage()    {}
-func (*OnuItuPonStatsIndication) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{39}
-}
-
-func (m *OnuItuPonStatsIndication) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OnuItuPonStatsIndication.Unmarshal(m, b)
-}
-func (m *OnuItuPonStatsIndication) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OnuItuPonStatsIndication.Marshal(b, m, deterministic)
-}
-func (m *OnuItuPonStatsIndication) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OnuItuPonStatsIndication.Merge(m, src)
-}
-func (m *OnuItuPonStatsIndication) XXX_Size() int {
-	return xxx_messageInfo_OnuItuPonStatsIndication.Size(m)
-}
-func (m *OnuItuPonStatsIndication) XXX_DiscardUnknown() {
-	xxx_messageInfo_OnuItuPonStatsIndication.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OnuItuPonStatsIndication proto.InternalMessageInfo
-
-func (m *OnuItuPonStatsIndication) GetIntfId() uint32 {
-	if m != nil {
-		return m.IntfId
-	}
-	return 0
-}
-
-func (m *OnuItuPonStatsIndication) GetOnuId() uint32 {
-	if m != nil {
-		return m.OnuId
-	}
-	return 0
-}
-
-type isOnuItuPonStatsIndication_Stats interface {
-	isOnuItuPonStatsIndication_Stats()
-}
-
-type OnuItuPonStatsIndication_RdiErrorInd struct {
-	RdiErrorInd *RdiErrorIndication `protobuf:"bytes,3,opt,name=rdi_error_ind,json=rdiErrorInd,proto3,oneof"`
-}
-
-func (*OnuItuPonStatsIndication_RdiErrorInd) isOnuItuPonStatsIndication_Stats() {}
-
-func (m *OnuItuPonStatsIndication) GetStats() isOnuItuPonStatsIndication_Stats {
-	if m != nil {
-		return m.Stats
-	}
-	return nil
-}
-
-func (m *OnuItuPonStatsIndication) GetRdiErrorInd() *RdiErrorIndication {
-	if x, ok := m.GetStats().(*OnuItuPonStatsIndication_RdiErrorInd); ok {
-		return x.RdiErrorInd
-	}
-	return nil
-}
-
-// XXX_OneofWrappers is for the internal use of the proto package.
-func (*OnuItuPonStatsIndication) XXX_OneofWrappers() []interface{} {
-	return []interface{}{
+	file_voltha_protos_openolt_proto_msgTypes[39].OneofWrappers = []any{
 		(*OnuItuPonStatsIndication_RdiErrorInd)(nil),
 	}
-}
-
-type OnuProcessingErrorIndication struct {
-	IntfId               uint32   `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
-	OnuId                uint32   `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OnuProcessingErrorIndication) Reset()         { *m = OnuProcessingErrorIndication{} }
-func (m *OnuProcessingErrorIndication) String() string { return proto.CompactTextString(m) }
-func (*OnuProcessingErrorIndication) ProtoMessage()    {}
-func (*OnuProcessingErrorIndication) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{40}
-}
-
-func (m *OnuProcessingErrorIndication) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OnuProcessingErrorIndication.Unmarshal(m, b)
-}
-func (m *OnuProcessingErrorIndication) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OnuProcessingErrorIndication.Marshal(b, m, deterministic)
-}
-func (m *OnuProcessingErrorIndication) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OnuProcessingErrorIndication.Merge(m, src)
-}
-func (m *OnuProcessingErrorIndication) XXX_Size() int {
-	return xxx_messageInfo_OnuProcessingErrorIndication.Size(m)
-}
-func (m *OnuProcessingErrorIndication) XXX_DiscardUnknown() {
-	xxx_messageInfo_OnuProcessingErrorIndication.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OnuProcessingErrorIndication proto.InternalMessageInfo
-
-func (m *OnuProcessingErrorIndication) GetIntfId() uint32 {
-	if m != nil {
-		return m.IntfId
-	}
-	return 0
-}
-
-func (m *OnuProcessingErrorIndication) GetOnuId() uint32 {
-	if m != nil {
-		return m.OnuId
-	}
-	return 0
-}
-
-type OnuDeactivationFailureIndication struct {
-	IntfId               uint32   `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
-	OnuId                uint32   `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
-	Status               string   `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OnuDeactivationFailureIndication) Reset()         { *m = OnuDeactivationFailureIndication{} }
-func (m *OnuDeactivationFailureIndication) String() string { return proto.CompactTextString(m) }
-func (*OnuDeactivationFailureIndication) ProtoMessage()    {}
-func (*OnuDeactivationFailureIndication) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{41}
-}
-
-func (m *OnuDeactivationFailureIndication) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OnuDeactivationFailureIndication.Unmarshal(m, b)
-}
-func (m *OnuDeactivationFailureIndication) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OnuDeactivationFailureIndication.Marshal(b, m, deterministic)
-}
-func (m *OnuDeactivationFailureIndication) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OnuDeactivationFailureIndication.Merge(m, src)
-}
-func (m *OnuDeactivationFailureIndication) XXX_Size() int {
-	return xxx_messageInfo_OnuDeactivationFailureIndication.Size(m)
-}
-func (m *OnuDeactivationFailureIndication) XXX_DiscardUnknown() {
-	xxx_messageInfo_OnuDeactivationFailureIndication.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OnuDeactivationFailureIndication proto.InternalMessageInfo
-
-func (m *OnuDeactivationFailureIndication) GetIntfId() uint32 {
-	if m != nil {
-		return m.IntfId
-	}
-	return 0
-}
-
-func (m *OnuDeactivationFailureIndication) GetOnuId() uint32 {
-	if m != nil {
-		return m.OnuId
-	}
-	return 0
-}
-
-func (m *OnuDeactivationFailureIndication) GetStatus() string {
-	if m != nil {
-		return m.Status
-	}
-	return ""
-}
-
-type OnuRemoteDefectIndication struct {
-	IntfId               uint32   `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
-	OnuId                uint32   `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
-	RdiErrors            uint64   `protobuf:"fixed64,3,opt,name=rdi_errors,json=rdiErrors,proto3" json:"rdi_errors,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OnuRemoteDefectIndication) Reset()         { *m = OnuRemoteDefectIndication{} }
-func (m *OnuRemoteDefectIndication) String() string { return proto.CompactTextString(m) }
-func (*OnuRemoteDefectIndication) ProtoMessage()    {}
-func (*OnuRemoteDefectIndication) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{42}
-}
-
-func (m *OnuRemoteDefectIndication) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OnuRemoteDefectIndication.Unmarshal(m, b)
-}
-func (m *OnuRemoteDefectIndication) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OnuRemoteDefectIndication.Marshal(b, m, deterministic)
-}
-func (m *OnuRemoteDefectIndication) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OnuRemoteDefectIndication.Merge(m, src)
-}
-func (m *OnuRemoteDefectIndication) XXX_Size() int {
-	return xxx_messageInfo_OnuRemoteDefectIndication.Size(m)
-}
-func (m *OnuRemoteDefectIndication) XXX_DiscardUnknown() {
-	xxx_messageInfo_OnuRemoteDefectIndication.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OnuRemoteDefectIndication proto.InternalMessageInfo
-
-func (m *OnuRemoteDefectIndication) GetIntfId() uint32 {
-	if m != nil {
-		return m.IntfId
-	}
-	return 0
-}
-
-func (m *OnuRemoteDefectIndication) GetOnuId() uint32 {
-	if m != nil {
-		return m.OnuId
-	}
-	return 0
-}
-
-func (m *OnuRemoteDefectIndication) GetRdiErrors() uint64 {
-	if m != nil {
-		return m.RdiErrors
-	}
-	return 0
-}
-
-type OnuLossOfGEMChannelDelineationIndication struct {
-	IntfId               uint32   `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
-	OnuId                uint32   `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
-	Status               string   `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"`
-	DelineationErrors    uint32   `protobuf:"fixed32,4,opt,name=delineation_errors,json=delineationErrors,proto3" json:"delineation_errors,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OnuLossOfGEMChannelDelineationIndication) Reset() {
-	*m = OnuLossOfGEMChannelDelineationIndication{}
-}
-func (m *OnuLossOfGEMChannelDelineationIndication) String() string { return proto.CompactTextString(m) }
-func (*OnuLossOfGEMChannelDelineationIndication) ProtoMessage()    {}
-func (*OnuLossOfGEMChannelDelineationIndication) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{43}
-}
-
-func (m *OnuLossOfGEMChannelDelineationIndication) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OnuLossOfGEMChannelDelineationIndication.Unmarshal(m, b)
-}
-func (m *OnuLossOfGEMChannelDelineationIndication) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OnuLossOfGEMChannelDelineationIndication.Marshal(b, m, deterministic)
-}
-func (m *OnuLossOfGEMChannelDelineationIndication) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OnuLossOfGEMChannelDelineationIndication.Merge(m, src)
-}
-func (m *OnuLossOfGEMChannelDelineationIndication) XXX_Size() int {
-	return xxx_messageInfo_OnuLossOfGEMChannelDelineationIndication.Size(m)
-}
-func (m *OnuLossOfGEMChannelDelineationIndication) XXX_DiscardUnknown() {
-	xxx_messageInfo_OnuLossOfGEMChannelDelineationIndication.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OnuLossOfGEMChannelDelineationIndication proto.InternalMessageInfo
-
-func (m *OnuLossOfGEMChannelDelineationIndication) GetIntfId() uint32 {
-	if m != nil {
-		return m.IntfId
-	}
-	return 0
-}
-
-func (m *OnuLossOfGEMChannelDelineationIndication) GetOnuId() uint32 {
-	if m != nil {
-		return m.OnuId
-	}
-	return 0
-}
-
-func (m *OnuLossOfGEMChannelDelineationIndication) GetStatus() string {
-	if m != nil {
-		return m.Status
-	}
-	return ""
-}
-
-func (m *OnuLossOfGEMChannelDelineationIndication) GetDelineationErrors() uint32 {
-	if m != nil {
-		return m.DelineationErrors
-	}
-	return 0
-}
-
-type OnuPhysicalEquipmentErrorIndication struct {
-	IntfId               uint32   `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
-	OnuId                uint32   `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
-	Status               string   `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OnuPhysicalEquipmentErrorIndication) Reset()         { *m = OnuPhysicalEquipmentErrorIndication{} }
-func (m *OnuPhysicalEquipmentErrorIndication) String() string { return proto.CompactTextString(m) }
-func (*OnuPhysicalEquipmentErrorIndication) ProtoMessage()    {}
-func (*OnuPhysicalEquipmentErrorIndication) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{44}
-}
-
-func (m *OnuPhysicalEquipmentErrorIndication) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OnuPhysicalEquipmentErrorIndication.Unmarshal(m, b)
-}
-func (m *OnuPhysicalEquipmentErrorIndication) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OnuPhysicalEquipmentErrorIndication.Marshal(b, m, deterministic)
-}
-func (m *OnuPhysicalEquipmentErrorIndication) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OnuPhysicalEquipmentErrorIndication.Merge(m, src)
-}
-func (m *OnuPhysicalEquipmentErrorIndication) XXX_Size() int {
-	return xxx_messageInfo_OnuPhysicalEquipmentErrorIndication.Size(m)
-}
-func (m *OnuPhysicalEquipmentErrorIndication) XXX_DiscardUnknown() {
-	xxx_messageInfo_OnuPhysicalEquipmentErrorIndication.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OnuPhysicalEquipmentErrorIndication proto.InternalMessageInfo
-
-func (m *OnuPhysicalEquipmentErrorIndication) GetIntfId() uint32 {
-	if m != nil {
-		return m.IntfId
-	}
-	return 0
-}
-
-func (m *OnuPhysicalEquipmentErrorIndication) GetOnuId() uint32 {
-	if m != nil {
-		return m.OnuId
-	}
-	return 0
-}
-
-func (m *OnuPhysicalEquipmentErrorIndication) GetStatus() string {
-	if m != nil {
-		return m.Status
-	}
-	return ""
-}
-
-type OnuLossOfAcknowledgementIndication struct {
-	IntfId               uint32   `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
-	OnuId                uint32   `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
-	Status               string   `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OnuLossOfAcknowledgementIndication) Reset()         { *m = OnuLossOfAcknowledgementIndication{} }
-func (m *OnuLossOfAcknowledgementIndication) String() string { return proto.CompactTextString(m) }
-func (*OnuLossOfAcknowledgementIndication) ProtoMessage()    {}
-func (*OnuLossOfAcknowledgementIndication) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{45}
-}
-
-func (m *OnuLossOfAcknowledgementIndication) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OnuLossOfAcknowledgementIndication.Unmarshal(m, b)
-}
-func (m *OnuLossOfAcknowledgementIndication) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OnuLossOfAcknowledgementIndication.Marshal(b, m, deterministic)
-}
-func (m *OnuLossOfAcknowledgementIndication) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OnuLossOfAcknowledgementIndication.Merge(m, src)
-}
-func (m *OnuLossOfAcknowledgementIndication) XXX_Size() int {
-	return xxx_messageInfo_OnuLossOfAcknowledgementIndication.Size(m)
-}
-func (m *OnuLossOfAcknowledgementIndication) XXX_DiscardUnknown() {
-	xxx_messageInfo_OnuLossOfAcknowledgementIndication.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OnuLossOfAcknowledgementIndication proto.InternalMessageInfo
-
-func (m *OnuLossOfAcknowledgementIndication) GetIntfId() uint32 {
-	if m != nil {
-		return m.IntfId
-	}
-	return 0
-}
-
-func (m *OnuLossOfAcknowledgementIndication) GetOnuId() uint32 {
-	if m != nil {
-		return m.OnuId
-	}
-	return 0
-}
-
-func (m *OnuLossOfAcknowledgementIndication) GetStatus() string {
-	if m != nil {
-		return m.Status
-	}
-	return ""
-}
-
-type OnuDifferentialReachExceededIndication struct {
-	IntfId               uint32   `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
-	OnuId                uint32   `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
-	Status               string   `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"`
-	Distance             uint32   `protobuf:"fixed32,4,opt,name=distance,proto3" json:"distance,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OnuDifferentialReachExceededIndication) Reset() {
-	*m = OnuDifferentialReachExceededIndication{}
-}
-func (m *OnuDifferentialReachExceededIndication) String() string { return proto.CompactTextString(m) }
-func (*OnuDifferentialReachExceededIndication) ProtoMessage()    {}
-func (*OnuDifferentialReachExceededIndication) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{46}
-}
-
-func (m *OnuDifferentialReachExceededIndication) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OnuDifferentialReachExceededIndication.Unmarshal(m, b)
-}
-func (m *OnuDifferentialReachExceededIndication) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OnuDifferentialReachExceededIndication.Marshal(b, m, deterministic)
-}
-func (m *OnuDifferentialReachExceededIndication) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OnuDifferentialReachExceededIndication.Merge(m, src)
-}
-func (m *OnuDifferentialReachExceededIndication) XXX_Size() int {
-	return xxx_messageInfo_OnuDifferentialReachExceededIndication.Size(m)
-}
-func (m *OnuDifferentialReachExceededIndication) XXX_DiscardUnknown() {
-	xxx_messageInfo_OnuDifferentialReachExceededIndication.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OnuDifferentialReachExceededIndication proto.InternalMessageInfo
-
-func (m *OnuDifferentialReachExceededIndication) GetIntfId() uint32 {
-	if m != nil {
-		return m.IntfId
-	}
-	return 0
-}
-
-func (m *OnuDifferentialReachExceededIndication) GetOnuId() uint32 {
-	if m != nil {
-		return m.OnuId
-	}
-	return 0
-}
-
-func (m *OnuDifferentialReachExceededIndication) GetStatus() string {
-	if m != nil {
-		return m.Status
-	}
-	return ""
-}
-
-func (m *OnuDifferentialReachExceededIndication) GetDistance() uint32 {
-	if m != nil {
-		return m.Distance
-	}
-	return 0
-}
-
-type GroupMember struct {
-	InterfaceId          uint32                    `protobuf:"varint,1,opt,name=interface_id,json=interfaceId,proto3" json:"interface_id,omitempty"`
-	InterfaceType        GroupMember_InterfaceType `protobuf:"varint,2,opt,name=interface_type,json=interfaceType,proto3,enum=openolt.GroupMember_InterfaceType" json:"interface_type,omitempty"`
-	GemPortId            uint32                    `protobuf:"varint,3,opt,name=gem_port_id,json=gemPortId,proto3" json:"gem_port_id,omitempty"`
-	Priority             uint32                    `protobuf:"varint,4,opt,name=priority,proto3" json:"priority,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                  `json:"-"`
-	XXX_unrecognized     []byte                    `json:"-"`
-	XXX_sizecache        int32                     `json:"-"`
-}
-
-func (m *GroupMember) Reset()         { *m = GroupMember{} }
-func (m *GroupMember) String() string { return proto.CompactTextString(m) }
-func (*GroupMember) ProtoMessage()    {}
-func (*GroupMember) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{47}
-}
-
-func (m *GroupMember) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_GroupMember.Unmarshal(m, b)
-}
-func (m *GroupMember) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_GroupMember.Marshal(b, m, deterministic)
-}
-func (m *GroupMember) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_GroupMember.Merge(m, src)
-}
-func (m *GroupMember) XXX_Size() int {
-	return xxx_messageInfo_GroupMember.Size(m)
-}
-func (m *GroupMember) XXX_DiscardUnknown() {
-	xxx_messageInfo_GroupMember.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_GroupMember proto.InternalMessageInfo
-
-func (m *GroupMember) GetInterfaceId() uint32 {
-	if m != nil {
-		return m.InterfaceId
-	}
-	return 0
-}
-
-func (m *GroupMember) GetInterfaceType() GroupMember_InterfaceType {
-	if m != nil {
-		return m.InterfaceType
-	}
-	return GroupMember_PON
-}
-
-func (m *GroupMember) GetGemPortId() uint32 {
-	if m != nil {
-		return m.GemPortId
-	}
-	return 0
-}
-
-func (m *GroupMember) GetPriority() uint32 {
-	if m != nil {
-		return m.Priority
-	}
-	return 0
-}
-
-type Group struct {
-	GroupId              uint32                    `protobuf:"varint,1,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
-	Command              Group_GroupMembersCommand `protobuf:"varint,2,opt,name=command,proto3,enum=openolt.Group_GroupMembersCommand" json:"command,omitempty"`
-	Members              []*GroupMember            `protobuf:"bytes,3,rep,name=members,proto3" json:"members,omitempty"`
-	Action               *Action                   `protobuf:"bytes,4,opt,name=action,proto3" json:"action,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                  `json:"-"`
-	XXX_unrecognized     []byte                    `json:"-"`
-	XXX_sizecache        int32                     `json:"-"`
-}
-
-func (m *Group) Reset()         { *m = Group{} }
-func (m *Group) String() string { return proto.CompactTextString(m) }
-func (*Group) ProtoMessage()    {}
-func (*Group) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{48}
-}
-
-func (m *Group) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_Group.Unmarshal(m, b)
-}
-func (m *Group) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_Group.Marshal(b, m, deterministic)
-}
-func (m *Group) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Group.Merge(m, src)
-}
-func (m *Group) XXX_Size() int {
-	return xxx_messageInfo_Group.Size(m)
-}
-func (m *Group) XXX_DiscardUnknown() {
-	xxx_messageInfo_Group.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_Group proto.InternalMessageInfo
-
-func (m *Group) GetGroupId() uint32 {
-	if m != nil {
-		return m.GroupId
-	}
-	return 0
-}
-
-func (m *Group) GetCommand() Group_GroupMembersCommand {
-	if m != nil {
-		return m.Command
-	}
-	return Group_ADD_MEMBERS
-}
-
-func (m *Group) GetMembers() []*GroupMember {
-	if m != nil {
-		return m.Members
-	}
-	return nil
-}
-
-func (m *Group) GetAction() *Action {
-	if m != nil {
-		return m.Action
-	}
-	return nil
-}
-
-type ValueParam struct {
-	Onu                  *Onu                     `protobuf:"bytes,1,opt,name=onu,proto3" json:"onu,omitempty"`
-	Value                extension.ValueType_Type `protobuf:"varint,2,opt,name=value,proto3,enum=extension.ValueType_Type" json:"value,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                 `json:"-"`
-	XXX_unrecognized     []byte                   `json:"-"`
-	XXX_sizecache        int32                    `json:"-"`
-}
-
-func (m *ValueParam) Reset()         { *m = ValueParam{} }
-func (m *ValueParam) String() string { return proto.CompactTextString(m) }
-func (*ValueParam) ProtoMessage()    {}
-func (*ValueParam) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{49}
-}
-
-func (m *ValueParam) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_ValueParam.Unmarshal(m, b)
-}
-func (m *ValueParam) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_ValueParam.Marshal(b, m, deterministic)
-}
-func (m *ValueParam) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_ValueParam.Merge(m, src)
-}
-func (m *ValueParam) XXX_Size() int {
-	return xxx_messageInfo_ValueParam.Size(m)
-}
-func (m *ValueParam) XXX_DiscardUnknown() {
-	xxx_messageInfo_ValueParam.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_ValueParam proto.InternalMessageInfo
-
-func (m *ValueParam) GetOnu() *Onu {
-	if m != nil {
-		return m.Onu
-	}
-	return nil
-}
-
-func (m *ValueParam) GetValue() extension.ValueType_Type {
-	if m != nil {
-		return m.Value
-	}
-	return extension.ValueType_EMPTY
-}
-
-type PonRxPowerData struct {
-	IntfId               uint32                                   `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
-	OnuId                uint32                                   `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
-	Status               string                                   `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"`
-	FailReason           PonRxPowerData_RssiMeasurementFailReason `protobuf:"varint,4,opt,name=fail_reason,json=failReason,proto3,enum=openolt.PonRxPowerData_RssiMeasurementFailReason" json:"fail_reason,omitempty"`
-	RxPowerMeanDbm       float64                                  `protobuf:"fixed64,5,opt,name=rx_power_mean_dbm,json=rxPowerMeanDbm,proto3" json:"rx_power_mean_dbm,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                                 `json:"-"`
-	XXX_unrecognized     []byte                                   `json:"-"`
-	XXX_sizecache        int32                                    `json:"-"`
-}
-
-func (m *PonRxPowerData) Reset()         { *m = PonRxPowerData{} }
-func (m *PonRxPowerData) String() string { return proto.CompactTextString(m) }
-func (*PonRxPowerData) ProtoMessage()    {}
-func (*PonRxPowerData) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{50}
-}
-
-func (m *PonRxPowerData) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_PonRxPowerData.Unmarshal(m, b)
-}
-func (m *PonRxPowerData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_PonRxPowerData.Marshal(b, m, deterministic)
-}
-func (m *PonRxPowerData) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_PonRxPowerData.Merge(m, src)
-}
-func (m *PonRxPowerData) XXX_Size() int {
-	return xxx_messageInfo_PonRxPowerData.Size(m)
-}
-func (m *PonRxPowerData) XXX_DiscardUnknown() {
-	xxx_messageInfo_PonRxPowerData.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_PonRxPowerData proto.InternalMessageInfo
-
-func (m *PonRxPowerData) GetIntfId() uint32 {
-	if m != nil {
-		return m.IntfId
-	}
-	return 0
-}
-
-func (m *PonRxPowerData) GetOnuId() uint32 {
-	if m != nil {
-		return m.OnuId
-	}
-	return 0
-}
-
-func (m *PonRxPowerData) GetStatus() string {
-	if m != nil {
-		return m.Status
-	}
-	return ""
-}
-
-func (m *PonRxPowerData) GetFailReason() PonRxPowerData_RssiMeasurementFailReason {
-	if m != nil {
-		return m.FailReason
-	}
-	return PonRxPowerData_FAIL_REASON_NONE
-}
-
-func (m *PonRxPowerData) GetRxPowerMeanDbm() float64 {
-	if m != nil {
-		return m.RxPowerMeanDbm
-	}
-	return 0
-}
-
-type OnuAllocIdStatistics struct {
-	IntfId               uint32   `protobuf:"fixed32,1,opt,name=intfId,proto3" json:"intfId,omitempty"`
-	AllocId              uint32   `protobuf:"fixed32,2,opt,name=allocId,proto3" json:"allocId,omitempty"`
-	RxBytes              uint64   `protobuf:"fixed64,3,opt,name=rxBytes,proto3" json:"rxBytes,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *OnuAllocIdStatistics) Reset()         { *m = OnuAllocIdStatistics{} }
-func (m *OnuAllocIdStatistics) String() string { return proto.CompactTextString(m) }
-func (*OnuAllocIdStatistics) ProtoMessage()    {}
-func (*OnuAllocIdStatistics) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{51}
-}
-
-func (m *OnuAllocIdStatistics) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OnuAllocIdStatistics.Unmarshal(m, b)
-}
-func (m *OnuAllocIdStatistics) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OnuAllocIdStatistics.Marshal(b, m, deterministic)
-}
-func (m *OnuAllocIdStatistics) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OnuAllocIdStatistics.Merge(m, src)
-}
-func (m *OnuAllocIdStatistics) XXX_Size() int {
-	return xxx_messageInfo_OnuAllocIdStatistics.Size(m)
-}
-func (m *OnuAllocIdStatistics) XXX_DiscardUnknown() {
-	xxx_messageInfo_OnuAllocIdStatistics.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OnuAllocIdStatistics proto.InternalMessageInfo
-
-func (m *OnuAllocIdStatistics) GetIntfId() uint32 {
-	if m != nil {
-		return m.IntfId
-	}
-	return 0
-}
-
-func (m *OnuAllocIdStatistics) GetAllocId() uint32 {
-	if m != nil {
-		return m.AllocId
-	}
-	return 0
-}
-
-func (m *OnuAllocIdStatistics) GetRxBytes() uint64 {
-	if m != nil {
-		return m.RxBytes
-	}
-	return 0
-}
-
-//
-// contains the onu id, state of the onu and the information about the alarms on the onu.
-// As of now only few alarms are added, any further information needed can be added to the structure.
-type OnuInfo struct {
-	OnuId                uint32           `protobuf:"fixed32,1,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
-	State                OnuInfo_OnuState `protobuf:"varint,2,opt,name=state,proto3,enum=openolt.OnuInfo_OnuState" json:"state,omitempty"`
-	Losi                 AlarmState       `protobuf:"varint,3,opt,name=losi,proto3,enum=openolt.AlarmState" json:"losi,omitempty"`
-	Lofi                 AlarmState       `protobuf:"varint,4,opt,name=lofi,proto3,enum=openolt.AlarmState" json:"lofi,omitempty"`
-	Loami                AlarmState       `protobuf:"varint,5,opt,name=loami,proto3,enum=openolt.AlarmState" json:"loami,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
-	XXX_unrecognized     []byte           `json:"-"`
-	XXX_sizecache        int32            `json:"-"`
-}
-
-func (m *OnuInfo) Reset()         { *m = OnuInfo{} }
-func (m *OnuInfo) String() string { return proto.CompactTextString(m) }
-func (*OnuInfo) ProtoMessage()    {}
-func (*OnuInfo) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{52}
-}
-
-func (m *OnuInfo) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OnuInfo.Unmarshal(m, b)
-}
-func (m *OnuInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OnuInfo.Marshal(b, m, deterministic)
-}
-func (m *OnuInfo) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OnuInfo.Merge(m, src)
-}
-func (m *OnuInfo) XXX_Size() int {
-	return xxx_messageInfo_OnuInfo.Size(m)
-}
-func (m *OnuInfo) XXX_DiscardUnknown() {
-	xxx_messageInfo_OnuInfo.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OnuInfo proto.InternalMessageInfo
-
-func (m *OnuInfo) GetOnuId() uint32 {
-	if m != nil {
-		return m.OnuId
-	}
-	return 0
-}
-
-func (m *OnuInfo) GetState() OnuInfo_OnuState {
-	if m != nil {
-		return m.State
-	}
-	return OnuInfo_UNKNOWN
-}
-
-func (m *OnuInfo) GetLosi() AlarmState {
-	if m != nil {
-		return m.Losi
-	}
-	return AlarmState_OFF
-}
-
-func (m *OnuInfo) GetLofi() AlarmState {
-	if m != nil {
-		return m.Lofi
-	}
-	return AlarmState_OFF
-}
-
-func (m *OnuInfo) GetLoami() AlarmState {
-	if m != nil {
-		return m.Loami
-	}
-	return AlarmState_OFF
-}
-
-//
-// IntfInfo has the interface Id and if there are any alarms active on that interface.
-// Any further information needed from the interface object can be added to the structure.
-type PonIntfInfo struct {
-	IntfId               uint32                   `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
-	State                PonIntfInfo_PonIntfState `protobuf:"varint,3,opt,name=state,proto3,enum=openolt.PonIntfInfo_PonIntfState" json:"state,omitempty"`
-	Los                  AlarmState               `protobuf:"varint,4,opt,name=los,proto3,enum=openolt.AlarmState" json:"los,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                 `json:"-"`
-	XXX_unrecognized     []byte                   `json:"-"`
-	XXX_sizecache        int32                    `json:"-"`
-}
-
-func (m *PonIntfInfo) Reset()         { *m = PonIntfInfo{} }
-func (m *PonIntfInfo) String() string { return proto.CompactTextString(m) }
-func (*PonIntfInfo) ProtoMessage()    {}
-func (*PonIntfInfo) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{53}
-}
-
-func (m *PonIntfInfo) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_PonIntfInfo.Unmarshal(m, b)
-}
-func (m *PonIntfInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_PonIntfInfo.Marshal(b, m, deterministic)
-}
-func (m *PonIntfInfo) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_PonIntfInfo.Merge(m, src)
-}
-func (m *PonIntfInfo) XXX_Size() int {
-	return xxx_messageInfo_PonIntfInfo.Size(m)
-}
-func (m *PonIntfInfo) XXX_DiscardUnknown() {
-	xxx_messageInfo_PonIntfInfo.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_PonIntfInfo proto.InternalMessageInfo
-
-func (m *PonIntfInfo) GetIntfId() uint32 {
-	if m != nil {
-		return m.IntfId
-	}
-	return 0
-}
-
-func (m *PonIntfInfo) GetState() PonIntfInfo_PonIntfState {
-	if m != nil {
-		return m.State
-	}
-	return PonIntfInfo_UNKNOWN
-}
-
-func (m *PonIntfInfo) GetLos() AlarmState {
-	if m != nil {
-		return m.Los
-	}
-	return AlarmState_OFF
-}
-
-//
-// Message used for disabling device by serialnumber, disable at PLOAM
-type InterfaceOnuSerialNumberOnuId struct {
-	IntfIdSerialNum      *InterfaceOnuSerialNumber `protobuf:"bytes,1,opt,name=intf_id_serial_num,json=intfIdSerialNum,proto3" json:"intf_id_serial_num,omitempty"`
-	OnuId                uint32                    `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                  `json:"-"`
-	XXX_unrecognized     []byte                    `json:"-"`
-	XXX_sizecache        int32                     `json:"-"`
-}
-
-func (m *InterfaceOnuSerialNumberOnuId) Reset()         { *m = InterfaceOnuSerialNumberOnuId{} }
-func (m *InterfaceOnuSerialNumberOnuId) String() string { return proto.CompactTextString(m) }
-func (*InterfaceOnuSerialNumberOnuId) ProtoMessage()    {}
-func (*InterfaceOnuSerialNumberOnuId) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{54}
-}
-
-func (m *InterfaceOnuSerialNumberOnuId) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_InterfaceOnuSerialNumberOnuId.Unmarshal(m, b)
-}
-func (m *InterfaceOnuSerialNumberOnuId) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_InterfaceOnuSerialNumberOnuId.Marshal(b, m, deterministic)
-}
-func (m *InterfaceOnuSerialNumberOnuId) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_InterfaceOnuSerialNumberOnuId.Merge(m, src)
-}
-func (m *InterfaceOnuSerialNumberOnuId) XXX_Size() int {
-	return xxx_messageInfo_InterfaceOnuSerialNumberOnuId.Size(m)
-}
-func (m *InterfaceOnuSerialNumberOnuId) XXX_DiscardUnknown() {
-	xxx_messageInfo_InterfaceOnuSerialNumberOnuId.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_InterfaceOnuSerialNumberOnuId proto.InternalMessageInfo
-
-func (m *InterfaceOnuSerialNumberOnuId) GetIntfIdSerialNum() *InterfaceOnuSerialNumber {
-	if m != nil {
-		return m.IntfIdSerialNum
-	}
-	return nil
-}
-
-func (m *InterfaceOnuSerialNumberOnuId) GetOnuId() uint32 {
-	if m != nil {
-		return m.OnuId
-	}
-	return 0
-}
-
-type InterfaceOnuSerialNumber struct {
-	IntfId               uint32        `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
-	OnuSerialNumber      *SerialNumber `protobuf:"bytes,2,opt,name=onu_serial_number,json=onuSerialNumber,proto3" json:"onu_serial_number,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
-	XXX_unrecognized     []byte        `json:"-"`
-	XXX_sizecache        int32         `json:"-"`
-}
-
-func (m *InterfaceOnuSerialNumber) Reset()         { *m = InterfaceOnuSerialNumber{} }
-func (m *InterfaceOnuSerialNumber) String() string { return proto.CompactTextString(m) }
-func (*InterfaceOnuSerialNumber) ProtoMessage()    {}
-func (*InterfaceOnuSerialNumber) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{55}
-}
-
-func (m *InterfaceOnuSerialNumber) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_InterfaceOnuSerialNumber.Unmarshal(m, b)
-}
-func (m *InterfaceOnuSerialNumber) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_InterfaceOnuSerialNumber.Marshal(b, m, deterministic)
-}
-func (m *InterfaceOnuSerialNumber) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_InterfaceOnuSerialNumber.Merge(m, src)
-}
-func (m *InterfaceOnuSerialNumber) XXX_Size() int {
-	return xxx_messageInfo_InterfaceOnuSerialNumber.Size(m)
-}
-func (m *InterfaceOnuSerialNumber) XXX_DiscardUnknown() {
-	xxx_messageInfo_InterfaceOnuSerialNumber.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_InterfaceOnuSerialNumber proto.InternalMessageInfo
-
-func (m *InterfaceOnuSerialNumber) GetIntfId() uint32 {
-	if m != nil {
-		return m.IntfId
-	}
-	return 0
-}
-
-func (m *InterfaceOnuSerialNumber) GetOnuSerialNumber() *SerialNumber {
-	if m != nil {
-		return m.OnuSerialNumber
-	}
-	return nil
-}
-
-type Empty struct {
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *Empty) Reset()         { *m = Empty{} }
-func (m *Empty) String() string { return proto.CompactTextString(m) }
-func (*Empty) ProtoMessage()    {}
-func (*Empty) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c072e7aa0dfd74d5, []int{56}
-}
-
-func (m *Empty) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_Empty.Unmarshal(m, b)
-}
-func (m *Empty) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_Empty.Marshal(b, m, deterministic)
-}
-func (m *Empty) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Empty.Merge(m, src)
-}
-func (m *Empty) XXX_Size() int {
-	return xxx_messageInfo_Empty.Size(m)
-}
-func (m *Empty) XXX_DiscardUnknown() {
-	xxx_messageInfo_Empty.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_Empty proto.InternalMessageInfo
-
-func init() {
-	proto.RegisterEnum("openolt.AlarmState", AlarmState_name, AlarmState_value)
-	proto.RegisterEnum("openolt.OnuIndication_ActivationFailReason", OnuIndication_ActivationFailReason_name, OnuIndication_ActivationFailReason_value)
-	proto.RegisterEnum("openolt.IntfOperIndication_PONResourceRanges_Pool_PoolType", IntfOperIndication_PONResourceRanges_Pool_PoolType_name, IntfOperIndication_PONResourceRanges_Pool_PoolType_value)
-	proto.RegisterEnum("openolt.DeviceInfo_DeviceResourceRanges_Pool_PoolType", DeviceInfo_DeviceResourceRanges_Pool_PoolType_name, DeviceInfo_DeviceResourceRanges_Pool_PoolType_value)
-	proto.RegisterEnum("openolt.DeviceInfo_DeviceResourceRanges_Pool_SharingType", DeviceInfo_DeviceResourceRanges_Pool_SharingType_name, DeviceInfo_DeviceResourceRanges_Pool_SharingType_value)
-	proto.RegisterEnum("openolt.GroupMember_InterfaceType", GroupMember_InterfaceType_name, GroupMember_InterfaceType_value)
-	proto.RegisterEnum("openolt.Group_GroupMembersCommand", Group_GroupMembersCommand_name, Group_GroupMembersCommand_value)
-	proto.RegisterEnum("openolt.PonRxPowerData_RssiMeasurementFailReason", PonRxPowerData_RssiMeasurementFailReason_name, PonRxPowerData_RssiMeasurementFailReason_value)
-	proto.RegisterEnum("openolt.OnuInfo_OnuState", OnuInfo_OnuState_name, OnuInfo_OnuState_value)
-	proto.RegisterEnum("openolt.PonIntfInfo_PonIntfState", PonIntfInfo_PonIntfState_name, PonIntfInfo_PonIntfState_value)
-	proto.RegisterType((*Indication)(nil), "openolt.Indication")
-	proto.RegisterType((*AlarmIndication)(nil), "openolt.AlarmIndication")
-	proto.RegisterType((*OltIndication)(nil), "openolt.OltIndication")
-	proto.RegisterType((*IntfIndication)(nil), "openolt.IntfIndication")
-	proto.RegisterType((*OnuDiscIndication)(nil), "openolt.OnuDiscIndication")
-	proto.RegisterType((*OnuIndication)(nil), "openolt.OnuIndication")
-	proto.RegisterType((*OnuDisabledIndication)(nil), "openolt.OnuDisabledIndication")
-	proto.RegisterType((*OnuEnabledIndication)(nil), "openolt.OnuEnabledIndication")
-	proto.RegisterType((*IntfOperIndication)(nil), "openolt.IntfOperIndication")
-	proto.RegisterType((*IntfOperIndication_PONResourceRanges)(nil), "openolt.IntfOperIndication.PONResourceRanges")
-	proto.RegisterType((*IntfOperIndication_PONResourceRanges_Pool)(nil), "openolt.IntfOperIndication.PONResourceRanges.Pool")
-	proto.RegisterType((*OmciIndication)(nil), "openolt.OmciIndication")
-	proto.RegisterType((*PacketIndication)(nil), "openolt.PacketIndication")
-	proto.RegisterType((*Interface)(nil), "openolt.Interface")
-	proto.RegisterType((*Heartbeat)(nil), "openolt.Heartbeat")
-	proto.RegisterType((*Onu)(nil), "openolt.Onu")
-	proto.RegisterType((*OnuLogicalDistance)(nil), "openolt.OnuLogicalDistance")
-	proto.RegisterType((*OmciMsg)(nil), "openolt.OmciMsg")
-	proto.RegisterType((*OnuPacket)(nil), "openolt.OnuPacket")
-	proto.RegisterType((*UplinkPacket)(nil), "openolt.UplinkPacket")
-	proto.RegisterType((*DeviceInfo)(nil), "openolt.DeviceInfo")
-	proto.RegisterType((*DeviceInfo_DeviceResourceRanges)(nil), "openolt.DeviceInfo.DeviceResourceRanges")
-	proto.RegisterType((*DeviceInfo_DeviceResourceRanges_Pool)(nil), "openolt.DeviceInfo.DeviceResourceRanges.Pool")
-	proto.RegisterType((*Classifier)(nil), "openolt.Classifier")
-	proto.RegisterType((*ActionCmd)(nil), "openolt.ActionCmd")
-	proto.RegisterType((*Action)(nil), "openolt.Action")
-	proto.RegisterType((*Flow)(nil), "openolt.Flow")
-	proto.RegisterMapType((map[uint32]bool)(nil), "openolt.Flow.GemportToAesEntry")
-	proto.RegisterMapType((map[uint32]uint32)(nil), "openolt.Flow.PbitToGemportEntry")
-	proto.RegisterType((*SerialNumber)(nil), "openolt.SerialNumber")
-	proto.RegisterType((*OnuStatistics)(nil), "openolt.OnuStatistics")
-	proto.RegisterType((*GemPortStatistics)(nil), "openolt.GemPortStatistics")
-	proto.RegisterType((*FlowStatistics)(nil), "openolt.FlowStatistics")
-	proto.RegisterType((*LosIndication)(nil), "openolt.LosIndication")
-	proto.RegisterType((*DyingGaspIndication)(nil), "openolt.DyingGaspIndication")
-	proto.RegisterType((*OnuAlarmIndication)(nil), "openolt.OnuAlarmIndication")
-	proto.RegisterType((*OnuStartupFailureIndication)(nil), "openolt.OnuStartupFailureIndication")
-	proto.RegisterType((*OnuSignalDegradeIndication)(nil), "openolt.OnuSignalDegradeIndication")
-	proto.RegisterType((*OnuDriftOfWindowIndication)(nil), "openolt.OnuDriftOfWindowIndication")
-	proto.RegisterType((*OnuLossOfOmciChannelIndication)(nil), "openolt.OnuLossOfOmciChannelIndication")
-	proto.RegisterType((*OnuSignalsFailureIndication)(nil), "openolt.OnuSignalsFailureIndication")
-	proto.RegisterType((*OnuTransmissionInterferenceWarning)(nil), "openolt.OnuTransmissionInterferenceWarning")
-	proto.RegisterType((*OnuActivationFailureIndication)(nil), "openolt.OnuActivationFailureIndication")
-	proto.RegisterType((*OnuLossOfKeySyncFailureIndication)(nil), "openolt.OnuLossOfKeySyncFailureIndication")
-	proto.RegisterType((*RdiErrorIndication)(nil), "openolt.RdiErrorIndication")
-	proto.RegisterType((*OnuItuPonStatsIndication)(nil), "openolt.OnuItuPonStatsIndication")
-	proto.RegisterType((*OnuProcessingErrorIndication)(nil), "openolt.OnuProcessingErrorIndication")
-	proto.RegisterType((*OnuDeactivationFailureIndication)(nil), "openolt.OnuDeactivationFailureIndication")
-	proto.RegisterType((*OnuRemoteDefectIndication)(nil), "openolt.OnuRemoteDefectIndication")
-	proto.RegisterType((*OnuLossOfGEMChannelDelineationIndication)(nil), "openolt.OnuLossOfGEMChannelDelineationIndication")
-	proto.RegisterType((*OnuPhysicalEquipmentErrorIndication)(nil), "openolt.OnuPhysicalEquipmentErrorIndication")
-	proto.RegisterType((*OnuLossOfAcknowledgementIndication)(nil), "openolt.OnuLossOfAcknowledgementIndication")
-	proto.RegisterType((*OnuDifferentialReachExceededIndication)(nil), "openolt.OnuDifferentialReachExceededIndication")
-	proto.RegisterType((*GroupMember)(nil), "openolt.GroupMember")
-	proto.RegisterType((*Group)(nil), "openolt.Group")
-	proto.RegisterType((*ValueParam)(nil), "openolt.ValueParam")
-	proto.RegisterType((*PonRxPowerData)(nil), "openolt.PonRxPowerData")
-	proto.RegisterType((*OnuAllocIdStatistics)(nil), "openolt.OnuAllocIdStatistics")
-	proto.RegisterType((*OnuInfo)(nil), "openolt.OnuInfo")
-	proto.RegisterType((*PonIntfInfo)(nil), "openolt.PonIntfInfo")
-	proto.RegisterType((*InterfaceOnuSerialNumberOnuId)(nil), "openolt.InterfaceOnuSerialNumberOnuId")
-	proto.RegisterType((*InterfaceOnuSerialNumber)(nil), "openolt.InterfaceOnuSerialNumber")
-	proto.RegisterType((*Empty)(nil), "openolt.Empty")
-}
-
-func init() { proto.RegisterFile("voltha_protos/openolt.proto", fileDescriptor_c072e7aa0dfd74d5) }
-
-var fileDescriptor_c072e7aa0dfd74d5 = []byte{
-	// 5437 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x7c, 0xc9, 0x73, 0x23, 0xc9,
-	0x75, 0x77, 0x83, 0x04, 0x01, 0xf0, 0x11, 0x00, 0xc1, 0xe4, 0x4e, 0xf6, 0x5a, 0xb3, 0xf5, 0x8c,
-	0x34, 0x6c, 0x4d, 0x4b, 0x9f, 0x34, 0x5a, 0x3e, 0x69, 0xd0, 0x04, 0x9a, 0xc4, 0x0c, 0x09, 0xd0,
-	0x45, 0x74, 0xb7, 0x35, 0xf2, 0x44, 0xa9, 0x58, 0x95, 0x00, 0x4b, 0x2c, 0x54, 0xd6, 0x54, 0x15,
-	0xc8, 0xa6, 0x8f, 0xb2, 0x2d, 0x5f, 0x7c, 0x53, 0xd8, 0x11, 0xf6, 0xc9, 0x4b, 0x84, 0x4f, 0xbe,
-	0xf8, 0xa6, 0x08, 0xdf, 0xec, 0x83, 0xff, 0x00, 0x9f, 0x1d, 0xe1, 0x83, 0xc3, 0x3e, 0xf8, 0xe4,
-	0x8b, 0x4f, 0x3e, 0x38, 0xf2, 0x65, 0xd6, 0x92, 0x58, 0xc8, 0xa6, 0x86, 0x96, 0x2f, 0x1d, 0xcc,
-	0xb7, 0xfc, 0x5e, 0xe6, 0xcb, 0xf7, 0x32, 0x5f, 0x66, 0x25, 0x1a, 0xb6, 0xcf, 0x99, 0x1b, 0x9d,
-	0x9a, 0x86, 0x1f, 0xb0, 0x88, 0x85, 0x4f, 0x98, 0x4f, 0x3d, 0xe6, 0x46, 0x3b, 0xd8, 0x24, 0x45,
-	0xd9, 0xdc, 0xba, 0xdb, 0x67, 0xac, 0xef, 0xd2, 0x27, 0xa6, 0xef, 0x3c, 0x31, 0x3d, 0x8f, 0x45,
-	0x66, 0xe4, 0x30, 0x2f, 0x14, 0x62, 0x5b, 0x0f, 0x55, 0x8c, 0x88, 0x5a, 0xa7, 0xfc, 0xef, 0x9e,
-	0xe3, 0x52, 0x29, 0x71, 0x5f, 0x95, 0xa0, 0xaf, 0x23, 0xc3, 0x62, 0x5e, 0xcf, 0xe9, 0x4f, 0xe5,
-	0x53, 0x2f, 0xcc, 0x58, 0xd8, 0x52, 0xf9, 0x16, 0x1b, 0x0c, 0x98, 0x27, 0x78, 0xda, 0xbf, 0xcc,
-	0x01, 0xb4, 0x3c, 0xdb, 0xb1, 0xb0, 0x4f, 0xe4, 0x23, 0x28, 0x32, 0x37, 0x32, 0x1c, 0xcf, 0xde,
-	0xc8, 0x3d, 0xcc, 0x3d, 0x5e, 0x78, 0xba, 0xb6, 0x13, 0x0f, 0xaa, 0xe3, 0x46, 0xa9, 0xe0, 0xfe,
-	0x1d, 0xbd, 0xc0, 0x90, 0x40, 0xbe, 0x05, 0x25, 0xc7, 0x8b, 0x7a, 0xa8, 0x33, 0x83, 0x3a, 0xeb,
-	0x89, 0x4e, 0xcb, 0x8b, 0x7a, 0x8a, 0x52, 0xd1, 0x11, 0x14, 0x52, 0x87, 0x0a, 0x6a, 0x31, 0x9f,
-	0x06, 0xa8, 0x3a, 0x8b, 0xaa, 0xdb, 0x8a, 0x6a, 0xc7, 0xa7, 0x81, 0xa2, 0xbe, 0xe0, 0xa4, 0x54,
-	0xf2, 0x43, 0x28, 0x33, 0x6f, 0x68, 0xd8, 0x4e, 0x68, 0x21, 0x42, 0x1e, 0x11, 0xb6, 0xd2, 0x0e,
-	0x7b, 0xc3, 0x86, 0x13, 0x5a, 0x0a, 0x00, 0xb0, 0x84, 0x88, 0x63, 0xf5, 0x86, 0xa8, 0x3a, 0x37,
-	0x3a, 0x56, 0x6f, 0x38, 0x32, 0x56, 0x24, 0xf0, 0xb1, 0xb2, 0x81, 0xe5, 0xa0, 0x4e, 0x61, 0x64,
-	0xac, 0x9d, 0x81, 0xe5, 0xa8, 0x63, 0x65, 0x82, 0x42, 0xbe, 0x05, 0x45, 0xff, 0x4c, 0x38, 0xb5,
-	0x88, 0x4a, 0x9b, 0x89, 0xd2, 0x91, 0x69, 0x9d, 0xd1, 0x11, 0xbf, 0xfa, 0x67, 0xe8, 0xd7, 0xef,
-	0x00, 0xf8, 0x2c, 0x88, 0x8c, 0x30, 0x32, 0xa3, 0x70, 0xa3, 0x24, 0x7b, 0x28, 0x27, 0xef, 0x88,
-	0x05, 0xd1, 0x31, 0x8f, 0xa3, 0x30, 0x72, 0xac, 0x70, 0xff, 0x8e, 0x3e, 0xef, 0x4b, 0x4a, 0x48,
-	0x3e, 0x06, 0xe8, 0xb9, 0xec, 0x42, 0x2a, 0xce, 0x8f, 0x74, 0xf3, 0xb9, 0xcb, 0x2e, 0x54, 0xcd,
-	0x9e, 0xa4, 0x84, 0xe4, 0x3b, 0x30, 0x6f, 0xba, 0x66, 0x30, 0xc0, 0xae, 0x02, 0x2a, 0x6e, 0x24,
-	0x8a, 0x75, 0xce, 0x51, 0x7a, 0x5a, 0x32, 0x25, 0x89, 0x7c, 0x0a, 0x35, 0x39, 0x15, 0xe6, 0x89,
-	0x4b, 0x6d, 0xd4, 0x5f, 0x40, 0xfd, 0xfb, 0x23, 0xd3, 0x81, 0x7c, 0x05, 0xa5, 0xca, 0x14, 0x06,
-	0xd9, 0x83, 0x45, 0x8e, 0x45, 0xbd, 0x14, 0xaa, 0x8c, 0x50, 0xf7, 0xb2, 0x50, 0x4d, 0x6f, 0x1c,
-	0xa9, 0xc2, 0xb2, 0xf4, 0x67, 0x05, 0xc8, 0xdb, 0x66, 0x64, 0x6a, 0xff, 0x51, 0x81, 0xc5, 0x91,
-	0xce, 0xf3, 0xb9, 0x77, 0x59, 0x38, 0x31, 0xce, 0x0f, 0x58, 0xa8, 0xce, 0x87, 0x8b, 0x04, 0xd2,
-	0x80, 0xaa, 0x7d, 0xe9, 0x78, 0x7d, 0xa3, 0x6f, 0x86, 0x7e, 0x26, 0xda, 0xef, 0x26, 0x9a, 0x0d,
-	0xce, 0xde, 0x33, 0x43, 0x5f, 0xd1, 0x2f, 0xdb, 0x19, 0x32, 0x8f, 0x7b, 0x3e, 0xba, 0xd4, 0xcd,
-	0xa3, 0x71, 0xdf, 0xf1, 0x86, 0xe3, 0x9e, 0x5e, 0x60, 0x29, 0x95, 0xbc, 0x82, 0x15, 0x0e, 0x11,
-	0x46, 0x66, 0x10, 0x0d, 0x7d, 0xa3, 0x67, 0x3a, 0x6e, 0x26, 0xfe, 0xdf, 0xce, 0x22, 0x1d, 0x0b,
-	0x99, 0xe7, 0xa6, 0xe3, 0x0e, 0x03, 0xaa, 0x40, 0x2e, 0x31, 0x85, 0xcd, 0x81, 0x3f, 0x87, 0x35,
-	0x04, 0x76, 0xfa, 0x9e, 0xe9, 0x1a, 0x36, 0xed, 0x07, 0xa6, 0x4d, 0x33, 0xf9, 0xf1, 0x96, 0x02,
-	0x8d, 0x52, 0x0d, 0x21, 0xa4, 0x20, 0x2f, 0xb3, 0x71, 0x2e, 0xf9, 0x09, 0xac, 0x63, 0x84, 0x04,
-	0x4e, 0x2f, 0x32, 0x58, 0xcf, 0xb8, 0x70, 0x3c, 0x9b, 0x5d, 0x64, 0x12, 0x49, 0x01, 0x6f, 0x70,
-	0xb1, 0x4e, 0xef, 0x15, 0x0a, 0x8d, 0x81, 0x8f, 0x72, 0x49, 0x17, 0xf8, 0x68, 0x0c, 0x97, 0x85,
-	0xa1, 0x91, 0xe4, 0xa7, 0x48, 0xb5, 0xf7, 0xb2, 0xb0, 0x07, 0x2c, 0x0c, 0x3b, 0x3d, 0x9e, 0xa8,
-	0xbb, 0xa7, 0xa6, 0xe7, 0x51, 0x77, 0x2c, 0x10, 0x51, 0x42, 0xa6, 0x6d, 0xec, 0x67, 0x1c, 0x4a,
-	0x98, 0xfa, 0xb9, 0x34, 0xc1, 0xcf, 0x42, 0x66, 0xaa, 0x9f, 0x53, 0x36, 0x07, 0xee, 0x88, 0x85,
-	0x2b, 0x72, 0x2e, 0x44, 0x4f, 0x45, 0x8a, 0x7e, 0x2d, 0x0b, 0xd8, 0x0d, 0x4c, 0x2f, 0x1c, 0x38,
-	0x21, 0x5f, 0xc6, 0x5b, 0x5e, 0x44, 0x83, 0x1e, 0x0d, 0xa8, 0x67, 0xd1, 0x57, 0x66, 0xe0, 0x39,
-	0x5e, 0x5f, 0xae, 0x64, 0x5d, 0xe7, 0x02, 0x7b, 0xfa, 0x53, 0xe1, 0x5c, 0xd3, 0x8a, 0x9c, 0x73,
-	0xb4, 0x9b, 0x76, 0x16, 0xc6, 0xbd, 0x50, 0x4f, 0xc4, 0x26, 0xf5, 0x97, 0x8f, 0x59, 0x95, 0x10,
-	0x16, 0x36, 0xb8, 0x05, 0x3f, 0x60, 0x16, 0x0d, 0x43, 0x9e, 0x05, 0x34, 0x08, 0x58, 0x90, 0x49,
-	0xf4, 0x77, 0xb2, 0x26, 0x8e, 0x12, 0xb9, 0x26, 0x17, 0x53, 0x0c, 0xac, 0xb2, 0x49, 0x7c, 0x42,
-	0x61, 0x33, 0x9d, 0xc3, 0x9e, 0x11, 0x5e, 0x7a, 0x56, 0x3a, 0x0a, 0xb1, 0x00, 0x7c, 0x30, 0x3e,
-	0x97, 0x9f, 0xd1, 0xcb, 0xe3, 0x4b, 0xcf, 0x9a, 0x36, 0x10, 0x21, 0x14, 0x4b, 0x70, 0x33, 0x2f,
-	0x60, 0x15, 0x17, 0xfd, 0x68, 0x68, 0xf8, 0xcc, 0x13, 0x6b, 0x24, 0x9a, 0xa8, 0xa0, 0x89, 0x47,
-	0xca, 0x16, 0x10, 0x0d, 0x8f, 0x98, 0x87, 0x4b, 0xe3, 0xd8, 0x94, 0xaa, 0x3c, 0xe2, 0xc2, 0x5d,
-	0x0c, 0x6f, 0x3a, 0x32, 0x07, 0xc3, 0x40, 0x24, 0x50, 0x15, 0xd1, 0xdf, 0x57, 0x62, 0x3c, 0x23,
-	0x3b, 0xa9, 0xff, 0xdc, 0x1d, 0x93, 0x65, 0xc8, 0x2b, 0x31, 0x88, 0x80, 0x0e, 0x58, 0x44, 0x0d,
-	0x9b, 0xf6, 0xa8, 0x25, 0xb6, 0x97, 0x45, 0x34, 0xa3, 0x65, 0xcd, 0xe8, 0x28, 0xd4, 0x40, 0x19,
-	0x05, 0x9f, 0xb0, 0x31, 0x26, 0x09, 0xc5, 0x30, 0x70, 0x12, 0xfa, 0x74, 0x60, 0xd8, 0xd4, 0x75,
-	0x3c, 0x2a, 0x86, 0xc3, 0xf1, 0x6b, 0x88, 0xff, 0xd1, 0xf8, 0x3c, 0xec, 0x35, 0x0f, 0x65, 0x4a,
-	0x35, 0x52, 0x15, 0xc5, 0xdc, 0x86, 0x9c, 0x8e, 0x3d, 0x3a, 0x50, 0x45, 0xc8, 0x39, 0x3c, 0xc4,
-	0xd8, 0x3a, 0xbd, 0x0c, 0x1d, 0xcb, 0x74, 0x0d, 0xfa, 0xe5, 0xd0, 0xf1, 0x07, 0xd4, 0x8b, 0x32,
-	0x31, 0xb6, 0x84, 0x86, 0xbf, 0xae, 0xc4, 0x98, 0x94, 0x6f, 0xc6, 0xe2, 0xe3, 0xa1, 0xc6, 0x07,
-	0x33, 0x55, 0x8c, 0xfc, 0x04, 0x96, 0xb3, 0x11, 0x67, 0x5a, 0x67, 0x68, 0x8a, 0x8c, 0x67, 0xa3,
-	0x18, 0x63, 0xdd, 0x3a, 0xf3, 0xd8, 0x85, 0x4b, 0xed, 0x3e, 0xe5, 0x38, 0x8a, 0xa5, 0x45, 0x96,
-	0x91, 0xe2, 0xe0, 0x0c, 0xb6, 0xc5, 0x8e, 0xd8, 0xeb, 0x19, 0x01, 0x35, 0xad, 0x53, 0x83, 0xbe,
-	0xb6, 0x28, 0xb5, 0xe5, 0x8e, 0xb6, 0x8c, 0x46, 0x9e, 0xa8, 0x9b, 0x63, 0x0f, 0x93, 0x3c, 0x72,
-	0x4c, 0x57, 0xe7, 0x1a, 0x4d, 0xa9, 0xa0, 0x18, 0x5a, 0x67, 0x42, 0x72, 0x54, 0x22, 0xd9, 0xed,
-	0x76, 0xa0, 0xa2, 0x54, 0x6a, 0xe4, 0x1e, 0x00, 0x16, 0x59, 0x3c, 0xd4, 0x29, 0xee, 0x76, 0xf3,
-	0xfa, 0x3c, 0xa7, 0xf0, 0xe0, 0xa5, 0xda, 0x3e, 0x54, 0xd5, 0x2a, 0x8d, 0xac, 0x43, 0x51, 0x14,
-	0x74, 0x62, 0x6f, 0x2c, 0xea, 0x05, 0x2c, 0xda, 0xec, 0x11, 0xa4, 0x99, 0x51, 0xa4, 0x53, 0x58,
-	0x1a, 0x2b, 0xb9, 0xa6, 0x83, 0x7d, 0x0f, 0x2a, 0x21, 0x0d, 0x1c, 0xd3, 0x35, 0xbc, 0xe1, 0xe0,
-	0x84, 0x06, 0x72, 0x37, 0x5d, 0x4d, 0x5c, 0x72, 0x8c, 0xdc, 0x36, 0x32, 0xf5, 0x72, 0x98, 0x69,
-	0x69, 0xbf, 0xcc, 0x43, 0x45, 0x29, 0xd1, 0xa6, 0x9b, 0x59, 0x85, 0x02, 0xe6, 0xbb, 0xd8, 0xad,
-	0x8b, 0xfa, 0x1c, 0xcf, 0xdd, 0xd1, 0xa1, 0xcc, 0x8e, 0x0c, 0x85, 0x3c, 0x80, 0x05, 0xd3, 0x1e,
-	0x38, 0x9e, 0xe4, 0xcf, 0x21, 0x1f, 0x90, 0x24, 0x04, 0xc6, 0x7a, 0x9f, 0x7f, 0xe3, 0xde, 0x93,
-	0x03, 0x58, 0xc0, 0x85, 0x2d, 0xa0, 0x66, 0xc8, 0x3c, 0xdc, 0xfe, 0xaa, 0x6a, 0xbc, 0xa5, 0x03,
-	0xdb, 0x51, 0x97, 0x62, 0x1d, 0x55, 0x74, 0xe8, 0x25, 0x7f, 0x6b, 0x7f, 0x38, 0x03, 0x2b, 0x93,
-	0x84, 0xc8, 0x5b, 0xf0, 0xa0, 0xd3, 0x7e, 0x61, 0xd4, 0x77, 0xbb, 0xad, 0x97, 0xf5, 0x6e, 0xab,
-	0xd3, 0x36, 0x9e, 0xd7, 0x5b, 0x07, 0x86, 0xde, 0xac, 0x1f, 0x77, 0xda, 0x46, 0xbb, 0xd3, 0x6e,
-	0xd6, 0xee, 0x90, 0x77, 0x41, 0xbb, 0x42, 0x48, 0xaf, 0xb7, 0xf7, 0x5a, 0xed, 0xbd, 0x5a, 0x8e,
-	0x7c, 0x1b, 0x9e, 0x5e, 0x21, 0x77, 0x54, 0x3f, 0x3e, 0x7e, 0xd5, 0xd1, 0x1b, 0x46, 0xfd, 0x45,
-	0x77, 0xbf, 0xd9, 0xee, 0xb6, 0x76, 0x51, 0xa6, 0x36, 0x43, 0x34, 0xb8, 0x7f, 0x85, 0xde, 0x41,
-	0xe7, 0xb8, 0x36, 0x4b, 0x1e, 0xc1, 0xbd, 0x49, 0x32, 0x48, 0x3b, 0xa8, 0xeb, 0x87, 0xb5, 0xfc,
-	0xb4, 0xb1, 0x1c, 0xbf, 0x6a, 0x75, 0x77, 0xf7, 0x8d, 0xce, 0xcb, 0xa6, 0x5e, 0x9b, 0xd3, 0x7e,
-	0x2f, 0x07, 0xab, 0x13, 0x8b, 0xcc, 0x1b, 0x47, 0xc7, 0x57, 0x98, 0x5d, 0xed, 0xe7, 0x39, 0x58,
-	0x99, 0x54, 0x9f, 0xfe, 0x66, 0x3b, 0x91, 0x07, 0x32, 0x7e, 0x80, 0x22, 0x04, 0xf2, 0xd1, 0xa5,
-	0x1f, 0x2f, 0x02, 0xf8, 0x77, 0xb6, 0x5b, 0x33, 0x57, 0x64, 0xfb, 0x58, 0x8a, 0xac, 0xc0, 0x5c,
-	0xe8, 0x53, 0x2a, 0xca, 0xce, 0xa2, 0x2e, 0x1a, 0xe4, 0x3e, 0x00, 0x3f, 0xc0, 0x7a, 0xcc, 0x65,
-	0xfd, 0xcb, 0x38, 0x6f, 0x52, 0x0a, 0x69, 0x42, 0x21, 0x30, 0xbd, 0x3e, 0x0d, 0x65, 0xd5, 0xf7,
-	0xe1, 0x15, 0xe7, 0xbd, 0x9d, 0xa3, 0x4e, 0x5b, 0xa7, 0x21, 0x1b, 0x06, 0x16, 0xd5, 0x51, 0x49,
-	0x97, 0xca, 0x5b, 0x7f, 0x39, 0x03, 0x4b, 0x63, 0x5c, 0xb2, 0x0f, 0x73, 0x3e, 0x63, 0x6e, 0xb8,
-	0x31, 0xfb, 0x70, 0xf6, 0xf1, 0xc2, 0xd3, 0xa7, 0x37, 0xc2, 0xde, 0x39, 0x62, 0xcc, 0xd5, 0x05,
-	0xc0, 0xd6, 0xdf, 0xe7, 0x20, 0xcf, 0xdb, 0xa4, 0x93, 0xf1, 0x58, 0xf5, 0xe9, 0xf7, 0x6f, 0x8e,
-	0x88, 0xff, 0x74, 0x2f, 0x7d, 0x2a, 0xdd, 0xcd, 0xdd, 0xc6, 0xab, 0x6e, 0x74, 0x28, 0x77, 0x1b,
-	0x6f, 0x90, 0x1a, 0xcc, 0x52, 0x2f, 0x76, 0x25, 0xff, 0x53, 0xab, 0x43, 0x29, 0xd6, 0x24, 0x00,
-	0x05, 0x1e, 0xfd, 0xad, 0x46, 0xed, 0x0e, 0x29, 0x43, 0xa9, 0x7e, 0x70, 0xd0, 0xd9, 0xe5, 0xad,
-	0x1c, 0xa9, 0x02, 0xec, 0x35, 0x0f, 0x8f, 0x3a, 0x7a, 0x97, 0xb7, 0x67, 0xc8, 0x02, 0x14, 0x9f,
-	0x1f, 0x74, 0x5e, 0xf1, 0xc6, 0xac, 0xa6, 0x43, 0x55, 0x3d, 0x93, 0xde, 0x38, 0x04, 0x6b, 0x30,
-	0xeb, 0x9f, 0x89, 0xae, 0x96, 0x75, 0xfe, 0xa7, 0xf6, 0x9f, 0x39, 0xa8, 0x8d, 0x9e, 0x59, 0xc9,
-	0x36, 0xcc, 0x23, 0x2c, 0x7a, 0x4a, 0xcc, 0x39, 0x5e, 0x09, 0x74, 0x47, 0xe2, 0x6b, 0x9a, 0xcd,
-	0x52, 0xd6, 0xe6, 0x2a, 0x14, 0x86, 0x9e, 0xc3, 0xc9, 0xf3, 0x82, 0x3c, 0xf4, 0x1c, 0x11, 0x8d,
-	0x7d, 0x3a, 0xc0, 0x03, 0x71, 0xd2, 0xcb, 0x79, 0x49, 0x69, 0xd9, 0xdc, 0x0a, 0x9e, 0x79, 0x1d,
-	0x5b, 0x3a, 0xb6, 0xc0, 0x9b, 0x82, 0x81, 0x4a, 0x1e, 0xc3, 0x88, 0x2b, 0xea, 0x05, 0xde, 0x6c,
-	0x33, 0xb2, 0x06, 0x05, 0x8b, 0xb1, 0x33, 0x87, 0xe2, 0x41, 0xa1, 0xa0, 0xcb, 0x56, 0x3c, 0xe6,
-	0x7c, 0x3a, 0xe6, 0x3a, 0xcc, 0x8b, 0x12, 0xdc, 0xb4, 0xae, 0x18, 0x8e, 0xe2, 0x04, 0xd1, 0xbf,
-	0xc4, 0x09, 0xda, 0x0f, 0x60, 0x7e, 0x9f, 0x9a, 0x41, 0x74, 0x42, 0xcd, 0x88, 0x3c, 0x81, 0xe5,
-	0xd3, 0xb8, 0x21, 0x4e, 0x17, 0xd1, 0x30, 0xa0, 0x12, 0x8e, 0x24, 0xac, 0xe3, 0x98, 0xa3, 0xfd,
-	0x4d, 0x0e, 0x66, 0x3b, 0xde, 0xf0, 0xab, 0xaf, 0x20, 0xb3, 0x6f, 0xbe, 0x49, 0x71, 0x37, 0x38,
-	0x41, 0x1c, 0x91, 0xbe, 0x13, 0x90, 0xf7, 0x60, 0x91, 0x0d, 0x2c, 0xcb, 0xa0, 0x9e, 0x15, 0x5c,
-	0xfa, 0x7c, 0xe2, 0x71, 0xae, 0x4b, 0x7a, 0x95, 0x93, 0x9b, 0x09, 0x55, 0xfb, 0xdb, 0x1c, 0x10,
-	0x2c, 0x9a, 0xfa, 0xbc, 0xee, 0x6a, 0x38, 0x61, 0x64, 0x7a, 0x16, 0xbd, 0x71, 0xef, 0xbf, 0x0b,
-	0x9b, 0xae, 0x80, 0x30, 0xe4, 0xdd, 0x02, 0xe2, 0x18, 0xbf, 0x4b, 0x03, 0x26, 0x27, 0x79, 0x4d,
-	0x0a, 0x88, 0x55, 0x1f, 0xd9, 0x9f, 0xd3, 0x80, 0x91, 0x6f, 0xc0, 0xca, 0x24, 0x55, 0x39, 0x1a,
-	0x32, 0xae, 0xa5, 0x7d, 0x06, 0x45, 0x9e, 0x2b, 0x87, 0x61, 0xff, 0x16, 0x92, 0xe4, 0xcf, 0x73,
-	0x30, 0xcf, 0x0b, 0x54, 0xcc, 0x93, 0x1b, 0xe3, 0x65, 0x22, 0x36, 0xaf, 0x44, 0xac, 0x9a, 0x02,
-	0x73, 0xa3, 0x29, 0xb0, 0x09, 0x25, 0xd3, 0x75, 0x99, 0xc5, 0x99, 0x22, 0xd4, 0x8b, 0xd8, 0x9e,
-	0xd8, 0xc5, 0xef, 0x42, 0xf9, 0x85, 0xef, 0x3a, 0xde, 0xd9, 0x75, 0x9d, 0x94, 0xaa, 0x33, 0xa9,
-	0xea, 0xaf, 0x8a, 0x00, 0x0d, 0x7a, 0xee, 0x58, 0xb4, 0xe5, 0xf5, 0x30, 0x8f, 0xce, 0xa9, 0x67,
-	0xb3, 0x40, 0xee, 0x2a, 0xb2, 0xc5, 0x17, 0xba, 0x01, 0xb3, 0xa9, 0x2b, 0xeb, 0x44, 0xd1, 0x20,
-	0xef, 0x43, 0xed, 0xd4, 0x0c, 0xec, 0x0b, 0x33, 0xa0, 0xc6, 0x39, 0x0d, 0xf8, 0xf1, 0x56, 0x6e,
-	0x2d, 0x8b, 0x31, 0xfd, 0xa5, 0x20, 0x73, 0xd1, 0x9e, 0x13, 0x0c, 0x14, 0xd1, 0xbc, 0x10, 0x8d,
-	0xe9, 0xb1, 0xe8, 0x36, 0xcc, 0xdb, 0xd8, 0x23, 0xde, 0xff, 0x9a, 0x58, 0x80, 0x04, 0xa1, 0x65,
-	0xf3, 0x60, 0x90, 0x4c, 0x35, 0x19, 0x96, 0x50, 0x8e, 0x08, 0x5e, 0x36, 0x13, 0xc8, 0x47, 0xb0,
-	0xe2, 0x07, 0xf4, 0xdc, 0x61, 0xc3, 0xd0, 0xbd, 0x34, 0x2c, 0xe6, 0x79, 0xd4, 0x8a, 0xa8, 0x28,
-	0xda, 0x4b, 0xfa, 0x72, 0xca, 0xdb, 0x8d, 0x59, 0xbc, 0x07, 0xfc, 0x38, 0xc9, 0xa7, 0x22, 0xc4,
-	0xd3, 0x6a, 0x51, 0x2f, 0xf9, 0xcc, 0x3b, 0xe2, 0x6d, 0xce, 0xf4, 0x3c, 0x47, 0x32, 0x57, 0x04,
-	0xd3, 0xf3, 0x1c, 0xc1, 0xfc, 0x24, 0xd9, 0x11, 0x17, 0x71, 0xd7, 0x7a, 0x9c, 0x5e, 0x27, 0x25,
-	0x4e, 0x96, 0x7f, 0x4e, 0xd9, 0x0c, 0xff, 0x38, 0x0f, 0x2b, 0x93, 0x04, 0x78, 0x44, 0xc8, 0x49,
-	0x0d, 0x37, 0x72, 0x0f, 0x67, 0x79, 0x44, 0x88, 0x59, 0x0d, 0x47, 0xf6, 0xe9, 0x99, 0xb1, 0x7d,
-	0x7a, 0x57, 0xdd, 0x4a, 0x3f, 0x7c, 0xd3, 0x4e, 0x29, 0xbb, 0xe8, 0x7f, 0xcf, 0xc8, 0x5d, 0xf4,
-	0x53, 0x65, 0x17, 0xfd, 0xf6, 0x8d, 0xc0, 0x46, 0x37, 0xd0, 0x63, 0x28, 0x86, 0xa7, 0x66, 0xe0,
-	0x78, 0x7d, 0xec, 0x76, 0xf5, 0xe9, 0x77, 0x6f, 0x06, 0x77, 0x2c, 0x94, 0x11, 0x31, 0x46, 0xfa,
-	0x4d, 0xee, 0xca, 0xa7, 0xb0, 0x90, 0xe9, 0x02, 0x59, 0x03, 0xd2, 0x68, 0x36, 0x78, 0xc1, 0xdc,
-	0x6c, 0x18, 0x47, 0x4d, 0xdd, 0x68, 0xb5, 0xbb, 0xcf, 0x6b, 0x77, 0xc8, 0x03, 0xd8, 0x3e, 0xde,
-	0xaf, 0xeb, 0xcd, 0x86, 0xf1, 0xec, 0xc7, 0x46, 0xfd, 0xe0, 0x00, 0xe9, 0xf8, 0x47, 0xb7, 0xb9,
-	0xbb, 0x5f, 0xcb, 0x91, 0x87, 0x70, 0x77, 0x82, 0xc0, 0x71, 0xfd, 0xb0, 0x29, 0x24, 0x66, 0x3e,
-	0xcd, 0x97, 0xe6, 0x6a, 0xe5, 0x4f, 0xf3, 0xa5, 0x4a, 0xad, 0xfa, 0x69, 0xbe, 0x54, 0xad, 0x2d,
-	0x6a, 0xbf, 0x3f, 0x0b, 0xb0, 0xeb, 0x9a, 0x61, 0xe8, 0xf4, 0x1c, 0x1a, 0xe0, 0x02, 0x64, 0x44,
-	0x7e, 0x92, 0xf3, 0x73, 0xac, 0xeb, 0x3b, 0x36, 0x59, 0x86, 0x39, 0x66, 0x9c, 0x27, 0xcb, 0x52,
-	0x9e, 0xbd, 0x74, 0x70, 0xb1, 0x72, 0x84, 0xac, 0x74, 0x91, 0x13, 0xcb, 0x3a, 0x28, 0x2b, 0x9c,
-	0x94, 0x77, 0xb8, 0xec, 0x3a, 0x14, 0x99, 0xe1, 0x9f, 0x38, 0x51, 0x28, 0x57, 0xa9, 0x02, 0x3b,
-	0xe2, 0x2d, 0x5c, 0x65, 0x24, 0x43, 0x6e, 0xc6, 0x8e, 0x60, 0x6c, 0x42, 0x89, 0x46, 0xa7, 0x62,
-	0xef, 0x2c, 0x8a, 0xb5, 0x8b, 0x46, 0xa7, 0x71, 0xfd, 0x60, 0x87, 0x91, 0x31, 0x30, 0x2d, 0xac,
-	0x13, 0xca, 0x7a, 0xc1, 0x0e, 0xa3, 0x43, 0xd3, 0xe2, 0x8c, 0x30, 0xb0, 0x90, 0x31, 0x2f, 0x18,
-	0x61, 0x60, 0x71, 0x06, 0x0f, 0x7b, 0x5f, 0x7c, 0xec, 0xc0, 0xeb, 0x2f, 0x1e, 0xf6, 0xfe, 0x11,
-	0x7e, 0x92, 0x59, 0x05, 0xae, 0x6d, 0x38, 0x3e, 0x5e, 0x5a, 0x15, 0xf5, 0x39, 0x3b, 0x8c, 0x5a,
-	0x3e, 0x27, 0x73, 0x28, 0xc7, 0x97, 0xa9, 0x3b, 0x17, 0x06, 0x56, 0xcb, 0xe7, 0x40, 0x9c, 0xcc,
-	0xf3, 0x16, 0xaf, 0x87, 0x8a, 0x3a, 0xb7, 0xc8, 0xd3, 0x96, 0xb3, 0x38, 0x10, 0xb2, 0xaa, 0x82,
-	0x65, 0x87, 0x11, 0xb2, 0x1e, 0x42, 0xd9, 0x3f, 0x8b, 0x8c, 0xc8, 0xec, 0x8b, 0xf1, 0x2c, 0x8a,
-	0xe4, 0xf2, 0xcf, 0xa2, 0xae, 0x89, 0x73, 0xae, 0xfd, 0xc1, 0x2c, 0xcc, 0xf3, 0x23, 0x1b, 0xf3,
-	0x76, 0x07, 0x36, 0xd1, 0xa0, 0x62, 0xda, 0xb6, 0xc1, 0x86, 0x11, 0x0d, 0xb8, 0x16, 0x4e, 0x46,
-	0x49, 0x5f, 0x30, 0x6d, 0xbb, 0xc3, 0x69, 0x5d, 0xb3, 0x4f, 0x1e, 0x43, 0x2d, 0xa0, 0x03, 0x76,
-	0x4e, 0x33, 0x62, 0x33, 0x62, 0xf3, 0x15, 0xf4, 0x44, 0xf2, 0x21, 0x94, 0xa3, 0xc0, 0xf4, 0x8d,
-	0x88, 0x19, 0xa7, 0x2c, 0x14, 0x01, 0x5d, 0xd2, 0x81, 0xd3, 0xba, 0x6c, 0x9f, 0x85, 0x11, 0xf9,
-	0x3a, 0x90, 0x80, 0x0e, 0xcc, 0xe0, 0x4c, 0x62, 0x89, 0xf9, 0xc8, 0xa3, 0x5c, 0x4d, 0x70, 0x10,
-	0x4d, 0xcc, 0x4c, 0x2a, 0xed, 0x78, 0x5e, 0x22, 0x3d, 0x97, 0x95, 0x6e, 0x71, 0x86, 0x90, 0x96,
-	0x63, 0x11, 0xa2, 0xbc, 0x93, 0x85, 0x64, 0x2c, 0x28, 0xa5, 0x8e, 0x25, 0x15, 0x2b, 0x66, 0xc7,
-	0x92, 0x48, 0xee, 0xc0, 0x72, 0x14, 0x98, 0x5e, 0xe8, 0x9a, 0x51, 0x56, 0xb8, 0x84, 0xc2, 0x4b,
-	0x09, 0x6b, 0xb2, 0x7c, 0xea, 0xa8, 0xf9, 0x11, 0xf9, 0xd8, 0x57, 0xda, 0xaf, 0x72, 0x50, 0x10,
-	0xf3, 0x40, 0xde, 0x86, 0x59, 0x6b, 0x10, 0x7f, 0x0b, 0x20, 0xe9, 0x37, 0x8f, 0x78, 0x96, 0x74,
-	0xce, 0x9e, 0x9c, 0x19, 0x99, 0x68, 0x9f, 0x55, 0xa2, 0x3d, 0x4d, 0xaf, 0xfc, 0x48, 0x7a, 0x89,
-	0x94, 0x99, 0x53, 0x53, 0x66, 0x72, 0x66, 0xa4, 0x79, 0x57, 0xcc, 0xe4, 0x9d, 0xf6, 0x8f, 0x05,
-	0xc8, 0x3f, 0x77, 0xd9, 0x05, 0x79, 0x1b, 0xaa, 0xa6, 0x65, 0xd1, 0x30, 0x34, 0xb2, 0xfb, 0xf7,
-	0xa2, 0x5e, 0x16, 0xd4, 0xd6, 0xa4, 0x52, 0x63, 0x71, 0xbc, 0xd6, 0x5e, 0x10, 0x64, 0x51, 0x6b,
-	0x8f, 0x14, 0xd3, 0x85, 0xa4, 0x98, 0xfe, 0x00, 0x96, 0xc2, 0xcb, 0xc1, 0x80, 0x46, 0x81, 0x63,
-	0x19, 0xb1, 0x08, 0x41, 0x91, 0xc5, 0x84, 0xf1, 0x5c, 0xc8, 0x6e, 0x03, 0x7e, 0x58, 0x12, 0x39,
-	0x20, 0xf6, 0xed, 0x12, 0x27, 0x60, 0x52, 0x67, 0x6b, 0x15, 0x40, 0xd3, 0x49, 0xad, 0xf2, 0x2e,
-	0x2c, 0x7a, 0x34, 0xba, 0x60, 0x18, 0x71, 0x62, 0x44, 0x73, 0x28, 0x51, 0x91, 0xe4, 0x56, 0x72,
-	0x3c, 0xcd, 0x54, 0x43, 0x05, 0x14, 0xc9, 0x54, 0x43, 0xdf, 0x04, 0xb0, 0x92, 0x95, 0x4e, 0x7e,
-	0x0b, 0x58, 0x4e, 0xe6, 0x35, 0x5d, 0x04, 0xf5, 0x8c, 0x18, 0x79, 0x0f, 0x0a, 0x26, 0xce, 0xb8,
-	0xbc, 0xe3, 0x5f, 0x1c, 0x09, 0x04, 0x5d, 0xb2, 0xc9, 0x16, 0x94, 0xfc, 0xc0, 0x61, 0x81, 0x13,
-	0x5d, 0x62, 0x78, 0x2d, 0xea, 0x49, 0x3b, 0x73, 0xb0, 0x28, 0x2b, 0x07, 0x8b, 0x4c, 0x5d, 0x57,
-	0x51, 0xea, 0xba, 0x4d, 0x28, 0xf5, 0x03, 0x36, 0xf4, 0xf9, 0x38, 0xe4, 0x5a, 0x82, 0x6d, 0xe1,
-	0x8c, 0xec, 0xf7, 0x60, 0x2e, 0xb1, 0x88, 0x12, 0x15, 0x4e, 0x3e, 0x12, 0xd4, 0x96, 0x4d, 0xde,
-	0x81, 0x6a, 0x40, 0x7d, 0x97, 0x1f, 0xc8, 0x28, 0x4e, 0x0c, 0x56, 0x41, 0x25, 0xbd, 0x92, 0x50,
-	0x31, 0x58, 0xf6, 0x61, 0x91, 0xc7, 0x18, 0x5f, 0x1c, 0xa4, 0xa7, 0x36, 0x96, 0x70, 0x7f, 0x7f,
-	0xa8, 0x7c, 0x1e, 0xdc, 0xe1, 0xa1, 0xd7, 0x65, 0x7b, 0x42, 0xa4, 0xe9, 0x45, 0xc1, 0xa5, 0x5e,
-	0xf1, 0xb3, 0x34, 0xd2, 0x84, 0x6a, 0xec, 0xfd, 0x88, 0x19, 0x26, 0x0d, 0x37, 0x96, 0x11, 0xe8,
-	0x81, 0x0a, 0x24, 0xc5, 0xbb, 0xac, 0x4e, 0x43, 0x81, 0x53, 0xee, 0x67, 0x48, 0x5b, 0x9f, 0x00,
-	0x19, 0xb7, 0xc5, 0xf7, 0xdd, 0x33, 0x7a, 0x29, 0x37, 0x25, 0xfe, 0x27, 0xdf, 0x9f, 0xcf, 0x4d,
-	0x77, 0x18, 0x1f, 0xac, 0x44, 0xe3, 0x7b, 0x33, 0x1f, 0xe7, 0xb6, 0x7e, 0x04, 0x4b, 0x63, 0x46,
-	0xae, 0x03, 0x28, 0x65, 0x00, 0xb4, 0x2e, 0x94, 0x95, 0xe2, 0x6f, 0x1b, 0xe6, 0x45, 0x05, 0x1b,
-	0xe7, 0x52, 0x59, 0x2f, 0x09, 0x42, 0xcb, 0xe6, 0x67, 0x20, 0xc9, 0x0c, 0x7d, 0x6a, 0x39, 0x3d,
-	0xc7, 0x92, 0x95, 0x71, 0x55, 0x90, 0x8f, 0x25, 0x55, 0xfb, 0xb7, 0x22, 0xde, 0x50, 0xa6, 0x1f,
-	0x5a, 0x6f, 0x7c, 0x0c, 0x78, 0x07, 0xaa, 0x3e, 0x0b, 0x9d, 0xc8, 0x39, 0xa7, 0xe2, 0xab, 0x99,
-	0xcc, 0xc5, 0x4a, 0x4c, 0xc5, 0xaf, 0x60, 0x5c, 0xcc, 0xa3, 0x7d, 0x33, 0x23, 0x96, 0x17, 0x62,
-	0x31, 0x55, 0x88, 0x7d, 0x0c, 0x1b, 0x36, 0x75, 0x9d, 0x81, 0xc3, 0x17, 0xc5, 0x81, 0x13, 0x86,
-	0x86, 0x4d, 0x23, 0x6a, 0x25, 0xa7, 0xb8, 0x82, 0xbe, 0x96, 0xf0, 0x0f, 0x9d, 0x30, 0x6c, 0xc4,
-	0x5c, 0x9e, 0x67, 0x27, 0x8e, 0x2f, 0xae, 0xe2, 0xc5, 0xe2, 0x54, 0xd0, 0xe7, 0x4f, 0x1c, 0x1f,
-	0xaf, 0xd1, 0xb1, 0xb6, 0xe5, 0xec, 0xa1, 0xc7, 0x97, 0x2e, 0x71, 0x92, 0x2e, 0x9d, 0x38, 0xfe,
-	0x0b, 0xde, 0x26, 0x4f, 0x61, 0xb5, 0x47, 0x2d, 0xc3, 0x62, 0x41, 0x80, 0x65, 0xb2, 0x11, 0x5e,
-	0x0e, 0x4e, 0x78, 0x55, 0x59, 0x42, 0xc1, 0xe5, 0x1e, 0xb5, 0x76, 0x63, 0xde, 0xb1, 0x60, 0x91,
-	0x6f, 0xc3, 0xba, 0xd0, 0xb1, 0xe9, 0x05, 0x0b, 0xec, 0x30, 0xd5, 0xc6, 0x4c, 0x2b, 0xe8, 0xab,
-	0xa8, 0x25, 0xb9, 0x89, 0x3a, 0xf9, 0x21, 0x6c, 0xab, 0x7a, 0x43, 0x4f, 0x6a, 0x9a, 0x27, 0x2e,
-	0xc5, 0x55, 0xa6, 0xa0, 0x6f, 0x66, 0x75, 0x5f, 0x64, 0x05, 0xc8, 0x5b, 0x50, 0x51, 0xf4, 0x71,
-	0x49, 0x2c, 0xe8, 0xe5, 0xac, 0x06, 0xdf, 0x61, 0xd4, 0x01, 0x89, 0x71, 0x8b, 0x44, 0x5f, 0xca,
-	0x0e, 0x47, 0x38, 0xe0, 0x5d, 0x58, 0x7c, 0xdd, 0xa7, 0x03, 0xe3, 0x8c, 0x5e, 0xc6, 0x1e, 0xac,
-	0x88, 0xe9, 0xe1, 0xe4, 0xcf, 0xe8, 0x65, 0xea, 0x45, 0x94, 0x73, 0x59, 0x18, 0xe2, 0x1a, 0x50,
-	0xd0, 0x4b, 0x9c, 0x70, 0xc0, 0x42, 0x04, 0x09, 0x5e, 0x1b, 0xbe, 0xcb, 0xcc, 0x41, 0x28, 0x50,
-	0x70, 0x11, 0x28, 0xe8, 0x95, 0xe0, 0xf5, 0x11, 0x52, 0x11, 0x85, 0x7c, 0x0d, 0x48, 0x2a, 0xe7,
-	0x31, 0xcf, 0x70, 0x6c, 0x97, 0xe2, 0x42, 0x50, 0xd0, 0x17, 0x63, 0xd1, 0x36, 0xf3, 0x5a, 0xb6,
-	0x8b, 0xab, 0x51, 0xf0, 0x1a, 0x3f, 0x96, 0xe2, 0x41, 0xa8, 0xa0, 0x17, 0x82, 0xd7, 0xfc, 0x04,
-	0x4c, 0x3e, 0x86, 0x4d, 0xc9, 0x30, 0x7c, 0x3c, 0x1b, 0x86, 0x86, 0x15, 0x58, 0xd2, 0xae, 0x58,
-	0xeb, 0x57, 0x85, 0xa8, 0x38, 0x3a, 0x86, 0xbb, 0x81, 0x25, 0xec, 0x6f, 0x42, 0x29, 0x78, 0x6d,
-	0x9c, 0x5c, 0x46, 0xb8, 0x1a, 0x70, 0xc1, 0x62, 0xf0, 0xfa, 0x19, 0x6f, 0xf2, 0x20, 0xe2, 0x5d,
-	0x13, 0x0a, 0x78, 0x04, 0x2a, 0xe8, 0xf3, 0xc1, 0x6b, 0x89, 0xc0, 0x35, 0xa3, 0x58, 0x73, 0x55,
-	0x68, 0x46, 0xa9, 0x66, 0x94, 0x6a, 0xae, 0x09, 0xcd, 0x28, 0xd1, 0x7c, 0x04, 0xe5, 0x13, 0x1a,
-	0x18, 0x01, 0xe5, 0x2b, 0x00, 0xb5, 0x37, 0xd6, 0x51, 0x60, 0xe1, 0x84, 0x06, 0xba, 0x24, 0x91,
-	0x07, 0xb0, 0xe0, 0x5a, 0x76, 0x3f, 0xf6, 0xff, 0x06, 0x4a, 0x00, 0x27, 0x49, 0xe7, 0xf3, 0xce,
-	0xd9, 0x4e, 0xcc, 0xdf, 0x94, 0x9d, 0xb3, 0x1d, 0xc9, 0xbe, 0x0b, 0xf3, 0x91, 0x33, 0xa0, 0x61,
-	0x64, 0x0e, 0xfc, 0x8d, 0x2d, 0x71, 0xea, 0x4e, 0x08, 0xda, 0x3f, 0xe7, 0x70, 0x01, 0x52, 0xdf,
-	0x63, 0x5c, 0xf9, 0x09, 0xe5, 0xaa, 0x6b, 0x2c, 0xd5, 0x4f, 0xb3, 0x13, 0xfc, 0x94, 0x78, 0x38,
-	0x3f, 0xe6, 0xe1, 0x8c, 0x9f, 0xe6, 0x46, 0xfd, 0x94, 0xf5, 0x70, 0x41, 0xf5, 0xf0, 0xd5, 0xe3,
-	0xfb, 0xbb, 0x1c, 0x54, 0xd5, 0x27, 0x23, 0xd9, 0xf2, 0x20, 0xa7, 0xdc, 0xb5, 0x65, 0xbb, 0x37,
-	0x73, 0x55, 0x00, 0xcc, 0x5e, 0x15, 0x00, 0xa5, 0xab, 0x02, 0x60, 0x7e, 0x74, 0x60, 0x4a, 0xef,
-	0x6b, 0xa3, 0xbd, 0xff, 0x04, 0x2a, 0xca, 0x73, 0x8e, 0xe9, 0x13, 0xb3, 0x06, 0x85, 0x30, 0x32,
-	0xa3, 0x61, 0x28, 0x0f, 0xc3, 0xb2, 0xa5, 0x7d, 0x01, 0xcb, 0x13, 0x9e, 0x75, 0xdc, 0x78, 0x35,
-	0x4f, 0xe1, 0x67, 0x15, 0xf8, 0xbf, 0x9a, 0xc1, 0xbb, 0xb2, 0xd1, 0xe7, 0x29, 0xbf, 0xc6, 0xe7,
-	0x2c, 0x97, 0x85, 0x86, 0x62, 0x62, 0xde, 0x65, 0xe1, 0x31, 0x12, 0x04, 0xfb, 0x24, 0x66, 0xe7,
-	0x63, 0xf6, 0x89, 0x64, 0x3f, 0x86, 0x9a, 0xcb, 0x7c, 0x4b, 0xec, 0x0b, 0x52, 0x48, 0x5c, 0xe3,
-	0x56, 0x39, 0x9d, 0xef, 0x07, 0x52, 0xf2, 0x23, 0x58, 0x95, 0x92, 0x72, 0x45, 0x88, 0xc5, 0x0b,
-	0xe2, 0x32, 0x45, 0x88, 0x8b, 0xf5, 0x40, 0xaa, 0xf0, 0xf4, 0x63, 0x3d, 0x27, 0x16, 0x2c, 0x8a,
-	0xd3, 0x10, 0x27, 0x49, 0x81, 0x47, 0x50, 0xe6, 0x2b, 0x53, 0x22, 0x51, 0x42, 0x89, 0x05, 0xa4,
-	0x09, 0x11, 0x8d, 0xc2, 0xf6, 0x15, 0x8f, 0x59, 0x6e, 0x6d, 0x32, 0xfe, 0x34, 0x07, 0x5b, 0xd3,
-	0x5f, 0xb6, 0xdc, 0x96, 0x19, 0xf2, 0x4d, 0x58, 0x73, 0xbc, 0x73, 0x1a, 0x84, 0xd4, 0xe0, 0xc5,
-	0x98, 0xf0, 0x63, 0x60, 0x46, 0xf1, 0xfd, 0xe4, 0xb2, 0xe4, 0x3e, 0x73, 0xc4, 0xb7, 0x6a, 0xdd,
-	0x8c, 0xa8, 0xf6, 0x4b, 0xd1, 0xb7, 0x29, 0x0f, 0x63, 0x6e, 0xad, 0x6f, 0x2b, 0x30, 0x97, 0x56,
-	0x11, 0xfc, 0x7c, 0x8c, 0xd5, 0xc3, 0x3a, 0x14, 0x3d, 0x7a, 0x61, 0xd0, 0x2f, 0xe3, 0x43, 0x4b,
-	0xc1, 0xa3, 0x17, 0xcd, 0x2f, 0x6d, 0xed, 0x14, 0xee, 0x5f, 0xfd, 0xac, 0xe6, 0xd6, 0xe6, 0xe6,
-	0xcf, 0x72, 0x22, 0x06, 0xa6, 0x3c, 0xb4, 0xf9, 0xbf, 0x9d, 0x9c, 0x9f, 0xe7, 0x40, 0xbb, 0xfe,
-	0xd1, 0xce, 0xff, 0xee, 0x24, 0x69, 0x5f, 0xe2, 0x5c, 0x5c, 0xf1, 0xb8, 0xe7, 0xc6, 0xf6, 0x1f,
-	0xa8, 0x1f, 0xaa, 0xc5, 0xe9, 0x36, 0xfb, 0xed, 0xf9, 0x0c, 0x1e, 0x5d, 0xfb, 0x12, 0xe7, 0xd6,
-	0x22, 0xa0, 0x0b, 0x44, 0x97, 0x9b, 0x72, 0x06, 0x9d, 0x17, 0x47, 0xf1, 0xe6, 0x6d, 0x58, 0x6c,
-	0xe8, 0x45, 0x68, 0x85, 0x17, 0x47, 0x52, 0x78, 0x97, 0x13, 0xa7, 0xae, 0xef, 0x7f, 0x92, 0x83,
-	0x8d, 0x69, 0x4f, 0x7d, 0x6e, 0xdc, 0xf5, 0x3a, 0x54, 0xd2, 0xce, 0x4c, 0x7a, 0xdc, 0x37, 0x3e,
-	0x80, 0xfd, 0x3b, 0xfa, 0x42, 0x90, 0x52, 0x9f, 0x15, 0xf1, 0x26, 0x32, 0x0a, 0xb5, 0x36, 0xdc,
-	0xbd, 0xea, 0x21, 0xd5, 0x4d, 0xfb, 0xa6, 0xfd, 0x0c, 0x1e, 0x5e, 0xf7, 0xe8, 0xe8, 0xd6, 0xa6,
-	0xea, 0x67, 0xb0, 0x39, 0xf5, 0xe5, 0xd1, 0xaf, 0xb3, 0xb7, 0x65, 0xca, 0xb3, 0xd9, 0x91, 0xf2,
-	0x4c, 0xfb, 0x8b, 0x1c, 0x3c, 0x7e, 0xd3, 0x67, 0x48, 0xb7, 0x96, 0x81, 0x1f, 0x02, 0xc9, 0x3e,
-	0x8d, 0x92, 0x7d, 0x13, 0xe9, 0xb8, 0x94, 0xe1, 0xc8, 0x3e, 0x0e, 0xe0, 0xad, 0x37, 0x78, 0xb0,
-	0x74, 0x6b, 0xee, 0x77, 0x71, 0x35, 0xba, 0xe6, 0xd1, 0xd2, 0xad, 0x59, 0xfb, 0xa3, 0x1c, 0xbc,
-	0xfb, 0x66, 0xcf, 0x97, 0x6e, 0xcd, 0xfd, 0x5b, 0x50, 0x1a, 0xf9, 0xa6, 0x97, 0xb4, 0xb5, 0xff,
-	0xca, 0xc1, 0xc2, 0x5e, 0xc0, 0x86, 0xfe, 0x21, 0xc5, 0xf3, 0xfc, 0x23, 0x28, 0x3b, 0xf1, 0xd7,
-	0xdb, 0xd8, 0x70, 0x05, 0x1f, 0x92, 0x0b, 0x5a, 0xcb, 0x26, 0x2d, 0xa8, 0xa6, 0x22, 0xc9, 0xf7,
-	0xdb, 0x6a, 0xe6, 0x1d, 0x5d, 0x06, 0x70, 0x27, 0xf9, 0x16, 0x8c, 0x9f, 0x10, 0x2a, 0x4e, 0xb6,
-	0x49, 0xee, 0xc3, 0x02, 0x3f, 0xc7, 0xc5, 0x05, 0xfe, 0x2c, 0x1a, 0xe3, 0x05, 0xfe, 0x91, 0x28,
-	0xf0, 0xb3, 0x17, 0x47, 0x79, 0x64, 0x26, 0x6d, 0xed, 0xff, 0x43, 0x45, 0xc1, 0x26, 0x45, 0x98,
-	0x3d, 0xea, 0xb4, 0x6b, 0x77, 0x48, 0x0d, 0xca, 0xcd, 0xa3, 0x4e, 0xdb, 0xf8, 0x68, 0xcf, 0x38,
-	0xaa, 0x77, 0xf7, 0x6b, 0x39, 0xb2, 0x04, 0x15, 0x41, 0xf9, 0x86, 0x24, 0xcd, 0x68, 0xbf, 0x98,
-	0x81, 0x39, 0xec, 0xa7, 0x72, 0xa1, 0x24, 0x86, 0x9b, 0x5c, 0x28, 0xfd, 0x00, 0x8a, 0x16, 0x1b,
-	0x0c, 0x4c, 0xf9, 0x7a, 0x79, 0x6c, 0x8c, 0xd9, 0x91, 0x86, 0xbb, 0x42, 0x52, 0x8f, 0x55, 0xc8,
-	0x0e, 0x14, 0x07, 0x82, 0x25, 0xbf, 0x0b, 0xad, 0x4c, 0xf2, 0x90, 0x1e, 0x0b, 0x65, 0xee, 0xd3,
-	0xf2, 0x57, 0xde, 0xa7, 0x69, 0x9f, 0xc1, 0xf2, 0x04, 0xc3, 0x64, 0x11, 0x16, 0xea, 0x8d, 0x86,
-	0x71, 0xd8, 0x3c, 0x7c, 0xd6, 0xd4, 0x8f, 0x6b, 0x77, 0x08, 0x81, 0xaa, 0xde, 0x3c, 0xec, 0xbc,
-	0x6c, 0x26, 0xb4, 0x1c, 0x17, 0x3a, 0x6e, 0x76, 0x13, 0xc2, 0x8c, 0xf6, 0x05, 0xc0, 0x4b, 0xd3,
-	0x1d, 0xd2, 0x23, 0x33, 0x30, 0x07, 0xe4, 0x3e, 0xcc, 0x32, 0x6f, 0x28, 0x6f, 0x76, 0xcb, 0xca,
-	0xcb, 0x48, 0xce, 0x20, 0x4f, 0xb2, 0x37, 0x43, 0xd5, 0xa7, 0x9b, 0x3b, 0xc9, 0xcf, 0x27, 0x76,
-	0x10, 0x85, 0xcf, 0xc4, 0x0e, 0x4e, 0xb5, 0x90, 0xd3, 0xfe, 0x61, 0x06, 0xaa, 0x47, 0xcc, 0xd3,
-	0x5f, 0x1f, 0xb1, 0x0b, 0x1a, 0x34, 0xcc, 0xc8, 0xbc, 0xb5, 0xb8, 0xd6, 0xd5, 0x0d, 0x37, 0x8f,
-	0x3d, 0x4a, 0x5f, 0x5b, 0xaa, 0x56, 0x77, 0xf4, 0x30, 0x74, 0x0e, 0xa9, 0x19, 0x0e, 0x03, 0x4c,
-	0xed, 0xc9, 0xef, 0xc3, 0xc8, 0xfb, 0xb0, 0xc4, 0x4f, 0x5e, 0x5c, 0xcb, 0x18, 0x50, 0xd3, 0x33,
-	0xec, 0x93, 0x01, 0x56, 0x71, 0x39, 0xbd, 0x1a, 0x08, 0xb4, 0x43, 0x6a, 0x7a, 0x8d, 0x93, 0x01,
-	0x5f, 0xb6, 0xa7, 0x62, 0x92, 0x15, 0xa8, 0x4d, 0x78, 0x3f, 0x76, 0x17, 0x36, 0x54, 0xaa, 0xd1,
-	0x68, 0x1e, 0xb4, 0x0e, 0x5b, 0xdd, 0xa6, 0x5e, 0xcb, 0x91, 0x4d, 0x58, 0x1d, 0xe1, 0xd6, 0x77,
-	0x77, 0x9b, 0xc7, 0x7c, 0x92, 0x4e, 0xf0, 0x95, 0x54, 0x5d, 0x5c, 0xfa, 0x66, 0x0e, 0x97, 0x6b,
-	0x20, 0x7d, 0x37, 0xe2, 0xc9, 0x0d, 0x88, 0x6f, 0x88, 0xa5, 0x2b, 0x93, 0x0b, 0xe3, 0x0d, 0x88,
-	0x4f, 0x99, 0x72, 0x73, 0x88, 0x9b, 0xfc, 0x70, 0x55, 0xc4, 0xd7, 0x74, 0x3d, 0x96, 0x99, 0x89,
-	0x5c, 0x76, 0x26, 0x9e, 0x88, 0xed, 0x36, 0x9d, 0x7d, 0xe5, 0x15, 0x5e, 0x8f, 0xc9, 0x47, 0xf4,
-	0x11, 0xd5, 0x85, 0x1c, 0x79, 0x0f, 0xf2, 0x2e, 0x0b, 0x1d, 0x34, 0x55, 0xcd, 0xdc, 0x28, 0xe3,
-	0x09, 0x4e, 0x48, 0xa2, 0x80, 0x10, 0xec, 0x39, 0x72, 0x12, 0xa7, 0x09, 0xf6, 0x1c, 0xf2, 0x3e,
-	0xcc, 0xe1, 0x59, 0x07, 0x27, 0x65, 0x8a, 0xa4, 0x90, 0xd0, 0x8e, 0xa1, 0x14, 0xf7, 0x87, 0x2c,
-	0x40, 0xf1, 0x45, 0xfb, 0xb3, 0x76, 0xe7, 0x55, 0x5b, 0xe4, 0x45, 0xbb, 0xd3, 0x35, 0x76, 0x3b,
-	0xed, 0xe7, 0xad, 0xbd, 0x17, 0x7a, 0xb3, 0x51, 0xcb, 0x11, 0x80, 0x02, 0xbe, 0x97, 0x6b, 0xd6,
-	0x66, 0x48, 0x19, 0x4a, 0xad, 0xb6, 0x6c, 0xcd, 0xf2, 0x56, 0xa3, 0x75, 0x5c, 0x7f, 0x76, 0xd0,
-	0x6c, 0xd4, 0xf2, 0xda, 0xbf, 0xe7, 0x60, 0xe1, 0x08, 0x0b, 0xd6, 0x1e, 0x7a, 0x6a, 0x6a, 0x30,
-	0x7f, 0x27, 0xf6, 0x95, 0x18, 0xfb, 0xa3, 0x6c, 0x5c, 0xc6, 0xda, 0xf1, 0xdf, 0x8a, 0xcf, 0xde,
-	0x81, 0x59, 0x97, 0x85, 0x57, 0x79, 0x82, 0xf3, 0x35, 0x03, 0xca, 0x59, 0xed, 0xb1, 0x11, 0x8a,
-	0xfe, 0x1b, 0xaf, 0x3a, 0xfa, 0x67, 0xe2, 0x51, 0x62, 0x4a, 0x3b, 0xee, 0xd6, 0xdb, 0x8d, 0x67,
-	0x3f, 0xbe, 0x66, 0xa4, 0xbf, 0xc8, 0xc1, 0xbd, 0x64, 0x85, 0xe5, 0x8e, 0xcc, 0xdc, 0xfb, 0x76,
-	0x30, 0x1c, 0xda, 0x40, 0xe4, 0xd8, 0x33, 0x8f, 0x05, 0xe4, 0xda, 0xf1, 0x28, 0xfb, 0xf8, 0x6b,
-	0x22, 0x86, 0xbe, 0x28, 0x3c, 0x95, 0xd0, 0xa6, 0xd5, 0x62, 0xe7, 0xb0, 0x31, 0x0d, 0x63, 0xba,
-	0xfb, 0xeb, 0xe2, 0x47, 0x0e, 0x37, 0x78, 0x34, 0xbb, 0xc8, 0x54, 0x6c, 0xad, 0x08, 0x73, 0xcd,
-	0x81, 0x1f, 0x5d, 0x7e, 0x70, 0x0f, 0x20, 0xf5, 0x3e, 0xdf, 0x67, 0x3a, 0xcf, 0x9f, 0xd7, 0xee,
-	0x90, 0x02, 0xcc, 0x74, 0xda, 0xb5, 0xdc, 0xd3, 0xbf, 0xde, 0x86, 0x62, 0x47, 0x20, 0x92, 0x06,
-	0x80, 0x7c, 0x51, 0xd9, 0x71, 0x23, 0x52, 0x4d, 0x2c, 0x21, 0xd0, 0xd6, 0x48, 0x5b, 0x5b, 0xfb,
-	0xf9, 0x3f, 0xfd, 0xeb, 0x2f, 0x67, 0x6a, 0xda, 0xc2, 0x93, 0xf3, 0x8f, 0x9e, 0x48, 0xbd, 0xef,
-	0xe5, 0x3e, 0x20, 0xcf, 0x61, 0x41, 0xa7, 0xe2, 0x27, 0x3d, 0x6f, 0x02, 0xb3, 0x8e, 0x30, 0x4b,
-	0x5a, 0x99, 0xc3, 0xc4, 0x8a, 0x1c, 0xa7, 0x09, 0x0b, 0xf2, 0x84, 0xc3, 0x1d, 0x47, 0x94, 0xf5,
-	0x7c, 0x0c, 0x65, 0x03, 0x51, 0x88, 0x56, 0xe1, 0x28, 0xe2, 0x41, 0x66, 0xc7, 0x1b, 0x72, 0x98,
-	0x7d, 0xa8, 0x24, 0x95, 0xf0, 0x1b, 0x00, 0x6d, 0x22, 0xd0, 0xb2, 0x56, 0xcd, 0x8c, 0x4a, 0x22,
-	0xed, 0xc2, 0x7c, 0x83, 0xba, 0xf4, 0xc6, 0xdd, 0x49, 0x94, 0x38, 0x48, 0x0b, 0x40, 0xbe, 0x3e,
-	0xea, 0x0c, 0x23, 0x52, 0x53, 0x7e, 0x52, 0x76, 0x18, 0xf6, 0xaf, 0xee, 0x4f, 0xaa, 0xc9, 0xa1,
-	0x3a, 0x50, 0x4e, 0x9e, 0x1e, 0x71, 0x30, 0xa2, 0x3c, 0x99, 0x47, 0xf2, 0x18, 0xdc, 0x36, 0xc2,
-	0xad, 0x6a, 0x35, 0x84, 0xcb, 0x68, 0x73, 0xc0, 0xdf, 0x86, 0xc5, 0xec, 0x4b, 0x21, 0x8e, 0x99,
-	0x86, 0x5b, 0x96, 0x33, 0x06, 0x7b, 0x1f, 0x61, 0x37, 0xb4, 0x65, 0x0e, 0x3b, 0x82, 0xc1, 0x91,
-	0x3f, 0x81, 0xe2, 0x73, 0x97, 0x5d, 0xd4, 0x6d, 0x9b, 0x54, 0x94, 0xcf, 0x46, 0x57, 0x47, 0x95,
-	0xd4, 0x11, 0x51, 0x05, 0xbc, 0xa5, 0xe3, 0x67, 0xe3, 0xeb, 0x40, 0x14, 0xa7, 0xa5, 0x6a, 0x1c,
-	0xe7, 0x18, 0xaa, 0xc9, 0xf3, 0xbc, 0xdd, 0x53, 0x6a, 0x9d, 0x8d, 0x05, 0x68, 0xea, 0xc6, 0x44,
-	0x50, 0xbb, 0x87, 0x80, 0xeb, 0x1a, 0xe1, 0x80, 0xaa, 0x3e, 0x07, 0x3d, 0x84, 0x05, 0x11, 0x73,
-	0x7c, 0x51, 0xeb, 0x65, 0x26, 0x22, 0x49, 0xfd, 0xb1, 0x2e, 0x6e, 0x21, 0xe2, 0x8a, 0xb6, 0x98,
-	0x06, 0x2c, 0x2a, 0xcb, 0x89, 0x95, 0x91, 0xf7, 0xe6, 0x78, 0xca, 0xc4, 0x66, 0xb5, 0x39, 0xa0,
-	0x0e, 0x95, 0x3d, 0x1a, 0x65, 0x5e, 0x72, 0x8d, 0x8e, 0x79, 0x79, 0xc2, 0xc3, 0x1a, 0xed, 0x2e,
-	0x42, 0xae, 0x69, 0x4b, 0x1c, 0x52, 0xd1, 0xe7, 0x98, 0x3f, 0x82, 0x82, 0x4e, 0x4f, 0x18, 0xbb,
-	0x3e, 0xc3, 0x57, 0x11, 0x67, 0x51, 0x03, 0x91, 0xe1, 0x5c, 0x87, 0x03, 0xbc, 0x80, 0xa5, 0x5d,
-	0xe6, 0xba, 0xd4, 0xca, 0xde, 0xa6, 0x5f, 0x87, 0xf5, 0x10, 0xb1, 0xb6, 0xb4, 0x55, 0x8e, 0x35,
-	0xa6, 0xce, 0x61, 0x7f, 0x0c, 0xb5, 0x3d, 0x1a, 0xa9, 0x1f, 0xe4, 0xd4, 0x64, 0x5d, 0x1b, 0xf9,
-	0xd9, 0x9c, 0x94, 0xd2, 0x1e, 0x20, 0xf6, 0xa6, 0xb6, 0x22, 0xc7, 0xab, 0x70, 0x39, 0xf4, 0x19,
-	0xac, 0xec, 0xd1, 0x68, 0xfc, 0x13, 0xc0, 0xa4, 0xc4, 0x4b, 0x7f, 0x9b, 0x3a, 0x26, 0xaf, 0xbd,
-	0x85, 0x86, 0xee, 0x69, 0x1b, 0xd2, 0xd0, 0x98, 0x04, 0x37, 0x16, 0xc0, 0xfa, 0x6e, 0x40, 0xcd,
-	0x88, 0x76, 0x03, 0xb3, 0xd7, 0x73, 0xac, 0x63, 0xeb, 0x94, 0xda, 0x43, 0x97, 0xd7, 0xda, 0x0f,
-	0x76, 0x94, 0x5f, 0x0e, 0x8f, 0x09, 0x8c, 0x79, 0xed, 0x5d, 0x34, 0xf8, 0x50, 0xdb, 0x46, 0xaf,
-	0x4d, 0x46, 0x95, 0x36, 0x45, 0xa6, 0xdc, 0xb6, 0xcd, 0x29, 0xa8, 0xdc, 0x66, 0x0f, 0x96, 0x95,
-	0x1e, 0xfd, 0xd6, 0x90, 0x0e, 0x69, 0x48, 0xb6, 0x27, 0xda, 0x13, 0xcc, 0x31, 0x5b, 0x1a, 0xda,
-	0xba, 0xab, 0xad, 0x8f, 0x8d, 0x4f, 0x28, 0x48, 0x3b, 0x4a, 0x2f, 0xbe, 0xb2, 0x9d, 0x09, 0x68,
-	0xdc, 0xce, 0xf7, 0xa1, 0x26, 0xd2, 0x39, 0x73, 0x18, 0x9e, 0x9e, 0x6e, 0xa9, 0x90, 0x76, 0xe7,
-	0x1b, 0x39, 0xf2, 0x05, 0xac, 0x1e, 0xd1, 0xa0, 0xc7, 0x82, 0x01, 0x9e, 0x91, 0x3a, 0x3e, 0x0d,
-	0x46, 0x11, 0x90, 0x31, 0xd6, 0xb3, 0xb7, 0xb1, 0x67, 0xf7, 0xb5, 0x4d, 0xde, 0xb3, 0x89, 0x10,
-	0x62, 0xf3, 0x59, 0x10, 0x9b, 0x91, 0x38, 0x3c, 0x5e, 0x07, 0xaa, 0xac, 0x51, 0x19, 0x45, 0x0e,
-	0xf5, 0x0a, 0x16, 0xf6, 0x68, 0xd4, 0x7c, 0x1d, 0xe1, 0xc9, 0x89, 0xa4, 0x23, 0x4a, 0xcf, 0x63,
-	0x5b, 0xeb, 0x99, 0x03, 0x96, 0x4e, 0xa3, 0x61, 0xe0, 0x21, 0x33, 0x54, 0x81, 0x33, 0x30, 0x1c,
-	0xf8, 0x0b, 0xfc, 0x69, 0x91, 0xb8, 0xa4, 0x13, 0x85, 0x0b, 0x8d, 0xc8, 0xda, 0x8e, 0xfc, 0x15,
-	0xbc, 0xca, 0xba, 0x7a, 0x79, 0x18, 0x83, 0xe1, 0xf0, 0x3e, 0x6c, 0xee, 0xd1, 0xe8, 0x60, 0xf2,
-	0x63, 0x62, 0x75, 0x9d, 0xd8, 0x56, 0x7f, 0x17, 0xa6, 0x3c, 0x71, 0xd6, 0x1e, 0xa3, 0x25, 0x4d,
-	0xbb, 0x27, 0x87, 0x30, 0x19, 0x91, 0x5b, 0x3c, 0x85, 0xd5, 0x89, 0xfc, 0x9b, 0x58, 0x53, 0xa6,
-	0x77, 0x22, 0x1a, 0xb7, 0xd4, 0xc5, 0x65, 0x3e, 0x3d, 0x3a, 0x8e, 0x58, 0x58, 0x9f, 0x72, 0xba,
-	0x1c, 0x5b, 0xe8, 0x53, 0x36, 0x47, 0xdd, 0x03, 0x10, 0x8b, 0x21, 0xee, 0x1c, 0x2a, 0x64, 0x6d,
-	0xf4, 0x10, 0xa5, 0x6e, 0xbd, 0xa9, 0x1e, 0x07, 0xfa, 0x29, 0x2c, 0x0b, 0xf0, 0x64, 0x17, 0x43,
-	0xc4, 0x49, 0xbb, 0xdb, 0xca, 0xa4, 0x03, 0xc7, 0xd8, 0x02, 0xad, 0xe0, 0x70, 0x0b, 0x1e, 0x2e,
-	0xd0, 0xe3, 0x27, 0xcd, 0x49, 0x0b, 0xf4, 0x3d, 0xf5, 0x67, 0xd8, 0x23, 0x2a, 0x63, 0x6b, 0xf4,
-	0x98, 0x04, 0xb7, 0xd7, 0x47, 0x7b, 0x47, 0xe2, 0xf1, 0xef, 0x44, 0x7b, 0xe9, 0x90, 0xa6, 0xfc,
-	0x9e, 0x7f, 0xcc, 0xd0, 0x18, 0x5a, 0x6a, 0xa8, 0x2d, 0x1e, 0x12, 0xdf, 0x92, 0xa1, 0x31, 0x34,
-	0x6e, 0xe8, 0x77, 0xd2, 0x23, 0x80, 0x37, 0x24, 0xef, 0x5e, 0x7b, 0x0e, 0xc2, 0xb3, 0xd4, 0xd4,
-	0x22, 0x6e, 0xa4, 0x88, 0x26, 0x9f, 0xc3, 0x7c, 0x52, 0x9b, 0xff, 0xda, 0xe0, 0x71, 0x39, 0xa1,
-	0x96, 0xfa, 0x84, 0xc1, 0x5a, 0x6a, 0x49, 0x39, 0x66, 0x5d, 0x7f, 0x9a, 0x9b, 0xba, 0xd0, 0x6f,
-	0xa9, 0x03, 0x50, 0x60, 0x07, 0xb0, 0x9a, 0x58, 0xff, 0xaa, 0xf6, 0x1e, 0xa1, 0xbd, 0x6d, 0x91,
-	0xdf, 0x13, 0x51, 0x9f, 0x7d, 0x01, 0xdb, 0x2c, 0xe8, 0xa3, 0x9e, 0xc5, 0x02, 0x7b, 0x47, 0xfc,
-	0x47, 0x1f, 0x31, 0xce, 0xb3, 0xca, 0x4b, 0x6c, 0xf3, 0xa3, 0x5c, 0xe7, 0xa0, 0xfb, 0xf9, 0x93,
-	0xbe, 0x13, 0x9d, 0x0e, 0x4f, 0x78, 0x28, 0x3c, 0x89, 0x55, 0x9e, 0x08, 0x95, 0x0f, 0xe5, 0xff,
-	0x0d, 0x72, 0xfe, 0xff, 0x9e, 0xf4, 0x59, 0xfc, 0xff, 0x98, 0x9c, 0x14, 0x90, 0xfa, 0xcd, 0xff,
-	0x09, 0x00, 0x00, 0xff, 0xff, 0x3b, 0xd4, 0xa0, 0xe2, 0xe7, 0x44, 0x00, 0x00,
-}
-
-// Reference imports to suppress errors if they are not otherwise used.
-var _ context.Context
-var _ grpc.ClientConn
-
-// This is a compile-time assertion to ensure that this generated file
-// is compatible with the grpc package it is being compiled against.
-const _ = grpc.SupportPackageIsVersion4
-
-// OpenoltClient is the client API for Openolt service.
-//
-// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
-type OpenoltClient interface {
-	DisableOlt(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Empty, error)
-	ReenableOlt(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Empty, error)
-	ActivateOnu(ctx context.Context, in *Onu, opts ...grpc.CallOption) (*Empty, error)
-	DeactivateOnu(ctx context.Context, in *Onu, opts ...grpc.CallOption) (*Empty, error)
-	DeleteOnu(ctx context.Context, in *Onu, opts ...grpc.CallOption) (*Empty, error)
-	OmciMsgOut(ctx context.Context, in *OmciMsg, opts ...grpc.CallOption) (*Empty, error)
-	OnuPacketOut(ctx context.Context, in *OnuPacket, opts ...grpc.CallOption) (*Empty, error)
-	UplinkPacketOut(ctx context.Context, in *UplinkPacket, opts ...grpc.CallOption) (*Empty, error)
-	FlowAdd(ctx context.Context, in *Flow, opts ...grpc.CallOption) (*Empty, error)
-	FlowRemove(ctx context.Context, in *Flow, opts ...grpc.CallOption) (*Empty, error)
-	HeartbeatCheck(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Heartbeat, error)
-	EnablePonIf(ctx context.Context, in *Interface, opts ...grpc.CallOption) (*Empty, error)
-	DisablePonIf(ctx context.Context, in *Interface, opts ...grpc.CallOption) (*Empty, error)
-	GetDeviceInfo(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*DeviceInfo, error)
-	Reboot(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Empty, error)
-	CollectStatistics(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Empty, error)
-	GetOnuStatistics(ctx context.Context, in *Onu, opts ...grpc.CallOption) (*OnuStatistics, error)
-	GetGemPortStatistics(ctx context.Context, in *OnuPacket, opts ...grpc.CallOption) (*GemPortStatistics, error)
-	CreateTrafficSchedulers(ctx context.Context, in *tech_profile.TrafficSchedulers, opts ...grpc.CallOption) (*Empty, error)
-	RemoveTrafficSchedulers(ctx context.Context, in *tech_profile.TrafficSchedulers, opts ...grpc.CallOption) (*Empty, error)
-	CreateTrafficQueues(ctx context.Context, in *tech_profile.TrafficQueues, opts ...grpc.CallOption) (*Empty, error)
-	RemoveTrafficQueues(ctx context.Context, in *tech_profile.TrafficQueues, opts ...grpc.CallOption) (*Empty, error)
-	EnableIndication(ctx context.Context, in *Empty, opts ...grpc.CallOption) (Openolt_EnableIndicationClient, error)
-	PerformGroupOperation(ctx context.Context, in *Group, opts ...grpc.CallOption) (*Empty, error)
-	DeleteGroup(ctx context.Context, in *Group, opts ...grpc.CallOption) (*Empty, error)
-	GetExtValue(ctx context.Context, in *ValueParam, opts ...grpc.CallOption) (*extension.ReturnValues, error)
-	OnuItuPonAlarmSet(ctx context.Context, in *config.OnuItuPonAlarm, opts ...grpc.CallOption) (*Empty, error)
-	GetLogicalOnuDistanceZero(ctx context.Context, in *Onu, opts ...grpc.CallOption) (*OnuLogicalDistance, error)
-	GetLogicalOnuDistance(ctx context.Context, in *Onu, opts ...grpc.CallOption) (*OnuLogicalDistance, error)
-	GetPonRxPower(ctx context.Context, in *Onu, opts ...grpc.CallOption) (*PonRxPowerData, error)
-	//
-	// GetOnuInfo takes Onu id, serialnumber, and pon interface as argument from the onu structure.
-	// Returns the Onu info from the device.
-	GetOnuInfo(ctx context.Context, in *Onu, opts ...grpc.CallOption) (*OnuInfo, error)
-	//
-	// GetPonInterfaceInfo takes the pon intf id as argument.
-	// Returns the pon interface information from the device.
-	GetPonInterfaceInfo(ctx context.Context, in *Interface, opts ...grpc.CallOption) (*PonIntfInfo, error)
-	//
-	// GetAllocIdStatistics takes onuId and allocId as argument.
-	// This method includes a default wait period of 10 secs before collecting the stats.
-	// The caller has to be aware of this wait and handle it accordingly.
-	// Returns AllocId statistics in the form of OnuAllocStatistics structure
-	GetAllocIdStatistics(ctx context.Context, in *OnuPacket, opts ...grpc.CallOption) (*OnuAllocIdStatistics, error)
-	//
-	// GetPonPortStatistics takes interface id and type as argument from Interface structure.
-	// Returns Pon port statistics in the form of PonStatsData structure.
-	GetPonPortStatistics(ctx context.Context, in *Interface, opts ...grpc.CallOption) (*common.PortStatistics, error)
-	//
-	// GetNniPortStatistics takes takes interface id and type as argument from Interface structure.
-	// Returns Nni port statistics in the form of NniStatsData structure
-	GetNniPortStatistics(ctx context.Context, in *Interface, opts ...grpc.CallOption) (*common.PortStatistics, error)
-	//
-	// Disable ONU serailnumber, disable device at PLOAM.
-	// Takes input as intfid, onuid, sn of the ONU.
-	// Returns success if the call towards the device is success, error otherwise.
-	DisableOnu(ctx context.Context, in *InterfaceOnuSerialNumberOnuId, opts ...grpc.CallOption) (*Empty, error)
-	//
-	// Enables ONU serailnumber, enable device at PLOAM.
-	// Takes input as intfid, onuid, sn of the ONU.
-	// Returns success if the call towards the device is success, error otherwise.
-	EnableOnu(ctx context.Context, in *InterfaceOnuSerialNumberOnuId, opts ...grpc.CallOption) (*Empty, error)
-	//
-	// Disable ONU serailnumber, disable device at PLOAM
-	// Takes input as intfid and sn of the ONU. Generally used when the onu is not present in the OLT.
-	// Returns success if the call towards the device is success, error otherwise.
-	DisableOnuSerialNumber(ctx context.Context, in *InterfaceOnuSerialNumber, opts ...grpc.CallOption) (*Empty, error)
-	//
-	// Enables ONU serailnumber, enable device at PLOAM
-	// Takes input as intfid and sn of the ONU. Generally used when the onu is not present in the OLT.
-	// Returns success if the call towards the device is success, error otherwise.
-	EnableOnuSerialNumber(ctx context.Context, in *InterfaceOnuSerialNumber, opts ...grpc.CallOption) (*Empty, error)
-}
-
-type openoltClient struct {
-	cc *grpc.ClientConn
-}
-
-func NewOpenoltClient(cc *grpc.ClientConn) OpenoltClient {
-	return &openoltClient{cc}
-}
-
-func (c *openoltClient) DisableOlt(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Empty, error) {
-	out := new(Empty)
-	err := c.cc.Invoke(ctx, "/openolt.Openolt/DisableOlt", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *openoltClient) ReenableOlt(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Empty, error) {
-	out := new(Empty)
-	err := c.cc.Invoke(ctx, "/openolt.Openolt/ReenableOlt", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *openoltClient) ActivateOnu(ctx context.Context, in *Onu, opts ...grpc.CallOption) (*Empty, error) {
-	out := new(Empty)
-	err := c.cc.Invoke(ctx, "/openolt.Openolt/ActivateOnu", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *openoltClient) DeactivateOnu(ctx context.Context, in *Onu, opts ...grpc.CallOption) (*Empty, error) {
-	out := new(Empty)
-	err := c.cc.Invoke(ctx, "/openolt.Openolt/DeactivateOnu", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *openoltClient) DeleteOnu(ctx context.Context, in *Onu, opts ...grpc.CallOption) (*Empty, error) {
-	out := new(Empty)
-	err := c.cc.Invoke(ctx, "/openolt.Openolt/DeleteOnu", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *openoltClient) OmciMsgOut(ctx context.Context, in *OmciMsg, opts ...grpc.CallOption) (*Empty, error) {
-	out := new(Empty)
-	err := c.cc.Invoke(ctx, "/openolt.Openolt/OmciMsgOut", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *openoltClient) OnuPacketOut(ctx context.Context, in *OnuPacket, opts ...grpc.CallOption) (*Empty, error) {
-	out := new(Empty)
-	err := c.cc.Invoke(ctx, "/openolt.Openolt/OnuPacketOut", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *openoltClient) UplinkPacketOut(ctx context.Context, in *UplinkPacket, opts ...grpc.CallOption) (*Empty, error) {
-	out := new(Empty)
-	err := c.cc.Invoke(ctx, "/openolt.Openolt/UplinkPacketOut", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *openoltClient) FlowAdd(ctx context.Context, in *Flow, opts ...grpc.CallOption) (*Empty, error) {
-	out := new(Empty)
-	err := c.cc.Invoke(ctx, "/openolt.Openolt/FlowAdd", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *openoltClient) FlowRemove(ctx context.Context, in *Flow, opts ...grpc.CallOption) (*Empty, error) {
-	out := new(Empty)
-	err := c.cc.Invoke(ctx, "/openolt.Openolt/FlowRemove", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *openoltClient) HeartbeatCheck(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Heartbeat, error) {
-	out := new(Heartbeat)
-	err := c.cc.Invoke(ctx, "/openolt.Openolt/HeartbeatCheck", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *openoltClient) EnablePonIf(ctx context.Context, in *Interface, opts ...grpc.CallOption) (*Empty, error) {
-	out := new(Empty)
-	err := c.cc.Invoke(ctx, "/openolt.Openolt/EnablePonIf", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *openoltClient) DisablePonIf(ctx context.Context, in *Interface, opts ...grpc.CallOption) (*Empty, error) {
-	out := new(Empty)
-	err := c.cc.Invoke(ctx, "/openolt.Openolt/DisablePonIf", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *openoltClient) GetDeviceInfo(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*DeviceInfo, error) {
-	out := new(DeviceInfo)
-	err := c.cc.Invoke(ctx, "/openolt.Openolt/GetDeviceInfo", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *openoltClient) Reboot(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Empty, error) {
-	out := new(Empty)
-	err := c.cc.Invoke(ctx, "/openolt.Openolt/Reboot", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *openoltClient) CollectStatistics(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Empty, error) {
-	out := new(Empty)
-	err := c.cc.Invoke(ctx, "/openolt.Openolt/CollectStatistics", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *openoltClient) GetOnuStatistics(ctx context.Context, in *Onu, opts ...grpc.CallOption) (*OnuStatistics, error) {
-	out := new(OnuStatistics)
-	err := c.cc.Invoke(ctx, "/openolt.Openolt/GetOnuStatistics", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *openoltClient) GetGemPortStatistics(ctx context.Context, in *OnuPacket, opts ...grpc.CallOption) (*GemPortStatistics, error) {
-	out := new(GemPortStatistics)
-	err := c.cc.Invoke(ctx, "/openolt.Openolt/GetGemPortStatistics", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *openoltClient) CreateTrafficSchedulers(ctx context.Context, in *tech_profile.TrafficSchedulers, opts ...grpc.CallOption) (*Empty, error) {
-	out := new(Empty)
-	err := c.cc.Invoke(ctx, "/openolt.Openolt/CreateTrafficSchedulers", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *openoltClient) RemoveTrafficSchedulers(ctx context.Context, in *tech_profile.TrafficSchedulers, opts ...grpc.CallOption) (*Empty, error) {
-	out := new(Empty)
-	err := c.cc.Invoke(ctx, "/openolt.Openolt/RemoveTrafficSchedulers", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *openoltClient) CreateTrafficQueues(ctx context.Context, in *tech_profile.TrafficQueues, opts ...grpc.CallOption) (*Empty, error) {
-	out := new(Empty)
-	err := c.cc.Invoke(ctx, "/openolt.Openolt/CreateTrafficQueues", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *openoltClient) RemoveTrafficQueues(ctx context.Context, in *tech_profile.TrafficQueues, opts ...grpc.CallOption) (*Empty, error) {
-	out := new(Empty)
-	err := c.cc.Invoke(ctx, "/openolt.Openolt/RemoveTrafficQueues", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *openoltClient) EnableIndication(ctx context.Context, in *Empty, opts ...grpc.CallOption) (Openolt_EnableIndicationClient, error) {
-	stream, err := c.cc.NewStream(ctx, &_Openolt_serviceDesc.Streams[0], "/openolt.Openolt/EnableIndication", opts...)
-	if err != nil {
-		return nil, err
-	}
-	x := &openoltEnableIndicationClient{stream}
-	if err := x.ClientStream.SendMsg(in); err != nil {
-		return nil, err
-	}
-	if err := x.ClientStream.CloseSend(); err != nil {
-		return nil, err
-	}
-	return x, nil
-}
-
-type Openolt_EnableIndicationClient interface {
-	Recv() (*Indication, error)
-	grpc.ClientStream
-}
-
-type openoltEnableIndicationClient struct {
-	grpc.ClientStream
-}
-
-func (x *openoltEnableIndicationClient) Recv() (*Indication, error) {
-	m := new(Indication)
-	if err := x.ClientStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
-
-func (c *openoltClient) PerformGroupOperation(ctx context.Context, in *Group, opts ...grpc.CallOption) (*Empty, error) {
-	out := new(Empty)
-	err := c.cc.Invoke(ctx, "/openolt.Openolt/PerformGroupOperation", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *openoltClient) DeleteGroup(ctx context.Context, in *Group, opts ...grpc.CallOption) (*Empty, error) {
-	out := new(Empty)
-	err := c.cc.Invoke(ctx, "/openolt.Openolt/DeleteGroup", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *openoltClient) GetExtValue(ctx context.Context, in *ValueParam, opts ...grpc.CallOption) (*extension.ReturnValues, error) {
-	out := new(extension.ReturnValues)
-	err := c.cc.Invoke(ctx, "/openolt.Openolt/GetExtValue", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *openoltClient) OnuItuPonAlarmSet(ctx context.Context, in *config.OnuItuPonAlarm, opts ...grpc.CallOption) (*Empty, error) {
-	out := new(Empty)
-	err := c.cc.Invoke(ctx, "/openolt.Openolt/OnuItuPonAlarmSet", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *openoltClient) GetLogicalOnuDistanceZero(ctx context.Context, in *Onu, opts ...grpc.CallOption) (*OnuLogicalDistance, error) {
-	out := new(OnuLogicalDistance)
-	err := c.cc.Invoke(ctx, "/openolt.Openolt/GetLogicalOnuDistanceZero", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *openoltClient) GetLogicalOnuDistance(ctx context.Context, in *Onu, opts ...grpc.CallOption) (*OnuLogicalDistance, error) {
-	out := new(OnuLogicalDistance)
-	err := c.cc.Invoke(ctx, "/openolt.Openolt/GetLogicalOnuDistance", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *openoltClient) GetPonRxPower(ctx context.Context, in *Onu, opts ...grpc.CallOption) (*PonRxPowerData, error) {
-	out := new(PonRxPowerData)
-	err := c.cc.Invoke(ctx, "/openolt.Openolt/GetPonRxPower", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *openoltClient) GetOnuInfo(ctx context.Context, in *Onu, opts ...grpc.CallOption) (*OnuInfo, error) {
-	out := new(OnuInfo)
-	err := c.cc.Invoke(ctx, "/openolt.Openolt/GetOnuInfo", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *openoltClient) GetPonInterfaceInfo(ctx context.Context, in *Interface, opts ...grpc.CallOption) (*PonIntfInfo, error) {
-	out := new(PonIntfInfo)
-	err := c.cc.Invoke(ctx, "/openolt.Openolt/GetPonInterfaceInfo", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *openoltClient) GetAllocIdStatistics(ctx context.Context, in *OnuPacket, opts ...grpc.CallOption) (*OnuAllocIdStatistics, error) {
-	out := new(OnuAllocIdStatistics)
-	err := c.cc.Invoke(ctx, "/openolt.Openolt/GetAllocIdStatistics", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *openoltClient) GetPonPortStatistics(ctx context.Context, in *Interface, opts ...grpc.CallOption) (*common.PortStatistics, error) {
-	out := new(common.PortStatistics)
-	err := c.cc.Invoke(ctx, "/openolt.Openolt/GetPonPortStatistics", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *openoltClient) GetNniPortStatistics(ctx context.Context, in *Interface, opts ...grpc.CallOption) (*common.PortStatistics, error) {
-	out := new(common.PortStatistics)
-	err := c.cc.Invoke(ctx, "/openolt.Openolt/GetNniPortStatistics", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *openoltClient) DisableOnu(ctx context.Context, in *InterfaceOnuSerialNumberOnuId, opts ...grpc.CallOption) (*Empty, error) {
-	out := new(Empty)
-	err := c.cc.Invoke(ctx, "/openolt.Openolt/DisableOnu", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *openoltClient) EnableOnu(ctx context.Context, in *InterfaceOnuSerialNumberOnuId, opts ...grpc.CallOption) (*Empty, error) {
-	out := new(Empty)
-	err := c.cc.Invoke(ctx, "/openolt.Openolt/EnableOnu", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *openoltClient) DisableOnuSerialNumber(ctx context.Context, in *InterfaceOnuSerialNumber, opts ...grpc.CallOption) (*Empty, error) {
-	out := new(Empty)
-	err := c.cc.Invoke(ctx, "/openolt.Openolt/DisableOnuSerialNumber", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *openoltClient) EnableOnuSerialNumber(ctx context.Context, in *InterfaceOnuSerialNumber, opts ...grpc.CallOption) (*Empty, error) {
-	out := new(Empty)
-	err := c.cc.Invoke(ctx, "/openolt.Openolt/EnableOnuSerialNumber", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-// OpenoltServer is the server API for Openolt service.
-type OpenoltServer interface {
-	DisableOlt(context.Context, *Empty) (*Empty, error)
-	ReenableOlt(context.Context, *Empty) (*Empty, error)
-	ActivateOnu(context.Context, *Onu) (*Empty, error)
-	DeactivateOnu(context.Context, *Onu) (*Empty, error)
-	DeleteOnu(context.Context, *Onu) (*Empty, error)
-	OmciMsgOut(context.Context, *OmciMsg) (*Empty, error)
-	OnuPacketOut(context.Context, *OnuPacket) (*Empty, error)
-	UplinkPacketOut(context.Context, *UplinkPacket) (*Empty, error)
-	FlowAdd(context.Context, *Flow) (*Empty, error)
-	FlowRemove(context.Context, *Flow) (*Empty, error)
-	HeartbeatCheck(context.Context, *Empty) (*Heartbeat, error)
-	EnablePonIf(context.Context, *Interface) (*Empty, error)
-	DisablePonIf(context.Context, *Interface) (*Empty, error)
-	GetDeviceInfo(context.Context, *Empty) (*DeviceInfo, error)
-	Reboot(context.Context, *Empty) (*Empty, error)
-	CollectStatistics(context.Context, *Empty) (*Empty, error)
-	GetOnuStatistics(context.Context, *Onu) (*OnuStatistics, error)
-	GetGemPortStatistics(context.Context, *OnuPacket) (*GemPortStatistics, error)
-	CreateTrafficSchedulers(context.Context, *tech_profile.TrafficSchedulers) (*Empty, error)
-	RemoveTrafficSchedulers(context.Context, *tech_profile.TrafficSchedulers) (*Empty, error)
-	CreateTrafficQueues(context.Context, *tech_profile.TrafficQueues) (*Empty, error)
-	RemoveTrafficQueues(context.Context, *tech_profile.TrafficQueues) (*Empty, error)
-	EnableIndication(*Empty, Openolt_EnableIndicationServer) error
-	PerformGroupOperation(context.Context, *Group) (*Empty, error)
-	DeleteGroup(context.Context, *Group) (*Empty, error)
-	GetExtValue(context.Context, *ValueParam) (*extension.ReturnValues, error)
-	OnuItuPonAlarmSet(context.Context, *config.OnuItuPonAlarm) (*Empty, error)
-	GetLogicalOnuDistanceZero(context.Context, *Onu) (*OnuLogicalDistance, error)
-	GetLogicalOnuDistance(context.Context, *Onu) (*OnuLogicalDistance, error)
-	GetPonRxPower(context.Context, *Onu) (*PonRxPowerData, error)
-	//
-	// GetOnuInfo takes Onu id, serialnumber, and pon interface as argument from the onu structure.
-	// Returns the Onu info from the device.
-	GetOnuInfo(context.Context, *Onu) (*OnuInfo, error)
-	//
-	// GetPonInterfaceInfo takes the pon intf id as argument.
-	// Returns the pon interface information from the device.
-	GetPonInterfaceInfo(context.Context, *Interface) (*PonIntfInfo, error)
-	//
-	// GetAllocIdStatistics takes onuId and allocId as argument.
-	// This method includes a default wait period of 10 secs before collecting the stats.
-	// The caller has to be aware of this wait and handle it accordingly.
-	// Returns AllocId statistics in the form of OnuAllocStatistics structure
-	GetAllocIdStatistics(context.Context, *OnuPacket) (*OnuAllocIdStatistics, error)
-	//
-	// GetPonPortStatistics takes interface id and type as argument from Interface structure.
-	// Returns Pon port statistics in the form of PonStatsData structure.
-	GetPonPortStatistics(context.Context, *Interface) (*common.PortStatistics, error)
-	//
-	// GetNniPortStatistics takes takes interface id and type as argument from Interface structure.
-	// Returns Nni port statistics in the form of NniStatsData structure
-	GetNniPortStatistics(context.Context, *Interface) (*common.PortStatistics, error)
-	//
-	// Disable ONU serailnumber, disable device at PLOAM.
-	// Takes input as intfid, onuid, sn of the ONU.
-	// Returns success if the call towards the device is success, error otherwise.
-	DisableOnu(context.Context, *InterfaceOnuSerialNumberOnuId) (*Empty, error)
-	//
-	// Enables ONU serailnumber, enable device at PLOAM.
-	// Takes input as intfid, onuid, sn of the ONU.
-	// Returns success if the call towards the device is success, error otherwise.
-	EnableOnu(context.Context, *InterfaceOnuSerialNumberOnuId) (*Empty, error)
-	//
-	// Disable ONU serailnumber, disable device at PLOAM
-	// Takes input as intfid and sn of the ONU. Generally used when the onu is not present in the OLT.
-	// Returns success if the call towards the device is success, error otherwise.
-	DisableOnuSerialNumber(context.Context, *InterfaceOnuSerialNumber) (*Empty, error)
-	//
-	// Enables ONU serailnumber, enable device at PLOAM
-	// Takes input as intfid and sn of the ONU. Generally used when the onu is not present in the OLT.
-	// Returns success if the call towards the device is success, error otherwise.
-	EnableOnuSerialNumber(context.Context, *InterfaceOnuSerialNumber) (*Empty, error)
-}
-
-// UnimplementedOpenoltServer can be embedded to have forward compatible implementations.
-type UnimplementedOpenoltServer struct {
-}
-
-func (*UnimplementedOpenoltServer) DisableOlt(ctx context.Context, req *Empty) (*Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method DisableOlt not implemented")
-}
-func (*UnimplementedOpenoltServer) ReenableOlt(ctx context.Context, req *Empty) (*Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method ReenableOlt not implemented")
-}
-func (*UnimplementedOpenoltServer) ActivateOnu(ctx context.Context, req *Onu) (*Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method ActivateOnu not implemented")
-}
-func (*UnimplementedOpenoltServer) DeactivateOnu(ctx context.Context, req *Onu) (*Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method DeactivateOnu not implemented")
-}
-func (*UnimplementedOpenoltServer) DeleteOnu(ctx context.Context, req *Onu) (*Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method DeleteOnu not implemented")
-}
-func (*UnimplementedOpenoltServer) OmciMsgOut(ctx context.Context, req *OmciMsg) (*Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method OmciMsgOut not implemented")
-}
-func (*UnimplementedOpenoltServer) OnuPacketOut(ctx context.Context, req *OnuPacket) (*Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method OnuPacketOut not implemented")
-}
-func (*UnimplementedOpenoltServer) UplinkPacketOut(ctx context.Context, req *UplinkPacket) (*Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method UplinkPacketOut not implemented")
-}
-func (*UnimplementedOpenoltServer) FlowAdd(ctx context.Context, req *Flow) (*Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method FlowAdd not implemented")
-}
-func (*UnimplementedOpenoltServer) FlowRemove(ctx context.Context, req *Flow) (*Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method FlowRemove not implemented")
-}
-func (*UnimplementedOpenoltServer) HeartbeatCheck(ctx context.Context, req *Empty) (*Heartbeat, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method HeartbeatCheck not implemented")
-}
-func (*UnimplementedOpenoltServer) EnablePonIf(ctx context.Context, req *Interface) (*Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method EnablePonIf not implemented")
-}
-func (*UnimplementedOpenoltServer) DisablePonIf(ctx context.Context, req *Interface) (*Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method DisablePonIf not implemented")
-}
-func (*UnimplementedOpenoltServer) GetDeviceInfo(ctx context.Context, req *Empty) (*DeviceInfo, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetDeviceInfo not implemented")
-}
-func (*UnimplementedOpenoltServer) Reboot(ctx context.Context, req *Empty) (*Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method Reboot not implemented")
-}
-func (*UnimplementedOpenoltServer) CollectStatistics(ctx context.Context, req *Empty) (*Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method CollectStatistics not implemented")
-}
-func (*UnimplementedOpenoltServer) GetOnuStatistics(ctx context.Context, req *Onu) (*OnuStatistics, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetOnuStatistics not implemented")
-}
-func (*UnimplementedOpenoltServer) GetGemPortStatistics(ctx context.Context, req *OnuPacket) (*GemPortStatistics, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetGemPortStatistics not implemented")
-}
-func (*UnimplementedOpenoltServer) CreateTrafficSchedulers(ctx context.Context, req *tech_profile.TrafficSchedulers) (*Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method CreateTrafficSchedulers not implemented")
-}
-func (*UnimplementedOpenoltServer) RemoveTrafficSchedulers(ctx context.Context, req *tech_profile.TrafficSchedulers) (*Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method RemoveTrafficSchedulers not implemented")
-}
-func (*UnimplementedOpenoltServer) CreateTrafficQueues(ctx context.Context, req *tech_profile.TrafficQueues) (*Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method CreateTrafficQueues not implemented")
-}
-func (*UnimplementedOpenoltServer) RemoveTrafficQueues(ctx context.Context, req *tech_profile.TrafficQueues) (*Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method RemoveTrafficQueues not implemented")
-}
-func (*UnimplementedOpenoltServer) EnableIndication(req *Empty, srv Openolt_EnableIndicationServer) error {
-	return status.Errorf(codes.Unimplemented, "method EnableIndication not implemented")
-}
-func (*UnimplementedOpenoltServer) PerformGroupOperation(ctx context.Context, req *Group) (*Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method PerformGroupOperation not implemented")
-}
-func (*UnimplementedOpenoltServer) DeleteGroup(ctx context.Context, req *Group) (*Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method DeleteGroup not implemented")
-}
-func (*UnimplementedOpenoltServer) GetExtValue(ctx context.Context, req *ValueParam) (*extension.ReturnValues, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetExtValue not implemented")
-}
-func (*UnimplementedOpenoltServer) OnuItuPonAlarmSet(ctx context.Context, req *config.OnuItuPonAlarm) (*Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method OnuItuPonAlarmSet not implemented")
-}
-func (*UnimplementedOpenoltServer) GetLogicalOnuDistanceZero(ctx context.Context, req *Onu) (*OnuLogicalDistance, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetLogicalOnuDistanceZero not implemented")
-}
-func (*UnimplementedOpenoltServer) GetLogicalOnuDistance(ctx context.Context, req *Onu) (*OnuLogicalDistance, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetLogicalOnuDistance not implemented")
-}
-func (*UnimplementedOpenoltServer) GetPonRxPower(ctx context.Context, req *Onu) (*PonRxPowerData, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetPonRxPower not implemented")
-}
-func (*UnimplementedOpenoltServer) GetOnuInfo(ctx context.Context, req *Onu) (*OnuInfo, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetOnuInfo not implemented")
-}
-func (*UnimplementedOpenoltServer) GetPonInterfaceInfo(ctx context.Context, req *Interface) (*PonIntfInfo, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetPonInterfaceInfo not implemented")
-}
-func (*UnimplementedOpenoltServer) GetAllocIdStatistics(ctx context.Context, req *OnuPacket) (*OnuAllocIdStatistics, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetAllocIdStatistics not implemented")
-}
-func (*UnimplementedOpenoltServer) GetPonPortStatistics(ctx context.Context, req *Interface) (*common.PortStatistics, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetPonPortStatistics not implemented")
-}
-func (*UnimplementedOpenoltServer) GetNniPortStatistics(ctx context.Context, req *Interface) (*common.PortStatistics, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetNniPortStatistics not implemented")
-}
-func (*UnimplementedOpenoltServer) DisableOnu(ctx context.Context, req *InterfaceOnuSerialNumberOnuId) (*Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method DisableOnu not implemented")
-}
-func (*UnimplementedOpenoltServer) EnableOnu(ctx context.Context, req *InterfaceOnuSerialNumberOnuId) (*Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method EnableOnu not implemented")
-}
-func (*UnimplementedOpenoltServer) DisableOnuSerialNumber(ctx context.Context, req *InterfaceOnuSerialNumber) (*Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method DisableOnuSerialNumber not implemented")
-}
-func (*UnimplementedOpenoltServer) EnableOnuSerialNumber(ctx context.Context, req *InterfaceOnuSerialNumber) (*Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method EnableOnuSerialNumber not implemented")
-}
-
-func RegisterOpenoltServer(s *grpc.Server, srv OpenoltServer) {
-	s.RegisterService(&_Openolt_serviceDesc, srv)
-}
-
-func _Openolt_DisableOlt_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(Empty)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(OpenoltServer).DisableOlt(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/openolt.Openolt/DisableOlt",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(OpenoltServer).DisableOlt(ctx, req.(*Empty))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _Openolt_ReenableOlt_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(Empty)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(OpenoltServer).ReenableOlt(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/openolt.Openolt/ReenableOlt",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(OpenoltServer).ReenableOlt(ctx, req.(*Empty))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _Openolt_ActivateOnu_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(Onu)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(OpenoltServer).ActivateOnu(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/openolt.Openolt/ActivateOnu",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(OpenoltServer).ActivateOnu(ctx, req.(*Onu))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _Openolt_DeactivateOnu_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(Onu)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(OpenoltServer).DeactivateOnu(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/openolt.Openolt/DeactivateOnu",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(OpenoltServer).DeactivateOnu(ctx, req.(*Onu))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _Openolt_DeleteOnu_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(Onu)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(OpenoltServer).DeleteOnu(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/openolt.Openolt/DeleteOnu",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(OpenoltServer).DeleteOnu(ctx, req.(*Onu))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _Openolt_OmciMsgOut_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(OmciMsg)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(OpenoltServer).OmciMsgOut(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/openolt.Openolt/OmciMsgOut",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(OpenoltServer).OmciMsgOut(ctx, req.(*OmciMsg))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _Openolt_OnuPacketOut_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(OnuPacket)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(OpenoltServer).OnuPacketOut(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/openolt.Openolt/OnuPacketOut",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(OpenoltServer).OnuPacketOut(ctx, req.(*OnuPacket))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _Openolt_UplinkPacketOut_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(UplinkPacket)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(OpenoltServer).UplinkPacketOut(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/openolt.Openolt/UplinkPacketOut",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(OpenoltServer).UplinkPacketOut(ctx, req.(*UplinkPacket))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _Openolt_FlowAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(Flow)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(OpenoltServer).FlowAdd(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/openolt.Openolt/FlowAdd",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(OpenoltServer).FlowAdd(ctx, req.(*Flow))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _Openolt_FlowRemove_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(Flow)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(OpenoltServer).FlowRemove(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/openolt.Openolt/FlowRemove",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(OpenoltServer).FlowRemove(ctx, req.(*Flow))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _Openolt_HeartbeatCheck_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(Empty)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(OpenoltServer).HeartbeatCheck(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/openolt.Openolt/HeartbeatCheck",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(OpenoltServer).HeartbeatCheck(ctx, req.(*Empty))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _Openolt_EnablePonIf_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(Interface)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(OpenoltServer).EnablePonIf(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/openolt.Openolt/EnablePonIf",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(OpenoltServer).EnablePonIf(ctx, req.(*Interface))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _Openolt_DisablePonIf_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(Interface)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(OpenoltServer).DisablePonIf(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/openolt.Openolt/DisablePonIf",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(OpenoltServer).DisablePonIf(ctx, req.(*Interface))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _Openolt_GetDeviceInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(Empty)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(OpenoltServer).GetDeviceInfo(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/openolt.Openolt/GetDeviceInfo",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(OpenoltServer).GetDeviceInfo(ctx, req.(*Empty))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _Openolt_Reboot_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(Empty)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(OpenoltServer).Reboot(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/openolt.Openolt/Reboot",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(OpenoltServer).Reboot(ctx, req.(*Empty))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _Openolt_CollectStatistics_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(Empty)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(OpenoltServer).CollectStatistics(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/openolt.Openolt/CollectStatistics",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(OpenoltServer).CollectStatistics(ctx, req.(*Empty))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _Openolt_GetOnuStatistics_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(Onu)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(OpenoltServer).GetOnuStatistics(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/openolt.Openolt/GetOnuStatistics",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(OpenoltServer).GetOnuStatistics(ctx, req.(*Onu))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _Openolt_GetGemPortStatistics_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(OnuPacket)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(OpenoltServer).GetGemPortStatistics(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/openolt.Openolt/GetGemPortStatistics",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(OpenoltServer).GetGemPortStatistics(ctx, req.(*OnuPacket))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _Openolt_CreateTrafficSchedulers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(tech_profile.TrafficSchedulers)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(OpenoltServer).CreateTrafficSchedulers(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/openolt.Openolt/CreateTrafficSchedulers",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(OpenoltServer).CreateTrafficSchedulers(ctx, req.(*tech_profile.TrafficSchedulers))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _Openolt_RemoveTrafficSchedulers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(tech_profile.TrafficSchedulers)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(OpenoltServer).RemoveTrafficSchedulers(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/openolt.Openolt/RemoveTrafficSchedulers",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(OpenoltServer).RemoveTrafficSchedulers(ctx, req.(*tech_profile.TrafficSchedulers))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _Openolt_CreateTrafficQueues_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(tech_profile.TrafficQueues)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(OpenoltServer).CreateTrafficQueues(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/openolt.Openolt/CreateTrafficQueues",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(OpenoltServer).CreateTrafficQueues(ctx, req.(*tech_profile.TrafficQueues))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _Openolt_RemoveTrafficQueues_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(tech_profile.TrafficQueues)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(OpenoltServer).RemoveTrafficQueues(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/openolt.Openolt/RemoveTrafficQueues",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(OpenoltServer).RemoveTrafficQueues(ctx, req.(*tech_profile.TrafficQueues))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _Openolt_EnableIndication_Handler(srv interface{}, stream grpc.ServerStream) error {
-	m := new(Empty)
-	if err := stream.RecvMsg(m); err != nil {
-		return err
-	}
-	return srv.(OpenoltServer).EnableIndication(m, &openoltEnableIndicationServer{stream})
-}
-
-type Openolt_EnableIndicationServer interface {
-	Send(*Indication) error
-	grpc.ServerStream
-}
-
-type openoltEnableIndicationServer struct {
-	grpc.ServerStream
-}
-
-func (x *openoltEnableIndicationServer) Send(m *Indication) error {
-	return x.ServerStream.SendMsg(m)
-}
-
-func _Openolt_PerformGroupOperation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(Group)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(OpenoltServer).PerformGroupOperation(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/openolt.Openolt/PerformGroupOperation",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(OpenoltServer).PerformGroupOperation(ctx, req.(*Group))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _Openolt_DeleteGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(Group)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(OpenoltServer).DeleteGroup(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/openolt.Openolt/DeleteGroup",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(OpenoltServer).DeleteGroup(ctx, req.(*Group))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _Openolt_GetExtValue_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(ValueParam)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(OpenoltServer).GetExtValue(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/openolt.Openolt/GetExtValue",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(OpenoltServer).GetExtValue(ctx, req.(*ValueParam))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _Openolt_OnuItuPonAlarmSet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(config.OnuItuPonAlarm)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(OpenoltServer).OnuItuPonAlarmSet(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/openolt.Openolt/OnuItuPonAlarmSet",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(OpenoltServer).OnuItuPonAlarmSet(ctx, req.(*config.OnuItuPonAlarm))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _Openolt_GetLogicalOnuDistanceZero_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(Onu)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(OpenoltServer).GetLogicalOnuDistanceZero(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/openolt.Openolt/GetLogicalOnuDistanceZero",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(OpenoltServer).GetLogicalOnuDistanceZero(ctx, req.(*Onu))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _Openolt_GetLogicalOnuDistance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(Onu)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(OpenoltServer).GetLogicalOnuDistance(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/openolt.Openolt/GetLogicalOnuDistance",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(OpenoltServer).GetLogicalOnuDistance(ctx, req.(*Onu))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _Openolt_GetPonRxPower_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(Onu)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(OpenoltServer).GetPonRxPower(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/openolt.Openolt/GetPonRxPower",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(OpenoltServer).GetPonRxPower(ctx, req.(*Onu))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _Openolt_GetOnuInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(Onu)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(OpenoltServer).GetOnuInfo(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/openolt.Openolt/GetOnuInfo",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(OpenoltServer).GetOnuInfo(ctx, req.(*Onu))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _Openolt_GetPonInterfaceInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(Interface)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(OpenoltServer).GetPonInterfaceInfo(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/openolt.Openolt/GetPonInterfaceInfo",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(OpenoltServer).GetPonInterfaceInfo(ctx, req.(*Interface))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _Openolt_GetAllocIdStatistics_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(OnuPacket)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(OpenoltServer).GetAllocIdStatistics(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/openolt.Openolt/GetAllocIdStatistics",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(OpenoltServer).GetAllocIdStatistics(ctx, req.(*OnuPacket))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _Openolt_GetPonPortStatistics_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(Interface)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(OpenoltServer).GetPonPortStatistics(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/openolt.Openolt/GetPonPortStatistics",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(OpenoltServer).GetPonPortStatistics(ctx, req.(*Interface))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _Openolt_GetNniPortStatistics_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(Interface)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(OpenoltServer).GetNniPortStatistics(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/openolt.Openolt/GetNniPortStatistics",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(OpenoltServer).GetNniPortStatistics(ctx, req.(*Interface))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _Openolt_DisableOnu_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(InterfaceOnuSerialNumberOnuId)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(OpenoltServer).DisableOnu(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/openolt.Openolt/DisableOnu",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(OpenoltServer).DisableOnu(ctx, req.(*InterfaceOnuSerialNumberOnuId))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _Openolt_EnableOnu_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(InterfaceOnuSerialNumberOnuId)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(OpenoltServer).EnableOnu(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/openolt.Openolt/EnableOnu",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(OpenoltServer).EnableOnu(ctx, req.(*InterfaceOnuSerialNumberOnuId))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _Openolt_DisableOnuSerialNumber_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(InterfaceOnuSerialNumber)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(OpenoltServer).DisableOnuSerialNumber(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/openolt.Openolt/DisableOnuSerialNumber",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(OpenoltServer).DisableOnuSerialNumber(ctx, req.(*InterfaceOnuSerialNumber))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _Openolt_EnableOnuSerialNumber_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(InterfaceOnuSerialNumber)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(OpenoltServer).EnableOnuSerialNumber(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/openolt.Openolt/EnableOnuSerialNumber",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(OpenoltServer).EnableOnuSerialNumber(ctx, req.(*InterfaceOnuSerialNumber))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-var _Openolt_serviceDesc = grpc.ServiceDesc{
-	ServiceName: "openolt.Openolt",
-	HandlerType: (*OpenoltServer)(nil),
-	Methods: []grpc.MethodDesc{
-		{
-			MethodName: "DisableOlt",
-			Handler:    _Openolt_DisableOlt_Handler,
+	type x struct{}
+	out := protoimpl.TypeBuilder{
+		File: protoimpl.DescBuilder{
+			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+			RawDescriptor: unsafe.Slice(unsafe.StringData(file_voltha_protos_openolt_proto_rawDesc), len(file_voltha_protos_openolt_proto_rawDesc)),
+			NumEnums:      10,
+			NumMessages:   63,
+			NumExtensions: 0,
+			NumServices:   1,
 		},
-		{
-			MethodName: "ReenableOlt",
-			Handler:    _Openolt_ReenableOlt_Handler,
-		},
-		{
-			MethodName: "ActivateOnu",
-			Handler:    _Openolt_ActivateOnu_Handler,
-		},
-		{
-			MethodName: "DeactivateOnu",
-			Handler:    _Openolt_DeactivateOnu_Handler,
-		},
-		{
-			MethodName: "DeleteOnu",
-			Handler:    _Openolt_DeleteOnu_Handler,
-		},
-		{
-			MethodName: "OmciMsgOut",
-			Handler:    _Openolt_OmciMsgOut_Handler,
-		},
-		{
-			MethodName: "OnuPacketOut",
-			Handler:    _Openolt_OnuPacketOut_Handler,
-		},
-		{
-			MethodName: "UplinkPacketOut",
-			Handler:    _Openolt_UplinkPacketOut_Handler,
-		},
-		{
-			MethodName: "FlowAdd",
-			Handler:    _Openolt_FlowAdd_Handler,
-		},
-		{
-			MethodName: "FlowRemove",
-			Handler:    _Openolt_FlowRemove_Handler,
-		},
-		{
-			MethodName: "HeartbeatCheck",
-			Handler:    _Openolt_HeartbeatCheck_Handler,
-		},
-		{
-			MethodName: "EnablePonIf",
-			Handler:    _Openolt_EnablePonIf_Handler,
-		},
-		{
-			MethodName: "DisablePonIf",
-			Handler:    _Openolt_DisablePonIf_Handler,
-		},
-		{
-			MethodName: "GetDeviceInfo",
-			Handler:    _Openolt_GetDeviceInfo_Handler,
-		},
-		{
-			MethodName: "Reboot",
-			Handler:    _Openolt_Reboot_Handler,
-		},
-		{
-			MethodName: "CollectStatistics",
-			Handler:    _Openolt_CollectStatistics_Handler,
-		},
-		{
-			MethodName: "GetOnuStatistics",
-			Handler:    _Openolt_GetOnuStatistics_Handler,
-		},
-		{
-			MethodName: "GetGemPortStatistics",
-			Handler:    _Openolt_GetGemPortStatistics_Handler,
-		},
-		{
-			MethodName: "CreateTrafficSchedulers",
-			Handler:    _Openolt_CreateTrafficSchedulers_Handler,
-		},
-		{
-			MethodName: "RemoveTrafficSchedulers",
-			Handler:    _Openolt_RemoveTrafficSchedulers_Handler,
-		},
-		{
-			MethodName: "CreateTrafficQueues",
-			Handler:    _Openolt_CreateTrafficQueues_Handler,
-		},
-		{
-			MethodName: "RemoveTrafficQueues",
-			Handler:    _Openolt_RemoveTrafficQueues_Handler,
-		},
-		{
-			MethodName: "PerformGroupOperation",
-			Handler:    _Openolt_PerformGroupOperation_Handler,
-		},
-		{
-			MethodName: "DeleteGroup",
-			Handler:    _Openolt_DeleteGroup_Handler,
-		},
-		{
-			MethodName: "GetExtValue",
-			Handler:    _Openolt_GetExtValue_Handler,
-		},
-		{
-			MethodName: "OnuItuPonAlarmSet",
-			Handler:    _Openolt_OnuItuPonAlarmSet_Handler,
-		},
-		{
-			MethodName: "GetLogicalOnuDistanceZero",
-			Handler:    _Openolt_GetLogicalOnuDistanceZero_Handler,
-		},
-		{
-			MethodName: "GetLogicalOnuDistance",
-			Handler:    _Openolt_GetLogicalOnuDistance_Handler,
-		},
-		{
-			MethodName: "GetPonRxPower",
-			Handler:    _Openolt_GetPonRxPower_Handler,
-		},
-		{
-			MethodName: "GetOnuInfo",
-			Handler:    _Openolt_GetOnuInfo_Handler,
-		},
-		{
-			MethodName: "GetPonInterfaceInfo",
-			Handler:    _Openolt_GetPonInterfaceInfo_Handler,
-		},
-		{
-			MethodName: "GetAllocIdStatistics",
-			Handler:    _Openolt_GetAllocIdStatistics_Handler,
-		},
-		{
-			MethodName: "GetPonPortStatistics",
-			Handler:    _Openolt_GetPonPortStatistics_Handler,
-		},
-		{
-			MethodName: "GetNniPortStatistics",
-			Handler:    _Openolt_GetNniPortStatistics_Handler,
-		},
-		{
-			MethodName: "DisableOnu",
-			Handler:    _Openolt_DisableOnu_Handler,
-		},
-		{
-			MethodName: "EnableOnu",
-			Handler:    _Openolt_EnableOnu_Handler,
-		},
-		{
-			MethodName: "DisableOnuSerialNumber",
-			Handler:    _Openolt_DisableOnuSerialNumber_Handler,
-		},
-		{
-			MethodName: "EnableOnuSerialNumber",
-			Handler:    _Openolt_EnableOnuSerialNumber_Handler,
-		},
-	},
-	Streams: []grpc.StreamDesc{
-		{
-			StreamName:    "EnableIndication",
-			Handler:       _Openolt_EnableIndication_Handler,
-			ServerStreams: true,
-		},
-	},
-	Metadata: "voltha_protos/openolt.proto",
+		GoTypes:           file_voltha_protos_openolt_proto_goTypes,
+		DependencyIndexes: file_voltha_protos_openolt_proto_depIdxs,
+		EnumInfos:         file_voltha_protos_openolt_proto_enumTypes,
+		MessageInfos:      file_voltha_protos_openolt_proto_msgTypes,
+	}.Build()
+	File_voltha_protos_openolt_proto = out.File
+	file_voltha_protos_openolt_proto_goTypes = nil
+	file_voltha_protos_openolt_proto_depIdxs = nil
 }
diff --git a/go/openolt/openolt_grpc.pb.go b/go/openolt/openolt_grpc.pb.go
new file mode 100644
index 0000000..c19691d
--- /dev/null
+++ b/go/openolt/openolt_grpc.pb.go
@@ -0,0 +1,1635 @@
+// Copyright 2018-2024 Open Networking Foundation (ONF) and the ONF Contributors
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at:
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
+// versions:
+// - protoc-gen-go-grpc v1.6.0
+// - protoc             v4.25.8
+// source: voltha_protos/openolt.proto
+
+package openolt
+
+import (
+	context "context"
+	common "github.com/opencord/voltha-protos/v5/go/common"
+	config "github.com/opencord/voltha-protos/v5/go/ext/config"
+	extension "github.com/opencord/voltha-protos/v5/go/extension"
+	tech_profile "github.com/opencord/voltha-protos/v5/go/tech_profile"
+	grpc "google.golang.org/grpc"
+	codes "google.golang.org/grpc/codes"
+	status "google.golang.org/grpc/status"
+)
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+// Requires gRPC-Go v1.64.0 or later.
+const _ = grpc.SupportPackageIsVersion9
+
+const (
+	Openolt_DisableOlt_FullMethodName                = "/openolt.Openolt/DisableOlt"
+	Openolt_ReenableOlt_FullMethodName               = "/openolt.Openolt/ReenableOlt"
+	Openolt_ActivateOnu_FullMethodName               = "/openolt.Openolt/ActivateOnu"
+	Openolt_DeactivateOnu_FullMethodName             = "/openolt.Openolt/DeactivateOnu"
+	Openolt_DeleteOnu_FullMethodName                 = "/openolt.Openolt/DeleteOnu"
+	Openolt_OmciMsgOut_FullMethodName                = "/openolt.Openolt/OmciMsgOut"
+	Openolt_OnuPacketOut_FullMethodName              = "/openolt.Openolt/OnuPacketOut"
+	Openolt_UplinkPacketOut_FullMethodName           = "/openolt.Openolt/UplinkPacketOut"
+	Openolt_FlowAdd_FullMethodName                   = "/openolt.Openolt/FlowAdd"
+	Openolt_FlowRemove_FullMethodName                = "/openolt.Openolt/FlowRemove"
+	Openolt_HeartbeatCheck_FullMethodName            = "/openolt.Openolt/HeartbeatCheck"
+	Openolt_EnablePonIf_FullMethodName               = "/openolt.Openolt/EnablePonIf"
+	Openolt_DisablePonIf_FullMethodName              = "/openolt.Openolt/DisablePonIf"
+	Openolt_GetDeviceInfo_FullMethodName             = "/openolt.Openolt/GetDeviceInfo"
+	Openolt_Reboot_FullMethodName                    = "/openolt.Openolt/Reboot"
+	Openolt_CollectStatistics_FullMethodName         = "/openolt.Openolt/CollectStatistics"
+	Openolt_GetOnuStatistics_FullMethodName          = "/openolt.Openolt/GetOnuStatistics"
+	Openolt_GetGemPortStatistics_FullMethodName      = "/openolt.Openolt/GetGemPortStatistics"
+	Openolt_CreateTrafficSchedulers_FullMethodName   = "/openolt.Openolt/CreateTrafficSchedulers"
+	Openolt_RemoveTrafficSchedulers_FullMethodName   = "/openolt.Openolt/RemoveTrafficSchedulers"
+	Openolt_CreateTrafficQueues_FullMethodName       = "/openolt.Openolt/CreateTrafficQueues"
+	Openolt_RemoveTrafficQueues_FullMethodName       = "/openolt.Openolt/RemoveTrafficQueues"
+	Openolt_EnableIndication_FullMethodName          = "/openolt.Openolt/EnableIndication"
+	Openolt_PerformGroupOperation_FullMethodName     = "/openolt.Openolt/PerformGroupOperation"
+	Openolt_DeleteGroup_FullMethodName               = "/openolt.Openolt/DeleteGroup"
+	Openolt_GetExtValue_FullMethodName               = "/openolt.Openolt/GetExtValue"
+	Openolt_OnuItuPonAlarmSet_FullMethodName         = "/openolt.Openolt/OnuItuPonAlarmSet"
+	Openolt_GetLogicalOnuDistanceZero_FullMethodName = "/openolt.Openolt/GetLogicalOnuDistanceZero"
+	Openolt_GetLogicalOnuDistance_FullMethodName     = "/openolt.Openolt/GetLogicalOnuDistance"
+	Openolt_GetPonRxPower_FullMethodName             = "/openolt.Openolt/GetPonRxPower"
+	Openolt_GetOnuInfo_FullMethodName                = "/openolt.Openolt/GetOnuInfo"
+	Openolt_GetPonInterfaceInfo_FullMethodName       = "/openolt.Openolt/GetPonInterfaceInfo"
+	Openolt_GetAllocIdStatistics_FullMethodName      = "/openolt.Openolt/GetAllocIdStatistics"
+	Openolt_GetPonPortStatistics_FullMethodName      = "/openolt.Openolt/GetPonPortStatistics"
+	Openolt_GetNniPortStatistics_FullMethodName      = "/openolt.Openolt/GetNniPortStatistics"
+	Openolt_DisableOnu_FullMethodName                = "/openolt.Openolt/DisableOnu"
+	Openolt_EnableOnu_FullMethodName                 = "/openolt.Openolt/EnableOnu"
+	Openolt_DisableOnuSerialNumber_FullMethodName    = "/openolt.Openolt/DisableOnuSerialNumber"
+	Openolt_EnableOnuSerialNumber_FullMethodName     = "/openolt.Openolt/EnableOnuSerialNumber"
+)
+
+// OpenoltClient is the client API for Openolt service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
+type OpenoltClient interface {
+	DisableOlt(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Empty, error)
+	ReenableOlt(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Empty, error)
+	ActivateOnu(ctx context.Context, in *Onu, opts ...grpc.CallOption) (*Empty, error)
+	DeactivateOnu(ctx context.Context, in *Onu, opts ...grpc.CallOption) (*Empty, error)
+	DeleteOnu(ctx context.Context, in *Onu, opts ...grpc.CallOption) (*Empty, error)
+	OmciMsgOut(ctx context.Context, in *OmciMsg, opts ...grpc.CallOption) (*Empty, error)
+	OnuPacketOut(ctx context.Context, in *OnuPacket, opts ...grpc.CallOption) (*Empty, error)
+	UplinkPacketOut(ctx context.Context, in *UplinkPacket, opts ...grpc.CallOption) (*Empty, error)
+	FlowAdd(ctx context.Context, in *Flow, opts ...grpc.CallOption) (*Empty, error)
+	FlowRemove(ctx context.Context, in *Flow, opts ...grpc.CallOption) (*Empty, error)
+	HeartbeatCheck(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Heartbeat, error)
+	EnablePonIf(ctx context.Context, in *Interface, opts ...grpc.CallOption) (*Empty, error)
+	DisablePonIf(ctx context.Context, in *Interface, opts ...grpc.CallOption) (*Empty, error)
+	GetDeviceInfo(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*DeviceInfo, error)
+	Reboot(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Empty, error)
+	CollectStatistics(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Empty, error)
+	GetOnuStatistics(ctx context.Context, in *Onu, opts ...grpc.CallOption) (*OnuStatistics, error)
+	GetGemPortStatistics(ctx context.Context, in *OnuPacket, opts ...grpc.CallOption) (*GemPortStatistics, error)
+	CreateTrafficSchedulers(ctx context.Context, in *tech_profile.TrafficSchedulers, opts ...grpc.CallOption) (*Empty, error)
+	RemoveTrafficSchedulers(ctx context.Context, in *tech_profile.TrafficSchedulers, opts ...grpc.CallOption) (*Empty, error)
+	CreateTrafficQueues(ctx context.Context, in *tech_profile.TrafficQueues, opts ...grpc.CallOption) (*Empty, error)
+	RemoveTrafficQueues(ctx context.Context, in *tech_profile.TrafficQueues, opts ...grpc.CallOption) (*Empty, error)
+	EnableIndication(ctx context.Context, in *Empty, opts ...grpc.CallOption) (grpc.ServerStreamingClient[Indication], error)
+	PerformGroupOperation(ctx context.Context, in *Group, opts ...grpc.CallOption) (*Empty, error)
+	DeleteGroup(ctx context.Context, in *Group, opts ...grpc.CallOption) (*Empty, error)
+	GetExtValue(ctx context.Context, in *ValueParam, opts ...grpc.CallOption) (*extension.ReturnValues, error)
+	OnuItuPonAlarmSet(ctx context.Context, in *config.OnuItuPonAlarm, opts ...grpc.CallOption) (*Empty, error)
+	GetLogicalOnuDistanceZero(ctx context.Context, in *Onu, opts ...grpc.CallOption) (*OnuLogicalDistance, error)
+	GetLogicalOnuDistance(ctx context.Context, in *Onu, opts ...grpc.CallOption) (*OnuLogicalDistance, error)
+	GetPonRxPower(ctx context.Context, in *Onu, opts ...grpc.CallOption) (*PonRxPowerData, error)
+	// GetOnuInfo takes Onu id, serialnumber, and pon interface as argument from the onu structure.
+	// Returns the Onu info from the device.
+	GetOnuInfo(ctx context.Context, in *Onu, opts ...grpc.CallOption) (*OnuInfo, error)
+	// GetPonInterfaceInfo takes the pon intf id as argument.
+	// Returns the pon interface information from the device.
+	GetPonInterfaceInfo(ctx context.Context, in *Interface, opts ...grpc.CallOption) (*PonIntfInfo, error)
+	// GetAllocIdStatistics takes onuId and allocId as argument.
+	// This method includes a default wait period of 10 secs before collecting the stats.
+	// The caller has to be aware of this wait and handle it accordingly.
+	// Returns AllocId statistics in the form of OnuAllocStatistics structure
+	GetAllocIdStatistics(ctx context.Context, in *OnuPacket, opts ...grpc.CallOption) (*OnuAllocIdStatistics, error)
+	// GetPonPortStatistics takes interface id and type as argument from Interface structure.
+	// Returns Pon port statistics in the form of PonStatsData structure.
+	GetPonPortStatistics(ctx context.Context, in *Interface, opts ...grpc.CallOption) (*common.PortStatistics, error)
+	// GetNniPortStatistics takes takes interface id and type as argument from Interface structure.
+	// Returns Nni port statistics in the form of NniStatsData structure
+	GetNniPortStatistics(ctx context.Context, in *Interface, opts ...grpc.CallOption) (*common.PortStatistics, error)
+	// Disable ONU serailnumber, disable device at PLOAM.
+	// Takes input as intfid, onuid, sn of the ONU.
+	// Returns success if the call towards the device is success, error otherwise.
+	DisableOnu(ctx context.Context, in *InterfaceOnuSerialNumberOnuId, opts ...grpc.CallOption) (*Empty, error)
+	// Enables ONU serailnumber, enable device at PLOAM.
+	// Takes input as intfid, onuid, sn of the ONU.
+	// Returns success if the call towards the device is success, error otherwise.
+	EnableOnu(ctx context.Context, in *InterfaceOnuSerialNumberOnuId, opts ...grpc.CallOption) (*Empty, error)
+	// Disable ONU serailnumber, disable device at PLOAM
+	// Takes input as intfid and sn of the ONU. Generally used when the onu is not present in the OLT.
+	// Returns success if the call towards the device is success, error otherwise.
+	DisableOnuSerialNumber(ctx context.Context, in *InterfaceOnuSerialNumber, opts ...grpc.CallOption) (*Empty, error)
+	// Enables ONU serailnumber, enable device at PLOAM
+	// Takes input as intfid and sn of the ONU. Generally used when the onu is not present in the OLT.
+	// Returns success if the call towards the device is success, error otherwise.
+	EnableOnuSerialNumber(ctx context.Context, in *InterfaceOnuSerialNumber, opts ...grpc.CallOption) (*Empty, error)
+}
+
+type openoltClient struct {
+	cc grpc.ClientConnInterface
+}
+
+func NewOpenoltClient(cc grpc.ClientConnInterface) OpenoltClient {
+	return &openoltClient{cc}
+}
+
+func (c *openoltClient) DisableOlt(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, Openolt_DisableOlt_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *openoltClient) ReenableOlt(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, Openolt_ReenableOlt_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *openoltClient) ActivateOnu(ctx context.Context, in *Onu, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, Openolt_ActivateOnu_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *openoltClient) DeactivateOnu(ctx context.Context, in *Onu, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, Openolt_DeactivateOnu_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *openoltClient) DeleteOnu(ctx context.Context, in *Onu, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, Openolt_DeleteOnu_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *openoltClient) OmciMsgOut(ctx context.Context, in *OmciMsg, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, Openolt_OmciMsgOut_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *openoltClient) OnuPacketOut(ctx context.Context, in *OnuPacket, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, Openolt_OnuPacketOut_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *openoltClient) UplinkPacketOut(ctx context.Context, in *UplinkPacket, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, Openolt_UplinkPacketOut_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *openoltClient) FlowAdd(ctx context.Context, in *Flow, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, Openolt_FlowAdd_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *openoltClient) FlowRemove(ctx context.Context, in *Flow, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, Openolt_FlowRemove_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *openoltClient) HeartbeatCheck(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Heartbeat, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Heartbeat)
+	err := c.cc.Invoke(ctx, Openolt_HeartbeatCheck_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *openoltClient) EnablePonIf(ctx context.Context, in *Interface, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, Openolt_EnablePonIf_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *openoltClient) DisablePonIf(ctx context.Context, in *Interface, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, Openolt_DisablePonIf_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *openoltClient) GetDeviceInfo(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*DeviceInfo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(DeviceInfo)
+	err := c.cc.Invoke(ctx, Openolt_GetDeviceInfo_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *openoltClient) Reboot(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, Openolt_Reboot_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *openoltClient) CollectStatistics(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, Openolt_CollectStatistics_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *openoltClient) GetOnuStatistics(ctx context.Context, in *Onu, opts ...grpc.CallOption) (*OnuStatistics, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(OnuStatistics)
+	err := c.cc.Invoke(ctx, Openolt_GetOnuStatistics_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *openoltClient) GetGemPortStatistics(ctx context.Context, in *OnuPacket, opts ...grpc.CallOption) (*GemPortStatistics, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(GemPortStatistics)
+	err := c.cc.Invoke(ctx, Openolt_GetGemPortStatistics_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *openoltClient) CreateTrafficSchedulers(ctx context.Context, in *tech_profile.TrafficSchedulers, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, Openolt_CreateTrafficSchedulers_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *openoltClient) RemoveTrafficSchedulers(ctx context.Context, in *tech_profile.TrafficSchedulers, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, Openolt_RemoveTrafficSchedulers_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *openoltClient) CreateTrafficQueues(ctx context.Context, in *tech_profile.TrafficQueues, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, Openolt_CreateTrafficQueues_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *openoltClient) RemoveTrafficQueues(ctx context.Context, in *tech_profile.TrafficQueues, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, Openolt_RemoveTrafficQueues_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *openoltClient) EnableIndication(ctx context.Context, in *Empty, opts ...grpc.CallOption) (grpc.ServerStreamingClient[Indication], error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	stream, err := c.cc.NewStream(ctx, &Openolt_ServiceDesc.Streams[0], Openolt_EnableIndication_FullMethodName, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	x := &grpc.GenericClientStream[Empty, Indication]{ClientStream: stream}
+	if err := x.ClientStream.SendMsg(in); err != nil {
+		return nil, err
+	}
+	if err := x.ClientStream.CloseSend(); err != nil {
+		return nil, err
+	}
+	return x, nil
+}
+
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type Openolt_EnableIndicationClient = grpc.ServerStreamingClient[Indication]
+
+func (c *openoltClient) PerformGroupOperation(ctx context.Context, in *Group, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, Openolt_PerformGroupOperation_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *openoltClient) DeleteGroup(ctx context.Context, in *Group, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, Openolt_DeleteGroup_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *openoltClient) GetExtValue(ctx context.Context, in *ValueParam, opts ...grpc.CallOption) (*extension.ReturnValues, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(extension.ReturnValues)
+	err := c.cc.Invoke(ctx, Openolt_GetExtValue_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *openoltClient) OnuItuPonAlarmSet(ctx context.Context, in *config.OnuItuPonAlarm, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, Openolt_OnuItuPonAlarmSet_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *openoltClient) GetLogicalOnuDistanceZero(ctx context.Context, in *Onu, opts ...grpc.CallOption) (*OnuLogicalDistance, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(OnuLogicalDistance)
+	err := c.cc.Invoke(ctx, Openolt_GetLogicalOnuDistanceZero_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *openoltClient) GetLogicalOnuDistance(ctx context.Context, in *Onu, opts ...grpc.CallOption) (*OnuLogicalDistance, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(OnuLogicalDistance)
+	err := c.cc.Invoke(ctx, Openolt_GetLogicalOnuDistance_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *openoltClient) GetPonRxPower(ctx context.Context, in *Onu, opts ...grpc.CallOption) (*PonRxPowerData, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(PonRxPowerData)
+	err := c.cc.Invoke(ctx, Openolt_GetPonRxPower_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *openoltClient) GetOnuInfo(ctx context.Context, in *Onu, opts ...grpc.CallOption) (*OnuInfo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(OnuInfo)
+	err := c.cc.Invoke(ctx, Openolt_GetOnuInfo_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *openoltClient) GetPonInterfaceInfo(ctx context.Context, in *Interface, opts ...grpc.CallOption) (*PonIntfInfo, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(PonIntfInfo)
+	err := c.cc.Invoke(ctx, Openolt_GetPonInterfaceInfo_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *openoltClient) GetAllocIdStatistics(ctx context.Context, in *OnuPacket, opts ...grpc.CallOption) (*OnuAllocIdStatistics, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(OnuAllocIdStatistics)
+	err := c.cc.Invoke(ctx, Openolt_GetAllocIdStatistics_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *openoltClient) GetPonPortStatistics(ctx context.Context, in *Interface, opts ...grpc.CallOption) (*common.PortStatistics, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(common.PortStatistics)
+	err := c.cc.Invoke(ctx, Openolt_GetPonPortStatistics_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *openoltClient) GetNniPortStatistics(ctx context.Context, in *Interface, opts ...grpc.CallOption) (*common.PortStatistics, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(common.PortStatistics)
+	err := c.cc.Invoke(ctx, Openolt_GetNniPortStatistics_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *openoltClient) DisableOnu(ctx context.Context, in *InterfaceOnuSerialNumberOnuId, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, Openolt_DisableOnu_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *openoltClient) EnableOnu(ctx context.Context, in *InterfaceOnuSerialNumberOnuId, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, Openolt_EnableOnu_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *openoltClient) DisableOnuSerialNumber(ctx context.Context, in *InterfaceOnuSerialNumber, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, Openolt_DisableOnuSerialNumber_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *openoltClient) EnableOnuSerialNumber(ctx context.Context, in *InterfaceOnuSerialNumber, opts ...grpc.CallOption) (*Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Empty)
+	err := c.cc.Invoke(ctx, Openolt_EnableOnuSerialNumber_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+// OpenoltServer is the server API for Openolt service.
+// All implementations must embed UnimplementedOpenoltServer
+// for forward compatibility.
+type OpenoltServer interface {
+	DisableOlt(context.Context, *Empty) (*Empty, error)
+	ReenableOlt(context.Context, *Empty) (*Empty, error)
+	ActivateOnu(context.Context, *Onu) (*Empty, error)
+	DeactivateOnu(context.Context, *Onu) (*Empty, error)
+	DeleteOnu(context.Context, *Onu) (*Empty, error)
+	OmciMsgOut(context.Context, *OmciMsg) (*Empty, error)
+	OnuPacketOut(context.Context, *OnuPacket) (*Empty, error)
+	UplinkPacketOut(context.Context, *UplinkPacket) (*Empty, error)
+	FlowAdd(context.Context, *Flow) (*Empty, error)
+	FlowRemove(context.Context, *Flow) (*Empty, error)
+	HeartbeatCheck(context.Context, *Empty) (*Heartbeat, error)
+	EnablePonIf(context.Context, *Interface) (*Empty, error)
+	DisablePonIf(context.Context, *Interface) (*Empty, error)
+	GetDeviceInfo(context.Context, *Empty) (*DeviceInfo, error)
+	Reboot(context.Context, *Empty) (*Empty, error)
+	CollectStatistics(context.Context, *Empty) (*Empty, error)
+	GetOnuStatistics(context.Context, *Onu) (*OnuStatistics, error)
+	GetGemPortStatistics(context.Context, *OnuPacket) (*GemPortStatistics, error)
+	CreateTrafficSchedulers(context.Context, *tech_profile.TrafficSchedulers) (*Empty, error)
+	RemoveTrafficSchedulers(context.Context, *tech_profile.TrafficSchedulers) (*Empty, error)
+	CreateTrafficQueues(context.Context, *tech_profile.TrafficQueues) (*Empty, error)
+	RemoveTrafficQueues(context.Context, *tech_profile.TrafficQueues) (*Empty, error)
+	EnableIndication(*Empty, grpc.ServerStreamingServer[Indication]) error
+	PerformGroupOperation(context.Context, *Group) (*Empty, error)
+	DeleteGroup(context.Context, *Group) (*Empty, error)
+	GetExtValue(context.Context, *ValueParam) (*extension.ReturnValues, error)
+	OnuItuPonAlarmSet(context.Context, *config.OnuItuPonAlarm) (*Empty, error)
+	GetLogicalOnuDistanceZero(context.Context, *Onu) (*OnuLogicalDistance, error)
+	GetLogicalOnuDistance(context.Context, *Onu) (*OnuLogicalDistance, error)
+	GetPonRxPower(context.Context, *Onu) (*PonRxPowerData, error)
+	// GetOnuInfo takes Onu id, serialnumber, and pon interface as argument from the onu structure.
+	// Returns the Onu info from the device.
+	GetOnuInfo(context.Context, *Onu) (*OnuInfo, error)
+	// GetPonInterfaceInfo takes the pon intf id as argument.
+	// Returns the pon interface information from the device.
+	GetPonInterfaceInfo(context.Context, *Interface) (*PonIntfInfo, error)
+	// GetAllocIdStatistics takes onuId and allocId as argument.
+	// This method includes a default wait period of 10 secs before collecting the stats.
+	// The caller has to be aware of this wait and handle it accordingly.
+	// Returns AllocId statistics in the form of OnuAllocStatistics structure
+	GetAllocIdStatistics(context.Context, *OnuPacket) (*OnuAllocIdStatistics, error)
+	// GetPonPortStatistics takes interface id and type as argument from Interface structure.
+	// Returns Pon port statistics in the form of PonStatsData structure.
+	GetPonPortStatistics(context.Context, *Interface) (*common.PortStatistics, error)
+	// GetNniPortStatistics takes takes interface id and type as argument from Interface structure.
+	// Returns Nni port statistics in the form of NniStatsData structure
+	GetNniPortStatistics(context.Context, *Interface) (*common.PortStatistics, error)
+	// Disable ONU serailnumber, disable device at PLOAM.
+	// Takes input as intfid, onuid, sn of the ONU.
+	// Returns success if the call towards the device is success, error otherwise.
+	DisableOnu(context.Context, *InterfaceOnuSerialNumberOnuId) (*Empty, error)
+	// Enables ONU serailnumber, enable device at PLOAM.
+	// Takes input as intfid, onuid, sn of the ONU.
+	// Returns success if the call towards the device is success, error otherwise.
+	EnableOnu(context.Context, *InterfaceOnuSerialNumberOnuId) (*Empty, error)
+	// Disable ONU serailnumber, disable device at PLOAM
+	// Takes input as intfid and sn of the ONU. Generally used when the onu is not present in the OLT.
+	// Returns success if the call towards the device is success, error otherwise.
+	DisableOnuSerialNumber(context.Context, *InterfaceOnuSerialNumber) (*Empty, error)
+	// Enables ONU serailnumber, enable device at PLOAM
+	// Takes input as intfid and sn of the ONU. Generally used when the onu is not present in the OLT.
+	// Returns success if the call towards the device is success, error otherwise.
+	EnableOnuSerialNumber(context.Context, *InterfaceOnuSerialNumber) (*Empty, error)
+	mustEmbedUnimplementedOpenoltServer()
+}
+
+// UnimplementedOpenoltServer must be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedOpenoltServer struct{}
+
+func (UnimplementedOpenoltServer) DisableOlt(context.Context, *Empty) (*Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method DisableOlt not implemented")
+}
+func (UnimplementedOpenoltServer) ReenableOlt(context.Context, *Empty) (*Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method ReenableOlt not implemented")
+}
+func (UnimplementedOpenoltServer) ActivateOnu(context.Context, *Onu) (*Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method ActivateOnu not implemented")
+}
+func (UnimplementedOpenoltServer) DeactivateOnu(context.Context, *Onu) (*Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method DeactivateOnu not implemented")
+}
+func (UnimplementedOpenoltServer) DeleteOnu(context.Context, *Onu) (*Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method DeleteOnu not implemented")
+}
+func (UnimplementedOpenoltServer) OmciMsgOut(context.Context, *OmciMsg) (*Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method OmciMsgOut not implemented")
+}
+func (UnimplementedOpenoltServer) OnuPacketOut(context.Context, *OnuPacket) (*Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method OnuPacketOut not implemented")
+}
+func (UnimplementedOpenoltServer) UplinkPacketOut(context.Context, *UplinkPacket) (*Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method UplinkPacketOut not implemented")
+}
+func (UnimplementedOpenoltServer) FlowAdd(context.Context, *Flow) (*Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method FlowAdd not implemented")
+}
+func (UnimplementedOpenoltServer) FlowRemove(context.Context, *Flow) (*Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method FlowRemove not implemented")
+}
+func (UnimplementedOpenoltServer) HeartbeatCheck(context.Context, *Empty) (*Heartbeat, error) {
+	return nil, status.Error(codes.Unimplemented, "method HeartbeatCheck not implemented")
+}
+func (UnimplementedOpenoltServer) EnablePonIf(context.Context, *Interface) (*Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method EnablePonIf not implemented")
+}
+func (UnimplementedOpenoltServer) DisablePonIf(context.Context, *Interface) (*Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method DisablePonIf not implemented")
+}
+func (UnimplementedOpenoltServer) GetDeviceInfo(context.Context, *Empty) (*DeviceInfo, error) {
+	return nil, status.Error(codes.Unimplemented, "method GetDeviceInfo not implemented")
+}
+func (UnimplementedOpenoltServer) Reboot(context.Context, *Empty) (*Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method Reboot not implemented")
+}
+func (UnimplementedOpenoltServer) CollectStatistics(context.Context, *Empty) (*Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method CollectStatistics not implemented")
+}
+func (UnimplementedOpenoltServer) GetOnuStatistics(context.Context, *Onu) (*OnuStatistics, error) {
+	return nil, status.Error(codes.Unimplemented, "method GetOnuStatistics not implemented")
+}
+func (UnimplementedOpenoltServer) GetGemPortStatistics(context.Context, *OnuPacket) (*GemPortStatistics, error) {
+	return nil, status.Error(codes.Unimplemented, "method GetGemPortStatistics not implemented")
+}
+func (UnimplementedOpenoltServer) CreateTrafficSchedulers(context.Context, *tech_profile.TrafficSchedulers) (*Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method CreateTrafficSchedulers not implemented")
+}
+func (UnimplementedOpenoltServer) RemoveTrafficSchedulers(context.Context, *tech_profile.TrafficSchedulers) (*Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method RemoveTrafficSchedulers not implemented")
+}
+func (UnimplementedOpenoltServer) CreateTrafficQueues(context.Context, *tech_profile.TrafficQueues) (*Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method CreateTrafficQueues not implemented")
+}
+func (UnimplementedOpenoltServer) RemoveTrafficQueues(context.Context, *tech_profile.TrafficQueues) (*Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method RemoveTrafficQueues not implemented")
+}
+func (UnimplementedOpenoltServer) EnableIndication(*Empty, grpc.ServerStreamingServer[Indication]) error {
+	return status.Error(codes.Unimplemented, "method EnableIndication not implemented")
+}
+func (UnimplementedOpenoltServer) PerformGroupOperation(context.Context, *Group) (*Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method PerformGroupOperation not implemented")
+}
+func (UnimplementedOpenoltServer) DeleteGroup(context.Context, *Group) (*Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method DeleteGroup not implemented")
+}
+func (UnimplementedOpenoltServer) GetExtValue(context.Context, *ValueParam) (*extension.ReturnValues, error) {
+	return nil, status.Error(codes.Unimplemented, "method GetExtValue not implemented")
+}
+func (UnimplementedOpenoltServer) OnuItuPonAlarmSet(context.Context, *config.OnuItuPonAlarm) (*Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method OnuItuPonAlarmSet not implemented")
+}
+func (UnimplementedOpenoltServer) GetLogicalOnuDistanceZero(context.Context, *Onu) (*OnuLogicalDistance, error) {
+	return nil, status.Error(codes.Unimplemented, "method GetLogicalOnuDistanceZero not implemented")
+}
+func (UnimplementedOpenoltServer) GetLogicalOnuDistance(context.Context, *Onu) (*OnuLogicalDistance, error) {
+	return nil, status.Error(codes.Unimplemented, "method GetLogicalOnuDistance not implemented")
+}
+func (UnimplementedOpenoltServer) GetPonRxPower(context.Context, *Onu) (*PonRxPowerData, error) {
+	return nil, status.Error(codes.Unimplemented, "method GetPonRxPower not implemented")
+}
+func (UnimplementedOpenoltServer) GetOnuInfo(context.Context, *Onu) (*OnuInfo, error) {
+	return nil, status.Error(codes.Unimplemented, "method GetOnuInfo not implemented")
+}
+func (UnimplementedOpenoltServer) GetPonInterfaceInfo(context.Context, *Interface) (*PonIntfInfo, error) {
+	return nil, status.Error(codes.Unimplemented, "method GetPonInterfaceInfo not implemented")
+}
+func (UnimplementedOpenoltServer) GetAllocIdStatistics(context.Context, *OnuPacket) (*OnuAllocIdStatistics, error) {
+	return nil, status.Error(codes.Unimplemented, "method GetAllocIdStatistics not implemented")
+}
+func (UnimplementedOpenoltServer) GetPonPortStatistics(context.Context, *Interface) (*common.PortStatistics, error) {
+	return nil, status.Error(codes.Unimplemented, "method GetPonPortStatistics not implemented")
+}
+func (UnimplementedOpenoltServer) GetNniPortStatistics(context.Context, *Interface) (*common.PortStatistics, error) {
+	return nil, status.Error(codes.Unimplemented, "method GetNniPortStatistics not implemented")
+}
+func (UnimplementedOpenoltServer) DisableOnu(context.Context, *InterfaceOnuSerialNumberOnuId) (*Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method DisableOnu not implemented")
+}
+func (UnimplementedOpenoltServer) EnableOnu(context.Context, *InterfaceOnuSerialNumberOnuId) (*Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method EnableOnu not implemented")
+}
+func (UnimplementedOpenoltServer) DisableOnuSerialNumber(context.Context, *InterfaceOnuSerialNumber) (*Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method DisableOnuSerialNumber not implemented")
+}
+func (UnimplementedOpenoltServer) EnableOnuSerialNumber(context.Context, *InterfaceOnuSerialNumber) (*Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method EnableOnuSerialNumber not implemented")
+}
+func (UnimplementedOpenoltServer) mustEmbedUnimplementedOpenoltServer() {}
+func (UnimplementedOpenoltServer) testEmbeddedByValue()                 {}
+
+// UnsafeOpenoltServer may be embedded to opt out of forward compatibility for this service.
+// Use of this interface is not recommended, as added methods to OpenoltServer will
+// result in compilation errors.
+type UnsafeOpenoltServer interface {
+	mustEmbedUnimplementedOpenoltServer()
+}
+
+func RegisterOpenoltServer(s grpc.ServiceRegistrar, srv OpenoltServer) {
+	// If the following call panics, it indicates UnimplementedOpenoltServer was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
+	s.RegisterService(&Openolt_ServiceDesc, srv)
+}
+
+func _Openolt_DisableOlt_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Empty)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(OpenoltServer).DisableOlt(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: Openolt_DisableOlt_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(OpenoltServer).DisableOlt(ctx, req.(*Empty))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Openolt_ReenableOlt_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Empty)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(OpenoltServer).ReenableOlt(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: Openolt_ReenableOlt_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(OpenoltServer).ReenableOlt(ctx, req.(*Empty))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Openolt_ActivateOnu_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Onu)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(OpenoltServer).ActivateOnu(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: Openolt_ActivateOnu_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(OpenoltServer).ActivateOnu(ctx, req.(*Onu))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Openolt_DeactivateOnu_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Onu)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(OpenoltServer).DeactivateOnu(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: Openolt_DeactivateOnu_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(OpenoltServer).DeactivateOnu(ctx, req.(*Onu))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Openolt_DeleteOnu_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Onu)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(OpenoltServer).DeleteOnu(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: Openolt_DeleteOnu_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(OpenoltServer).DeleteOnu(ctx, req.(*Onu))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Openolt_OmciMsgOut_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(OmciMsg)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(OpenoltServer).OmciMsgOut(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: Openolt_OmciMsgOut_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(OpenoltServer).OmciMsgOut(ctx, req.(*OmciMsg))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Openolt_OnuPacketOut_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(OnuPacket)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(OpenoltServer).OnuPacketOut(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: Openolt_OnuPacketOut_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(OpenoltServer).OnuPacketOut(ctx, req.(*OnuPacket))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Openolt_UplinkPacketOut_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(UplinkPacket)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(OpenoltServer).UplinkPacketOut(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: Openolt_UplinkPacketOut_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(OpenoltServer).UplinkPacketOut(ctx, req.(*UplinkPacket))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Openolt_FlowAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Flow)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(OpenoltServer).FlowAdd(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: Openolt_FlowAdd_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(OpenoltServer).FlowAdd(ctx, req.(*Flow))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Openolt_FlowRemove_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Flow)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(OpenoltServer).FlowRemove(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: Openolt_FlowRemove_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(OpenoltServer).FlowRemove(ctx, req.(*Flow))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Openolt_HeartbeatCheck_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Empty)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(OpenoltServer).HeartbeatCheck(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: Openolt_HeartbeatCheck_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(OpenoltServer).HeartbeatCheck(ctx, req.(*Empty))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Openolt_EnablePonIf_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Interface)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(OpenoltServer).EnablePonIf(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: Openolt_EnablePonIf_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(OpenoltServer).EnablePonIf(ctx, req.(*Interface))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Openolt_DisablePonIf_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Interface)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(OpenoltServer).DisablePonIf(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: Openolt_DisablePonIf_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(OpenoltServer).DisablePonIf(ctx, req.(*Interface))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Openolt_GetDeviceInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Empty)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(OpenoltServer).GetDeviceInfo(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: Openolt_GetDeviceInfo_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(OpenoltServer).GetDeviceInfo(ctx, req.(*Empty))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Openolt_Reboot_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Empty)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(OpenoltServer).Reboot(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: Openolt_Reboot_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(OpenoltServer).Reboot(ctx, req.(*Empty))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Openolt_CollectStatistics_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Empty)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(OpenoltServer).CollectStatistics(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: Openolt_CollectStatistics_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(OpenoltServer).CollectStatistics(ctx, req.(*Empty))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Openolt_GetOnuStatistics_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Onu)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(OpenoltServer).GetOnuStatistics(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: Openolt_GetOnuStatistics_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(OpenoltServer).GetOnuStatistics(ctx, req.(*Onu))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Openolt_GetGemPortStatistics_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(OnuPacket)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(OpenoltServer).GetGemPortStatistics(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: Openolt_GetGemPortStatistics_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(OpenoltServer).GetGemPortStatistics(ctx, req.(*OnuPacket))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Openolt_CreateTrafficSchedulers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(tech_profile.TrafficSchedulers)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(OpenoltServer).CreateTrafficSchedulers(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: Openolt_CreateTrafficSchedulers_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(OpenoltServer).CreateTrafficSchedulers(ctx, req.(*tech_profile.TrafficSchedulers))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Openolt_RemoveTrafficSchedulers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(tech_profile.TrafficSchedulers)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(OpenoltServer).RemoveTrafficSchedulers(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: Openolt_RemoveTrafficSchedulers_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(OpenoltServer).RemoveTrafficSchedulers(ctx, req.(*tech_profile.TrafficSchedulers))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Openolt_CreateTrafficQueues_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(tech_profile.TrafficQueues)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(OpenoltServer).CreateTrafficQueues(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: Openolt_CreateTrafficQueues_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(OpenoltServer).CreateTrafficQueues(ctx, req.(*tech_profile.TrafficQueues))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Openolt_RemoveTrafficQueues_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(tech_profile.TrafficQueues)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(OpenoltServer).RemoveTrafficQueues(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: Openolt_RemoveTrafficQueues_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(OpenoltServer).RemoveTrafficQueues(ctx, req.(*tech_profile.TrafficQueues))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Openolt_EnableIndication_Handler(srv interface{}, stream grpc.ServerStream) error {
+	m := new(Empty)
+	if err := stream.RecvMsg(m); err != nil {
+		return err
+	}
+	return srv.(OpenoltServer).EnableIndication(m, &grpc.GenericServerStream[Empty, Indication]{ServerStream: stream})
+}
+
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type Openolt_EnableIndicationServer = grpc.ServerStreamingServer[Indication]
+
+func _Openolt_PerformGroupOperation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Group)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(OpenoltServer).PerformGroupOperation(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: Openolt_PerformGroupOperation_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(OpenoltServer).PerformGroupOperation(ctx, req.(*Group))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Openolt_DeleteGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Group)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(OpenoltServer).DeleteGroup(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: Openolt_DeleteGroup_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(OpenoltServer).DeleteGroup(ctx, req.(*Group))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Openolt_GetExtValue_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ValueParam)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(OpenoltServer).GetExtValue(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: Openolt_GetExtValue_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(OpenoltServer).GetExtValue(ctx, req.(*ValueParam))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Openolt_OnuItuPonAlarmSet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(config.OnuItuPonAlarm)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(OpenoltServer).OnuItuPonAlarmSet(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: Openolt_OnuItuPonAlarmSet_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(OpenoltServer).OnuItuPonAlarmSet(ctx, req.(*config.OnuItuPonAlarm))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Openolt_GetLogicalOnuDistanceZero_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Onu)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(OpenoltServer).GetLogicalOnuDistanceZero(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: Openolt_GetLogicalOnuDistanceZero_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(OpenoltServer).GetLogicalOnuDistanceZero(ctx, req.(*Onu))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Openolt_GetLogicalOnuDistance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Onu)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(OpenoltServer).GetLogicalOnuDistance(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: Openolt_GetLogicalOnuDistance_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(OpenoltServer).GetLogicalOnuDistance(ctx, req.(*Onu))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Openolt_GetPonRxPower_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Onu)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(OpenoltServer).GetPonRxPower(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: Openolt_GetPonRxPower_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(OpenoltServer).GetPonRxPower(ctx, req.(*Onu))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Openolt_GetOnuInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Onu)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(OpenoltServer).GetOnuInfo(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: Openolt_GetOnuInfo_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(OpenoltServer).GetOnuInfo(ctx, req.(*Onu))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Openolt_GetPonInterfaceInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Interface)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(OpenoltServer).GetPonInterfaceInfo(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: Openolt_GetPonInterfaceInfo_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(OpenoltServer).GetPonInterfaceInfo(ctx, req.(*Interface))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Openolt_GetAllocIdStatistics_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(OnuPacket)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(OpenoltServer).GetAllocIdStatistics(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: Openolt_GetAllocIdStatistics_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(OpenoltServer).GetAllocIdStatistics(ctx, req.(*OnuPacket))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Openolt_GetPonPortStatistics_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Interface)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(OpenoltServer).GetPonPortStatistics(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: Openolt_GetPonPortStatistics_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(OpenoltServer).GetPonPortStatistics(ctx, req.(*Interface))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Openolt_GetNniPortStatistics_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Interface)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(OpenoltServer).GetNniPortStatistics(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: Openolt_GetNniPortStatistics_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(OpenoltServer).GetNniPortStatistics(ctx, req.(*Interface))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Openolt_DisableOnu_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(InterfaceOnuSerialNumberOnuId)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(OpenoltServer).DisableOnu(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: Openolt_DisableOnu_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(OpenoltServer).DisableOnu(ctx, req.(*InterfaceOnuSerialNumberOnuId))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Openolt_EnableOnu_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(InterfaceOnuSerialNumberOnuId)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(OpenoltServer).EnableOnu(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: Openolt_EnableOnu_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(OpenoltServer).EnableOnu(ctx, req.(*InterfaceOnuSerialNumberOnuId))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Openolt_DisableOnuSerialNumber_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(InterfaceOnuSerialNumber)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(OpenoltServer).DisableOnuSerialNumber(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: Openolt_DisableOnuSerialNumber_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(OpenoltServer).DisableOnuSerialNumber(ctx, req.(*InterfaceOnuSerialNumber))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Openolt_EnableOnuSerialNumber_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(InterfaceOnuSerialNumber)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(OpenoltServer).EnableOnuSerialNumber(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: Openolt_EnableOnuSerialNumber_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(OpenoltServer).EnableOnuSerialNumber(ctx, req.(*InterfaceOnuSerialNumber))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+// Openolt_ServiceDesc is the grpc.ServiceDesc for Openolt service.
+// It's only intended for direct use with grpc.RegisterService,
+// and not to be introspected or modified (even as a copy)
+var Openolt_ServiceDesc = grpc.ServiceDesc{
+	ServiceName: "openolt.Openolt",
+	HandlerType: (*OpenoltServer)(nil),
+	Methods: []grpc.MethodDesc{
+		{
+			MethodName: "DisableOlt",
+			Handler:    _Openolt_DisableOlt_Handler,
+		},
+		{
+			MethodName: "ReenableOlt",
+			Handler:    _Openolt_ReenableOlt_Handler,
+		},
+		{
+			MethodName: "ActivateOnu",
+			Handler:    _Openolt_ActivateOnu_Handler,
+		},
+		{
+			MethodName: "DeactivateOnu",
+			Handler:    _Openolt_DeactivateOnu_Handler,
+		},
+		{
+			MethodName: "DeleteOnu",
+			Handler:    _Openolt_DeleteOnu_Handler,
+		},
+		{
+			MethodName: "OmciMsgOut",
+			Handler:    _Openolt_OmciMsgOut_Handler,
+		},
+		{
+			MethodName: "OnuPacketOut",
+			Handler:    _Openolt_OnuPacketOut_Handler,
+		},
+		{
+			MethodName: "UplinkPacketOut",
+			Handler:    _Openolt_UplinkPacketOut_Handler,
+		},
+		{
+			MethodName: "FlowAdd",
+			Handler:    _Openolt_FlowAdd_Handler,
+		},
+		{
+			MethodName: "FlowRemove",
+			Handler:    _Openolt_FlowRemove_Handler,
+		},
+		{
+			MethodName: "HeartbeatCheck",
+			Handler:    _Openolt_HeartbeatCheck_Handler,
+		},
+		{
+			MethodName: "EnablePonIf",
+			Handler:    _Openolt_EnablePonIf_Handler,
+		},
+		{
+			MethodName: "DisablePonIf",
+			Handler:    _Openolt_DisablePonIf_Handler,
+		},
+		{
+			MethodName: "GetDeviceInfo",
+			Handler:    _Openolt_GetDeviceInfo_Handler,
+		},
+		{
+			MethodName: "Reboot",
+			Handler:    _Openolt_Reboot_Handler,
+		},
+		{
+			MethodName: "CollectStatistics",
+			Handler:    _Openolt_CollectStatistics_Handler,
+		},
+		{
+			MethodName: "GetOnuStatistics",
+			Handler:    _Openolt_GetOnuStatistics_Handler,
+		},
+		{
+			MethodName: "GetGemPortStatistics",
+			Handler:    _Openolt_GetGemPortStatistics_Handler,
+		},
+		{
+			MethodName: "CreateTrafficSchedulers",
+			Handler:    _Openolt_CreateTrafficSchedulers_Handler,
+		},
+		{
+			MethodName: "RemoveTrafficSchedulers",
+			Handler:    _Openolt_RemoveTrafficSchedulers_Handler,
+		},
+		{
+			MethodName: "CreateTrafficQueues",
+			Handler:    _Openolt_CreateTrafficQueues_Handler,
+		},
+		{
+			MethodName: "RemoveTrafficQueues",
+			Handler:    _Openolt_RemoveTrafficQueues_Handler,
+		},
+		{
+			MethodName: "PerformGroupOperation",
+			Handler:    _Openolt_PerformGroupOperation_Handler,
+		},
+		{
+			MethodName: "DeleteGroup",
+			Handler:    _Openolt_DeleteGroup_Handler,
+		},
+		{
+			MethodName: "GetExtValue",
+			Handler:    _Openolt_GetExtValue_Handler,
+		},
+		{
+			MethodName: "OnuItuPonAlarmSet",
+			Handler:    _Openolt_OnuItuPonAlarmSet_Handler,
+		},
+		{
+			MethodName: "GetLogicalOnuDistanceZero",
+			Handler:    _Openolt_GetLogicalOnuDistanceZero_Handler,
+		},
+		{
+			MethodName: "GetLogicalOnuDistance",
+			Handler:    _Openolt_GetLogicalOnuDistance_Handler,
+		},
+		{
+			MethodName: "GetPonRxPower",
+			Handler:    _Openolt_GetPonRxPower_Handler,
+		},
+		{
+			MethodName: "GetOnuInfo",
+			Handler:    _Openolt_GetOnuInfo_Handler,
+		},
+		{
+			MethodName: "GetPonInterfaceInfo",
+			Handler:    _Openolt_GetPonInterfaceInfo_Handler,
+		},
+		{
+			MethodName: "GetAllocIdStatistics",
+			Handler:    _Openolt_GetAllocIdStatistics_Handler,
+		},
+		{
+			MethodName: "GetPonPortStatistics",
+			Handler:    _Openolt_GetPonPortStatistics_Handler,
+		},
+		{
+			MethodName: "GetNniPortStatistics",
+			Handler:    _Openolt_GetNniPortStatistics_Handler,
+		},
+		{
+			MethodName: "DisableOnu",
+			Handler:    _Openolt_DisableOnu_Handler,
+		},
+		{
+			MethodName: "EnableOnu",
+			Handler:    _Openolt_EnableOnu_Handler,
+		},
+		{
+			MethodName: "DisableOnuSerialNumber",
+			Handler:    _Openolt_DisableOnuSerialNumber_Handler,
+		},
+		{
+			MethodName: "EnableOnuSerialNumber",
+			Handler:    _Openolt_EnableOnuSerialNumber_Handler,
+		},
+	},
+	Streams: []grpc.StreamDesc{
+		{
+			StreamName:    "EnableIndication",
+			Handler:       _Openolt_EnableIndication_Handler,
+			ServerStreams: true,
+		},
+	},
+	Metadata: "voltha_protos/openolt.proto",
+}
diff --git a/go/tech_profile/tech_profile.pb.go b/go/tech_profile/tech_profile.pb.go
index dd1caef..5f497b1 100644
--- a/go/tech_profile/tech_profile.pb.go
+++ b/go/tech_profile/tech_profile.pb.go
@@ -1,25 +1,40 @@
+// Copyright 2018-2024 Open Networking Foundation (ONF) and the ONF Contributors
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at:
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
 // Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// 	protoc-gen-go v1.36.11
+// 	protoc        v4.25.8
 // source: voltha_protos/tech_profile.proto
 
 package tech_profile
 
 import (
-	fmt "fmt"
-	proto "github.com/golang/protobuf/proto"
 	_ "google.golang.org/genproto/googleapis/api/annotations"
-	math "math"
+	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+	reflect "reflect"
+	sync "sync"
+	unsafe "unsafe"
 )
 
-// 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
+const (
+	// Verify that this generated code is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+	// Verify that runtime/protoimpl is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
 
 type Direction int32
 
@@ -29,24 +44,45 @@
 	Direction_BIDIRECTIONAL Direction = 2
 )
 
-var Direction_name = map[int32]string{
-	0: "UPSTREAM",
-	1: "DOWNSTREAM",
-	2: "BIDIRECTIONAL",
-}
+// Enum value maps for Direction.
+var (
+	Direction_name = map[int32]string{
+		0: "UPSTREAM",
+		1: "DOWNSTREAM",
+		2: "BIDIRECTIONAL",
+	}
+	Direction_value = map[string]int32{
+		"UPSTREAM":      0,
+		"DOWNSTREAM":    1,
+		"BIDIRECTIONAL": 2,
+	}
+)
 
-var Direction_value = map[string]int32{
-	"UPSTREAM":      0,
-	"DOWNSTREAM":    1,
-	"BIDIRECTIONAL": 2,
+func (x Direction) Enum() *Direction {
+	p := new(Direction)
+	*p = x
+	return p
 }
 
 func (x Direction) String() string {
-	return proto.EnumName(Direction_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (Direction) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_tech_profile_proto_enumTypes[0].Descriptor()
+}
+
+func (Direction) Type() protoreflect.EnumType {
+	return &file_voltha_protos_tech_profile_proto_enumTypes[0]
+}
+
+func (x Direction) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use Direction.Descriptor instead.
 func (Direction) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_d019a68bffe14cae, []int{0}
+	return file_voltha_protos_tech_profile_proto_rawDescGZIP(), []int{0}
 }
 
 type SchedulingPolicy int32
@@ -57,24 +93,45 @@
 	SchedulingPolicy_Hybrid         SchedulingPolicy = 2
 )
 
-var SchedulingPolicy_name = map[int32]string{
-	0: "WRR",
-	1: "StrictPriority",
-	2: "Hybrid",
-}
+// Enum value maps for SchedulingPolicy.
+var (
+	SchedulingPolicy_name = map[int32]string{
+		0: "WRR",
+		1: "StrictPriority",
+		2: "Hybrid",
+	}
+	SchedulingPolicy_value = map[string]int32{
+		"WRR":            0,
+		"StrictPriority": 1,
+		"Hybrid":         2,
+	}
+)
 
-var SchedulingPolicy_value = map[string]int32{
-	"WRR":            0,
-	"StrictPriority": 1,
-	"Hybrid":         2,
+func (x SchedulingPolicy) Enum() *SchedulingPolicy {
+	p := new(SchedulingPolicy)
+	*p = x
+	return p
 }
 
 func (x SchedulingPolicy) String() string {
-	return proto.EnumName(SchedulingPolicy_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (SchedulingPolicy) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_tech_profile_proto_enumTypes[1].Descriptor()
+}
+
+func (SchedulingPolicy) Type() protoreflect.EnumType {
+	return &file_voltha_protos_tech_profile_proto_enumTypes[1]
+}
+
+func (x SchedulingPolicy) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use SchedulingPolicy.Descriptor instead.
 func (SchedulingPolicy) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_d019a68bffe14cae, []int{1}
+	return file_voltha_protos_tech_profile_proto_rawDescGZIP(), []int{1}
 }
 
 type AdditionalBW int32
@@ -86,26 +143,47 @@
 	AdditionalBW_AdditionalBW_Auto       AdditionalBW = 3
 )
 
-var AdditionalBW_name = map[int32]string{
-	0: "AdditionalBW_None",
-	1: "AdditionalBW_NA",
-	2: "AdditionalBW_BestEffort",
-	3: "AdditionalBW_Auto",
-}
+// Enum value maps for AdditionalBW.
+var (
+	AdditionalBW_name = map[int32]string{
+		0: "AdditionalBW_None",
+		1: "AdditionalBW_NA",
+		2: "AdditionalBW_BestEffort",
+		3: "AdditionalBW_Auto",
+	}
+	AdditionalBW_value = map[string]int32{
+		"AdditionalBW_None":       0,
+		"AdditionalBW_NA":         1,
+		"AdditionalBW_BestEffort": 2,
+		"AdditionalBW_Auto":       3,
+	}
+)
 
-var AdditionalBW_value = map[string]int32{
-	"AdditionalBW_None":       0,
-	"AdditionalBW_NA":         1,
-	"AdditionalBW_BestEffort": 2,
-	"AdditionalBW_Auto":       3,
+func (x AdditionalBW) Enum() *AdditionalBW {
+	p := new(AdditionalBW)
+	*p = x
+	return p
 }
 
 func (x AdditionalBW) String() string {
-	return proto.EnumName(AdditionalBW_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (AdditionalBW) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_tech_profile_proto_enumTypes[2].Descriptor()
+}
+
+func (AdditionalBW) Type() protoreflect.EnumType {
+	return &file_voltha_protos_tech_profile_proto_enumTypes[2]
+}
+
+func (x AdditionalBW) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use AdditionalBW.Descriptor instead.
 func (AdditionalBW) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_d019a68bffe14cae, []int{2}
+	return file_voltha_protos_tech_profile_proto_rawDescGZIP(), []int{2}
 }
 
 type DiscardPolicy int32
@@ -117,26 +195,47 @@
 	DiscardPolicy_WRed      DiscardPolicy = 3
 )
 
-var DiscardPolicy_name = map[int32]string{
-	0: "TailDrop",
-	1: "WTailDrop",
-	2: "Red",
-	3: "WRed",
-}
+// Enum value maps for DiscardPolicy.
+var (
+	DiscardPolicy_name = map[int32]string{
+		0: "TailDrop",
+		1: "WTailDrop",
+		2: "Red",
+		3: "WRed",
+	}
+	DiscardPolicy_value = map[string]int32{
+		"TailDrop":  0,
+		"WTailDrop": 1,
+		"Red":       2,
+		"WRed":      3,
+	}
+)
 
-var DiscardPolicy_value = map[string]int32{
-	"TailDrop":  0,
-	"WTailDrop": 1,
-	"Red":       2,
-	"WRed":      3,
+func (x DiscardPolicy) Enum() *DiscardPolicy {
+	p := new(DiscardPolicy)
+	*p = x
+	return p
 }
 
 func (x DiscardPolicy) String() string {
-	return proto.EnumName(DiscardPolicy_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (DiscardPolicy) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_tech_profile_proto_enumTypes[3].Descriptor()
+}
+
+func (DiscardPolicy) Type() protoreflect.EnumType {
+	return &file_voltha_protos_tech_profile_proto_enumTypes[3]
+}
+
+func (x DiscardPolicy) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use DiscardPolicy.Descriptor instead.
 func (DiscardPolicy) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_d019a68bffe14cae, []int{3}
+	return file_voltha_protos_tech_profile_proto_rawDescGZIP(), []int{3}
 }
 
 type InferredAdditionBWIndication int32
@@ -147,511 +246,607 @@
 	InferredAdditionBWIndication_InferredAdditionBWIndication_BestEffort InferredAdditionBWIndication = 2
 )
 
-var InferredAdditionBWIndication_name = map[int32]string{
-	0: "InferredAdditionBWIndication_None",
-	1: "InferredAdditionBWIndication_Assured",
-	2: "InferredAdditionBWIndication_BestEffort",
-}
+// Enum value maps for InferredAdditionBWIndication.
+var (
+	InferredAdditionBWIndication_name = map[int32]string{
+		0: "InferredAdditionBWIndication_None",
+		1: "InferredAdditionBWIndication_Assured",
+		2: "InferredAdditionBWIndication_BestEffort",
+	}
+	InferredAdditionBWIndication_value = map[string]int32{
+		"InferredAdditionBWIndication_None":       0,
+		"InferredAdditionBWIndication_Assured":    1,
+		"InferredAdditionBWIndication_BestEffort": 2,
+	}
+)
 
-var InferredAdditionBWIndication_value = map[string]int32{
-	"InferredAdditionBWIndication_None":       0,
-	"InferredAdditionBWIndication_Assured":    1,
-	"InferredAdditionBWIndication_BestEffort": 2,
+func (x InferredAdditionBWIndication) Enum() *InferredAdditionBWIndication {
+	p := new(InferredAdditionBWIndication)
+	*p = x
+	return p
 }
 
 func (x InferredAdditionBWIndication) String() string {
-	return proto.EnumName(InferredAdditionBWIndication_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (InferredAdditionBWIndication) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_tech_profile_proto_enumTypes[4].Descriptor()
+}
+
+func (InferredAdditionBWIndication) Type() protoreflect.EnumType {
+	return &file_voltha_protos_tech_profile_proto_enumTypes[4]
+}
+
+func (x InferredAdditionBWIndication) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use InferredAdditionBWIndication.Descriptor instead.
 func (InferredAdditionBWIndication) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_d019a68bffe14cae, []int{4}
+	return file_voltha_protos_tech_profile_proto_rawDescGZIP(), []int{4}
 }
 
 type SchedulerConfig struct {
-	Direction            Direction        `protobuf:"varint,1,opt,name=direction,proto3,enum=tech_profile.Direction" json:"direction,omitempty"`
-	AdditionalBw         AdditionalBW     `protobuf:"varint,2,opt,name=additional_bw,json=additionalBw,proto3,enum=tech_profile.AdditionalBW" json:"additional_bw,omitempty"`
-	Priority             uint32           `protobuf:"fixed32,3,opt,name=priority,proto3" json:"priority,omitempty"`
-	Weight               uint32           `protobuf:"fixed32,4,opt,name=weight,proto3" json:"weight,omitempty"`
-	SchedPolicy          SchedulingPolicy `protobuf:"varint,5,opt,name=sched_policy,json=schedPolicy,proto3,enum=tech_profile.SchedulingPolicy" json:"sched_policy,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
-	XXX_unrecognized     []byte           `json:"-"`
-	XXX_sizecache        int32            `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Direction     Direction              `protobuf:"varint,1,opt,name=direction,proto3,enum=tech_profile.Direction" json:"direction,omitempty"`
+	AdditionalBw  AdditionalBW           `protobuf:"varint,2,opt,name=additional_bw,json=additionalBw,proto3,enum=tech_profile.AdditionalBW" json:"additional_bw,omitempty"` // Valid on for “direction == Upstream”.
+	Priority      uint32                 `protobuf:"fixed32,3,opt,name=priority,proto3" json:"priority,omitempty"`
+	Weight        uint32                 `protobuf:"fixed32,4,opt,name=weight,proto3" json:"weight,omitempty"`
+	SchedPolicy   SchedulingPolicy       `protobuf:"varint,5,opt,name=sched_policy,json=schedPolicy,proto3,enum=tech_profile.SchedulingPolicy" json:"sched_policy,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *SchedulerConfig) Reset()         { *m = SchedulerConfig{} }
-func (m *SchedulerConfig) String() string { return proto.CompactTextString(m) }
-func (*SchedulerConfig) ProtoMessage()    {}
+func (x *SchedulerConfig) Reset() {
+	*x = SchedulerConfig{}
+	mi := &file_voltha_protos_tech_profile_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *SchedulerConfig) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SchedulerConfig) ProtoMessage() {}
+
+func (x *SchedulerConfig) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_tech_profile_proto_msgTypes[0]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SchedulerConfig.ProtoReflect.Descriptor instead.
 func (*SchedulerConfig) Descriptor() ([]byte, []int) {
-	return fileDescriptor_d019a68bffe14cae, []int{0}
+	return file_voltha_protos_tech_profile_proto_rawDescGZIP(), []int{0}
 }
 
-func (m *SchedulerConfig) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_SchedulerConfig.Unmarshal(m, b)
-}
-func (m *SchedulerConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_SchedulerConfig.Marshal(b, m, deterministic)
-}
-func (m *SchedulerConfig) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_SchedulerConfig.Merge(m, src)
-}
-func (m *SchedulerConfig) XXX_Size() int {
-	return xxx_messageInfo_SchedulerConfig.Size(m)
-}
-func (m *SchedulerConfig) XXX_DiscardUnknown() {
-	xxx_messageInfo_SchedulerConfig.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_SchedulerConfig proto.InternalMessageInfo
-
-func (m *SchedulerConfig) GetDirection() Direction {
-	if m != nil {
-		return m.Direction
+func (x *SchedulerConfig) GetDirection() Direction {
+	if x != nil {
+		return x.Direction
 	}
 	return Direction_UPSTREAM
 }
 
-func (m *SchedulerConfig) GetAdditionalBw() AdditionalBW {
-	if m != nil {
-		return m.AdditionalBw
+func (x *SchedulerConfig) GetAdditionalBw() AdditionalBW {
+	if x != nil {
+		return x.AdditionalBw
 	}
 	return AdditionalBW_AdditionalBW_None
 }
 
-func (m *SchedulerConfig) GetPriority() uint32 {
-	if m != nil {
-		return m.Priority
+func (x *SchedulerConfig) GetPriority() uint32 {
+	if x != nil {
+		return x.Priority
 	}
 	return 0
 }
 
-func (m *SchedulerConfig) GetWeight() uint32 {
-	if m != nil {
-		return m.Weight
+func (x *SchedulerConfig) GetWeight() uint32 {
+	if x != nil {
+		return x.Weight
 	}
 	return 0
 }
 
-func (m *SchedulerConfig) GetSchedPolicy() SchedulingPolicy {
-	if m != nil {
-		return m.SchedPolicy
+func (x *SchedulerConfig) GetSchedPolicy() SchedulingPolicy {
+	if x != nil {
+		return x.SchedPolicy
 	}
 	return SchedulingPolicy_WRR
 }
 
 type TrafficShapingInfo struct {
-	Cir                  uint32                       `protobuf:"fixed32,1,opt,name=cir,proto3" json:"cir,omitempty"`
-	Cbs                  uint32                       `protobuf:"fixed32,2,opt,name=cbs,proto3" json:"cbs,omitempty"`
-	Pir                  uint32                       `protobuf:"fixed32,3,opt,name=pir,proto3" json:"pir,omitempty"`
-	Pbs                  uint32                       `protobuf:"fixed32,4,opt,name=pbs,proto3" json:"pbs,omitempty"`
-	Gir                  uint32                       `protobuf:"fixed32,5,opt,name=gir,proto3" json:"gir,omitempty"`
-	AddBwInd             InferredAdditionBWIndication `protobuf:"varint,6,opt,name=add_bw_ind,json=addBwInd,proto3,enum=tech_profile.InferredAdditionBWIndication" json:"add_bw_ind,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                     `json:"-"`
-	XXX_unrecognized     []byte                       `json:"-"`
-	XXX_sizecache        int32                        `json:"-"`
+	state         protoimpl.MessageState       `protogen:"open.v1"`
+	Cir           uint32                       `protobuf:"fixed32,1,opt,name=cir,proto3" json:"cir,omitempty"`
+	Cbs           uint32                       `protobuf:"fixed32,2,opt,name=cbs,proto3" json:"cbs,omitempty"`
+	Pir           uint32                       `protobuf:"fixed32,3,opt,name=pir,proto3" json:"pir,omitempty"`
+	Pbs           uint32                       `protobuf:"fixed32,4,opt,name=pbs,proto3" json:"pbs,omitempty"`
+	Gir           uint32                       `protobuf:"fixed32,5,opt,name=gir,proto3" json:"gir,omitempty"`                                                                           // only if “direction == Upstream ”
+	AddBwInd      InferredAdditionBWIndication `protobuf:"varint,6,opt,name=add_bw_ind,json=addBwInd,proto3,enum=tech_profile.InferredAdditionBWIndication" json:"add_bw_ind,omitempty"` // only if “direction == Upstream”
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *TrafficShapingInfo) Reset()         { *m = TrafficShapingInfo{} }
-func (m *TrafficShapingInfo) String() string { return proto.CompactTextString(m) }
-func (*TrafficShapingInfo) ProtoMessage()    {}
+func (x *TrafficShapingInfo) Reset() {
+	*x = TrafficShapingInfo{}
+	mi := &file_voltha_protos_tech_profile_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *TrafficShapingInfo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TrafficShapingInfo) ProtoMessage() {}
+
+func (x *TrafficShapingInfo) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_tech_profile_proto_msgTypes[1]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use TrafficShapingInfo.ProtoReflect.Descriptor instead.
 func (*TrafficShapingInfo) Descriptor() ([]byte, []int) {
-	return fileDescriptor_d019a68bffe14cae, []int{1}
+	return file_voltha_protos_tech_profile_proto_rawDescGZIP(), []int{1}
 }
 
-func (m *TrafficShapingInfo) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_TrafficShapingInfo.Unmarshal(m, b)
-}
-func (m *TrafficShapingInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_TrafficShapingInfo.Marshal(b, m, deterministic)
-}
-func (m *TrafficShapingInfo) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_TrafficShapingInfo.Merge(m, src)
-}
-func (m *TrafficShapingInfo) XXX_Size() int {
-	return xxx_messageInfo_TrafficShapingInfo.Size(m)
-}
-func (m *TrafficShapingInfo) XXX_DiscardUnknown() {
-	xxx_messageInfo_TrafficShapingInfo.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_TrafficShapingInfo proto.InternalMessageInfo
-
-func (m *TrafficShapingInfo) GetCir() uint32 {
-	if m != nil {
-		return m.Cir
+func (x *TrafficShapingInfo) GetCir() uint32 {
+	if x != nil {
+		return x.Cir
 	}
 	return 0
 }
 
-func (m *TrafficShapingInfo) GetCbs() uint32 {
-	if m != nil {
-		return m.Cbs
+func (x *TrafficShapingInfo) GetCbs() uint32 {
+	if x != nil {
+		return x.Cbs
 	}
 	return 0
 }
 
-func (m *TrafficShapingInfo) GetPir() uint32 {
-	if m != nil {
-		return m.Pir
+func (x *TrafficShapingInfo) GetPir() uint32 {
+	if x != nil {
+		return x.Pir
 	}
 	return 0
 }
 
-func (m *TrafficShapingInfo) GetPbs() uint32 {
-	if m != nil {
-		return m.Pbs
+func (x *TrafficShapingInfo) GetPbs() uint32 {
+	if x != nil {
+		return x.Pbs
 	}
 	return 0
 }
 
-func (m *TrafficShapingInfo) GetGir() uint32 {
-	if m != nil {
-		return m.Gir
+func (x *TrafficShapingInfo) GetGir() uint32 {
+	if x != nil {
+		return x.Gir
 	}
 	return 0
 }
 
-func (m *TrafficShapingInfo) GetAddBwInd() InferredAdditionBWIndication {
-	if m != nil {
-		return m.AddBwInd
+func (x *TrafficShapingInfo) GetAddBwInd() InferredAdditionBWIndication {
+	if x != nil {
+		return x.AddBwInd
 	}
 	return InferredAdditionBWIndication_InferredAdditionBWIndication_None
 }
 
 type TrafficScheduler struct {
-	Direction            Direction           `protobuf:"varint,1,opt,name=direction,proto3,enum=tech_profile.Direction" json:"direction,omitempty"`
-	AllocId              uint32              `protobuf:"fixed32,2,opt,name=alloc_id,json=allocId,proto3" json:"alloc_id,omitempty"`
-	Scheduler            *SchedulerConfig    `protobuf:"bytes,3,opt,name=scheduler,proto3" json:"scheduler,omitempty"`
-	TrafficShapingInfo   *TrafficShapingInfo `protobuf:"bytes,4,opt,name=traffic_shaping_info,json=trafficShapingInfo,proto3" json:"traffic_shaping_info,omitempty"`
-	TechProfileId        uint32              `protobuf:"fixed32,5,opt,name=tech_profile_id,json=techProfileId,proto3" json:"tech_profile_id,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
-	XXX_unrecognized     []byte              `json:"-"`
-	XXX_sizecache        int32               `json:"-"`
+	state              protoimpl.MessageState `protogen:"open.v1"`
+	Direction          Direction              `protobuf:"varint,1,opt,name=direction,proto3,enum=tech_profile.Direction" json:"direction,omitempty"`
+	AllocId            uint32                 `protobuf:"fixed32,2,opt,name=alloc_id,json=allocId,proto3" json:"alloc_id,omitempty"` // valid only if “direction == Upstream ”
+	Scheduler          *SchedulerConfig       `protobuf:"bytes,3,opt,name=scheduler,proto3" json:"scheduler,omitempty"`
+	TrafficShapingInfo *TrafficShapingInfo    `protobuf:"bytes,4,opt,name=traffic_shaping_info,json=trafficShapingInfo,proto3" json:"traffic_shaping_info,omitempty"`
+	TechProfileId      uint32                 `protobuf:"fixed32,5,opt,name=tech_profile_id,json=techProfileId,proto3" json:"tech_profile_id,omitempty"`
+	unknownFields      protoimpl.UnknownFields
+	sizeCache          protoimpl.SizeCache
 }
 
-func (m *TrafficScheduler) Reset()         { *m = TrafficScheduler{} }
-func (m *TrafficScheduler) String() string { return proto.CompactTextString(m) }
-func (*TrafficScheduler) ProtoMessage()    {}
+func (x *TrafficScheduler) Reset() {
+	*x = TrafficScheduler{}
+	mi := &file_voltha_protos_tech_profile_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *TrafficScheduler) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TrafficScheduler) ProtoMessage() {}
+
+func (x *TrafficScheduler) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_tech_profile_proto_msgTypes[2]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use TrafficScheduler.ProtoReflect.Descriptor instead.
 func (*TrafficScheduler) Descriptor() ([]byte, []int) {
-	return fileDescriptor_d019a68bffe14cae, []int{2}
+	return file_voltha_protos_tech_profile_proto_rawDescGZIP(), []int{2}
 }
 
-func (m *TrafficScheduler) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_TrafficScheduler.Unmarshal(m, b)
-}
-func (m *TrafficScheduler) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_TrafficScheduler.Marshal(b, m, deterministic)
-}
-func (m *TrafficScheduler) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_TrafficScheduler.Merge(m, src)
-}
-func (m *TrafficScheduler) XXX_Size() int {
-	return xxx_messageInfo_TrafficScheduler.Size(m)
-}
-func (m *TrafficScheduler) XXX_DiscardUnknown() {
-	xxx_messageInfo_TrafficScheduler.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_TrafficScheduler proto.InternalMessageInfo
-
-func (m *TrafficScheduler) GetDirection() Direction {
-	if m != nil {
-		return m.Direction
+func (x *TrafficScheduler) GetDirection() Direction {
+	if x != nil {
+		return x.Direction
 	}
 	return Direction_UPSTREAM
 }
 
-func (m *TrafficScheduler) GetAllocId() uint32 {
-	if m != nil {
-		return m.AllocId
+func (x *TrafficScheduler) GetAllocId() uint32 {
+	if x != nil {
+		return x.AllocId
 	}
 	return 0
 }
 
-func (m *TrafficScheduler) GetScheduler() *SchedulerConfig {
-	if m != nil {
-		return m.Scheduler
+func (x *TrafficScheduler) GetScheduler() *SchedulerConfig {
+	if x != nil {
+		return x.Scheduler
 	}
 	return nil
 }
 
-func (m *TrafficScheduler) GetTrafficShapingInfo() *TrafficShapingInfo {
-	if m != nil {
-		return m.TrafficShapingInfo
+func (x *TrafficScheduler) GetTrafficShapingInfo() *TrafficShapingInfo {
+	if x != nil {
+		return x.TrafficShapingInfo
 	}
 	return nil
 }
 
-func (m *TrafficScheduler) GetTechProfileId() uint32 {
-	if m != nil {
-		return m.TechProfileId
+func (x *TrafficScheduler) GetTechProfileId() uint32 {
+	if x != nil {
+		return x.TechProfileId
 	}
 	return 0
 }
 
 type TrafficSchedulers struct {
-	IntfId               uint32              `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
-	OnuId                uint32              `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
-	UniId                uint32              `protobuf:"fixed32,4,opt,name=uni_id,json=uniId,proto3" json:"uni_id,omitempty"`
-	PortNo               uint32              `protobuf:"fixed32,5,opt,name=port_no,json=portNo,proto3" json:"port_no,omitempty"`
-	TrafficScheds        []*TrafficScheduler `protobuf:"bytes,3,rep,name=traffic_scheds,json=trafficScheds,proto3" json:"traffic_scheds,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
-	XXX_unrecognized     []byte              `json:"-"`
-	XXX_sizecache        int32               `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	IntfId        uint32                 `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
+	OnuId         uint32                 `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
+	UniId         uint32                 `protobuf:"fixed32,4,opt,name=uni_id,json=uniId,proto3" json:"uni_id,omitempty"`
+	PortNo        uint32                 `protobuf:"fixed32,5,opt,name=port_no,json=portNo,proto3" json:"port_no,omitempty"`
+	TrafficScheds []*TrafficScheduler    `protobuf:"bytes,3,rep,name=traffic_scheds,json=trafficScheds,proto3" json:"traffic_scheds,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *TrafficSchedulers) Reset()         { *m = TrafficSchedulers{} }
-func (m *TrafficSchedulers) String() string { return proto.CompactTextString(m) }
-func (*TrafficSchedulers) ProtoMessage()    {}
+func (x *TrafficSchedulers) Reset() {
+	*x = TrafficSchedulers{}
+	mi := &file_voltha_protos_tech_profile_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *TrafficSchedulers) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TrafficSchedulers) ProtoMessage() {}
+
+func (x *TrafficSchedulers) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_tech_profile_proto_msgTypes[3]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use TrafficSchedulers.ProtoReflect.Descriptor instead.
 func (*TrafficSchedulers) Descriptor() ([]byte, []int) {
-	return fileDescriptor_d019a68bffe14cae, []int{3}
+	return file_voltha_protos_tech_profile_proto_rawDescGZIP(), []int{3}
 }
 
-func (m *TrafficSchedulers) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_TrafficSchedulers.Unmarshal(m, b)
-}
-func (m *TrafficSchedulers) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_TrafficSchedulers.Marshal(b, m, deterministic)
-}
-func (m *TrafficSchedulers) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_TrafficSchedulers.Merge(m, src)
-}
-func (m *TrafficSchedulers) XXX_Size() int {
-	return xxx_messageInfo_TrafficSchedulers.Size(m)
-}
-func (m *TrafficSchedulers) XXX_DiscardUnknown() {
-	xxx_messageInfo_TrafficSchedulers.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_TrafficSchedulers proto.InternalMessageInfo
-
-func (m *TrafficSchedulers) GetIntfId() uint32 {
-	if m != nil {
-		return m.IntfId
+func (x *TrafficSchedulers) GetIntfId() uint32 {
+	if x != nil {
+		return x.IntfId
 	}
 	return 0
 }
 
-func (m *TrafficSchedulers) GetOnuId() uint32 {
-	if m != nil {
-		return m.OnuId
+func (x *TrafficSchedulers) GetOnuId() uint32 {
+	if x != nil {
+		return x.OnuId
 	}
 	return 0
 }
 
-func (m *TrafficSchedulers) GetUniId() uint32 {
-	if m != nil {
-		return m.UniId
+func (x *TrafficSchedulers) GetUniId() uint32 {
+	if x != nil {
+		return x.UniId
 	}
 	return 0
 }
 
-func (m *TrafficSchedulers) GetPortNo() uint32 {
-	if m != nil {
-		return m.PortNo
+func (x *TrafficSchedulers) GetPortNo() uint32 {
+	if x != nil {
+		return x.PortNo
 	}
 	return 0
 }
 
-func (m *TrafficSchedulers) GetTrafficScheds() []*TrafficScheduler {
-	if m != nil {
-		return m.TrafficScheds
+func (x *TrafficSchedulers) GetTrafficScheds() []*TrafficScheduler {
+	if x != nil {
+		return x.TrafficScheds
 	}
 	return nil
 }
 
 type TailDropDiscardConfig struct {
-	QueueSize            uint32   `protobuf:"fixed32,1,opt,name=queue_size,json=queueSize,proto3" json:"queue_size,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	QueueSize     uint32                 `protobuf:"fixed32,1,opt,name=queue_size,json=queueSize,proto3" json:"queue_size,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *TailDropDiscardConfig) Reset()         { *m = TailDropDiscardConfig{} }
-func (m *TailDropDiscardConfig) String() string { return proto.CompactTextString(m) }
-func (*TailDropDiscardConfig) ProtoMessage()    {}
+func (x *TailDropDiscardConfig) Reset() {
+	*x = TailDropDiscardConfig{}
+	mi := &file_voltha_protos_tech_profile_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *TailDropDiscardConfig) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TailDropDiscardConfig) ProtoMessage() {}
+
+func (x *TailDropDiscardConfig) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_tech_profile_proto_msgTypes[4]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use TailDropDiscardConfig.ProtoReflect.Descriptor instead.
 func (*TailDropDiscardConfig) Descriptor() ([]byte, []int) {
-	return fileDescriptor_d019a68bffe14cae, []int{4}
+	return file_voltha_protos_tech_profile_proto_rawDescGZIP(), []int{4}
 }
 
-func (m *TailDropDiscardConfig) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_TailDropDiscardConfig.Unmarshal(m, b)
-}
-func (m *TailDropDiscardConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_TailDropDiscardConfig.Marshal(b, m, deterministic)
-}
-func (m *TailDropDiscardConfig) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_TailDropDiscardConfig.Merge(m, src)
-}
-func (m *TailDropDiscardConfig) XXX_Size() int {
-	return xxx_messageInfo_TailDropDiscardConfig.Size(m)
-}
-func (m *TailDropDiscardConfig) XXX_DiscardUnknown() {
-	xxx_messageInfo_TailDropDiscardConfig.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_TailDropDiscardConfig proto.InternalMessageInfo
-
-func (m *TailDropDiscardConfig) GetQueueSize() uint32 {
-	if m != nil {
-		return m.QueueSize
+func (x *TailDropDiscardConfig) GetQueueSize() uint32 {
+	if x != nil {
+		return x.QueueSize
 	}
 	return 0
 }
 
 type RedDiscardConfig struct {
-	MinThreshold         uint32   `protobuf:"fixed32,1,opt,name=min_threshold,json=minThreshold,proto3" json:"min_threshold,omitempty"`
-	MaxThreshold         uint32   `protobuf:"fixed32,2,opt,name=max_threshold,json=maxThreshold,proto3" json:"max_threshold,omitempty"`
-	MaxProbability       uint32   `protobuf:"fixed32,3,opt,name=max_probability,json=maxProbability,proto3" json:"max_probability,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state          protoimpl.MessageState `protogen:"open.v1"`
+	MinThreshold   uint32                 `protobuf:"fixed32,1,opt,name=min_threshold,json=minThreshold,proto3" json:"min_threshold,omitempty"`
+	MaxThreshold   uint32                 `protobuf:"fixed32,2,opt,name=max_threshold,json=maxThreshold,proto3" json:"max_threshold,omitempty"`
+	MaxProbability uint32                 `protobuf:"fixed32,3,opt,name=max_probability,json=maxProbability,proto3" json:"max_probability,omitempty"`
+	unknownFields  protoimpl.UnknownFields
+	sizeCache      protoimpl.SizeCache
 }
 
-func (m *RedDiscardConfig) Reset()         { *m = RedDiscardConfig{} }
-func (m *RedDiscardConfig) String() string { return proto.CompactTextString(m) }
-func (*RedDiscardConfig) ProtoMessage()    {}
+func (x *RedDiscardConfig) Reset() {
+	*x = RedDiscardConfig{}
+	mi := &file_voltha_protos_tech_profile_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *RedDiscardConfig) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*RedDiscardConfig) ProtoMessage() {}
+
+func (x *RedDiscardConfig) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_tech_profile_proto_msgTypes[5]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use RedDiscardConfig.ProtoReflect.Descriptor instead.
 func (*RedDiscardConfig) Descriptor() ([]byte, []int) {
-	return fileDescriptor_d019a68bffe14cae, []int{5}
+	return file_voltha_protos_tech_profile_proto_rawDescGZIP(), []int{5}
 }
 
-func (m *RedDiscardConfig) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_RedDiscardConfig.Unmarshal(m, b)
-}
-func (m *RedDiscardConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_RedDiscardConfig.Marshal(b, m, deterministic)
-}
-func (m *RedDiscardConfig) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_RedDiscardConfig.Merge(m, src)
-}
-func (m *RedDiscardConfig) XXX_Size() int {
-	return xxx_messageInfo_RedDiscardConfig.Size(m)
-}
-func (m *RedDiscardConfig) XXX_DiscardUnknown() {
-	xxx_messageInfo_RedDiscardConfig.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_RedDiscardConfig proto.InternalMessageInfo
-
-func (m *RedDiscardConfig) GetMinThreshold() uint32 {
-	if m != nil {
-		return m.MinThreshold
+func (x *RedDiscardConfig) GetMinThreshold() uint32 {
+	if x != nil {
+		return x.MinThreshold
 	}
 	return 0
 }
 
-func (m *RedDiscardConfig) GetMaxThreshold() uint32 {
-	if m != nil {
-		return m.MaxThreshold
+func (x *RedDiscardConfig) GetMaxThreshold() uint32 {
+	if x != nil {
+		return x.MaxThreshold
 	}
 	return 0
 }
 
-func (m *RedDiscardConfig) GetMaxProbability() uint32 {
-	if m != nil {
-		return m.MaxProbability
+func (x *RedDiscardConfig) GetMaxProbability() uint32 {
+	if x != nil {
+		return x.MaxProbability
 	}
 	return 0
 }
 
 type WRedDiscardConfig struct {
-	Green                *RedDiscardConfig `protobuf:"bytes,1,opt,name=green,proto3" json:"green,omitempty"`
-	Yellow               *RedDiscardConfig `protobuf:"bytes,2,opt,name=yellow,proto3" json:"yellow,omitempty"`
-	Red                  *RedDiscardConfig `protobuf:"bytes,3,opt,name=red,proto3" json:"red,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
-	XXX_unrecognized     []byte            `json:"-"`
-	XXX_sizecache        int32             `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Green         *RedDiscardConfig      `protobuf:"bytes,1,opt,name=green,proto3" json:"green,omitempty"`
+	Yellow        *RedDiscardConfig      `protobuf:"bytes,2,opt,name=yellow,proto3" json:"yellow,omitempty"`
+	Red           *RedDiscardConfig      `protobuf:"bytes,3,opt,name=red,proto3" json:"red,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *WRedDiscardConfig) Reset()         { *m = WRedDiscardConfig{} }
-func (m *WRedDiscardConfig) String() string { return proto.CompactTextString(m) }
-func (*WRedDiscardConfig) ProtoMessage()    {}
+func (x *WRedDiscardConfig) Reset() {
+	*x = WRedDiscardConfig{}
+	mi := &file_voltha_protos_tech_profile_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *WRedDiscardConfig) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*WRedDiscardConfig) ProtoMessage() {}
+
+func (x *WRedDiscardConfig) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_tech_profile_proto_msgTypes[6]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use WRedDiscardConfig.ProtoReflect.Descriptor instead.
 func (*WRedDiscardConfig) Descriptor() ([]byte, []int) {
-	return fileDescriptor_d019a68bffe14cae, []int{6}
+	return file_voltha_protos_tech_profile_proto_rawDescGZIP(), []int{6}
 }
 
-func (m *WRedDiscardConfig) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_WRedDiscardConfig.Unmarshal(m, b)
-}
-func (m *WRedDiscardConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_WRedDiscardConfig.Marshal(b, m, deterministic)
-}
-func (m *WRedDiscardConfig) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_WRedDiscardConfig.Merge(m, src)
-}
-func (m *WRedDiscardConfig) XXX_Size() int {
-	return xxx_messageInfo_WRedDiscardConfig.Size(m)
-}
-func (m *WRedDiscardConfig) XXX_DiscardUnknown() {
-	xxx_messageInfo_WRedDiscardConfig.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_WRedDiscardConfig proto.InternalMessageInfo
-
-func (m *WRedDiscardConfig) GetGreen() *RedDiscardConfig {
-	if m != nil {
-		return m.Green
+func (x *WRedDiscardConfig) GetGreen() *RedDiscardConfig {
+	if x != nil {
+		return x.Green
 	}
 	return nil
 }
 
-func (m *WRedDiscardConfig) GetYellow() *RedDiscardConfig {
-	if m != nil {
-		return m.Yellow
+func (x *WRedDiscardConfig) GetYellow() *RedDiscardConfig {
+	if x != nil {
+		return x.Yellow
 	}
 	return nil
 }
 
-func (m *WRedDiscardConfig) GetRed() *RedDiscardConfig {
-	if m != nil {
-		return m.Red
+func (x *WRedDiscardConfig) GetRed() *RedDiscardConfig {
+	if x != nil {
+		return x.Red
 	}
 	return nil
 }
 
 type DiscardConfig struct {
-	DiscardPolicy DiscardPolicy `protobuf:"varint,1,opt,name=discard_policy,json=discardPolicy,proto3,enum=tech_profile.DiscardPolicy" json:"discard_policy,omitempty"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	DiscardPolicy DiscardPolicy          `protobuf:"varint,1,opt,name=discard_policy,json=discardPolicy,proto3,enum=tech_profile.DiscardPolicy" json:"discard_policy,omitempty"`
 	// Types that are valid to be assigned to DiscardConfig:
+	//
 	//	*DiscardConfig_TailDropDiscardConfig
 	//	*DiscardConfig_RedDiscardConfig
 	//	*DiscardConfig_WredDiscardConfig
-	DiscardConfig        isDiscardConfig_DiscardConfig `protobuf_oneof:"discard_config"`
-	XXX_NoUnkeyedLiteral struct{}                      `json:"-"`
-	XXX_unrecognized     []byte                        `json:"-"`
-	XXX_sizecache        int32                         `json:"-"`
+	DiscardConfig isDiscardConfig_DiscardConfig `protobuf_oneof:"discard_config"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *DiscardConfig) Reset()         { *m = DiscardConfig{} }
-func (m *DiscardConfig) String() string { return proto.CompactTextString(m) }
-func (*DiscardConfig) ProtoMessage()    {}
+func (x *DiscardConfig) Reset() {
+	*x = DiscardConfig{}
+	mi := &file_voltha_protos_tech_profile_proto_msgTypes[7]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *DiscardConfig) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DiscardConfig) ProtoMessage() {}
+
+func (x *DiscardConfig) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_tech_profile_proto_msgTypes[7]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use DiscardConfig.ProtoReflect.Descriptor instead.
 func (*DiscardConfig) Descriptor() ([]byte, []int) {
-	return fileDescriptor_d019a68bffe14cae, []int{7}
+	return file_voltha_protos_tech_profile_proto_rawDescGZIP(), []int{7}
 }
 
-func (m *DiscardConfig) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_DiscardConfig.Unmarshal(m, b)
-}
-func (m *DiscardConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_DiscardConfig.Marshal(b, m, deterministic)
-}
-func (m *DiscardConfig) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_DiscardConfig.Merge(m, src)
-}
-func (m *DiscardConfig) XXX_Size() int {
-	return xxx_messageInfo_DiscardConfig.Size(m)
-}
-func (m *DiscardConfig) XXX_DiscardUnknown() {
-	xxx_messageInfo_DiscardConfig.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_DiscardConfig proto.InternalMessageInfo
-
-func (m *DiscardConfig) GetDiscardPolicy() DiscardPolicy {
-	if m != nil {
-		return m.DiscardPolicy
+func (x *DiscardConfig) GetDiscardPolicy() DiscardPolicy {
+	if x != nil {
+		return x.DiscardPolicy
 	}
 	return DiscardPolicy_TailDrop
 }
 
+func (x *DiscardConfig) GetDiscardConfig() isDiscardConfig_DiscardConfig {
+	if x != nil {
+		return x.DiscardConfig
+	}
+	return nil
+}
+
+func (x *DiscardConfig) GetTailDropDiscardConfig() *TailDropDiscardConfig {
+	if x != nil {
+		if x, ok := x.DiscardConfig.(*DiscardConfig_TailDropDiscardConfig); ok {
+			return x.TailDropDiscardConfig
+		}
+	}
+	return nil
+}
+
+func (x *DiscardConfig) GetRedDiscardConfig() *RedDiscardConfig {
+	if x != nil {
+		if x, ok := x.DiscardConfig.(*DiscardConfig_RedDiscardConfig); ok {
+			return x.RedDiscardConfig
+		}
+	}
+	return nil
+}
+
+func (x *DiscardConfig) GetWredDiscardConfig() *WRedDiscardConfig {
+	if x != nil {
+		if x, ok := x.DiscardConfig.(*DiscardConfig_WredDiscardConfig); ok {
+			return x.WredDiscardConfig
+		}
+	}
+	return nil
+}
+
 type isDiscardConfig_DiscardConfig interface {
 	isDiscardConfig_DiscardConfig()
 }
@@ -674,870 +869,874 @@
 
 func (*DiscardConfig_WredDiscardConfig) isDiscardConfig_DiscardConfig() {}
 
-func (m *DiscardConfig) GetDiscardConfig() isDiscardConfig_DiscardConfig {
-	if m != nil {
-		return m.DiscardConfig
-	}
-	return nil
-}
-
-func (m *DiscardConfig) GetTailDropDiscardConfig() *TailDropDiscardConfig {
-	if x, ok := m.GetDiscardConfig().(*DiscardConfig_TailDropDiscardConfig); ok {
-		return x.TailDropDiscardConfig
-	}
-	return nil
-}
-
-func (m *DiscardConfig) GetRedDiscardConfig() *RedDiscardConfig {
-	if x, ok := m.GetDiscardConfig().(*DiscardConfig_RedDiscardConfig); ok {
-		return x.RedDiscardConfig
-	}
-	return nil
-}
-
-func (m *DiscardConfig) GetWredDiscardConfig() *WRedDiscardConfig {
-	if x, ok := m.GetDiscardConfig().(*DiscardConfig_WredDiscardConfig); ok {
-		return x.WredDiscardConfig
-	}
-	return nil
-}
-
-// XXX_OneofWrappers is for the internal use of the proto package.
-func (*DiscardConfig) XXX_OneofWrappers() []interface{} {
-	return []interface{}{
-		(*DiscardConfig_TailDropDiscardConfig)(nil),
-		(*DiscardConfig_RedDiscardConfig)(nil),
-		(*DiscardConfig_WredDiscardConfig)(nil),
-	}
-}
-
 type TrafficQueue struct {
-	Direction            Direction        `protobuf:"varint,1,opt,name=direction,proto3,enum=tech_profile.Direction" json:"direction,omitempty"`
-	GemportId            uint32           `protobuf:"fixed32,2,opt,name=gemport_id,json=gemportId,proto3" json:"gemport_id,omitempty"`
-	PbitMap              string           `protobuf:"bytes,3,opt,name=pbit_map,json=pbitMap,proto3" json:"pbit_map,omitempty"`
-	AesEncryption        bool             `protobuf:"varint,4,opt,name=aes_encryption,json=aesEncryption,proto3" json:"aes_encryption,omitempty"`
-	SchedPolicy          SchedulingPolicy `protobuf:"varint,5,opt,name=sched_policy,json=schedPolicy,proto3,enum=tech_profile.SchedulingPolicy" json:"sched_policy,omitempty"`
-	Priority             uint32           `protobuf:"fixed32,6,opt,name=priority,proto3" json:"priority,omitempty"`
-	Weight               uint32           `protobuf:"fixed32,7,opt,name=weight,proto3" json:"weight,omitempty"`
-	DiscardPolicy        DiscardPolicy    `protobuf:"varint,8,opt,name=discard_policy,json=discardPolicy,proto3,enum=tech_profile.DiscardPolicy" json:"discard_policy,omitempty"`
-	DiscardConfig        *DiscardConfig   `protobuf:"bytes,9,opt,name=discard_config,json=discardConfig,proto3" json:"discard_config,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
-	XXX_unrecognized     []byte           `json:"-"`
-	XXX_sizecache        int32            `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Direction     Direction              `protobuf:"varint,1,opt,name=direction,proto3,enum=tech_profile.Direction" json:"direction,omitempty"`
+	GemportId     uint32                 `protobuf:"fixed32,2,opt,name=gemport_id,json=gemportId,proto3" json:"gemport_id,omitempty"`
+	PbitMap       string                 `protobuf:"bytes,3,opt,name=pbit_map,json=pbitMap,proto3" json:"pbit_map,omitempty"`
+	AesEncryption bool                   `protobuf:"varint,4,opt,name=aes_encryption,json=aesEncryption,proto3" json:"aes_encryption,omitempty"`
+	SchedPolicy   SchedulingPolicy       `protobuf:"varint,5,opt,name=sched_policy,json=schedPolicy,proto3,enum=tech_profile.SchedulingPolicy" json:"sched_policy,omitempty"` // This can be SP or WRR
+	Priority      uint32                 `protobuf:"fixed32,6,opt,name=priority,proto3" json:"priority,omitempty"`
+	Weight        uint32                 `protobuf:"fixed32,7,opt,name=weight,proto3" json:"weight,omitempty"`
+	DiscardPolicy DiscardPolicy          `protobuf:"varint,8,opt,name=discard_policy,json=discardPolicy,proto3,enum=tech_profile.DiscardPolicy" json:"discard_policy,omitempty"`
+	DiscardConfig *DiscardConfig         `protobuf:"bytes,9,opt,name=discard_config,json=discardConfig,proto3" json:"discard_config,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *TrafficQueue) Reset()         { *m = TrafficQueue{} }
-func (m *TrafficQueue) String() string { return proto.CompactTextString(m) }
-func (*TrafficQueue) ProtoMessage()    {}
+func (x *TrafficQueue) Reset() {
+	*x = TrafficQueue{}
+	mi := &file_voltha_protos_tech_profile_proto_msgTypes[8]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *TrafficQueue) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TrafficQueue) ProtoMessage() {}
+
+func (x *TrafficQueue) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_tech_profile_proto_msgTypes[8]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use TrafficQueue.ProtoReflect.Descriptor instead.
 func (*TrafficQueue) Descriptor() ([]byte, []int) {
-	return fileDescriptor_d019a68bffe14cae, []int{8}
+	return file_voltha_protos_tech_profile_proto_rawDescGZIP(), []int{8}
 }
 
-func (m *TrafficQueue) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_TrafficQueue.Unmarshal(m, b)
-}
-func (m *TrafficQueue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_TrafficQueue.Marshal(b, m, deterministic)
-}
-func (m *TrafficQueue) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_TrafficQueue.Merge(m, src)
-}
-func (m *TrafficQueue) XXX_Size() int {
-	return xxx_messageInfo_TrafficQueue.Size(m)
-}
-func (m *TrafficQueue) XXX_DiscardUnknown() {
-	xxx_messageInfo_TrafficQueue.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_TrafficQueue proto.InternalMessageInfo
-
-func (m *TrafficQueue) GetDirection() Direction {
-	if m != nil {
-		return m.Direction
+func (x *TrafficQueue) GetDirection() Direction {
+	if x != nil {
+		return x.Direction
 	}
 	return Direction_UPSTREAM
 }
 
-func (m *TrafficQueue) GetGemportId() uint32 {
-	if m != nil {
-		return m.GemportId
+func (x *TrafficQueue) GetGemportId() uint32 {
+	if x != nil {
+		return x.GemportId
 	}
 	return 0
 }
 
-func (m *TrafficQueue) GetPbitMap() string {
-	if m != nil {
-		return m.PbitMap
+func (x *TrafficQueue) GetPbitMap() string {
+	if x != nil {
+		return x.PbitMap
 	}
 	return ""
 }
 
-func (m *TrafficQueue) GetAesEncryption() bool {
-	if m != nil {
-		return m.AesEncryption
+func (x *TrafficQueue) GetAesEncryption() bool {
+	if x != nil {
+		return x.AesEncryption
 	}
 	return false
 }
 
-func (m *TrafficQueue) GetSchedPolicy() SchedulingPolicy {
-	if m != nil {
-		return m.SchedPolicy
+func (x *TrafficQueue) GetSchedPolicy() SchedulingPolicy {
+	if x != nil {
+		return x.SchedPolicy
 	}
 	return SchedulingPolicy_WRR
 }
 
-func (m *TrafficQueue) GetPriority() uint32 {
-	if m != nil {
-		return m.Priority
+func (x *TrafficQueue) GetPriority() uint32 {
+	if x != nil {
+		return x.Priority
 	}
 	return 0
 }
 
-func (m *TrafficQueue) GetWeight() uint32 {
-	if m != nil {
-		return m.Weight
+func (x *TrafficQueue) GetWeight() uint32 {
+	if x != nil {
+		return x.Weight
 	}
 	return 0
 }
 
-func (m *TrafficQueue) GetDiscardPolicy() DiscardPolicy {
-	if m != nil {
-		return m.DiscardPolicy
+func (x *TrafficQueue) GetDiscardPolicy() DiscardPolicy {
+	if x != nil {
+		return x.DiscardPolicy
 	}
 	return DiscardPolicy_TailDrop
 }
 
-func (m *TrafficQueue) GetDiscardConfig() *DiscardConfig {
-	if m != nil {
-		return m.DiscardConfig
+func (x *TrafficQueue) GetDiscardConfig() *DiscardConfig {
+	if x != nil {
+		return x.DiscardConfig
 	}
 	return nil
 }
 
 type TrafficQueues struct {
-	IntfId               uint32          `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
-	OnuId                uint32          `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
-	UniId                uint32          `protobuf:"fixed32,4,opt,name=uni_id,json=uniId,proto3" json:"uni_id,omitempty"`
-	PortNo               uint32          `protobuf:"fixed32,5,opt,name=port_no,json=portNo,proto3" json:"port_no,omitempty"`
-	TrafficQueues        []*TrafficQueue `protobuf:"bytes,6,rep,name=traffic_queues,json=trafficQueues,proto3" json:"traffic_queues,omitempty"`
-	TechProfileId        uint32          `protobuf:"fixed32,7,opt,name=tech_profile_id,json=techProfileId,proto3" json:"tech_profile_id,omitempty"`
-	NetworkIntfId        uint32          `protobuf:"fixed32,8,opt,name=network_intf_id,json=networkIntfId,proto3" json:"network_intf_id,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
-	XXX_unrecognized     []byte          `json:"-"`
-	XXX_sizecache        int32           `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	IntfId        uint32                 `protobuf:"fixed32,1,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
+	OnuId         uint32                 `protobuf:"fixed32,2,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
+	UniId         uint32                 `protobuf:"fixed32,4,opt,name=uni_id,json=uniId,proto3" json:"uni_id,omitempty"`
+	PortNo        uint32                 `protobuf:"fixed32,5,opt,name=port_no,json=portNo,proto3" json:"port_no,omitempty"`
+	TrafficQueues []*TrafficQueue        `protobuf:"bytes,6,rep,name=traffic_queues,json=trafficQueues,proto3" json:"traffic_queues,omitempty"`
+	TechProfileId uint32                 `protobuf:"fixed32,7,opt,name=tech_profile_id,json=techProfileId,proto3" json:"tech_profile_id,omitempty"`
+	NetworkIntfId uint32                 `protobuf:"fixed32,8,opt,name=network_intf_id,json=networkIntfId,proto3" json:"network_intf_id,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *TrafficQueues) Reset()         { *m = TrafficQueues{} }
-func (m *TrafficQueues) String() string { return proto.CompactTextString(m) }
-func (*TrafficQueues) ProtoMessage()    {}
+func (x *TrafficQueues) Reset() {
+	*x = TrafficQueues{}
+	mi := &file_voltha_protos_tech_profile_proto_msgTypes[9]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *TrafficQueues) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TrafficQueues) ProtoMessage() {}
+
+func (x *TrafficQueues) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_tech_profile_proto_msgTypes[9]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use TrafficQueues.ProtoReflect.Descriptor instead.
 func (*TrafficQueues) Descriptor() ([]byte, []int) {
-	return fileDescriptor_d019a68bffe14cae, []int{9}
+	return file_voltha_protos_tech_profile_proto_rawDescGZIP(), []int{9}
 }
 
-func (m *TrafficQueues) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_TrafficQueues.Unmarshal(m, b)
-}
-func (m *TrafficQueues) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_TrafficQueues.Marshal(b, m, deterministic)
-}
-func (m *TrafficQueues) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_TrafficQueues.Merge(m, src)
-}
-func (m *TrafficQueues) XXX_Size() int {
-	return xxx_messageInfo_TrafficQueues.Size(m)
-}
-func (m *TrafficQueues) XXX_DiscardUnknown() {
-	xxx_messageInfo_TrafficQueues.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_TrafficQueues proto.InternalMessageInfo
-
-func (m *TrafficQueues) GetIntfId() uint32 {
-	if m != nil {
-		return m.IntfId
+func (x *TrafficQueues) GetIntfId() uint32 {
+	if x != nil {
+		return x.IntfId
 	}
 	return 0
 }
 
-func (m *TrafficQueues) GetOnuId() uint32 {
-	if m != nil {
-		return m.OnuId
+func (x *TrafficQueues) GetOnuId() uint32 {
+	if x != nil {
+		return x.OnuId
 	}
 	return 0
 }
 
-func (m *TrafficQueues) GetUniId() uint32 {
-	if m != nil {
-		return m.UniId
+func (x *TrafficQueues) GetUniId() uint32 {
+	if x != nil {
+		return x.UniId
 	}
 	return 0
 }
 
-func (m *TrafficQueues) GetPortNo() uint32 {
-	if m != nil {
-		return m.PortNo
+func (x *TrafficQueues) GetPortNo() uint32 {
+	if x != nil {
+		return x.PortNo
 	}
 	return 0
 }
 
-func (m *TrafficQueues) GetTrafficQueues() []*TrafficQueue {
-	if m != nil {
-		return m.TrafficQueues
+func (x *TrafficQueues) GetTrafficQueues() []*TrafficQueue {
+	if x != nil {
+		return x.TrafficQueues
 	}
 	return nil
 }
 
-func (m *TrafficQueues) GetTechProfileId() uint32 {
-	if m != nil {
-		return m.TechProfileId
+func (x *TrafficQueues) GetTechProfileId() uint32 {
+	if x != nil {
+		return x.TechProfileId
 	}
 	return 0
 }
 
-func (m *TrafficQueues) GetNetworkIntfId() uint32 {
-	if m != nil {
-		return m.NetworkIntfId
+func (x *TrafficQueues) GetNetworkIntfId() uint32 {
+	if x != nil {
+		return x.NetworkIntfId
 	}
 	return 0
 }
 
 type InstanceControl struct {
-	Onu                  string   `protobuf:"bytes,1,opt,name=onu,proto3" json:"onu,omitempty"`
-	Uni                  string   `protobuf:"bytes,2,opt,name=uni,proto3" json:"uni,omitempty"`
-	MaxGemPayloadSize    string   `protobuf:"bytes,3,opt,name=max_gem_payload_size,json=maxGemPayloadSize,proto3" json:"max_gem_payload_size,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state             protoimpl.MessageState `protogen:"open.v1"`
+	Onu               string                 `protobuf:"bytes,1,opt,name=onu,proto3" json:"onu,omitempty"`
+	Uni               string                 `protobuf:"bytes,2,opt,name=uni,proto3" json:"uni,omitempty"`
+	MaxGemPayloadSize string                 `protobuf:"bytes,3,opt,name=max_gem_payload_size,json=maxGemPayloadSize,proto3" json:"max_gem_payload_size,omitempty"`
+	unknownFields     protoimpl.UnknownFields
+	sizeCache         protoimpl.SizeCache
 }
 
-func (m *InstanceControl) Reset()         { *m = InstanceControl{} }
-func (m *InstanceControl) String() string { return proto.CompactTextString(m) }
-func (*InstanceControl) ProtoMessage()    {}
+func (x *InstanceControl) Reset() {
+	*x = InstanceControl{}
+	mi := &file_voltha_protos_tech_profile_proto_msgTypes[10]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *InstanceControl) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*InstanceControl) ProtoMessage() {}
+
+func (x *InstanceControl) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_tech_profile_proto_msgTypes[10]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use InstanceControl.ProtoReflect.Descriptor instead.
 func (*InstanceControl) Descriptor() ([]byte, []int) {
-	return fileDescriptor_d019a68bffe14cae, []int{10}
+	return file_voltha_protos_tech_profile_proto_rawDescGZIP(), []int{10}
 }
 
-func (m *InstanceControl) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_InstanceControl.Unmarshal(m, b)
-}
-func (m *InstanceControl) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_InstanceControl.Marshal(b, m, deterministic)
-}
-func (m *InstanceControl) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_InstanceControl.Merge(m, src)
-}
-func (m *InstanceControl) XXX_Size() int {
-	return xxx_messageInfo_InstanceControl.Size(m)
-}
-func (m *InstanceControl) XXX_DiscardUnknown() {
-	xxx_messageInfo_InstanceControl.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_InstanceControl proto.InternalMessageInfo
-
-func (m *InstanceControl) GetOnu() string {
-	if m != nil {
-		return m.Onu
+func (x *InstanceControl) GetOnu() string {
+	if x != nil {
+		return x.Onu
 	}
 	return ""
 }
 
-func (m *InstanceControl) GetUni() string {
-	if m != nil {
-		return m.Uni
+func (x *InstanceControl) GetUni() string {
+	if x != nil {
+		return x.Uni
 	}
 	return ""
 }
 
-func (m *InstanceControl) GetMaxGemPayloadSize() string {
-	if m != nil {
-		return m.MaxGemPayloadSize
+func (x *InstanceControl) GetMaxGemPayloadSize() string {
+	if x != nil {
+		return x.MaxGemPayloadSize
 	}
 	return ""
 }
 
 type QThresholds struct {
-	QThreshold1          uint32   `protobuf:"varint,1,opt,name=q_threshold1,json=qThreshold1,proto3" json:"q_threshold1,omitempty"`
-	QThreshold2          uint32   `protobuf:"varint,2,opt,name=q_threshold2,json=qThreshold2,proto3" json:"q_threshold2,omitempty"`
-	QThreshold3          uint32   `protobuf:"varint,3,opt,name=q_threshold3,json=qThreshold3,proto3" json:"q_threshold3,omitempty"`
-	QThreshold4          uint32   `protobuf:"varint,4,opt,name=q_threshold4,json=qThreshold4,proto3" json:"q_threshold4,omitempty"`
-	QThreshold5          uint32   `protobuf:"varint,5,opt,name=q_threshold5,json=qThreshold5,proto3" json:"q_threshold5,omitempty"`
-	QThreshold6          uint32   `protobuf:"varint,6,opt,name=q_threshold6,json=qThreshold6,proto3" json:"q_threshold6,omitempty"`
-	QThreshold7          uint32   `protobuf:"varint,7,opt,name=q_threshold7,json=qThreshold7,proto3" json:"q_threshold7,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	QThreshold1   uint32                 `protobuf:"varint,1,opt,name=q_threshold1,json=qThreshold1,proto3" json:"q_threshold1,omitempty"`
+	QThreshold2   uint32                 `protobuf:"varint,2,opt,name=q_threshold2,json=qThreshold2,proto3" json:"q_threshold2,omitempty"`
+	QThreshold3   uint32                 `protobuf:"varint,3,opt,name=q_threshold3,json=qThreshold3,proto3" json:"q_threshold3,omitempty"`
+	QThreshold4   uint32                 `protobuf:"varint,4,opt,name=q_threshold4,json=qThreshold4,proto3" json:"q_threshold4,omitempty"`
+	QThreshold5   uint32                 `protobuf:"varint,5,opt,name=q_threshold5,json=qThreshold5,proto3" json:"q_threshold5,omitempty"`
+	QThreshold6   uint32                 `protobuf:"varint,6,opt,name=q_threshold6,json=qThreshold6,proto3" json:"q_threshold6,omitempty"`
+	QThreshold7   uint32                 `protobuf:"varint,7,opt,name=q_threshold7,json=qThreshold7,proto3" json:"q_threshold7,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *QThresholds) Reset()         { *m = QThresholds{} }
-func (m *QThresholds) String() string { return proto.CompactTextString(m) }
-func (*QThresholds) ProtoMessage()    {}
+func (x *QThresholds) Reset() {
+	*x = QThresholds{}
+	mi := &file_voltha_protos_tech_profile_proto_msgTypes[11]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *QThresholds) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*QThresholds) ProtoMessage() {}
+
+func (x *QThresholds) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_tech_profile_proto_msgTypes[11]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use QThresholds.ProtoReflect.Descriptor instead.
 func (*QThresholds) Descriptor() ([]byte, []int) {
-	return fileDescriptor_d019a68bffe14cae, []int{11}
+	return file_voltha_protos_tech_profile_proto_rawDescGZIP(), []int{11}
 }
 
-func (m *QThresholds) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_QThresholds.Unmarshal(m, b)
-}
-func (m *QThresholds) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_QThresholds.Marshal(b, m, deterministic)
-}
-func (m *QThresholds) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_QThresholds.Merge(m, src)
-}
-func (m *QThresholds) XXX_Size() int {
-	return xxx_messageInfo_QThresholds.Size(m)
-}
-func (m *QThresholds) XXX_DiscardUnknown() {
-	xxx_messageInfo_QThresholds.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_QThresholds proto.InternalMessageInfo
-
-func (m *QThresholds) GetQThreshold1() uint32 {
-	if m != nil {
-		return m.QThreshold1
+func (x *QThresholds) GetQThreshold1() uint32 {
+	if x != nil {
+		return x.QThreshold1
 	}
 	return 0
 }
 
-func (m *QThresholds) GetQThreshold2() uint32 {
-	if m != nil {
-		return m.QThreshold2
+func (x *QThresholds) GetQThreshold2() uint32 {
+	if x != nil {
+		return x.QThreshold2
 	}
 	return 0
 }
 
-func (m *QThresholds) GetQThreshold3() uint32 {
-	if m != nil {
-		return m.QThreshold3
+func (x *QThresholds) GetQThreshold3() uint32 {
+	if x != nil {
+		return x.QThreshold3
 	}
 	return 0
 }
 
-func (m *QThresholds) GetQThreshold4() uint32 {
-	if m != nil {
-		return m.QThreshold4
+func (x *QThresholds) GetQThreshold4() uint32 {
+	if x != nil {
+		return x.QThreshold4
 	}
 	return 0
 }
 
-func (m *QThresholds) GetQThreshold5() uint32 {
-	if m != nil {
-		return m.QThreshold5
+func (x *QThresholds) GetQThreshold5() uint32 {
+	if x != nil {
+		return x.QThreshold5
 	}
 	return 0
 }
 
-func (m *QThresholds) GetQThreshold6() uint32 {
-	if m != nil {
-		return m.QThreshold6
+func (x *QThresholds) GetQThreshold6() uint32 {
+	if x != nil {
+		return x.QThreshold6
 	}
 	return 0
 }
 
-func (m *QThresholds) GetQThreshold7() uint32 {
-	if m != nil {
-		return m.QThreshold7
+func (x *QThresholds) GetQThreshold7() uint32 {
+	if x != nil {
+		return x.QThreshold7
 	}
 	return 0
 }
 
 type GemPortAttributes struct {
-	GemportId                uint32            `protobuf:"fixed32,1,opt,name=gemport_id,json=gemportId,proto3" json:"gemport_id,omitempty"`
-	MaxQSize                 string            `protobuf:"bytes,2,opt,name=max_q_size,json=maxQSize,proto3" json:"max_q_size,omitempty"`
-	PbitMap                  string            `protobuf:"bytes,3,opt,name=pbit_map,json=pbitMap,proto3" json:"pbit_map,omitempty"`
-	AesEncryption            string            `protobuf:"bytes,4,opt,name=aes_encryption,json=aesEncryption,proto3" json:"aes_encryption,omitempty"`
-	SchedulingPolicy         SchedulingPolicy  `protobuf:"varint,5,opt,name=scheduling_policy,json=schedulingPolicy,proto3,enum=tech_profile.SchedulingPolicy" json:"scheduling_policy,omitempty"`
-	PriorityQ                uint32            `protobuf:"fixed32,6,opt,name=priority_q,json=priorityQ,proto3" json:"priority_q,omitempty"`
-	Weight                   uint32            `protobuf:"fixed32,7,opt,name=weight,proto3" json:"weight,omitempty"`
-	DiscardPolicy            DiscardPolicy     `protobuf:"varint,8,opt,name=discard_policy,json=discardPolicy,proto3,enum=tech_profile.DiscardPolicy" json:"discard_policy,omitempty"`
-	DiscardConfig            *RedDiscardConfig `protobuf:"bytes,9,opt,name=discard_config,json=discardConfig,proto3" json:"discard_config,omitempty"`
-	DiscardConfigV2          *DiscardConfig    `protobuf:"bytes,14,opt,name=discard_config_v2,json=discardConfigV2,proto3" json:"discard_config_v2,omitempty"`
-	IsMulticast              string            `protobuf:"bytes,10,opt,name=is_multicast,json=isMulticast,proto3" json:"is_multicast,omitempty"`
-	MulticastGemId           uint32            `protobuf:"fixed32,11,opt,name=multicast_gem_id,json=multicastGemId,proto3" json:"multicast_gem_id,omitempty"`
-	DynamicAccessControlList string            `protobuf:"bytes,12,opt,name=dynamic_access_control_list,json=dynamicAccessControlList,proto3" json:"dynamic_access_control_list,omitempty"`
-	StaticAccessControlList  string            `protobuf:"bytes,13,opt,name=static_access_control_list,json=staticAccessControlList,proto3" json:"static_access_control_list,omitempty"`
-	XXX_NoUnkeyedLiteral     struct{}          `json:"-"`
-	XXX_unrecognized         []byte            `json:"-"`
-	XXX_sizecache            int32             `json:"-"`
+	state                    protoimpl.MessageState `protogen:"open.v1"`
+	GemportId                uint32                 `protobuf:"fixed32,1,opt,name=gemport_id,json=gemportId,proto3" json:"gemport_id,omitempty"` // valid only when referenced in the tech profile instance
+	MaxQSize                 string                 `protobuf:"bytes,2,opt,name=max_q_size,json=maxQSize,proto3" json:"max_q_size,omitempty"`
+	PbitMap                  string                 `protobuf:"bytes,3,opt,name=pbit_map,json=pbitMap,proto3" json:"pbit_map,omitempty"`
+	AesEncryption            string                 `protobuf:"bytes,4,opt,name=aes_encryption,json=aesEncryption,proto3" json:"aes_encryption,omitempty"`
+	SchedulingPolicy         SchedulingPolicy       `protobuf:"varint,5,opt,name=scheduling_policy,json=schedulingPolicy,proto3,enum=tech_profile.SchedulingPolicy" json:"scheduling_policy,omitempty"` // This can be SP or WRR
+	PriorityQ                uint32                 `protobuf:"fixed32,6,opt,name=priority_q,json=priorityQ,proto3" json:"priority_q,omitempty"`
+	Weight                   uint32                 `protobuf:"fixed32,7,opt,name=weight,proto3" json:"weight,omitempty"`
+	DiscardPolicy            DiscardPolicy          `protobuf:"varint,8,opt,name=discard_policy,json=discardPolicy,proto3,enum=tech_profile.DiscardPolicy" json:"discard_policy,omitempty"`
+	DiscardConfig            *RedDiscardConfig      `protobuf:"bytes,9,opt,name=discard_config,json=discardConfig,proto3" json:"discard_config,omitempty"`          // used with version 1 of tech profile
+	DiscardConfigV2          *DiscardConfig         `protobuf:"bytes,14,opt,name=discard_config_v2,json=discardConfigV2,proto3" json:"discard_config_v2,omitempty"` // used with version 2 of tech profile
+	IsMulticast              string                 `protobuf:"bytes,10,opt,name=is_multicast,json=isMulticast,proto3" json:"is_multicast,omitempty"`
+	MulticastGemId           uint32                 `protobuf:"fixed32,11,opt,name=multicast_gem_id,json=multicastGemId,proto3" json:"multicast_gem_id,omitempty"`
+	DynamicAccessControlList string                 `protobuf:"bytes,12,opt,name=dynamic_access_control_list,json=dynamicAccessControlList,proto3" json:"dynamic_access_control_list,omitempty"`
+	StaticAccessControlList  string                 `protobuf:"bytes,13,opt,name=static_access_control_list,json=staticAccessControlList,proto3" json:"static_access_control_list,omitempty"`
+	unknownFields            protoimpl.UnknownFields
+	sizeCache                protoimpl.SizeCache
 }
 
-func (m *GemPortAttributes) Reset()         { *m = GemPortAttributes{} }
-func (m *GemPortAttributes) String() string { return proto.CompactTextString(m) }
-func (*GemPortAttributes) ProtoMessage()    {}
+func (x *GemPortAttributes) Reset() {
+	*x = GemPortAttributes{}
+	mi := &file_voltha_protos_tech_profile_proto_msgTypes[12]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *GemPortAttributes) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GemPortAttributes) ProtoMessage() {}
+
+func (x *GemPortAttributes) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_tech_profile_proto_msgTypes[12]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use GemPortAttributes.ProtoReflect.Descriptor instead.
 func (*GemPortAttributes) Descriptor() ([]byte, []int) {
-	return fileDescriptor_d019a68bffe14cae, []int{12}
+	return file_voltha_protos_tech_profile_proto_rawDescGZIP(), []int{12}
 }
 
-func (m *GemPortAttributes) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_GemPortAttributes.Unmarshal(m, b)
-}
-func (m *GemPortAttributes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_GemPortAttributes.Marshal(b, m, deterministic)
-}
-func (m *GemPortAttributes) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_GemPortAttributes.Merge(m, src)
-}
-func (m *GemPortAttributes) XXX_Size() int {
-	return xxx_messageInfo_GemPortAttributes.Size(m)
-}
-func (m *GemPortAttributes) XXX_DiscardUnknown() {
-	xxx_messageInfo_GemPortAttributes.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_GemPortAttributes proto.InternalMessageInfo
-
-func (m *GemPortAttributes) GetGemportId() uint32 {
-	if m != nil {
-		return m.GemportId
+func (x *GemPortAttributes) GetGemportId() uint32 {
+	if x != nil {
+		return x.GemportId
 	}
 	return 0
 }
 
-func (m *GemPortAttributes) GetMaxQSize() string {
-	if m != nil {
-		return m.MaxQSize
+func (x *GemPortAttributes) GetMaxQSize() string {
+	if x != nil {
+		return x.MaxQSize
 	}
 	return ""
 }
 
-func (m *GemPortAttributes) GetPbitMap() string {
-	if m != nil {
-		return m.PbitMap
+func (x *GemPortAttributes) GetPbitMap() string {
+	if x != nil {
+		return x.PbitMap
 	}
 	return ""
 }
 
-func (m *GemPortAttributes) GetAesEncryption() string {
-	if m != nil {
-		return m.AesEncryption
+func (x *GemPortAttributes) GetAesEncryption() string {
+	if x != nil {
+		return x.AesEncryption
 	}
 	return ""
 }
 
-func (m *GemPortAttributes) GetSchedulingPolicy() SchedulingPolicy {
-	if m != nil {
-		return m.SchedulingPolicy
+func (x *GemPortAttributes) GetSchedulingPolicy() SchedulingPolicy {
+	if x != nil {
+		return x.SchedulingPolicy
 	}
 	return SchedulingPolicy_WRR
 }
 
-func (m *GemPortAttributes) GetPriorityQ() uint32 {
-	if m != nil {
-		return m.PriorityQ
+func (x *GemPortAttributes) GetPriorityQ() uint32 {
+	if x != nil {
+		return x.PriorityQ
 	}
 	return 0
 }
 
-func (m *GemPortAttributes) GetWeight() uint32 {
-	if m != nil {
-		return m.Weight
+func (x *GemPortAttributes) GetWeight() uint32 {
+	if x != nil {
+		return x.Weight
 	}
 	return 0
 }
 
-func (m *GemPortAttributes) GetDiscardPolicy() DiscardPolicy {
-	if m != nil {
-		return m.DiscardPolicy
+func (x *GemPortAttributes) GetDiscardPolicy() DiscardPolicy {
+	if x != nil {
+		return x.DiscardPolicy
 	}
 	return DiscardPolicy_TailDrop
 }
 
-func (m *GemPortAttributes) GetDiscardConfig() *RedDiscardConfig {
-	if m != nil {
-		return m.DiscardConfig
+func (x *GemPortAttributes) GetDiscardConfig() *RedDiscardConfig {
+	if x != nil {
+		return x.DiscardConfig
 	}
 	return nil
 }
 
-func (m *GemPortAttributes) GetDiscardConfigV2() *DiscardConfig {
-	if m != nil {
-		return m.DiscardConfigV2
+func (x *GemPortAttributes) GetDiscardConfigV2() *DiscardConfig {
+	if x != nil {
+		return x.DiscardConfigV2
 	}
 	return nil
 }
 
-func (m *GemPortAttributes) GetIsMulticast() string {
-	if m != nil {
-		return m.IsMulticast
+func (x *GemPortAttributes) GetIsMulticast() string {
+	if x != nil {
+		return x.IsMulticast
 	}
 	return ""
 }
 
-func (m *GemPortAttributes) GetMulticastGemId() uint32 {
-	if m != nil {
-		return m.MulticastGemId
+func (x *GemPortAttributes) GetMulticastGemId() uint32 {
+	if x != nil {
+		return x.MulticastGemId
 	}
 	return 0
 }
 
-func (m *GemPortAttributes) GetDynamicAccessControlList() string {
-	if m != nil {
-		return m.DynamicAccessControlList
+func (x *GemPortAttributes) GetDynamicAccessControlList() string {
+	if x != nil {
+		return x.DynamicAccessControlList
 	}
 	return ""
 }
 
-func (m *GemPortAttributes) GetStaticAccessControlList() string {
-	if m != nil {
-		return m.StaticAccessControlList
+func (x *GemPortAttributes) GetStaticAccessControlList() string {
+	if x != nil {
+		return x.StaticAccessControlList
 	}
 	return ""
 }
 
 type SchedulerAttributes struct {
-	Direction            Direction        `protobuf:"varint,1,opt,name=direction,proto3,enum=tech_profile.Direction" json:"direction,omitempty"`
-	AllocId              uint32           `protobuf:"varint,2,opt,name=alloc_id,json=allocId,proto3" json:"alloc_id,omitempty"`
-	AdditionalBw         AdditionalBW     `protobuf:"varint,3,opt,name=additional_bw,json=additionalBw,proto3,enum=tech_profile.AdditionalBW" json:"additional_bw,omitempty"`
-	Priority             uint32           `protobuf:"fixed32,4,opt,name=priority,proto3" json:"priority,omitempty"`
-	Weight               uint32           `protobuf:"fixed32,5,opt,name=weight,proto3" json:"weight,omitempty"`
-	QSchedPolicy         SchedulingPolicy `protobuf:"varint,6,opt,name=q_sched_policy,json=qSchedPolicy,proto3,enum=tech_profile.SchedulingPolicy" json:"q_sched_policy,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
-	XXX_unrecognized     []byte           `json:"-"`
-	XXX_sizecache        int32            `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Direction     Direction              `protobuf:"varint,1,opt,name=direction,proto3,enum=tech_profile.Direction" json:"direction,omitempty"`
+	AllocId       uint32                 `protobuf:"varint,2,opt,name=alloc_id,json=allocId,proto3" json:"alloc_id,omitempty"`                                               //  Valid on for “direction == Upstream” and when referenced in the tech profile instance
+	AdditionalBw  AdditionalBW           `protobuf:"varint,3,opt,name=additional_bw,json=additionalBw,proto3,enum=tech_profile.AdditionalBW" json:"additional_bw,omitempty"` // Valid on for “direction == Upstream”.
+	Priority      uint32                 `protobuf:"fixed32,4,opt,name=priority,proto3" json:"priority,omitempty"`
+	Weight        uint32                 `protobuf:"fixed32,5,opt,name=weight,proto3" json:"weight,omitempty"`
+	QSchedPolicy  SchedulingPolicy       `protobuf:"varint,6,opt,name=q_sched_policy,json=qSchedPolicy,proto3,enum=tech_profile.SchedulingPolicy" json:"q_sched_policy,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *SchedulerAttributes) Reset()         { *m = SchedulerAttributes{} }
-func (m *SchedulerAttributes) String() string { return proto.CompactTextString(m) }
-func (*SchedulerAttributes) ProtoMessage()    {}
+func (x *SchedulerAttributes) Reset() {
+	*x = SchedulerAttributes{}
+	mi := &file_voltha_protos_tech_profile_proto_msgTypes[13]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *SchedulerAttributes) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SchedulerAttributes) ProtoMessage() {}
+
+func (x *SchedulerAttributes) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_tech_profile_proto_msgTypes[13]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SchedulerAttributes.ProtoReflect.Descriptor instead.
 func (*SchedulerAttributes) Descriptor() ([]byte, []int) {
-	return fileDescriptor_d019a68bffe14cae, []int{13}
+	return file_voltha_protos_tech_profile_proto_rawDescGZIP(), []int{13}
 }
 
-func (m *SchedulerAttributes) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_SchedulerAttributes.Unmarshal(m, b)
-}
-func (m *SchedulerAttributes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_SchedulerAttributes.Marshal(b, m, deterministic)
-}
-func (m *SchedulerAttributes) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_SchedulerAttributes.Merge(m, src)
-}
-func (m *SchedulerAttributes) XXX_Size() int {
-	return xxx_messageInfo_SchedulerAttributes.Size(m)
-}
-func (m *SchedulerAttributes) XXX_DiscardUnknown() {
-	xxx_messageInfo_SchedulerAttributes.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_SchedulerAttributes proto.InternalMessageInfo
-
-func (m *SchedulerAttributes) GetDirection() Direction {
-	if m != nil {
-		return m.Direction
+func (x *SchedulerAttributes) GetDirection() Direction {
+	if x != nil {
+		return x.Direction
 	}
 	return Direction_UPSTREAM
 }
 
-func (m *SchedulerAttributes) GetAllocId() uint32 {
-	if m != nil {
-		return m.AllocId
+func (x *SchedulerAttributes) GetAllocId() uint32 {
+	if x != nil {
+		return x.AllocId
 	}
 	return 0
 }
 
-func (m *SchedulerAttributes) GetAdditionalBw() AdditionalBW {
-	if m != nil {
-		return m.AdditionalBw
+func (x *SchedulerAttributes) GetAdditionalBw() AdditionalBW {
+	if x != nil {
+		return x.AdditionalBw
 	}
 	return AdditionalBW_AdditionalBW_None
 }
 
-func (m *SchedulerAttributes) GetPriority() uint32 {
-	if m != nil {
-		return m.Priority
+func (x *SchedulerAttributes) GetPriority() uint32 {
+	if x != nil {
+		return x.Priority
 	}
 	return 0
 }
 
-func (m *SchedulerAttributes) GetWeight() uint32 {
-	if m != nil {
-		return m.Weight
+func (x *SchedulerAttributes) GetWeight() uint32 {
+	if x != nil {
+		return x.Weight
 	}
 	return 0
 }
 
-func (m *SchedulerAttributes) GetQSchedPolicy() SchedulingPolicy {
-	if m != nil {
-		return m.QSchedPolicy
+func (x *SchedulerAttributes) GetQSchedPolicy() SchedulingPolicy {
+	if x != nil {
+		return x.QSchedPolicy
 	}
 	return SchedulingPolicy_WRR
 }
 
 type EPONQueueAttributes struct {
-	MaxQSize                  string            `protobuf:"bytes,1,opt,name=max_q_size,json=maxQSize,proto3" json:"max_q_size,omitempty"`
-	PbitMap                   string            `protobuf:"bytes,2,opt,name=pbit_map,json=pbitMap,proto3" json:"pbit_map,omitempty"`
-	GemportId                 uint32            `protobuf:"varint,3,opt,name=gemport_id,json=gemportId,proto3" json:"gemport_id,omitempty"`
-	AesEncryption             string            `protobuf:"bytes,4,opt,name=aes_encryption,json=aesEncryption,proto3" json:"aes_encryption,omitempty"`
-	TrafficType               string            `protobuf:"bytes,5,opt,name=traffic_type,json=trafficType,proto3" json:"traffic_type,omitempty"`
-	UnsolicitedGrantSize      uint32            `protobuf:"varint,6,opt,name=unsolicited_grant_size,json=unsolicitedGrantSize,proto3" json:"unsolicited_grant_size,omitempty"`
-	NominalInterval           uint32            `protobuf:"varint,7,opt,name=nominal_interval,json=nominalInterval,proto3" json:"nominal_interval,omitempty"`
-	ToleratedPollJitter       uint32            `protobuf:"varint,8,opt,name=tolerated_poll_jitter,json=toleratedPollJitter,proto3" json:"tolerated_poll_jitter,omitempty"`
-	RequestTransmissionPolicy uint32            `protobuf:"varint,9,opt,name=request_transmission_policy,json=requestTransmissionPolicy,proto3" json:"request_transmission_policy,omitempty"`
-	NumQSets                  uint32            `protobuf:"varint,10,opt,name=num_q_sets,json=numQSets,proto3" json:"num_q_sets,omitempty"`
-	QThresholds               *QThresholds      `protobuf:"bytes,11,opt,name=q_thresholds,json=qThresholds,proto3" json:"q_thresholds,omitempty"`
-	SchedulingPolicy          SchedulingPolicy  `protobuf:"varint,12,opt,name=scheduling_policy,json=schedulingPolicy,proto3,enum=tech_profile.SchedulingPolicy" json:"scheduling_policy,omitempty"`
-	PriorityQ                 uint32            `protobuf:"varint,13,opt,name=priority_q,json=priorityQ,proto3" json:"priority_q,omitempty"`
-	Weight                    uint32            `protobuf:"varint,14,opt,name=weight,proto3" json:"weight,omitempty"`
-	DiscardPolicy             DiscardPolicy     `protobuf:"varint,15,opt,name=discard_policy,json=discardPolicy,proto3,enum=tech_profile.DiscardPolicy" json:"discard_policy,omitempty"`
-	DiscardConfig             *RedDiscardConfig `protobuf:"bytes,16,opt,name=discard_config,json=discardConfig,proto3" json:"discard_config,omitempty"`
-	DiscardConfigV2           *DiscardConfig    `protobuf:"bytes,17,opt,name=discard_config_v2,json=discardConfigV2,proto3" json:"discard_config_v2,omitempty"`
-	XXX_NoUnkeyedLiteral      struct{}          `json:"-"`
-	XXX_unrecognized          []byte            `json:"-"`
-	XXX_sizecache             int32             `json:"-"`
+	state                     protoimpl.MessageState `protogen:"open.v1"`
+	MaxQSize                  string                 `protobuf:"bytes,1,opt,name=max_q_size,json=maxQSize,proto3" json:"max_q_size,omitempty"`
+	PbitMap                   string                 `protobuf:"bytes,2,opt,name=pbit_map,json=pbitMap,proto3" json:"pbit_map,omitempty"`
+	GemportId                 uint32                 `protobuf:"varint,3,opt,name=gemport_id,json=gemportId,proto3" json:"gemport_id,omitempty"`
+	AesEncryption             string                 `protobuf:"bytes,4,opt,name=aes_encryption,json=aesEncryption,proto3" json:"aes_encryption,omitempty"`
+	TrafficType               string                 `protobuf:"bytes,5,opt,name=traffic_type,json=trafficType,proto3" json:"traffic_type,omitempty"`
+	UnsolicitedGrantSize      uint32                 `protobuf:"varint,6,opt,name=unsolicited_grant_size,json=unsolicitedGrantSize,proto3" json:"unsolicited_grant_size,omitempty"`
+	NominalInterval           uint32                 `protobuf:"varint,7,opt,name=nominal_interval,json=nominalInterval,proto3" json:"nominal_interval,omitempty"`
+	ToleratedPollJitter       uint32                 `protobuf:"varint,8,opt,name=tolerated_poll_jitter,json=toleratedPollJitter,proto3" json:"tolerated_poll_jitter,omitempty"`
+	RequestTransmissionPolicy uint32                 `protobuf:"varint,9,opt,name=request_transmission_policy,json=requestTransmissionPolicy,proto3" json:"request_transmission_policy,omitempty"`
+	NumQSets                  uint32                 `protobuf:"varint,10,opt,name=num_q_sets,json=numQSets,proto3" json:"num_q_sets,omitempty"`
+	QThresholds               *QThresholds           `protobuf:"bytes,11,opt,name=q_thresholds,json=qThresholds,proto3" json:"q_thresholds,omitempty"`
+	SchedulingPolicy          SchedulingPolicy       `protobuf:"varint,12,opt,name=scheduling_policy,json=schedulingPolicy,proto3,enum=tech_profile.SchedulingPolicy" json:"scheduling_policy,omitempty"`
+	PriorityQ                 uint32                 `protobuf:"varint,13,opt,name=priority_q,json=priorityQ,proto3" json:"priority_q,omitempty"`
+	Weight                    uint32                 `protobuf:"varint,14,opt,name=weight,proto3" json:"weight,omitempty"`
+	DiscardPolicy             DiscardPolicy          `protobuf:"varint,15,opt,name=discard_policy,json=discardPolicy,proto3,enum=tech_profile.DiscardPolicy" json:"discard_policy,omitempty"`
+	DiscardConfig             *RedDiscardConfig      `protobuf:"bytes,16,opt,name=discard_config,json=discardConfig,proto3" json:"discard_config,omitempty"`         // used with version 1 of tech profile
+	DiscardConfigV2           *DiscardConfig         `protobuf:"bytes,17,opt,name=discard_config_v2,json=discardConfigV2,proto3" json:"discard_config_v2,omitempty"` // used with version 2 of tech profile
+	unknownFields             protoimpl.UnknownFields
+	sizeCache                 protoimpl.SizeCache
 }
 
-func (m *EPONQueueAttributes) Reset()         { *m = EPONQueueAttributes{} }
-func (m *EPONQueueAttributes) String() string { return proto.CompactTextString(m) }
-func (*EPONQueueAttributes) ProtoMessage()    {}
+func (x *EPONQueueAttributes) Reset() {
+	*x = EPONQueueAttributes{}
+	mi := &file_voltha_protos_tech_profile_proto_msgTypes[14]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *EPONQueueAttributes) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*EPONQueueAttributes) ProtoMessage() {}
+
+func (x *EPONQueueAttributes) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_tech_profile_proto_msgTypes[14]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use EPONQueueAttributes.ProtoReflect.Descriptor instead.
 func (*EPONQueueAttributes) Descriptor() ([]byte, []int) {
-	return fileDescriptor_d019a68bffe14cae, []int{14}
+	return file_voltha_protos_tech_profile_proto_rawDescGZIP(), []int{14}
 }
 
-func (m *EPONQueueAttributes) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_EPONQueueAttributes.Unmarshal(m, b)
-}
-func (m *EPONQueueAttributes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_EPONQueueAttributes.Marshal(b, m, deterministic)
-}
-func (m *EPONQueueAttributes) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_EPONQueueAttributes.Merge(m, src)
-}
-func (m *EPONQueueAttributes) XXX_Size() int {
-	return xxx_messageInfo_EPONQueueAttributes.Size(m)
-}
-func (m *EPONQueueAttributes) XXX_DiscardUnknown() {
-	xxx_messageInfo_EPONQueueAttributes.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_EPONQueueAttributes proto.InternalMessageInfo
-
-func (m *EPONQueueAttributes) GetMaxQSize() string {
-	if m != nil {
-		return m.MaxQSize
+func (x *EPONQueueAttributes) GetMaxQSize() string {
+	if x != nil {
+		return x.MaxQSize
 	}
 	return ""
 }
 
-func (m *EPONQueueAttributes) GetPbitMap() string {
-	if m != nil {
-		return m.PbitMap
+func (x *EPONQueueAttributes) GetPbitMap() string {
+	if x != nil {
+		return x.PbitMap
 	}
 	return ""
 }
 
-func (m *EPONQueueAttributes) GetGemportId() uint32 {
-	if m != nil {
-		return m.GemportId
+func (x *EPONQueueAttributes) GetGemportId() uint32 {
+	if x != nil {
+		return x.GemportId
 	}
 	return 0
 }
 
-func (m *EPONQueueAttributes) GetAesEncryption() string {
-	if m != nil {
-		return m.AesEncryption
+func (x *EPONQueueAttributes) GetAesEncryption() string {
+	if x != nil {
+		return x.AesEncryption
 	}
 	return ""
 }
 
-func (m *EPONQueueAttributes) GetTrafficType() string {
-	if m != nil {
-		return m.TrafficType
+func (x *EPONQueueAttributes) GetTrafficType() string {
+	if x != nil {
+		return x.TrafficType
 	}
 	return ""
 }
 
-func (m *EPONQueueAttributes) GetUnsolicitedGrantSize() uint32 {
-	if m != nil {
-		return m.UnsolicitedGrantSize
+func (x *EPONQueueAttributes) GetUnsolicitedGrantSize() uint32 {
+	if x != nil {
+		return x.UnsolicitedGrantSize
 	}
 	return 0
 }
 
-func (m *EPONQueueAttributes) GetNominalInterval() uint32 {
-	if m != nil {
-		return m.NominalInterval
+func (x *EPONQueueAttributes) GetNominalInterval() uint32 {
+	if x != nil {
+		return x.NominalInterval
 	}
 	return 0
 }
 
-func (m *EPONQueueAttributes) GetToleratedPollJitter() uint32 {
-	if m != nil {
-		return m.ToleratedPollJitter
+func (x *EPONQueueAttributes) GetToleratedPollJitter() uint32 {
+	if x != nil {
+		return x.ToleratedPollJitter
 	}
 	return 0
 }
 
-func (m *EPONQueueAttributes) GetRequestTransmissionPolicy() uint32 {
-	if m != nil {
-		return m.RequestTransmissionPolicy
+func (x *EPONQueueAttributes) GetRequestTransmissionPolicy() uint32 {
+	if x != nil {
+		return x.RequestTransmissionPolicy
 	}
 	return 0
 }
 
-func (m *EPONQueueAttributes) GetNumQSets() uint32 {
-	if m != nil {
-		return m.NumQSets
+func (x *EPONQueueAttributes) GetNumQSets() uint32 {
+	if x != nil {
+		return x.NumQSets
 	}
 	return 0
 }
 
-func (m *EPONQueueAttributes) GetQThresholds() *QThresholds {
-	if m != nil {
-		return m.QThresholds
+func (x *EPONQueueAttributes) GetQThresholds() *QThresholds {
+	if x != nil {
+		return x.QThresholds
 	}
 	return nil
 }
 
-func (m *EPONQueueAttributes) GetSchedulingPolicy() SchedulingPolicy {
-	if m != nil {
-		return m.SchedulingPolicy
+func (x *EPONQueueAttributes) GetSchedulingPolicy() SchedulingPolicy {
+	if x != nil {
+		return x.SchedulingPolicy
 	}
 	return SchedulingPolicy_WRR
 }
 
-func (m *EPONQueueAttributes) GetPriorityQ() uint32 {
-	if m != nil {
-		return m.PriorityQ
+func (x *EPONQueueAttributes) GetPriorityQ() uint32 {
+	if x != nil {
+		return x.PriorityQ
 	}
 	return 0
 }
 
-func (m *EPONQueueAttributes) GetWeight() uint32 {
-	if m != nil {
-		return m.Weight
+func (x *EPONQueueAttributes) GetWeight() uint32 {
+	if x != nil {
+		return x.Weight
 	}
 	return 0
 }
 
-func (m *EPONQueueAttributes) GetDiscardPolicy() DiscardPolicy {
-	if m != nil {
-		return m.DiscardPolicy
+func (x *EPONQueueAttributes) GetDiscardPolicy() DiscardPolicy {
+	if x != nil {
+		return x.DiscardPolicy
 	}
 	return DiscardPolicy_TailDrop
 }
 
-func (m *EPONQueueAttributes) GetDiscardConfig() *RedDiscardConfig {
-	if m != nil {
-		return m.DiscardConfig
+func (x *EPONQueueAttributes) GetDiscardConfig() *RedDiscardConfig {
+	if x != nil {
+		return x.DiscardConfig
 	}
 	return nil
 }
 
-func (m *EPONQueueAttributes) GetDiscardConfigV2() *DiscardConfig {
-	if m != nil {
-		return m.DiscardConfigV2
+func (x *EPONQueueAttributes) GetDiscardConfigV2() *DiscardConfig {
+	if x != nil {
+		return x.DiscardConfigV2
 	}
 	return nil
 }
 
 // TechProfile definition (relevant for GPON, XGPON and XGS-PON technologies)
 type TechProfile struct {
-	Name                           string               `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
-	Version                        uint32               `protobuf:"varint,2,opt,name=version,proto3" json:"version,omitempty"`
-	ProfileType                    string               `protobuf:"bytes,3,opt,name=profile_type,json=profileType,proto3" json:"profile_type,omitempty"`
-	NumGemPorts                    uint32               `protobuf:"varint,4,opt,name=num_gem_ports,json=numGemPorts,proto3" json:"num_gem_ports,omitempty"`
-	InstanceControl                *InstanceControl     `protobuf:"bytes,5,opt,name=instance_control,json=instanceControl,proto3" json:"instance_control,omitempty"`
-	UsScheduler                    *SchedulerAttributes `protobuf:"bytes,6,opt,name=us_scheduler,json=usScheduler,proto3" json:"us_scheduler,omitempty"`
-	DsScheduler                    *SchedulerAttributes `protobuf:"bytes,7,opt,name=ds_scheduler,json=dsScheduler,proto3" json:"ds_scheduler,omitempty"`
-	UpstreamGemPortAttributeList   []*GemPortAttributes `protobuf:"bytes,8,rep,name=upstream_gem_port_attribute_list,json=upstreamGemPortAttributeList,proto3" json:"upstream_gem_port_attribute_list,omitempty"`
-	DownstreamGemPortAttributeList []*GemPortAttributes `protobuf:"bytes,9,rep,name=downstream_gem_port_attribute_list,json=downstreamGemPortAttributeList,proto3" json:"downstream_gem_port_attribute_list,omitempty"`
-	XXX_NoUnkeyedLiteral           struct{}             `json:"-"`
-	XXX_unrecognized               []byte               `json:"-"`
-	XXX_sizecache                  int32                `json:"-"`
+	state                          protoimpl.MessageState `protogen:"open.v1"`
+	Name                           string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+	Version                        uint32                 `protobuf:"varint,2,opt,name=version,proto3" json:"version,omitempty"`
+	ProfileType                    string                 `protobuf:"bytes,3,opt,name=profile_type,json=profileType,proto3" json:"profile_type,omitempty"`
+	NumGemPorts                    uint32                 `protobuf:"varint,4,opt,name=num_gem_ports,json=numGemPorts,proto3" json:"num_gem_ports,omitempty"`
+	InstanceControl                *InstanceControl       `protobuf:"bytes,5,opt,name=instance_control,json=instanceControl,proto3" json:"instance_control,omitempty"`
+	UsScheduler                    *SchedulerAttributes   `protobuf:"bytes,6,opt,name=us_scheduler,json=usScheduler,proto3" json:"us_scheduler,omitempty"`
+	DsScheduler                    *SchedulerAttributes   `protobuf:"bytes,7,opt,name=ds_scheduler,json=dsScheduler,proto3" json:"ds_scheduler,omitempty"`
+	UpstreamGemPortAttributeList   []*GemPortAttributes   `protobuf:"bytes,8,rep,name=upstream_gem_port_attribute_list,json=upstreamGemPortAttributeList,proto3" json:"upstream_gem_port_attribute_list,omitempty"`
+	DownstreamGemPortAttributeList []*GemPortAttributes   `protobuf:"bytes,9,rep,name=downstream_gem_port_attribute_list,json=downstreamGemPortAttributeList,proto3" json:"downstream_gem_port_attribute_list,omitempty"`
+	unknownFields                  protoimpl.UnknownFields
+	sizeCache                      protoimpl.SizeCache
 }
 
-func (m *TechProfile) Reset()         { *m = TechProfile{} }
-func (m *TechProfile) String() string { return proto.CompactTextString(m) }
-func (*TechProfile) ProtoMessage()    {}
+func (x *TechProfile) Reset() {
+	*x = TechProfile{}
+	mi := &file_voltha_protos_tech_profile_proto_msgTypes[15]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *TechProfile) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TechProfile) ProtoMessage() {}
+
+func (x *TechProfile) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_tech_profile_proto_msgTypes[15]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use TechProfile.ProtoReflect.Descriptor instead.
 func (*TechProfile) Descriptor() ([]byte, []int) {
-	return fileDescriptor_d019a68bffe14cae, []int{15}
+	return file_voltha_protos_tech_profile_proto_rawDescGZIP(), []int{15}
 }
 
-func (m *TechProfile) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_TechProfile.Unmarshal(m, b)
-}
-func (m *TechProfile) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_TechProfile.Marshal(b, m, deterministic)
-}
-func (m *TechProfile) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_TechProfile.Merge(m, src)
-}
-func (m *TechProfile) XXX_Size() int {
-	return xxx_messageInfo_TechProfile.Size(m)
-}
-func (m *TechProfile) XXX_DiscardUnknown() {
-	xxx_messageInfo_TechProfile.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_TechProfile proto.InternalMessageInfo
-
-func (m *TechProfile) GetName() string {
-	if m != nil {
-		return m.Name
+func (x *TechProfile) GetName() string {
+	if x != nil {
+		return x.Name
 	}
 	return ""
 }
 
-func (m *TechProfile) GetVersion() uint32 {
-	if m != nil {
-		return m.Version
+func (x *TechProfile) GetVersion() uint32 {
+	if x != nil {
+		return x.Version
 	}
 	return 0
 }
 
-func (m *TechProfile) GetProfileType() string {
-	if m != nil {
-		return m.ProfileType
+func (x *TechProfile) GetProfileType() string {
+	if x != nil {
+		return x.ProfileType
 	}
 	return ""
 }
 
-func (m *TechProfile) GetNumGemPorts() uint32 {
-	if m != nil {
-		return m.NumGemPorts
+func (x *TechProfile) GetNumGemPorts() uint32 {
+	if x != nil {
+		return x.NumGemPorts
 	}
 	return 0
 }
 
-func (m *TechProfile) GetInstanceControl() *InstanceControl {
-	if m != nil {
-		return m.InstanceControl
+func (x *TechProfile) GetInstanceControl() *InstanceControl {
+	if x != nil {
+		return x.InstanceControl
 	}
 	return nil
 }
 
-func (m *TechProfile) GetUsScheduler() *SchedulerAttributes {
-	if m != nil {
-		return m.UsScheduler
+func (x *TechProfile) GetUsScheduler() *SchedulerAttributes {
+	if x != nil {
+		return x.UsScheduler
 	}
 	return nil
 }
 
-func (m *TechProfile) GetDsScheduler() *SchedulerAttributes {
-	if m != nil {
-		return m.DsScheduler
+func (x *TechProfile) GetDsScheduler() *SchedulerAttributes {
+	if x != nil {
+		return x.DsScheduler
 	}
 	return nil
 }
 
-func (m *TechProfile) GetUpstreamGemPortAttributeList() []*GemPortAttributes {
-	if m != nil {
-		return m.UpstreamGemPortAttributeList
+func (x *TechProfile) GetUpstreamGemPortAttributeList() []*GemPortAttributes {
+	if x != nil {
+		return x.UpstreamGemPortAttributeList
 	}
 	return nil
 }
 
-func (m *TechProfile) GetDownstreamGemPortAttributeList() []*GemPortAttributes {
-	if m != nil {
-		return m.DownstreamGemPortAttributeList
+func (x *TechProfile) GetDownstreamGemPortAttributeList() []*GemPortAttributes {
+	if x != nil {
+		return x.DownstreamGemPortAttributeList
 	}
 	return nil
 }
 
 // EPON TechProfile definition
 type EponTechProfile struct {
+	state                        protoimpl.MessageState `protogen:"open.v1"`
 	Name                         string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	Version                      uint32                 `protobuf:"varint,2,opt,name=version,proto3" json:"version,omitempty"`
 	ProfileType                  string                 `protobuf:"bytes,3,opt,name=profile_type,json=profileType,proto3" json:"profile_type,omitempty"`
@@ -1546,206 +1745,216 @@
 	PackageType                  string                 `protobuf:"bytes,6,opt,name=package_type,json=packageType,proto3" json:"package_type,omitempty"`
 	UpstreamQueueAttributeList   []*EPONQueueAttributes `protobuf:"bytes,7,rep,name=upstream_queue_attribute_list,json=upstreamQueueAttributeList,proto3" json:"upstream_queue_attribute_list,omitempty"`
 	DownstreamQueueAttributeList []*EPONQueueAttributes `protobuf:"bytes,8,rep,name=downstream_queue_attribute_list,json=downstreamQueueAttributeList,proto3" json:"downstream_queue_attribute_list,omitempty"`
-	XXX_NoUnkeyedLiteral         struct{}               `json:"-"`
-	XXX_unrecognized             []byte                 `json:"-"`
-	XXX_sizecache                int32                  `json:"-"`
+	unknownFields                protoimpl.UnknownFields
+	sizeCache                    protoimpl.SizeCache
 }
 
-func (m *EponTechProfile) Reset()         { *m = EponTechProfile{} }
-func (m *EponTechProfile) String() string { return proto.CompactTextString(m) }
-func (*EponTechProfile) ProtoMessage()    {}
+func (x *EponTechProfile) Reset() {
+	*x = EponTechProfile{}
+	mi := &file_voltha_protos_tech_profile_proto_msgTypes[16]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *EponTechProfile) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*EponTechProfile) ProtoMessage() {}
+
+func (x *EponTechProfile) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_tech_profile_proto_msgTypes[16]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use EponTechProfile.ProtoReflect.Descriptor instead.
 func (*EponTechProfile) Descriptor() ([]byte, []int) {
-	return fileDescriptor_d019a68bffe14cae, []int{16}
+	return file_voltha_protos_tech_profile_proto_rawDescGZIP(), []int{16}
 }
 
-func (m *EponTechProfile) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_EponTechProfile.Unmarshal(m, b)
-}
-func (m *EponTechProfile) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_EponTechProfile.Marshal(b, m, deterministic)
-}
-func (m *EponTechProfile) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_EponTechProfile.Merge(m, src)
-}
-func (m *EponTechProfile) XXX_Size() int {
-	return xxx_messageInfo_EponTechProfile.Size(m)
-}
-func (m *EponTechProfile) XXX_DiscardUnknown() {
-	xxx_messageInfo_EponTechProfile.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_EponTechProfile proto.InternalMessageInfo
-
-func (m *EponTechProfile) GetName() string {
-	if m != nil {
-		return m.Name
+func (x *EponTechProfile) GetName() string {
+	if x != nil {
+		return x.Name
 	}
 	return ""
 }
 
-func (m *EponTechProfile) GetVersion() uint32 {
-	if m != nil {
-		return m.Version
+func (x *EponTechProfile) GetVersion() uint32 {
+	if x != nil {
+		return x.Version
 	}
 	return 0
 }
 
-func (m *EponTechProfile) GetProfileType() string {
-	if m != nil {
-		return m.ProfileType
+func (x *EponTechProfile) GetProfileType() string {
+	if x != nil {
+		return x.ProfileType
 	}
 	return ""
 }
 
-func (m *EponTechProfile) GetNumGemPorts() uint32 {
-	if m != nil {
-		return m.NumGemPorts
+func (x *EponTechProfile) GetNumGemPorts() uint32 {
+	if x != nil {
+		return x.NumGemPorts
 	}
 	return 0
 }
 
-func (m *EponTechProfile) GetInstanceControl() *InstanceControl {
-	if m != nil {
-		return m.InstanceControl
+func (x *EponTechProfile) GetInstanceControl() *InstanceControl {
+	if x != nil {
+		return x.InstanceControl
 	}
 	return nil
 }
 
-func (m *EponTechProfile) GetPackageType() string {
-	if m != nil {
-		return m.PackageType
+func (x *EponTechProfile) GetPackageType() string {
+	if x != nil {
+		return x.PackageType
 	}
 	return ""
 }
 
-func (m *EponTechProfile) GetUpstreamQueueAttributeList() []*EPONQueueAttributes {
-	if m != nil {
-		return m.UpstreamQueueAttributeList
+func (x *EponTechProfile) GetUpstreamQueueAttributeList() []*EPONQueueAttributes {
+	if x != nil {
+		return x.UpstreamQueueAttributeList
 	}
 	return nil
 }
 
-func (m *EponTechProfile) GetDownstreamQueueAttributeList() []*EPONQueueAttributes {
-	if m != nil {
-		return m.DownstreamQueueAttributeList
+func (x *EponTechProfile) GetDownstreamQueueAttributeList() []*EPONQueueAttributes {
+	if x != nil {
+		return x.DownstreamQueueAttributeList
 	}
 	return nil
 }
 
 // TechProfile Instance definition (relevant for GPON, XGPON and XGS-PON technologies)
 type TechProfileInstance struct {
-	Name                           string               `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
-	Version                        uint32               `protobuf:"varint,2,opt,name=version,proto3" json:"version,omitempty"`
-	SubscriberIdentifier           string               `protobuf:"bytes,3,opt,name=subscriber_identifier,json=subscriberIdentifier,proto3" json:"subscriber_identifier,omitempty"`
-	ProfileType                    string               `protobuf:"bytes,4,opt,name=profile_type,json=profileType,proto3" json:"profile_type,omitempty"`
-	NumGemPorts                    uint32               `protobuf:"varint,5,opt,name=num_gem_ports,json=numGemPorts,proto3" json:"num_gem_ports,omitempty"`
-	InstanceControl                *InstanceControl     `protobuf:"bytes,6,opt,name=instance_control,json=instanceControl,proto3" json:"instance_control,omitempty"`
-	UsScheduler                    *SchedulerAttributes `protobuf:"bytes,7,opt,name=us_scheduler,json=usScheduler,proto3" json:"us_scheduler,omitempty"`
-	DsScheduler                    *SchedulerAttributes `protobuf:"bytes,8,opt,name=ds_scheduler,json=dsScheduler,proto3" json:"ds_scheduler,omitempty"`
-	UpstreamGemPortAttributeList   []*GemPortAttributes `protobuf:"bytes,9,rep,name=upstream_gem_port_attribute_list,json=upstreamGemPortAttributeList,proto3" json:"upstream_gem_port_attribute_list,omitempty"`
-	DownstreamGemPortAttributeList []*GemPortAttributes `protobuf:"bytes,10,rep,name=downstream_gem_port_attribute_list,json=downstreamGemPortAttributeList,proto3" json:"downstream_gem_port_attribute_list,omitempty"`
-	XXX_NoUnkeyedLiteral           struct{}             `json:"-"`
-	XXX_unrecognized               []byte               `json:"-"`
-	XXX_sizecache                  int32                `json:"-"`
+	state                          protoimpl.MessageState `protogen:"open.v1"`
+	Name                           string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+	Version                        uint32                 `protobuf:"varint,2,opt,name=version,proto3" json:"version,omitempty"`
+	SubscriberIdentifier           string                 `protobuf:"bytes,3,opt,name=subscriber_identifier,json=subscriberIdentifier,proto3" json:"subscriber_identifier,omitempty"`
+	ProfileType                    string                 `protobuf:"bytes,4,opt,name=profile_type,json=profileType,proto3" json:"profile_type,omitempty"`
+	NumGemPorts                    uint32                 `protobuf:"varint,5,opt,name=num_gem_ports,json=numGemPorts,proto3" json:"num_gem_ports,omitempty"`
+	InstanceControl                *InstanceControl       `protobuf:"bytes,6,opt,name=instance_control,json=instanceControl,proto3" json:"instance_control,omitempty"`
+	UsScheduler                    *SchedulerAttributes   `protobuf:"bytes,7,opt,name=us_scheduler,json=usScheduler,proto3" json:"us_scheduler,omitempty"`
+	DsScheduler                    *SchedulerAttributes   `protobuf:"bytes,8,opt,name=ds_scheduler,json=dsScheduler,proto3" json:"ds_scheduler,omitempty"`
+	UpstreamGemPortAttributeList   []*GemPortAttributes   `protobuf:"bytes,9,rep,name=upstream_gem_port_attribute_list,json=upstreamGemPortAttributeList,proto3" json:"upstream_gem_port_attribute_list,omitempty"`
+	DownstreamGemPortAttributeList []*GemPortAttributes   `protobuf:"bytes,10,rep,name=downstream_gem_port_attribute_list,json=downstreamGemPortAttributeList,proto3" json:"downstream_gem_port_attribute_list,omitempty"`
+	unknownFields                  protoimpl.UnknownFields
+	sizeCache                      protoimpl.SizeCache
 }
 
-func (m *TechProfileInstance) Reset()         { *m = TechProfileInstance{} }
-func (m *TechProfileInstance) String() string { return proto.CompactTextString(m) }
-func (*TechProfileInstance) ProtoMessage()    {}
+func (x *TechProfileInstance) Reset() {
+	*x = TechProfileInstance{}
+	mi := &file_voltha_protos_tech_profile_proto_msgTypes[17]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *TechProfileInstance) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TechProfileInstance) ProtoMessage() {}
+
+func (x *TechProfileInstance) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_tech_profile_proto_msgTypes[17]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use TechProfileInstance.ProtoReflect.Descriptor instead.
 func (*TechProfileInstance) Descriptor() ([]byte, []int) {
-	return fileDescriptor_d019a68bffe14cae, []int{17}
+	return file_voltha_protos_tech_profile_proto_rawDescGZIP(), []int{17}
 }
 
-func (m *TechProfileInstance) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_TechProfileInstance.Unmarshal(m, b)
-}
-func (m *TechProfileInstance) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_TechProfileInstance.Marshal(b, m, deterministic)
-}
-func (m *TechProfileInstance) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_TechProfileInstance.Merge(m, src)
-}
-func (m *TechProfileInstance) XXX_Size() int {
-	return xxx_messageInfo_TechProfileInstance.Size(m)
-}
-func (m *TechProfileInstance) XXX_DiscardUnknown() {
-	xxx_messageInfo_TechProfileInstance.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_TechProfileInstance proto.InternalMessageInfo
-
-func (m *TechProfileInstance) GetName() string {
-	if m != nil {
-		return m.Name
+func (x *TechProfileInstance) GetName() string {
+	if x != nil {
+		return x.Name
 	}
 	return ""
 }
 
-func (m *TechProfileInstance) GetVersion() uint32 {
-	if m != nil {
-		return m.Version
+func (x *TechProfileInstance) GetVersion() uint32 {
+	if x != nil {
+		return x.Version
 	}
 	return 0
 }
 
-func (m *TechProfileInstance) GetSubscriberIdentifier() string {
-	if m != nil {
-		return m.SubscriberIdentifier
+func (x *TechProfileInstance) GetSubscriberIdentifier() string {
+	if x != nil {
+		return x.SubscriberIdentifier
 	}
 	return ""
 }
 
-func (m *TechProfileInstance) GetProfileType() string {
-	if m != nil {
-		return m.ProfileType
+func (x *TechProfileInstance) GetProfileType() string {
+	if x != nil {
+		return x.ProfileType
 	}
 	return ""
 }
 
-func (m *TechProfileInstance) GetNumGemPorts() uint32 {
-	if m != nil {
-		return m.NumGemPorts
+func (x *TechProfileInstance) GetNumGemPorts() uint32 {
+	if x != nil {
+		return x.NumGemPorts
 	}
 	return 0
 }
 
-func (m *TechProfileInstance) GetInstanceControl() *InstanceControl {
-	if m != nil {
-		return m.InstanceControl
+func (x *TechProfileInstance) GetInstanceControl() *InstanceControl {
+	if x != nil {
+		return x.InstanceControl
 	}
 	return nil
 }
 
-func (m *TechProfileInstance) GetUsScheduler() *SchedulerAttributes {
-	if m != nil {
-		return m.UsScheduler
+func (x *TechProfileInstance) GetUsScheduler() *SchedulerAttributes {
+	if x != nil {
+		return x.UsScheduler
 	}
 	return nil
 }
 
-func (m *TechProfileInstance) GetDsScheduler() *SchedulerAttributes {
-	if m != nil {
-		return m.DsScheduler
+func (x *TechProfileInstance) GetDsScheduler() *SchedulerAttributes {
+	if x != nil {
+		return x.DsScheduler
 	}
 	return nil
 }
 
-func (m *TechProfileInstance) GetUpstreamGemPortAttributeList() []*GemPortAttributes {
-	if m != nil {
-		return m.UpstreamGemPortAttributeList
+func (x *TechProfileInstance) GetUpstreamGemPortAttributeList() []*GemPortAttributes {
+	if x != nil {
+		return x.UpstreamGemPortAttributeList
 	}
 	return nil
 }
 
-func (m *TechProfileInstance) GetDownstreamGemPortAttributeList() []*GemPortAttributes {
-	if m != nil {
-		return m.DownstreamGemPortAttributeList
+func (x *TechProfileInstance) GetDownstreamGemPortAttributeList() []*GemPortAttributes {
+	if x != nil {
+		return x.DownstreamGemPortAttributeList
 	}
 	return nil
 }
 
 // EPON TechProfile Instance definition.
 type EponTechProfileInstance struct {
+	state                        protoimpl.MessageState `protogen:"open.v1"`
 	Name                         string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	Version                      uint32                 `protobuf:"varint,2,opt,name=version,proto3" json:"version,omitempty"`
 	SubscriberIdentifier         string                 `protobuf:"bytes,3,opt,name=subscriber_identifier,json=subscriberIdentifier,proto3" json:"subscriber_identifier,omitempty"`
@@ -1756,343 +1965,514 @@
 	PackageType                  string                 `protobuf:"bytes,8,opt,name=package_type,json=packageType,proto3" json:"package_type,omitempty"`
 	UpstreamQueueAttributeList   []*EPONQueueAttributes `protobuf:"bytes,9,rep,name=upstream_queue_attribute_list,json=upstreamQueueAttributeList,proto3" json:"upstream_queue_attribute_list,omitempty"`
 	DownstreamQueueAttributeList []*EPONQueueAttributes `protobuf:"bytes,10,rep,name=downstream_queue_attribute_list,json=downstreamQueueAttributeList,proto3" json:"downstream_queue_attribute_list,omitempty"`
-	XXX_NoUnkeyedLiteral         struct{}               `json:"-"`
-	XXX_unrecognized             []byte                 `json:"-"`
-	XXX_sizecache                int32                  `json:"-"`
+	unknownFields                protoimpl.UnknownFields
+	sizeCache                    protoimpl.SizeCache
 }
 
-func (m *EponTechProfileInstance) Reset()         { *m = EponTechProfileInstance{} }
-func (m *EponTechProfileInstance) String() string { return proto.CompactTextString(m) }
-func (*EponTechProfileInstance) ProtoMessage()    {}
+func (x *EponTechProfileInstance) Reset() {
+	*x = EponTechProfileInstance{}
+	mi := &file_voltha_protos_tech_profile_proto_msgTypes[18]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *EponTechProfileInstance) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*EponTechProfileInstance) ProtoMessage() {}
+
+func (x *EponTechProfileInstance) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_tech_profile_proto_msgTypes[18]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use EponTechProfileInstance.ProtoReflect.Descriptor instead.
 func (*EponTechProfileInstance) Descriptor() ([]byte, []int) {
-	return fileDescriptor_d019a68bffe14cae, []int{18}
+	return file_voltha_protos_tech_profile_proto_rawDescGZIP(), []int{18}
 }
 
-func (m *EponTechProfileInstance) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_EponTechProfileInstance.Unmarshal(m, b)
-}
-func (m *EponTechProfileInstance) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_EponTechProfileInstance.Marshal(b, m, deterministic)
-}
-func (m *EponTechProfileInstance) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_EponTechProfileInstance.Merge(m, src)
-}
-func (m *EponTechProfileInstance) XXX_Size() int {
-	return xxx_messageInfo_EponTechProfileInstance.Size(m)
-}
-func (m *EponTechProfileInstance) XXX_DiscardUnknown() {
-	xxx_messageInfo_EponTechProfileInstance.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_EponTechProfileInstance proto.InternalMessageInfo
-
-func (m *EponTechProfileInstance) GetName() string {
-	if m != nil {
-		return m.Name
+func (x *EponTechProfileInstance) GetName() string {
+	if x != nil {
+		return x.Name
 	}
 	return ""
 }
 
-func (m *EponTechProfileInstance) GetVersion() uint32 {
-	if m != nil {
-		return m.Version
+func (x *EponTechProfileInstance) GetVersion() uint32 {
+	if x != nil {
+		return x.Version
 	}
 	return 0
 }
 
-func (m *EponTechProfileInstance) GetSubscriberIdentifier() string {
-	if m != nil {
-		return m.SubscriberIdentifier
+func (x *EponTechProfileInstance) GetSubscriberIdentifier() string {
+	if x != nil {
+		return x.SubscriberIdentifier
 	}
 	return ""
 }
 
-func (m *EponTechProfileInstance) GetProfileType() string {
-	if m != nil {
-		return m.ProfileType
+func (x *EponTechProfileInstance) GetProfileType() string {
+	if x != nil {
+		return x.ProfileType
 	}
 	return ""
 }
 
-func (m *EponTechProfileInstance) GetNumGemPorts() uint32 {
-	if m != nil {
-		return m.NumGemPorts
+func (x *EponTechProfileInstance) GetNumGemPorts() uint32 {
+	if x != nil {
+		return x.NumGemPorts
 	}
 	return 0
 }
 
-func (m *EponTechProfileInstance) GetAllocId() uint32 {
-	if m != nil {
-		return m.AllocId
+func (x *EponTechProfileInstance) GetAllocId() uint32 {
+	if x != nil {
+		return x.AllocId
 	}
 	return 0
 }
 
-func (m *EponTechProfileInstance) GetInstanceControl() *InstanceControl {
-	if m != nil {
-		return m.InstanceControl
+func (x *EponTechProfileInstance) GetInstanceControl() *InstanceControl {
+	if x != nil {
+		return x.InstanceControl
 	}
 	return nil
 }
 
-func (m *EponTechProfileInstance) GetPackageType() string {
-	if m != nil {
-		return m.PackageType
+func (x *EponTechProfileInstance) GetPackageType() string {
+	if x != nil {
+		return x.PackageType
 	}
 	return ""
 }
 
-func (m *EponTechProfileInstance) GetUpstreamQueueAttributeList() []*EPONQueueAttributes {
-	if m != nil {
-		return m.UpstreamQueueAttributeList
+func (x *EponTechProfileInstance) GetUpstreamQueueAttributeList() []*EPONQueueAttributes {
+	if x != nil {
+		return x.UpstreamQueueAttributeList
 	}
 	return nil
 }
 
-func (m *EponTechProfileInstance) GetDownstreamQueueAttributeList() []*EPONQueueAttributes {
-	if m != nil {
-		return m.DownstreamQueueAttributeList
+func (x *EponTechProfileInstance) GetDownstreamQueueAttributeList() []*EPONQueueAttributes {
+	if x != nil {
+		return x.DownstreamQueueAttributeList
 	}
 	return nil
 }
 
 // Resource Instance definition
 type ResourceInstance struct {
-	TpId                 uint32   `protobuf:"varint,1,opt,name=tp_id,json=tpId,proto3" json:"tp_id,omitempty"`
-	ProfileType          string   `protobuf:"bytes,2,opt,name=profile_type,json=profileType,proto3" json:"profile_type,omitempty"`
-	SubscriberIdentifier string   `protobuf:"bytes,3,opt,name=subscriber_identifier,json=subscriberIdentifier,proto3" json:"subscriber_identifier,omitempty"`
-	AllocId              uint32   `protobuf:"varint,4,opt,name=alloc_id,json=allocId,proto3" json:"alloc_id,omitempty"`
-	GemportIds           []uint32 `protobuf:"varint,5,rep,packed,name=gemport_ids,json=gemportIds,proto3" json:"gemport_ids,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state                protoimpl.MessageState `protogen:"open.v1"`
+	TpId                 uint32                 `protobuf:"varint,1,opt,name=tp_id,json=tpId,proto3" json:"tp_id,omitempty"`
+	ProfileType          string                 `protobuf:"bytes,2,opt,name=profile_type,json=profileType,proto3" json:"profile_type,omitempty"`
+	SubscriberIdentifier string                 `protobuf:"bytes,3,opt,name=subscriber_identifier,json=subscriberIdentifier,proto3" json:"subscriber_identifier,omitempty"`
+	AllocId              uint32                 `protobuf:"varint,4,opt,name=alloc_id,json=allocId,proto3" json:"alloc_id,omitempty"`
+	GemportIds           []uint32               `protobuf:"varint,5,rep,packed,name=gemport_ids,json=gemportIds,proto3" json:"gemport_ids,omitempty"`
+	unknownFields        protoimpl.UnknownFields
+	sizeCache            protoimpl.SizeCache
 }
 
-func (m *ResourceInstance) Reset()         { *m = ResourceInstance{} }
-func (m *ResourceInstance) String() string { return proto.CompactTextString(m) }
-func (*ResourceInstance) ProtoMessage()    {}
+func (x *ResourceInstance) Reset() {
+	*x = ResourceInstance{}
+	mi := &file_voltha_protos_tech_profile_proto_msgTypes[19]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ResourceInstance) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ResourceInstance) ProtoMessage() {}
+
+func (x *ResourceInstance) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_tech_profile_proto_msgTypes[19]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ResourceInstance.ProtoReflect.Descriptor instead.
 func (*ResourceInstance) Descriptor() ([]byte, []int) {
-	return fileDescriptor_d019a68bffe14cae, []int{19}
+	return file_voltha_protos_tech_profile_proto_rawDescGZIP(), []int{19}
 }
 
-func (m *ResourceInstance) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_ResourceInstance.Unmarshal(m, b)
-}
-func (m *ResourceInstance) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_ResourceInstance.Marshal(b, m, deterministic)
-}
-func (m *ResourceInstance) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_ResourceInstance.Merge(m, src)
-}
-func (m *ResourceInstance) XXX_Size() int {
-	return xxx_messageInfo_ResourceInstance.Size(m)
-}
-func (m *ResourceInstance) XXX_DiscardUnknown() {
-	xxx_messageInfo_ResourceInstance.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_ResourceInstance proto.InternalMessageInfo
-
-func (m *ResourceInstance) GetTpId() uint32 {
-	if m != nil {
-		return m.TpId
+func (x *ResourceInstance) GetTpId() uint32 {
+	if x != nil {
+		return x.TpId
 	}
 	return 0
 }
 
-func (m *ResourceInstance) GetProfileType() string {
-	if m != nil {
-		return m.ProfileType
+func (x *ResourceInstance) GetProfileType() string {
+	if x != nil {
+		return x.ProfileType
 	}
 	return ""
 }
 
-func (m *ResourceInstance) GetSubscriberIdentifier() string {
-	if m != nil {
-		return m.SubscriberIdentifier
+func (x *ResourceInstance) GetSubscriberIdentifier() string {
+	if x != nil {
+		return x.SubscriberIdentifier
 	}
 	return ""
 }
 
-func (m *ResourceInstance) GetAllocId() uint32 {
-	if m != nil {
-		return m.AllocId
+func (x *ResourceInstance) GetAllocId() uint32 {
+	if x != nil {
+		return x.AllocId
 	}
 	return 0
 }
 
-func (m *ResourceInstance) GetGemportIds() []uint32 {
-	if m != nil {
-		return m.GemportIds
+func (x *ResourceInstance) GetGemportIds() []uint32 {
+	if x != nil {
+		return x.GemportIds
 	}
 	return nil
 }
 
-func init() {
-	proto.RegisterEnum("tech_profile.Direction", Direction_name, Direction_value)
-	proto.RegisterEnum("tech_profile.SchedulingPolicy", SchedulingPolicy_name, SchedulingPolicy_value)
-	proto.RegisterEnum("tech_profile.AdditionalBW", AdditionalBW_name, AdditionalBW_value)
-	proto.RegisterEnum("tech_profile.DiscardPolicy", DiscardPolicy_name, DiscardPolicy_value)
-	proto.RegisterEnum("tech_profile.InferredAdditionBWIndication", InferredAdditionBWIndication_name, InferredAdditionBWIndication_value)
-	proto.RegisterType((*SchedulerConfig)(nil), "tech_profile.SchedulerConfig")
-	proto.RegisterType((*TrafficShapingInfo)(nil), "tech_profile.TrafficShapingInfo")
-	proto.RegisterType((*TrafficScheduler)(nil), "tech_profile.TrafficScheduler")
-	proto.RegisterType((*TrafficSchedulers)(nil), "tech_profile.TrafficSchedulers")
-	proto.RegisterType((*TailDropDiscardConfig)(nil), "tech_profile.TailDropDiscardConfig")
-	proto.RegisterType((*RedDiscardConfig)(nil), "tech_profile.RedDiscardConfig")
-	proto.RegisterType((*WRedDiscardConfig)(nil), "tech_profile.WRedDiscardConfig")
-	proto.RegisterType((*DiscardConfig)(nil), "tech_profile.DiscardConfig")
-	proto.RegisterType((*TrafficQueue)(nil), "tech_profile.TrafficQueue")
-	proto.RegisterType((*TrafficQueues)(nil), "tech_profile.TrafficQueues")
-	proto.RegisterType((*InstanceControl)(nil), "tech_profile.InstanceControl")
-	proto.RegisterType((*QThresholds)(nil), "tech_profile.QThresholds")
-	proto.RegisterType((*GemPortAttributes)(nil), "tech_profile.GemPortAttributes")
-	proto.RegisterType((*SchedulerAttributes)(nil), "tech_profile.SchedulerAttributes")
-	proto.RegisterType((*EPONQueueAttributes)(nil), "tech_profile.EPONQueueAttributes")
-	proto.RegisterType((*TechProfile)(nil), "tech_profile.TechProfile")
-	proto.RegisterType((*EponTechProfile)(nil), "tech_profile.EponTechProfile")
-	proto.RegisterType((*TechProfileInstance)(nil), "tech_profile.TechProfileInstance")
-	proto.RegisterType((*EponTechProfileInstance)(nil), "tech_profile.EponTechProfileInstance")
-	proto.RegisterType((*ResourceInstance)(nil), "tech_profile.ResourceInstance")
+var File_voltha_protos_tech_profile_proto protoreflect.FileDescriptor
+
+const file_voltha_protos_tech_profile_proto_rawDesc = "" +
+	"\n" +
+	" voltha_protos/tech_profile.proto\x12\ftech_profile\x1a\x1cgoogle/api/annotations.proto\"\x80\x02\n" +
+	"\x0fSchedulerConfig\x125\n" +
+	"\tdirection\x18\x01 \x01(\x0e2\x17.tech_profile.DirectionR\tdirection\x12?\n" +
+	"\radditional_bw\x18\x02 \x01(\x0e2\x1a.tech_profile.AdditionalBWR\fadditionalBw\x12\x1a\n" +
+	"\bpriority\x18\x03 \x01(\aR\bpriority\x12\x16\n" +
+	"\x06weight\x18\x04 \x01(\aR\x06weight\x12A\n" +
+	"\fsched_policy\x18\x05 \x01(\x0e2\x1e.tech_profile.SchedulingPolicyR\vschedPolicy\"\xb8\x01\n" +
+	"\x12TrafficShapingInfo\x12\x10\n" +
+	"\x03cir\x18\x01 \x01(\aR\x03cir\x12\x10\n" +
+	"\x03cbs\x18\x02 \x01(\aR\x03cbs\x12\x10\n" +
+	"\x03pir\x18\x03 \x01(\aR\x03pir\x12\x10\n" +
+	"\x03pbs\x18\x04 \x01(\aR\x03pbs\x12\x10\n" +
+	"\x03gir\x18\x05 \x01(\aR\x03gir\x12H\n" +
+	"\n" +
+	"add_bw_ind\x18\x06 \x01(\x0e2*.tech_profile.InferredAdditionBWIndicationR\baddBwInd\"\x9d\x02\n" +
+	"\x10TrafficScheduler\x125\n" +
+	"\tdirection\x18\x01 \x01(\x0e2\x17.tech_profile.DirectionR\tdirection\x12\x19\n" +
+	"\balloc_id\x18\x02 \x01(\aR\aallocId\x12;\n" +
+	"\tscheduler\x18\x03 \x01(\v2\x1d.tech_profile.SchedulerConfigR\tscheduler\x12R\n" +
+	"\x14traffic_shaping_info\x18\x04 \x01(\v2 .tech_profile.TrafficShapingInfoR\x12trafficShapingInfo\x12&\n" +
+	"\x0ftech_profile_id\x18\x05 \x01(\aR\rtechProfileId\"\xba\x01\n" +
+	"\x11TrafficSchedulers\x12\x17\n" +
+	"\aintf_id\x18\x01 \x01(\aR\x06intfId\x12\x15\n" +
+	"\x06onu_id\x18\x02 \x01(\aR\x05onuId\x12\x15\n" +
+	"\x06uni_id\x18\x04 \x01(\aR\x05uniId\x12\x17\n" +
+	"\aport_no\x18\x05 \x01(\aR\x06portNo\x12E\n" +
+	"\x0etraffic_scheds\x18\x03 \x03(\v2\x1e.tech_profile.TrafficSchedulerR\rtrafficScheds\"6\n" +
+	"\x15TailDropDiscardConfig\x12\x1d\n" +
+	"\n" +
+	"queue_size\x18\x01 \x01(\aR\tqueueSize\"\x85\x01\n" +
+	"\x10RedDiscardConfig\x12#\n" +
+	"\rmin_threshold\x18\x01 \x01(\aR\fminThreshold\x12#\n" +
+	"\rmax_threshold\x18\x02 \x01(\aR\fmaxThreshold\x12'\n" +
+	"\x0fmax_probability\x18\x03 \x01(\aR\x0emaxProbability\"\xb3\x01\n" +
+	"\x11WRedDiscardConfig\x124\n" +
+	"\x05green\x18\x01 \x01(\v2\x1e.tech_profile.RedDiscardConfigR\x05green\x126\n" +
+	"\x06yellow\x18\x02 \x01(\v2\x1e.tech_profile.RedDiscardConfigR\x06yellow\x120\n" +
+	"\x03red\x18\x03 \x01(\v2\x1e.tech_profile.RedDiscardConfigR\x03red\"\xe8\x02\n" +
+	"\rDiscardConfig\x12B\n" +
+	"\x0ediscard_policy\x18\x01 \x01(\x0e2\x1b.tech_profile.DiscardPolicyR\rdiscardPolicy\x12^\n" +
+	"\x18tail_drop_discard_config\x18\x02 \x01(\v2#.tech_profile.TailDropDiscardConfigH\x00R\x15tailDropDiscardConfig\x12N\n" +
+	"\x12red_discard_config\x18\x03 \x01(\v2\x1e.tech_profile.RedDiscardConfigH\x00R\x10redDiscardConfig\x12Q\n" +
+	"\x13wred_discard_config\x18\x04 \x01(\v2\x1f.tech_profile.WRedDiscardConfigH\x00R\x11wredDiscardConfigB\x10\n" +
+	"\x0ediscard_config\"\xa5\x03\n" +
+	"\fTrafficQueue\x125\n" +
+	"\tdirection\x18\x01 \x01(\x0e2\x17.tech_profile.DirectionR\tdirection\x12\x1d\n" +
+	"\n" +
+	"gemport_id\x18\x02 \x01(\aR\tgemportId\x12\x19\n" +
+	"\bpbit_map\x18\x03 \x01(\tR\apbitMap\x12%\n" +
+	"\x0eaes_encryption\x18\x04 \x01(\bR\raesEncryption\x12A\n" +
+	"\fsched_policy\x18\x05 \x01(\x0e2\x1e.tech_profile.SchedulingPolicyR\vschedPolicy\x12\x1a\n" +
+	"\bpriority\x18\x06 \x01(\aR\bpriority\x12\x16\n" +
+	"\x06weight\x18\a \x01(\aR\x06weight\x12B\n" +
+	"\x0ediscard_policy\x18\b \x01(\x0e2\x1b.tech_profile.DiscardPolicyR\rdiscardPolicy\x12B\n" +
+	"\x0ediscard_config\x18\t \x01(\v2\x1b.tech_profile.DiscardConfigR\rdiscardConfig\"\x82\x02\n" +
+	"\rTrafficQueues\x12\x17\n" +
+	"\aintf_id\x18\x01 \x01(\aR\x06intfId\x12\x15\n" +
+	"\x06onu_id\x18\x02 \x01(\aR\x05onuId\x12\x15\n" +
+	"\x06uni_id\x18\x04 \x01(\aR\x05uniId\x12\x17\n" +
+	"\aport_no\x18\x05 \x01(\aR\x06portNo\x12A\n" +
+	"\x0etraffic_queues\x18\x06 \x03(\v2\x1a.tech_profile.TrafficQueueR\rtrafficQueues\x12&\n" +
+	"\x0ftech_profile_id\x18\a \x01(\aR\rtechProfileId\x12&\n" +
+	"\x0fnetwork_intf_id\x18\b \x01(\aR\rnetworkIntfId\"f\n" +
+	"\x0fInstanceControl\x12\x10\n" +
+	"\x03onu\x18\x01 \x01(\tR\x03onu\x12\x10\n" +
+	"\x03uni\x18\x02 \x01(\tR\x03uni\x12/\n" +
+	"\x14max_gem_payload_size\x18\x03 \x01(\tR\x11maxGemPayloadSize\"\x82\x02\n" +
+	"\vQThresholds\x12!\n" +
+	"\fq_threshold1\x18\x01 \x01(\rR\vqThreshold1\x12!\n" +
+	"\fq_threshold2\x18\x02 \x01(\rR\vqThreshold2\x12!\n" +
+	"\fq_threshold3\x18\x03 \x01(\rR\vqThreshold3\x12!\n" +
+	"\fq_threshold4\x18\x04 \x01(\rR\vqThreshold4\x12!\n" +
+	"\fq_threshold5\x18\x05 \x01(\rR\vqThreshold5\x12!\n" +
+	"\fq_threshold6\x18\x06 \x01(\rR\vqThreshold6\x12!\n" +
+	"\fq_threshold7\x18\a \x01(\rR\vqThreshold7\"\xb3\x05\n" +
+	"\x11GemPortAttributes\x12\x1d\n" +
+	"\n" +
+	"gemport_id\x18\x01 \x01(\aR\tgemportId\x12\x1c\n" +
+	"\n" +
+	"max_q_size\x18\x02 \x01(\tR\bmaxQSize\x12\x19\n" +
+	"\bpbit_map\x18\x03 \x01(\tR\apbitMap\x12%\n" +
+	"\x0eaes_encryption\x18\x04 \x01(\tR\raesEncryption\x12K\n" +
+	"\x11scheduling_policy\x18\x05 \x01(\x0e2\x1e.tech_profile.SchedulingPolicyR\x10schedulingPolicy\x12\x1d\n" +
+	"\n" +
+	"priority_q\x18\x06 \x01(\aR\tpriorityQ\x12\x16\n" +
+	"\x06weight\x18\a \x01(\aR\x06weight\x12B\n" +
+	"\x0ediscard_policy\x18\b \x01(\x0e2\x1b.tech_profile.DiscardPolicyR\rdiscardPolicy\x12E\n" +
+	"\x0ediscard_config\x18\t \x01(\v2\x1e.tech_profile.RedDiscardConfigR\rdiscardConfig\x12G\n" +
+	"\x11discard_config_v2\x18\x0e \x01(\v2\x1b.tech_profile.DiscardConfigR\x0fdiscardConfigV2\x12!\n" +
+	"\fis_multicast\x18\n" +
+	" \x01(\tR\visMulticast\x12(\n" +
+	"\x10multicast_gem_id\x18\v \x01(\aR\x0emulticastGemId\x12=\n" +
+	"\x1bdynamic_access_control_list\x18\f \x01(\tR\x18dynamicAccessControlList\x12;\n" +
+	"\x1astatic_access_control_list\x18\r \x01(\tR\x17staticAccessControlList\"\xa2\x02\n" +
+	"\x13SchedulerAttributes\x125\n" +
+	"\tdirection\x18\x01 \x01(\x0e2\x17.tech_profile.DirectionR\tdirection\x12\x19\n" +
+	"\balloc_id\x18\x02 \x01(\rR\aallocId\x12?\n" +
+	"\radditional_bw\x18\x03 \x01(\x0e2\x1a.tech_profile.AdditionalBWR\fadditionalBw\x12\x1a\n" +
+	"\bpriority\x18\x04 \x01(\aR\bpriority\x12\x16\n" +
+	"\x06weight\x18\x05 \x01(\aR\x06weight\x12D\n" +
+	"\x0eq_sched_policy\x18\x06 \x01(\x0e2\x1e.tech_profile.SchedulingPolicyR\fqSchedPolicy\"\xc0\x06\n" +
+	"\x13EPONQueueAttributes\x12\x1c\n" +
+	"\n" +
+	"max_q_size\x18\x01 \x01(\tR\bmaxQSize\x12\x19\n" +
+	"\bpbit_map\x18\x02 \x01(\tR\apbitMap\x12\x1d\n" +
+	"\n" +
+	"gemport_id\x18\x03 \x01(\rR\tgemportId\x12%\n" +
+	"\x0eaes_encryption\x18\x04 \x01(\tR\raesEncryption\x12!\n" +
+	"\ftraffic_type\x18\x05 \x01(\tR\vtrafficType\x124\n" +
+	"\x16unsolicited_grant_size\x18\x06 \x01(\rR\x14unsolicitedGrantSize\x12)\n" +
+	"\x10nominal_interval\x18\a \x01(\rR\x0fnominalInterval\x122\n" +
+	"\x15tolerated_poll_jitter\x18\b \x01(\rR\x13toleratedPollJitter\x12>\n" +
+	"\x1brequest_transmission_policy\x18\t \x01(\rR\x19requestTransmissionPolicy\x12\x1c\n" +
+	"\n" +
+	"num_q_sets\x18\n" +
+	" \x01(\rR\bnumQSets\x12<\n" +
+	"\fq_thresholds\x18\v \x01(\v2\x19.tech_profile.QThresholdsR\vqThresholds\x12K\n" +
+	"\x11scheduling_policy\x18\f \x01(\x0e2\x1e.tech_profile.SchedulingPolicyR\x10schedulingPolicy\x12\x1d\n" +
+	"\n" +
+	"priority_q\x18\r \x01(\rR\tpriorityQ\x12\x16\n" +
+	"\x06weight\x18\x0e \x01(\rR\x06weight\x12B\n" +
+	"\x0ediscard_policy\x18\x0f \x01(\x0e2\x1b.tech_profile.DiscardPolicyR\rdiscardPolicy\x12E\n" +
+	"\x0ediscard_config\x18\x10 \x01(\v2\x1e.tech_profile.RedDiscardConfigR\rdiscardConfig\x12G\n" +
+	"\x11discard_config_v2\x18\x11 \x01(\v2\x1b.tech_profile.DiscardConfigR\x0fdiscardConfigV2\"\xae\x04\n" +
+	"\vTechProfile\x12\x12\n" +
+	"\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n" +
+	"\aversion\x18\x02 \x01(\rR\aversion\x12!\n" +
+	"\fprofile_type\x18\x03 \x01(\tR\vprofileType\x12\"\n" +
+	"\rnum_gem_ports\x18\x04 \x01(\rR\vnumGemPorts\x12H\n" +
+	"\x10instance_control\x18\x05 \x01(\v2\x1d.tech_profile.InstanceControlR\x0finstanceControl\x12D\n" +
+	"\fus_scheduler\x18\x06 \x01(\v2!.tech_profile.SchedulerAttributesR\vusScheduler\x12D\n" +
+	"\fds_scheduler\x18\a \x01(\v2!.tech_profile.SchedulerAttributesR\vdsScheduler\x12g\n" +
+	" upstream_gem_port_attribute_list\x18\b \x03(\v2\x1f.tech_profile.GemPortAttributesR\x1cupstreamGemPortAttributeList\x12k\n" +
+	"\"downstream_gem_port_attribute_list\x18\t \x03(\v2\x1f.tech_profile.GemPortAttributesR\x1edownstreamGemPortAttributeList\"\xc3\x03\n" +
+	"\x0fEponTechProfile\x12\x12\n" +
+	"\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n" +
+	"\aversion\x18\x02 \x01(\rR\aversion\x12!\n" +
+	"\fprofile_type\x18\x03 \x01(\tR\vprofileType\x12\"\n" +
+	"\rnum_gem_ports\x18\x04 \x01(\rR\vnumGemPorts\x12H\n" +
+	"\x10instance_control\x18\x05 \x01(\v2\x1d.tech_profile.InstanceControlR\x0finstanceControl\x12!\n" +
+	"\fpackage_type\x18\x06 \x01(\tR\vpackageType\x12d\n" +
+	"\x1dupstream_queue_attribute_list\x18\a \x03(\v2!.tech_profile.EPONQueueAttributesR\x1aupstreamQueueAttributeList\x12h\n" +
+	"\x1fdownstream_queue_attribute_list\x18\b \x03(\v2!.tech_profile.EPONQueueAttributesR\x1cdownstreamQueueAttributeList\"\xeb\x04\n" +
+	"\x13TechProfileInstance\x12\x12\n" +
+	"\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n" +
+	"\aversion\x18\x02 \x01(\rR\aversion\x123\n" +
+	"\x15subscriber_identifier\x18\x03 \x01(\tR\x14subscriberIdentifier\x12!\n" +
+	"\fprofile_type\x18\x04 \x01(\tR\vprofileType\x12\"\n" +
+	"\rnum_gem_ports\x18\x05 \x01(\rR\vnumGemPorts\x12H\n" +
+	"\x10instance_control\x18\x06 \x01(\v2\x1d.tech_profile.InstanceControlR\x0finstanceControl\x12D\n" +
+	"\fus_scheduler\x18\a \x01(\v2!.tech_profile.SchedulerAttributesR\vusScheduler\x12D\n" +
+	"\fds_scheduler\x18\b \x01(\v2!.tech_profile.SchedulerAttributesR\vdsScheduler\x12g\n" +
+	" upstream_gem_port_attribute_list\x18\t \x03(\v2\x1f.tech_profile.GemPortAttributesR\x1cupstreamGemPortAttributeList\x12k\n" +
+	"\"downstream_gem_port_attribute_list\x18\n" +
+	" \x03(\v2\x1f.tech_profile.GemPortAttributesR\x1edownstreamGemPortAttributeList\"\x9b\x04\n" +
+	"\x17EponTechProfileInstance\x12\x12\n" +
+	"\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n" +
+	"\aversion\x18\x02 \x01(\rR\aversion\x123\n" +
+	"\x15subscriber_identifier\x18\x03 \x01(\tR\x14subscriberIdentifier\x12!\n" +
+	"\fprofile_type\x18\x04 \x01(\tR\vprofileType\x12\"\n" +
+	"\rnum_gem_ports\x18\x05 \x01(\rR\vnumGemPorts\x12\x19\n" +
+	"\balloc_id\x18\x06 \x01(\rR\aallocId\x12H\n" +
+	"\x10instance_control\x18\a \x01(\v2\x1d.tech_profile.InstanceControlR\x0finstanceControl\x12!\n" +
+	"\fpackage_type\x18\b \x01(\tR\vpackageType\x12d\n" +
+	"\x1dupstream_queue_attribute_list\x18\t \x03(\v2!.tech_profile.EPONQueueAttributesR\x1aupstreamQueueAttributeList\x12h\n" +
+	"\x1fdownstream_queue_attribute_list\x18\n" +
+	" \x03(\v2!.tech_profile.EPONQueueAttributesR\x1cdownstreamQueueAttributeList\"\xbb\x01\n" +
+	"\x10ResourceInstance\x12\x13\n" +
+	"\x05tp_id\x18\x01 \x01(\rR\x04tpId\x12!\n" +
+	"\fprofile_type\x18\x02 \x01(\tR\vprofileType\x123\n" +
+	"\x15subscriber_identifier\x18\x03 \x01(\tR\x14subscriberIdentifier\x12\x19\n" +
+	"\balloc_id\x18\x04 \x01(\rR\aallocId\x12\x1f\n" +
+	"\vgemport_ids\x18\x05 \x03(\rR\n" +
+	"gemportIds*<\n" +
+	"\tDirection\x12\f\n" +
+	"\bUPSTREAM\x10\x00\x12\x0e\n" +
+	"\n" +
+	"DOWNSTREAM\x10\x01\x12\x11\n" +
+	"\rBIDIRECTIONAL\x10\x02*;\n" +
+	"\x10SchedulingPolicy\x12\a\n" +
+	"\x03WRR\x10\x00\x12\x12\n" +
+	"\x0eStrictPriority\x10\x01\x12\n" +
+	"\n" +
+	"\x06Hybrid\x10\x02*n\n" +
+	"\fAdditionalBW\x12\x15\n" +
+	"\x11AdditionalBW_None\x10\x00\x12\x13\n" +
+	"\x0fAdditionalBW_NA\x10\x01\x12\x1b\n" +
+	"\x17AdditionalBW_BestEffort\x10\x02\x12\x15\n" +
+	"\x11AdditionalBW_Auto\x10\x03*?\n" +
+	"\rDiscardPolicy\x12\f\n" +
+	"\bTailDrop\x10\x00\x12\r\n" +
+	"\tWTailDrop\x10\x01\x12\a\n" +
+	"\x03Red\x10\x02\x12\b\n" +
+	"\x04WRed\x10\x03*\x9c\x01\n" +
+	"\x1cInferredAdditionBWIndication\x12%\n" +
+	"!InferredAdditionBWIndication_None\x10\x00\x12(\n" +
+	"$InferredAdditionBWIndication_Assured\x10\x01\x12+\n" +
+	"'InferredAdditionBWIndication_BestEffort\x10\x02BX\n" +
+	" org.opencord.voltha.tech_profileZ4github.com/opencord/voltha-protos/v5/go/tech_profileb\x06proto3"
+
+var (
+	file_voltha_protos_tech_profile_proto_rawDescOnce sync.Once
+	file_voltha_protos_tech_profile_proto_rawDescData []byte
+)
+
+func file_voltha_protos_tech_profile_proto_rawDescGZIP() []byte {
+	file_voltha_protos_tech_profile_proto_rawDescOnce.Do(func() {
+		file_voltha_protos_tech_profile_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_voltha_protos_tech_profile_proto_rawDesc), len(file_voltha_protos_tech_profile_proto_rawDesc)))
+	})
+	return file_voltha_protos_tech_profile_proto_rawDescData
 }
 
-func init() { proto.RegisterFile("voltha_protos/tech_profile.proto", fileDescriptor_d019a68bffe14cae) }
+var file_voltha_protos_tech_profile_proto_enumTypes = make([]protoimpl.EnumInfo, 5)
+var file_voltha_protos_tech_profile_proto_msgTypes = make([]protoimpl.MessageInfo, 20)
+var file_voltha_protos_tech_profile_proto_goTypes = []any{
+	(Direction)(0),                    // 0: tech_profile.Direction
+	(SchedulingPolicy)(0),             // 1: tech_profile.SchedulingPolicy
+	(AdditionalBW)(0),                 // 2: tech_profile.AdditionalBW
+	(DiscardPolicy)(0),                // 3: tech_profile.DiscardPolicy
+	(InferredAdditionBWIndication)(0), // 4: tech_profile.InferredAdditionBWIndication
+	(*SchedulerConfig)(nil),           // 5: tech_profile.SchedulerConfig
+	(*TrafficShapingInfo)(nil),        // 6: tech_profile.TrafficShapingInfo
+	(*TrafficScheduler)(nil),          // 7: tech_profile.TrafficScheduler
+	(*TrafficSchedulers)(nil),         // 8: tech_profile.TrafficSchedulers
+	(*TailDropDiscardConfig)(nil),     // 9: tech_profile.TailDropDiscardConfig
+	(*RedDiscardConfig)(nil),          // 10: tech_profile.RedDiscardConfig
+	(*WRedDiscardConfig)(nil),         // 11: tech_profile.WRedDiscardConfig
+	(*DiscardConfig)(nil),             // 12: tech_profile.DiscardConfig
+	(*TrafficQueue)(nil),              // 13: tech_profile.TrafficQueue
+	(*TrafficQueues)(nil),             // 14: tech_profile.TrafficQueues
+	(*InstanceControl)(nil),           // 15: tech_profile.InstanceControl
+	(*QThresholds)(nil),               // 16: tech_profile.QThresholds
+	(*GemPortAttributes)(nil),         // 17: tech_profile.GemPortAttributes
+	(*SchedulerAttributes)(nil),       // 18: tech_profile.SchedulerAttributes
+	(*EPONQueueAttributes)(nil),       // 19: tech_profile.EPONQueueAttributes
+	(*TechProfile)(nil),               // 20: tech_profile.TechProfile
+	(*EponTechProfile)(nil),           // 21: tech_profile.EponTechProfile
+	(*TechProfileInstance)(nil),       // 22: tech_profile.TechProfileInstance
+	(*EponTechProfileInstance)(nil),   // 23: tech_profile.EponTechProfileInstance
+	(*ResourceInstance)(nil),          // 24: tech_profile.ResourceInstance
+}
+var file_voltha_protos_tech_profile_proto_depIdxs = []int32{
+	0,  // 0: tech_profile.SchedulerConfig.direction:type_name -> tech_profile.Direction
+	2,  // 1: tech_profile.SchedulerConfig.additional_bw:type_name -> tech_profile.AdditionalBW
+	1,  // 2: tech_profile.SchedulerConfig.sched_policy:type_name -> tech_profile.SchedulingPolicy
+	4,  // 3: tech_profile.TrafficShapingInfo.add_bw_ind:type_name -> tech_profile.InferredAdditionBWIndication
+	0,  // 4: tech_profile.TrafficScheduler.direction:type_name -> tech_profile.Direction
+	5,  // 5: tech_profile.TrafficScheduler.scheduler:type_name -> tech_profile.SchedulerConfig
+	6,  // 6: tech_profile.TrafficScheduler.traffic_shaping_info:type_name -> tech_profile.TrafficShapingInfo
+	7,  // 7: tech_profile.TrafficSchedulers.traffic_scheds:type_name -> tech_profile.TrafficScheduler
+	10, // 8: tech_profile.WRedDiscardConfig.green:type_name -> tech_profile.RedDiscardConfig
+	10, // 9: tech_profile.WRedDiscardConfig.yellow:type_name -> tech_profile.RedDiscardConfig
+	10, // 10: tech_profile.WRedDiscardConfig.red:type_name -> tech_profile.RedDiscardConfig
+	3,  // 11: tech_profile.DiscardConfig.discard_policy:type_name -> tech_profile.DiscardPolicy
+	9,  // 12: tech_profile.DiscardConfig.tail_drop_discard_config:type_name -> tech_profile.TailDropDiscardConfig
+	10, // 13: tech_profile.DiscardConfig.red_discard_config:type_name -> tech_profile.RedDiscardConfig
+	11, // 14: tech_profile.DiscardConfig.wred_discard_config:type_name -> tech_profile.WRedDiscardConfig
+	0,  // 15: tech_profile.TrafficQueue.direction:type_name -> tech_profile.Direction
+	1,  // 16: tech_profile.TrafficQueue.sched_policy:type_name -> tech_profile.SchedulingPolicy
+	3,  // 17: tech_profile.TrafficQueue.discard_policy:type_name -> tech_profile.DiscardPolicy
+	12, // 18: tech_profile.TrafficQueue.discard_config:type_name -> tech_profile.DiscardConfig
+	13, // 19: tech_profile.TrafficQueues.traffic_queues:type_name -> tech_profile.TrafficQueue
+	1,  // 20: tech_profile.GemPortAttributes.scheduling_policy:type_name -> tech_profile.SchedulingPolicy
+	3,  // 21: tech_profile.GemPortAttributes.discard_policy:type_name -> tech_profile.DiscardPolicy
+	10, // 22: tech_profile.GemPortAttributes.discard_config:type_name -> tech_profile.RedDiscardConfig
+	12, // 23: tech_profile.GemPortAttributes.discard_config_v2:type_name -> tech_profile.DiscardConfig
+	0,  // 24: tech_profile.SchedulerAttributes.direction:type_name -> tech_profile.Direction
+	2,  // 25: tech_profile.SchedulerAttributes.additional_bw:type_name -> tech_profile.AdditionalBW
+	1,  // 26: tech_profile.SchedulerAttributes.q_sched_policy:type_name -> tech_profile.SchedulingPolicy
+	16, // 27: tech_profile.EPONQueueAttributes.q_thresholds:type_name -> tech_profile.QThresholds
+	1,  // 28: tech_profile.EPONQueueAttributes.scheduling_policy:type_name -> tech_profile.SchedulingPolicy
+	3,  // 29: tech_profile.EPONQueueAttributes.discard_policy:type_name -> tech_profile.DiscardPolicy
+	10, // 30: tech_profile.EPONQueueAttributes.discard_config:type_name -> tech_profile.RedDiscardConfig
+	12, // 31: tech_profile.EPONQueueAttributes.discard_config_v2:type_name -> tech_profile.DiscardConfig
+	15, // 32: tech_profile.TechProfile.instance_control:type_name -> tech_profile.InstanceControl
+	18, // 33: tech_profile.TechProfile.us_scheduler:type_name -> tech_profile.SchedulerAttributes
+	18, // 34: tech_profile.TechProfile.ds_scheduler:type_name -> tech_profile.SchedulerAttributes
+	17, // 35: tech_profile.TechProfile.upstream_gem_port_attribute_list:type_name -> tech_profile.GemPortAttributes
+	17, // 36: tech_profile.TechProfile.downstream_gem_port_attribute_list:type_name -> tech_profile.GemPortAttributes
+	15, // 37: tech_profile.EponTechProfile.instance_control:type_name -> tech_profile.InstanceControl
+	19, // 38: tech_profile.EponTechProfile.upstream_queue_attribute_list:type_name -> tech_profile.EPONQueueAttributes
+	19, // 39: tech_profile.EponTechProfile.downstream_queue_attribute_list:type_name -> tech_profile.EPONQueueAttributes
+	15, // 40: tech_profile.TechProfileInstance.instance_control:type_name -> tech_profile.InstanceControl
+	18, // 41: tech_profile.TechProfileInstance.us_scheduler:type_name -> tech_profile.SchedulerAttributes
+	18, // 42: tech_profile.TechProfileInstance.ds_scheduler:type_name -> tech_profile.SchedulerAttributes
+	17, // 43: tech_profile.TechProfileInstance.upstream_gem_port_attribute_list:type_name -> tech_profile.GemPortAttributes
+	17, // 44: tech_profile.TechProfileInstance.downstream_gem_port_attribute_list:type_name -> tech_profile.GemPortAttributes
+	15, // 45: tech_profile.EponTechProfileInstance.instance_control:type_name -> tech_profile.InstanceControl
+	19, // 46: tech_profile.EponTechProfileInstance.upstream_queue_attribute_list:type_name -> tech_profile.EPONQueueAttributes
+	19, // 47: tech_profile.EponTechProfileInstance.downstream_queue_attribute_list:type_name -> tech_profile.EPONQueueAttributes
+	48, // [48:48] is the sub-list for method output_type
+	48, // [48:48] is the sub-list for method input_type
+	48, // [48:48] is the sub-list for extension type_name
+	48, // [48:48] is the sub-list for extension extendee
+	0,  // [0:48] is the sub-list for field type_name
+}
 
-var fileDescriptor_d019a68bffe14cae = []byte{
-	// 2151 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x59, 0x4d, 0x6f, 0xdb, 0xc8,
-	0x19, 0xb6, 0x24, 0x5b, 0x1f, 0xaf, 0x24, 0x9b, 0x1e, 0xc7, 0x1b, 0xc5, 0x71, 0x36, 0x8e, 0xb6,
-	0xdb, 0x75, 0x5d, 0x34, 0xee, 0x3a, 0x1f, 0x7b, 0xc8, 0xb6, 0x0b, 0x29, 0x36, 0x12, 0xb5, 0x1b,
-	0xc7, 0xa6, 0xdd, 0xba, 0xe8, 0xa1, 0x04, 0x45, 0x8e, 0xe4, 0x69, 0xa8, 0x19, 0x7a, 0x66, 0x18,
-	0xc7, 0x7b, 0x2a, 0x16, 0xe8, 0xaf, 0x68, 0x7b, 0x29, 0xd0, 0x6b, 0x2f, 0x7b, 0x29, 0xda, 0x4b,
-	0x81, 0xfe, 0x99, 0x02, 0xfd, 0x13, 0xc5, 0x0c, 0x49, 0xf1, 0x43, 0x4a, 0x62, 0xa7, 0xca, 0x02,
-	0xdd, 0x1b, 0xe7, 0x9d, 0x67, 0xde, 0x79, 0x3f, 0x9f, 0x19, 0x92, 0xb0, 0xf1, 0x92, 0x79, 0xf2,
-	0xd4, 0xb6, 0x7c, 0xce, 0x24, 0x13, 0xdb, 0x12, 0x3b, 0xa7, 0xea, 0x79, 0x40, 0x3c, 0x7c, 0x57,
-	0xcb, 0x50, 0x23, 0x2d, 0x5b, 0x5b, 0x1f, 0x32, 0x36, 0xf4, 0xf0, 0xb6, 0xed, 0x93, 0x6d, 0x9b,
-	0x52, 0x26, 0x6d, 0x49, 0x18, 0x15, 0x21, 0xb6, 0xfd, 0xbb, 0x22, 0x2c, 0x1d, 0x39, 0xa7, 0xd8,
-	0x0d, 0x3c, 0xcc, 0x1f, 0x33, 0x3a, 0x20, 0x43, 0xf4, 0x00, 0x6a, 0x2e, 0xe1, 0xd8, 0x51, 0xb8,
-	0x56, 0x61, 0xa3, 0xb0, 0xb9, 0xb8, 0x73, 0xfd, 0x6e, 0x66, 0x9f, 0xdd, 0x78, 0xda, 0x4c, 0x90,
-	0xe8, 0x0b, 0x68, 0xda, 0xae, 0x4b, 0xd4, 0xb3, 0xed, 0x59, 0xfd, 0xf3, 0x56, 0x51, 0x2f, 0x5d,
-	0xcb, 0x2e, 0xed, 0x8c, 0x21, 0xdd, 0x13, 0xb3, 0x91, 0x2c, 0xe8, 0x9e, 0xa3, 0x35, 0xa8, 0xfa,
-	0x9c, 0x30, 0x4e, 0xe4, 0x45, 0xab, 0xb4, 0x51, 0xd8, 0xac, 0x98, 0xe3, 0x31, 0xfa, 0x00, 0xca,
-	0xe7, 0x98, 0x0c, 0x4f, 0x65, 0x6b, 0x5e, 0xcf, 0x44, 0x23, 0xd4, 0x81, 0x86, 0x50, 0xe6, 0x5b,
-	0x3e, 0xf3, 0x88, 0x73, 0xd1, 0x5a, 0xd0, 0x7b, 0x7e, 0x98, 0xdd, 0x33, 0x72, 0x90, 0xd0, 0xe1,
-	0x81, 0x46, 0x99, 0x75, 0xbd, 0x26, 0x1c, 0xb4, 0xff, 0x56, 0x00, 0x74, 0xcc, 0xed, 0xc1, 0x80,
-	0x38, 0x47, 0xa7, 0xb6, 0x4f, 0xe8, 0xb0, 0x47, 0x07, 0x0c, 0x19, 0x50, 0x72, 0x08, 0xd7, 0xfe,
-	0x57, 0x4c, 0xf5, 0xa8, 0x25, 0x7d, 0xa1, 0xdd, 0x52, 0x92, 0xbe, 0x50, 0x12, 0x9f, 0xf0, 0xc8,
-	0x58, 0xf5, 0xa8, 0x25, 0x7d, 0x11, 0x19, 0xa9, 0x1e, 0x95, 0x64, 0x48, 0xb8, 0x36, 0xac, 0x62,
-	0xaa, 0x47, 0xf4, 0x14, 0xc0, 0x76, 0x5d, 0xab, 0x7f, 0x6e, 0x11, 0xea, 0xb6, 0xca, 0xda, 0xe2,
-	0xad, 0xac, 0xc5, 0x3d, 0x3a, 0xc0, 0x9c, 0x63, 0x37, 0x8e, 0x56, 0xf7, 0xa4, 0x47, 0x5d, 0xe2,
-	0xe8, 0xd4, 0x99, 0x55, 0xdb, 0x75, 0xbb, 0xe7, 0x3d, 0xea, 0xb6, 0xff, 0x54, 0x04, 0x23, 0x36,
-	0x3d, 0x4e, 0xe2, 0xbb, 0xa6, 0xef, 0x06, 0x54, 0x6d, 0xcf, 0x63, 0x8e, 0x45, 0xdc, 0xc8, 0xc5,
-	0x8a, 0x1e, 0xf7, 0x5c, 0xf4, 0x08, 0x6a, 0x22, 0x56, 0xaf, 0x9d, 0xad, 0xef, 0xdc, 0x9a, 0x1a,
-	0xe1, 0xb8, 0x84, 0xcc, 0x04, 0x8f, 0x4c, 0xb8, 0x26, 0x43, 0x13, 0x2d, 0x11, 0x86, 0xd7, 0x22,
-	0x74, 0xc0, 0x74, 0x88, 0xea, 0x3b, 0x1b, 0x59, 0x3d, 0x93, 0x79, 0x30, 0x91, 0x9c, 0xcc, 0xcd,
-	0xf7, 0x61, 0x29, 0xbd, 0x4c, 0x99, 0x1c, 0xc6, 0xb7, 0xa9, 0xc4, 0x07, 0xa1, 0xb4, 0xe7, 0xb6,
-	0xff, 0x5e, 0x80, 0xe5, 0x7c, 0x7c, 0x04, 0xba, 0x0e, 0x15, 0x42, 0xe5, 0x40, 0xad, 0x0a, 0xb3,
-	0x5b, 0x56, 0xc3, 0x9e, 0x8b, 0x56, 0xa1, 0xcc, 0x68, 0x90, 0x04, 0x60, 0x81, 0xd1, 0x20, 0x14,
-	0x07, 0x94, 0x28, 0x71, 0x98, 0xd6, 0x85, 0x80, 0x92, 0x9e, 0xab, 0xd4, 0xf8, 0x8c, 0x4b, 0x8b,
-	0xb2, 0x68, 0xf3, 0xb2, 0x1a, 0xee, 0x33, 0xb4, 0x07, 0x8b, 0x63, 0x8f, 0xd5, 0xae, 0xa2, 0x55,
-	0xda, 0x28, 0x6d, 0xd6, 0xf3, 0x55, 0x99, 0x37, 0xcc, 0x6c, 0xca, 0x94, 0x44, 0xb4, 0x1f, 0xc2,
-	0xea, 0xb1, 0x4d, 0xbc, 0x5d, 0xce, 0xfc, 0x5d, 0x22, 0x1c, 0x9b, 0xbb, 0x51, 0x7f, 0xde, 0x02,
-	0x38, 0x0b, 0x70, 0x80, 0x2d, 0x41, 0xbe, 0xc2, 0x91, 0x0b, 0x35, 0x2d, 0x39, 0x22, 0x5f, 0xe1,
-	0xf6, 0xef, 0x0b, 0x60, 0x98, 0xd8, 0xcd, 0xae, 0xf9, 0x08, 0x9a, 0x23, 0x42, 0x2d, 0x79, 0xca,
-	0xb1, 0x38, 0x65, 0x5e, 0xec, 0x79, 0x63, 0x44, 0xe8, 0x71, 0x2c, 0xd3, 0x20, 0xfb, 0x55, 0x0a,
-	0x54, 0x8c, 0x40, 0xf6, 0xab, 0x04, 0xf4, 0x09, 0x2c, 0x29, 0x90, 0xcf, 0x59, 0xdf, 0xee, 0x13,
-	0x2f, 0x69, 0xd6, 0xc5, 0x91, 0xfd, 0xea, 0x20, 0x91, 0xb6, 0xbf, 0x29, 0xc0, 0xf2, 0xc9, 0x84,
-	0x21, 0xf7, 0x61, 0x61, 0xc8, 0x31, 0x0e, 0x2b, 0x73, 0x22, 0x26, 0x79, 0xb8, 0x19, 0x82, 0xd1,
-	0x43, 0x28, 0x5f, 0x60, 0xcf, 0x63, 0x21, 0xa9, 0xbc, 0x7d, 0x59, 0x84, 0x46, 0x3f, 0x86, 0x12,
-	0xc7, 0x6e, 0x54, 0xb3, 0x6f, 0x5b, 0xa4, 0xa0, 0xed, 0x7f, 0x17, 0xa1, 0x99, 0xb5, 0xb8, 0x0b,
-	0x8b, 0x6e, 0x28, 0x88, 0x49, 0x26, 0x6c, 0xaa, 0x9b, 0xf9, 0xa6, 0xd2, 0x98, 0x88, 0x61, 0x9a,
-	0x6e, 0x7a, 0x88, 0x7e, 0x03, 0x2d, 0x69, 0x13, 0xcf, 0x72, 0x39, 0xf3, 0xad, 0x58, 0x9b, 0xa3,
-	0xf5, 0x47, 0x1e, 0x7d, 0x94, 0x2b, 0x8e, 0x69, 0x99, 0x7f, 0x3a, 0x67, 0xae, 0xca, 0xa9, 0x25,
-	0xb1, 0x0f, 0x88, 0x63, 0x37, 0xaf, 0xf9, 0x52, 0x6e, 0x3f, 0x9d, 0x33, 0x0d, 0x9e, 0xcf, 0xd2,
-	0x21, 0xac, 0x9c, 0x4f, 0x51, 0x18, 0xf6, 0xec, 0xed, 0xac, 0xc2, 0x93, 0x29, 0x1a, 0x97, 0xcf,
-	0xf3, 0x2a, 0xbb, 0x46, 0x12, 0xc6, 0x50, 0x5b, 0xfb, 0x2f, 0x25, 0x68, 0x44, 0x4d, 0x70, 0xa8,
-	0xaa, 0xf7, 0x5d, 0x99, 0xeb, 0x16, 0xc0, 0x10, 0x8f, 0x74, 0x2f, 0x8e, 0x5b, 0xb7, 0x16, 0x49,
-	0x7a, 0xae, 0x22, 0x36, 0xbf, 0x4f, 0xa4, 0x35, 0xb2, 0x7d, 0x1d, 0x91, 0x9a, 0x59, 0x51, 0xe3,
-	0x67, 0xb6, 0x8f, 0x3e, 0x86, 0x45, 0x1b, 0x0b, 0x0b, 0x53, 0x87, 0x5f, 0xf8, 0x7a, 0x57, 0xe5,
-	0x61, 0xd5, 0x6c, 0xda, 0x58, 0xec, 0x8d, 0x85, 0x33, 0x38, 0x64, 0x32, 0x67, 0x5b, 0xf9, 0xb5,
-	0x67, 0x5b, 0x25, 0x73, 0xb6, 0x4d, 0x16, 0x5e, 0xf5, 0xca, 0x85, 0xd7, 0xcd, 0x47, 0xbd, 0x55,
-	0xd3, 0x39, 0x9c, 0xae, 0x23, 0x6a, 0x84, 0x58, 0x47, 0x38, 0x6c, 0x7f, 0x5d, 0x84, 0x66, 0x3a,
-	0x4f, 0xef, 0x9f, 0x41, 0x3b, 0x09, 0x83, 0x6a, 0x5e, 0x13, 0xad, 0xb2, 0x66, 0xd0, 0xb5, 0xa9,
-	0x0c, 0xaa, 0x8d, 0x1a, 0xb3, 0x67, 0x64, 0xe2, 0x94, 0x23, 0xa2, 0x32, 0xe5, 0x88, 0x50, 0x38,
-	0x8a, 0xe5, 0x39, 0xe3, 0x2f, 0xac, 0xd8, 0xa5, 0x6a, 0x88, 0x8b, 0xc4, 0x3d, 0xed, 0x59, 0x7b,
-	0x00, 0x4b, 0x3d, 0x2a, 0xa4, 0x4d, 0x1d, 0xfc, 0x98, 0x51, 0xc9, 0x99, 0xa7, 0x4e, 0x76, 0x46,
-	0x03, 0x1d, 0x81, 0x9a, 0xa9, 0x1e, 0x95, 0x24, 0xa0, 0x44, 0xfb, 0x5e, 0x33, 0xd5, 0x23, 0xda,
-	0x86, 0x6b, 0x8a, 0x2d, 0x87, 0x78, 0x64, 0xf9, 0xf6, 0x85, 0xc7, 0x6c, 0x37, 0x64, 0xed, 0xb0,
-	0x10, 0x97, 0x47, 0xf6, 0xab, 0x27, 0x78, 0x74, 0x10, 0xce, 0x68, 0xf6, 0xfe, 0xba, 0x08, 0xf5,
-	0xc3, 0x31, 0xdb, 0x0a, 0x74, 0x07, 0x1a, 0x67, 0x09, 0x23, 0x7f, 0xaa, 0x77, 0x6b, 0x9a, 0xf5,
-	0xb3, 0x31, 0xe4, 0xd3, 0x1c, 0x64, 0x47, 0x6f, 0x9f, 0x81, 0xec, 0xe4, 0x20, 0xf7, 0xf4, 0xf6,
-	0x19, 0xc8, 0xbd, 0x1c, 0xe4, 0xbe, 0xce, 0x54, 0x06, 0x72, 0x3f, 0x07, 0x79, 0xa0, 0x93, 0x96,
-	0x81, 0x3c, 0xc8, 0x41, 0x1e, 0xea, 0x5a, 0xcf, 0x40, 0x1e, 0xe6, 0x20, 0x9f, 0xe9, 0xb4, 0x64,
-	0x20, 0x9f, 0xb5, 0xbf, 0x59, 0x80, 0x65, 0x15, 0x17, 0xc6, 0x65, 0x47, 0x4a, 0x4e, 0xfa, 0x81,
-	0xc4, 0x22, 0xd7, 0xe7, 0x85, 0x7c, 0x9f, 0xaf, 0x03, 0xa8, 0x50, 0x9f, 0x85, 0x01, 0x0e, 0x73,
-	0x50, 0x1d, 0xd9, 0xaf, 0x0e, 0x55, 0x5c, 0xaf, 0xce, 0x02, 0xb5, 0x3c, 0x0b, 0xfc, 0x1c, 0x96,
-	0xc5, 0xb8, 0xc7, 0xaf, 0x46, 0x05, 0x86, 0xc8, 0x49, 0x94, 0x2f, 0x71, 0xff, 0x5b, 0x67, 0x11,
-	0x23, 0xd4, 0x62, 0xc9, 0xe1, 0x7b, 0xa5, 0x84, 0xbd, 0xd7, 0x50, 0xc2, 0xdb, 0x8e, 0xc7, 0x2c,
-	0x2b, 0xa0, 0x27, 0xb0, 0x9c, 0x55, 0x63, 0xbd, 0xdc, 0x69, 0x2d, 0xbe, 0x9d, 0x5c, 0x96, 0x32,
-	0x6a, 0x7e, 0xa9, 0x6b, 0x93, 0x08, 0x6b, 0x14, 0x78, 0x92, 0x38, 0xb6, 0x90, 0x2d, 0xd0, 0xc1,
-	0xaf, 0x13, 0xf1, 0x2c, 0x16, 0xa1, 0x4d, 0x30, 0xc6, 0xf3, 0xba, 0x97, 0x88, 0xdb, 0xaa, 0x47,
-	0x97, 0x8e, 0x58, 0xfe, 0x04, 0x8f, 0x7a, 0x2e, 0xfa, 0x09, 0xdc, 0x74, 0x2f, 0xa8, 0x3d, 0x22,
-	0x8e, 0x65, 0x3b, 0x0e, 0x16, 0x42, 0x19, 0xa7, 0xba, 0xd5, 0xf2, 0x88, 0x90, 0xad, 0x86, 0xd6,
-	0xdd, 0x8a, 0x20, 0x1d, 0x8d, 0x88, 0xda, 0xf9, 0x4b, 0x22, 0x24, 0x7a, 0x04, 0x6b, 0x42, 0xbd,
-	0x20, 0x4d, 0x5f, 0xdd, 0xd4, 0xab, 0xaf, 0x87, 0x88, 0x89, 0xc5, 0xed, 0x3f, 0x17, 0x61, 0x65,
-	0x7c, 0x9b, 0x4b, 0xd5, 0xed, 0x8c, 0x2e, 0xe4, 0xcd, 0xe4, 0x42, 0x3e, 0xf1, 0xaa, 0x55, 0xfa,
-	0x1f, 0x5e, 0xb5, 0xe6, 0x5f, 0x7b, 0x1c, 0x2d, 0x64, 0x6a, 0x6f, 0x17, 0x16, 0xcf, 0xac, 0xcc,
-	0x39, 0x58, 0xbe, 0x54, 0xf1, 0x37, 0xce, 0x8e, 0x52, 0x6f, 0x5b, 0xff, 0x2c, 0xc3, 0xca, 0xde,
-	0xc1, 0xf3, 0x7d, 0x4d, 0xd3, 0xa9, 0x20, 0x65, 0xbb, 0xb7, 0xf0, 0x86, 0xee, 0x2d, 0x66, 0xbb,
-	0x37, 0xcb, 0x0a, 0x21, 0xb1, 0xa5, 0x58, 0xe1, 0x92, 0xcd, 0x7d, 0x07, 0x1a, 0xf1, 0x89, 0x23,
-	0x2f, 0x7c, 0xac, 0x5d, 0xaf, 0x99, 0xf5, 0x48, 0x76, 0x7c, 0xe1, 0x63, 0x74, 0x1f, 0x3e, 0x08,
-	0xa8, 0x50, 0x5e, 0x10, 0x89, 0x5d, 0x6b, 0xc8, 0x6d, 0x2a, 0x43, 0x6b, 0x43, 0x92, 0xbb, 0x96,
-	0x9a, 0x7d, 0xa2, 0x26, 0xb5, 0xe5, 0x3f, 0x00, 0x83, 0xb2, 0x11, 0x51, 0x79, 0x22, 0x54, 0x62,
-	0xfe, 0xd2, 0xf6, 0x22, 0xc6, 0x5b, 0x8a, 0xe4, 0xbd, 0x48, 0x8c, 0x76, 0x60, 0x55, 0x32, 0x0f,
-	0x73, 0x5b, 0x86, 0x21, 0xf6, 0xac, 0xdf, 0x12, 0x29, 0x31, 0xd7, 0x3d, 0xde, 0x34, 0x57, 0xc6,
-	0x93, 0x07, 0xcc, 0xf3, 0x7e, 0xa6, 0xa7, 0xd0, 0x4f, 0xe1, 0x26, 0xc7, 0x67, 0x01, 0x16, 0xd2,
-	0x92, 0xdc, 0xa6, 0x62, 0x44, 0x84, 0x20, 0x8c, 0xc6, 0x19, 0xaa, 0xe9, 0x95, 0x37, 0x22, 0xc8,
-	0x71, 0x0a, 0x11, 0x91, 0xc1, 0x3a, 0x00, 0x0d, 0x46, 0x2a, 0xec, 0x58, 0x0a, 0xdd, 0x7a, 0x4d,
-	0xb3, 0x4a, 0x83, 0xd1, 0xe1, 0x11, 0x96, 0x02, 0x7d, 0x9e, 0xa1, 0x6a, 0xa1, 0x7b, 0xae, 0xbe,
-	0x73, 0x23, 0x9b, 0xf0, 0xd4, 0x69, 0x95, 0x66, 0x71, 0x31, 0x9d, 0x30, 0x1b, 0x33, 0x21, 0xcc,
-	0x66, 0x98, 0xe6, 0x69, 0x84, 0xb9, 0xa8, 0xa7, 0x5e, 0x4f, 0x98, 0x4b, 0x33, 0x20, 0x4c, 0x63,
-	0x66, 0x84, 0xb9, 0x7c, 0x75, 0xc2, 0x6c, 0xff, 0x75, 0x1e, 0xea, 0xc7, 0xc9, 0x25, 0x06, 0x21,
-	0x98, 0xa7, 0xf6, 0x28, 0x6e, 0x1a, 0xfd, 0x8c, 0x5a, 0x50, 0x79, 0x89, 0xb9, 0x4a, 0x74, 0xcc,
-	0x1d, 0xd1, 0x50, 0x55, 0x7a, 0x7c, 0x27, 0xd2, 0x95, 0x1e, 0x1e, 0x86, 0xf5, 0x48, 0xa6, 0x2b,
-	0xbd, 0x0d, 0x4d, 0x55, 0x14, 0xfa, 0xd2, 0xc2, 0xb8, 0x14, 0xf1, 0x5d, 0x80, 0x06, 0xa3, 0xe8,
-	0x54, 0x16, 0xe8, 0x29, 0x18, 0x24, 0xba, 0x0f, 0xc5, 0x24, 0xa9, 0x9b, 0x66, 0xe2, 0xd3, 0x40,
-	0xee, 0xd6, 0x64, 0x2e, 0x91, 0xdc, 0x35, 0x6a, 0x17, 0x1a, 0x81, 0xb0, 0x92, 0x0f, 0x0c, 0x65,
-	0xad, 0xe5, 0xce, 0x6b, 0x3e, 0x30, 0x24, 0x94, 0x61, 0xd6, 0x03, 0x91, 0x7c, 0xf5, 0xd8, 0x85,
-	0x86, 0x9b, 0xd6, 0x52, 0xb9, 0xb4, 0x16, 0x37, 0xa5, 0x65, 0x08, 0x1b, 0x81, 0x2f, 0x24, 0xc7,
-	0x76, 0xe2, 0xbe, 0x65, 0xc7, 0xe0, 0xf0, 0x14, 0xa8, 0xea, 0xab, 0x68, 0xee, 0x25, 0x68, 0xe2,
-	0xb6, 0x62, 0xae, 0xc7, 0x8a, 0xf2, 0x53, 0xfa, 0xa0, 0x79, 0x01, 0x6d, 0x97, 0x9d, 0xd3, 0xb7,
-	0x6c, 0x55, 0xbb, 0xdc, 0x56, 0x1f, 0x26, 0xaa, 0xa6, 0x6d, 0xd6, 0xfe, 0x57, 0x09, 0x96, 0xf6,
-	0x7c, 0x46, 0xbf, 0x43, 0x45, 0xa3, 0x0c, 0xb2, 0x9d, 0x17, 0xf6, 0x30, 0x32, 0xa8, 0x1c, 0x19,
-	0x14, 0xca, 0xb4, 0x41, 0x2e, 0xdc, 0x1a, 0xe7, 0x32, 0xfc, 0x5e, 0x92, 0x8b, 0x6e, 0x45, 0x47,
-	0x37, 0x57, 0x22, 0x53, 0xce, 0x26, 0x73, 0x2d, 0xd6, 0x93, 0x9d, 0xd0, 0x89, 0x3c, 0x85, 0xdb,
-	0xa9, 0x44, 0x4e, 0xdd, 0xa7, 0x7a, 0xd9, 0x7d, 0xd6, 0x13, 0x4d, 0x93, 0x3b, 0xb5, 0xff, 0x33,
-	0x0f, 0x2b, 0xa9, 0x0c, 0xc6, 0x21, 0xba, 0x62, 0x26, 0xef, 0xc1, 0xaa, 0x08, 0xfa, 0xc2, 0xe1,
-	0xa4, 0x8f, 0xb9, 0x45, 0x5c, 0x4c, 0x25, 0x19, 0x90, 0xe8, 0xbb, 0x5e, 0xcd, 0xbc, 0x96, 0x4c,
-	0xf6, 0xc6, 0x73, 0x13, 0xe9, 0x9f, 0xbf, 0x44, 0xfa, 0x17, 0x2e, 0x97, 0xfe, 0xf2, 0x4c, 0x38,
-	0xa3, 0x32, 0x13, 0xce, 0xa8, 0xbe, 0x37, 0xce, 0xa8, 0x7d, 0x7b, 0x9c, 0x01, 0xb3, 0xe1, 0x8c,
-	0x3f, 0xcc, 0xc3, 0xf5, 0x1c, 0x67, 0xfc, 0x1f, 0x56, 0x5c, 0xfa, 0x0e, 0x5d, 0xce, 0xde, 0xa1,
-	0xa7, 0x15, 0x63, 0x65, 0x26, 0x5c, 0x54, 0x7d, 0x07, 0x2e, 0xaa, 0x7d, 0x4b, 0x5c, 0x04, 0xb3,
-	0xe1, 0xa2, 0x7f, 0xe8, 0x6f, 0xcc, 0x82, 0x05, 0xdc, 0x49, 0xca, 0x62, 0x05, 0x16, 0xa4, 0x1f,
-	0xbf, 0x9a, 0x37, 0xcd, 0x79, 0xe9, 0xf7, 0xdc, 0x89, 0x44, 0x16, 0x27, 0x13, 0xf9, 0x4e, 0x05,
-	0x92, 0xce, 0xec, 0x7c, 0x36, 0xb3, 0xb7, 0xa1, 0x9e, 0xbc, 0x11, 0xa8, 0xb2, 0x28, 0x6d, 0x36,
-	0x4d, 0x18, 0xbf, 0x12, 0x88, 0xad, 0xcf, 0xa1, 0x36, 0x7e, 0xe3, 0x42, 0x0d, 0xa8, 0xfe, 0xe2,
-	0xe0, 0xe8, 0xd8, 0xdc, 0xeb, 0x3c, 0x33, 0xe6, 0xd0, 0x22, 0xc0, 0xee, 0xf3, 0x93, 0xfd, 0x68,
-	0x5c, 0x40, 0xcb, 0xd0, 0xec, 0xf6, 0x76, 0x7b, 0xe6, 0xde, 0xe3, 0xe3, 0xde, 0xf3, 0xfd, 0xce,
-	0x97, 0x46, 0x71, 0xeb, 0x11, 0x18, 0xf9, 0xfb, 0x2a, 0xaa, 0x40, 0xe9, 0xc4, 0x34, 0x8d, 0x39,
-	0x84, 0x60, 0xf1, 0x48, 0x72, 0xe2, 0xc8, 0x83, 0xe8, 0x6a, 0x6a, 0x14, 0x10, 0x40, 0xf9, 0xe9,
-	0x45, 0x9f, 0x13, 0xd7, 0x28, 0x6e, 0x51, 0x68, 0xa4, 0x5f, 0xcb, 0xd0, 0x2a, 0x2c, 0xa7, 0xc7,
-	0xd6, 0x3e, 0xa3, 0xd8, 0x98, 0x43, 0x2b, 0xb0, 0x94, 0x15, 0x77, 0x8c, 0x02, 0xba, 0x09, 0xd7,
-	0x33, 0xc2, 0x2e, 0x16, 0x72, 0x6f, 0x30, 0x60, 0x5c, 0x1a, 0xc5, 0x09, 0x45, 0x9d, 0x40, 0x32,
-	0xa3, 0xb4, 0xf5, 0xc5, 0xf8, 0x6b, 0x76, 0x64, 0x69, 0x03, 0xaa, 0xf1, 0xb7, 0x65, 0x63, 0x0e,
-	0x35, 0xa1, 0x76, 0x32, 0x1e, 0x16, 0x94, 0x1b, 0x26, 0x76, 0x8d, 0x22, 0xaa, 0xc2, 0xfc, 0x89,
-	0x7a, 0x2a, 0x6d, 0xfd, 0xb1, 0x00, 0xeb, 0x6f, 0xfa, 0x1b, 0x85, 0x3e, 0x86, 0x3b, 0x6f, 0x9a,
-	0x8f, 0x3d, 0xda, 0x84, 0xef, 0xbd, 0x11, 0xd6, 0x11, 0x22, 0xe0, 0xd8, 0x35, 0x0a, 0xe8, 0x87,
-	0xf0, 0xc9, 0x1b, 0x91, 0x69, 0xb7, 0xbb, 0xbf, 0x82, 0x0d, 0xc6, 0x87, 0x77, 0x99, 0x8f, 0xa9,
-	0xc3, 0xb8, 0x7b, 0x37, 0xfc, 0x39, 0x9a, 0x29, 0xef, 0x5f, 0xdf, 0x1f, 0x12, 0x79, 0x1a, 0xf4,
-	0xef, 0x3a, 0x6c, 0xb4, 0x1d, 0x03, 0xb7, 0x43, 0xe0, 0x8f, 0xa2, 0xbf, 0xa8, 0x2f, 0x1f, 0x6c,
-	0x0f, 0x59, 0xe6, 0x5f, 0x6a, 0xbf, 0xac, 0xa7, 0xee, 0xfd, 0x37, 0x00, 0x00, 0xff, 0xff, 0xe0,
-	0x3d, 0x33, 0x15, 0x70, 0x1d, 0x00, 0x00,
+func init() { file_voltha_protos_tech_profile_proto_init() }
+func file_voltha_protos_tech_profile_proto_init() {
+	if File_voltha_protos_tech_profile_proto != nil {
+		return
+	}
+	file_voltha_protos_tech_profile_proto_msgTypes[7].OneofWrappers = []any{
+		(*DiscardConfig_TailDropDiscardConfig)(nil),
+		(*DiscardConfig_RedDiscardConfig)(nil),
+		(*DiscardConfig_WredDiscardConfig)(nil),
+	}
+	type x struct{}
+	out := protoimpl.TypeBuilder{
+		File: protoimpl.DescBuilder{
+			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+			RawDescriptor: unsafe.Slice(unsafe.StringData(file_voltha_protos_tech_profile_proto_rawDesc), len(file_voltha_protos_tech_profile_proto_rawDesc)),
+			NumEnums:      5,
+			NumMessages:   20,
+			NumExtensions: 0,
+			NumServices:   0,
+		},
+		GoTypes:           file_voltha_protos_tech_profile_proto_goTypes,
+		DependencyIndexes: file_voltha_protos_tech_profile_proto_depIdxs,
+		EnumInfos:         file_voltha_protos_tech_profile_proto_enumTypes,
+		MessageInfos:      file_voltha_protos_tech_profile_proto_msgTypes,
+	}.Build()
+	File_voltha_protos_tech_profile_proto = out.File
+	file_voltha_protos_tech_profile_proto_goTypes = nil
+	file_voltha_protos_tech_profile_proto_depIdxs = nil
 }
diff --git a/go/voip_system_profile/voip_system_profile.pb.go b/go/voip_system_profile/voip_system_profile.pb.go
index b0aeb8e..5ddcfda 100644
--- a/go/voip_system_profile/voip_system_profile.pb.go
+++ b/go/voip_system_profile/voip_system_profile.pb.go
@@ -1,69 +1,89 @@
+// Copyright 2018-2024 Open Networking Foundation (ONF) and the ONF Contributors
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at:
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
 // Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// 	protoc-gen-go v1.36.11
+// 	protoc        v4.25.8
 // source: voltha_protos/voip_system_profile.proto
 
 package voip_system_profile
 
 import (
-	fmt "fmt"
-	proto "github.com/golang/protobuf/proto"
 	_ "google.golang.org/genproto/googleapis/api/annotations"
-	math "math"
+	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+	reflect "reflect"
+	sync "sync"
+	unsafe "unsafe"
 )
 
-// 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
+const (
+	// Verify that this generated code is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+	// Verify that runtime/protoimpl is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
 
 type VoipSystemProfileRequest struct {
-	Key                  string             `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
-	VoipSystemProfile    *VoipSystemProfile `protobuf:"bytes,2,opt,name=voipSystemProfile,proto3" json:"voipSystemProfile,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
-	XXX_unrecognized     []byte             `json:"-"`
-	XXX_sizecache        int32              `json:"-"`
+	state             protoimpl.MessageState `protogen:"open.v1"`
+	Key               string                 `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
+	VoipSystemProfile *VoipSystemProfile     `protobuf:"bytes,2,opt,name=voipSystemProfile,proto3" json:"voipSystemProfile,omitempty"`
+	unknownFields     protoimpl.UnknownFields
+	sizeCache         protoimpl.SizeCache
 }
 
-func (m *VoipSystemProfileRequest) Reset()         { *m = VoipSystemProfileRequest{} }
-func (m *VoipSystemProfileRequest) String() string { return proto.CompactTextString(m) }
-func (*VoipSystemProfileRequest) ProtoMessage()    {}
+func (x *VoipSystemProfileRequest) Reset() {
+	*x = VoipSystemProfileRequest{}
+	mi := &file_voltha_protos_voip_system_profile_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VoipSystemProfileRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VoipSystemProfileRequest) ProtoMessage() {}
+
+func (x *VoipSystemProfileRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_voip_system_profile_proto_msgTypes[0]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VoipSystemProfileRequest.ProtoReflect.Descriptor instead.
 func (*VoipSystemProfileRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_02a00a136081bca5, []int{0}
+	return file_voltha_protos_voip_system_profile_proto_rawDescGZIP(), []int{0}
 }
 
-func (m *VoipSystemProfileRequest) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_VoipSystemProfileRequest.Unmarshal(m, b)
-}
-func (m *VoipSystemProfileRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_VoipSystemProfileRequest.Marshal(b, m, deterministic)
-}
-func (m *VoipSystemProfileRequest) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_VoipSystemProfileRequest.Merge(m, src)
-}
-func (m *VoipSystemProfileRequest) XXX_Size() int {
-	return xxx_messageInfo_VoipSystemProfileRequest.Size(m)
-}
-func (m *VoipSystemProfileRequest) XXX_DiscardUnknown() {
-	xxx_messageInfo_VoipSystemProfileRequest.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_VoipSystemProfileRequest proto.InternalMessageInfo
-
-func (m *VoipSystemProfileRequest) GetKey() string {
-	if m != nil {
-		return m.Key
+func (x *VoipSystemProfileRequest) GetKey() string {
+	if x != nil {
+		return x.Key
 	}
 	return ""
 }
 
-func (m *VoipSystemProfileRequest) GetVoipSystemProfile() *VoipSystemProfile {
-	if m != nil {
-		return m.VoipSystemProfile
+func (x *VoipSystemProfileRequest) GetVoipSystemProfile() *VoipSystemProfile {
+	if x != nil {
+		return x.VoipSystemProfile
 	}
 	return nil
 }
@@ -71,1624 +91,1799 @@
 // A system wide profile for voip service that can be stored into voltha KV anytime.
 // Designed based on G988-2017 (also designed flexible to be able to be modified later on)
 type VoipSystemProfile struct {
-	SipConfig            *SipConfig  `protobuf:"bytes,1,opt,name=sipConfig,proto3" json:"sipConfig,omitempty"`
-	VoipConfig           *VoipConfig `protobuf:"bytes,2,opt,name=voipConfig,proto3" json:"voipConfig,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
-	XXX_unrecognized     []byte      `json:"-"`
-	XXX_sizecache        int32       `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	SipConfig     *SipConfig             `protobuf:"bytes,1,opt,name=sipConfig,proto3" json:"sipConfig,omitempty"`
+	VoipConfig    *VoipConfig            `protobuf:"bytes,2,opt,name=voipConfig,proto3" json:"voipConfig,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *VoipSystemProfile) Reset()         { *m = VoipSystemProfile{} }
-func (m *VoipSystemProfile) String() string { return proto.CompactTextString(m) }
-func (*VoipSystemProfile) ProtoMessage()    {}
+func (x *VoipSystemProfile) Reset() {
+	*x = VoipSystemProfile{}
+	mi := &file_voltha_protos_voip_system_profile_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VoipSystemProfile) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VoipSystemProfile) ProtoMessage() {}
+
+func (x *VoipSystemProfile) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_voip_system_profile_proto_msgTypes[1]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VoipSystemProfile.ProtoReflect.Descriptor instead.
 func (*VoipSystemProfile) Descriptor() ([]byte, []int) {
-	return fileDescriptor_02a00a136081bca5, []int{1}
+	return file_voltha_protos_voip_system_profile_proto_rawDescGZIP(), []int{1}
 }
 
-func (m *VoipSystemProfile) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_VoipSystemProfile.Unmarshal(m, b)
-}
-func (m *VoipSystemProfile) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_VoipSystemProfile.Marshal(b, m, deterministic)
-}
-func (m *VoipSystemProfile) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_VoipSystemProfile.Merge(m, src)
-}
-func (m *VoipSystemProfile) XXX_Size() int {
-	return xxx_messageInfo_VoipSystemProfile.Size(m)
-}
-func (m *VoipSystemProfile) XXX_DiscardUnknown() {
-	xxx_messageInfo_VoipSystemProfile.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_VoipSystemProfile proto.InternalMessageInfo
-
-func (m *VoipSystemProfile) GetSipConfig() *SipConfig {
-	if m != nil {
-		return m.SipConfig
+func (x *VoipSystemProfile) GetSipConfig() *SipConfig {
+	if x != nil {
+		return x.SipConfig
 	}
 	return nil
 }
 
-func (m *VoipSystemProfile) GetVoipConfig() *VoipConfig {
-	if m != nil {
-		return m.VoipConfig
+func (x *VoipSystemProfile) GetVoipConfig() *VoipConfig {
+	if x != nil {
+		return x.VoipConfig
 	}
 	return nil
 }
 
 // Common voip fields are grouped here
 type VoipConfig struct {
-	IpHostConfig         *IpHostConfig        `protobuf:"bytes,1,opt,name=ipHostConfig,proto3" json:"ipHostConfig,omitempty"`
-	TcpUdpConfig         *TcpUdpConfig        `protobuf:"bytes,2,opt,name=tcpUdpConfig,proto3" json:"tcpUdpConfig,omitempty"`
-	VoipVoiceCtp         *VoipVoiceCtp        `protobuf:"bytes,3,opt,name=voipVoiceCtp,proto3" json:"voipVoiceCtp,omitempty"`
-	VoipMediaProfile     *VoipMediaProfile    `protobuf:"bytes,4,opt,name=voipMediaProfile,proto3" json:"voipMediaProfile,omitempty"`
-	VoiceServiceProfile  *VoiceServiceProfile `protobuf:"bytes,5,opt,name=voiceServiceProfile,proto3" json:"voiceServiceProfile,omitempty"`
-	RtpProfile           *RtpProfile          `protobuf:"bytes,6,opt,name=rtpProfile,proto3" json:"rtpProfile,omitempty"`
-	PptpPotsUni          *PptpPotsUni         `protobuf:"bytes,7,opt,name=pptpPotsUni,proto3" json:"pptpPotsUni,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
-	XXX_unrecognized     []byte               `json:"-"`
-	XXX_sizecache        int32                `json:"-"`
+	state               protoimpl.MessageState `protogen:"open.v1"`
+	IpHostConfig        *IpHostConfig          `protobuf:"bytes,1,opt,name=ipHostConfig,proto3" json:"ipHostConfig,omitempty"`
+	TcpUdpConfig        *TcpUdpConfig          `protobuf:"bytes,2,opt,name=tcpUdpConfig,proto3" json:"tcpUdpConfig,omitempty"`
+	VoipVoiceCtp        *VoipVoiceCtp          `protobuf:"bytes,3,opt,name=voipVoiceCtp,proto3" json:"voipVoiceCtp,omitempty"`
+	VoipMediaProfile    *VoipMediaProfile      `protobuf:"bytes,4,opt,name=voipMediaProfile,proto3" json:"voipMediaProfile,omitempty"`
+	VoiceServiceProfile *VoiceServiceProfile   `protobuf:"bytes,5,opt,name=voiceServiceProfile,proto3" json:"voiceServiceProfile,omitempty"`
+	RtpProfile          *RtpProfile            `protobuf:"bytes,6,opt,name=rtpProfile,proto3" json:"rtpProfile,omitempty"`
+	PptpPotsUni         *PptpPotsUni           `protobuf:"bytes,7,opt,name=pptpPotsUni,proto3" json:"pptpPotsUni,omitempty"`
+	unknownFields       protoimpl.UnknownFields
+	sizeCache           protoimpl.SizeCache
 }
 
-func (m *VoipConfig) Reset()         { *m = VoipConfig{} }
-func (m *VoipConfig) String() string { return proto.CompactTextString(m) }
-func (*VoipConfig) ProtoMessage()    {}
+func (x *VoipConfig) Reset() {
+	*x = VoipConfig{}
+	mi := &file_voltha_protos_voip_system_profile_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VoipConfig) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VoipConfig) ProtoMessage() {}
+
+func (x *VoipConfig) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_voip_system_profile_proto_msgTypes[2]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VoipConfig.ProtoReflect.Descriptor instead.
 func (*VoipConfig) Descriptor() ([]byte, []int) {
-	return fileDescriptor_02a00a136081bca5, []int{2}
+	return file_voltha_protos_voip_system_profile_proto_rawDescGZIP(), []int{2}
 }
 
-func (m *VoipConfig) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_VoipConfig.Unmarshal(m, b)
-}
-func (m *VoipConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_VoipConfig.Marshal(b, m, deterministic)
-}
-func (m *VoipConfig) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_VoipConfig.Merge(m, src)
-}
-func (m *VoipConfig) XXX_Size() int {
-	return xxx_messageInfo_VoipConfig.Size(m)
-}
-func (m *VoipConfig) XXX_DiscardUnknown() {
-	xxx_messageInfo_VoipConfig.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_VoipConfig proto.InternalMessageInfo
-
-func (m *VoipConfig) GetIpHostConfig() *IpHostConfig {
-	if m != nil {
-		return m.IpHostConfig
+func (x *VoipConfig) GetIpHostConfig() *IpHostConfig {
+	if x != nil {
+		return x.IpHostConfig
 	}
 	return nil
 }
 
-func (m *VoipConfig) GetTcpUdpConfig() *TcpUdpConfig {
-	if m != nil {
-		return m.TcpUdpConfig
+func (x *VoipConfig) GetTcpUdpConfig() *TcpUdpConfig {
+	if x != nil {
+		return x.TcpUdpConfig
 	}
 	return nil
 }
 
-func (m *VoipConfig) GetVoipVoiceCtp() *VoipVoiceCtp {
-	if m != nil {
-		return m.VoipVoiceCtp
+func (x *VoipConfig) GetVoipVoiceCtp() *VoipVoiceCtp {
+	if x != nil {
+		return x.VoipVoiceCtp
 	}
 	return nil
 }
 
-func (m *VoipConfig) GetVoipMediaProfile() *VoipMediaProfile {
-	if m != nil {
-		return m.VoipMediaProfile
+func (x *VoipConfig) GetVoipMediaProfile() *VoipMediaProfile {
+	if x != nil {
+		return x.VoipMediaProfile
 	}
 	return nil
 }
 
-func (m *VoipConfig) GetVoiceServiceProfile() *VoiceServiceProfile {
-	if m != nil {
-		return m.VoiceServiceProfile
+func (x *VoipConfig) GetVoiceServiceProfile() *VoiceServiceProfile {
+	if x != nil {
+		return x.VoiceServiceProfile
 	}
 	return nil
 }
 
-func (m *VoipConfig) GetRtpProfile() *RtpProfile {
-	if m != nil {
-		return m.RtpProfile
+func (x *VoipConfig) GetRtpProfile() *RtpProfile {
+	if x != nil {
+		return x.RtpProfile
 	}
 	return nil
 }
 
-func (m *VoipConfig) GetPptpPotsUni() *PptpPotsUni {
-	if m != nil {
-		return m.PptpPotsUni
+func (x *VoipConfig) GetPptpPotsUni() *PptpPotsUni {
+	if x != nil {
+		return x.PptpPotsUni
 	}
 	return nil
 }
 
 type IpHostConfig struct {
-	IpOptions            uint32   `protobuf:"varint,1,opt,name=ipOptions,proto3" json:"ipOptions,omitempty"`
-	OnuIdentifier        string   `protobuf:"bytes,2,opt,name=onuIdentifier,proto3" json:"onuIdentifier,omitempty"`
-	IpAddress            string   `protobuf:"bytes,3,opt,name=ipAddress,proto3" json:"ipAddress,omitempty"`
-	Mask                 string   `protobuf:"bytes,4,opt,name=mask,proto3" json:"mask,omitempty"`
-	Gateway              string   `protobuf:"bytes,5,opt,name=gateway,proto3" json:"gateway,omitempty"`
-	PrimaryDns           string   `protobuf:"bytes,6,opt,name=primaryDns,proto3" json:"primaryDns,omitempty"`
-	SecondaryDns         string   `protobuf:"bytes,7,opt,name=secondaryDns,proto3" json:"secondaryDns,omitempty"`
-	RelayAgentOptions    string   `protobuf:"bytes,8,opt,name=relayAgentOptions,proto3" json:"relayAgentOptions,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state             protoimpl.MessageState `protogen:"open.v1"`
+	IpOptions         uint32                 `protobuf:"varint,1,opt,name=ipOptions,proto3" json:"ipOptions,omitempty"`
+	OnuIdentifier     string                 `protobuf:"bytes,2,opt,name=onuIdentifier,proto3" json:"onuIdentifier,omitempty"`
+	IpAddress         string                 `protobuf:"bytes,3,opt,name=ipAddress,proto3" json:"ipAddress,omitempty"`
+	Mask              string                 `protobuf:"bytes,4,opt,name=mask,proto3" json:"mask,omitempty"`
+	Gateway           string                 `protobuf:"bytes,5,opt,name=gateway,proto3" json:"gateway,omitempty"`
+	PrimaryDns        string                 `protobuf:"bytes,6,opt,name=primaryDns,proto3" json:"primaryDns,omitempty"`
+	SecondaryDns      string                 `protobuf:"bytes,7,opt,name=secondaryDns,proto3" json:"secondaryDns,omitempty"`
+	RelayAgentOptions string                 `protobuf:"bytes,8,opt,name=relayAgentOptions,proto3" json:"relayAgentOptions,omitempty"`
+	unknownFields     protoimpl.UnknownFields
+	sizeCache         protoimpl.SizeCache
 }
 
-func (m *IpHostConfig) Reset()         { *m = IpHostConfig{} }
-func (m *IpHostConfig) String() string { return proto.CompactTextString(m) }
-func (*IpHostConfig) ProtoMessage()    {}
+func (x *IpHostConfig) Reset() {
+	*x = IpHostConfig{}
+	mi := &file_voltha_protos_voip_system_profile_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *IpHostConfig) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*IpHostConfig) ProtoMessage() {}
+
+func (x *IpHostConfig) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_voip_system_profile_proto_msgTypes[3]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use IpHostConfig.ProtoReflect.Descriptor instead.
 func (*IpHostConfig) Descriptor() ([]byte, []int) {
-	return fileDescriptor_02a00a136081bca5, []int{3}
+	return file_voltha_protos_voip_system_profile_proto_rawDescGZIP(), []int{3}
 }
 
-func (m *IpHostConfig) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_IpHostConfig.Unmarshal(m, b)
-}
-func (m *IpHostConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_IpHostConfig.Marshal(b, m, deterministic)
-}
-func (m *IpHostConfig) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_IpHostConfig.Merge(m, src)
-}
-func (m *IpHostConfig) XXX_Size() int {
-	return xxx_messageInfo_IpHostConfig.Size(m)
-}
-func (m *IpHostConfig) XXX_DiscardUnknown() {
-	xxx_messageInfo_IpHostConfig.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_IpHostConfig proto.InternalMessageInfo
-
-func (m *IpHostConfig) GetIpOptions() uint32 {
-	if m != nil {
-		return m.IpOptions
+func (x *IpHostConfig) GetIpOptions() uint32 {
+	if x != nil {
+		return x.IpOptions
 	}
 	return 0
 }
 
-func (m *IpHostConfig) GetOnuIdentifier() string {
-	if m != nil {
-		return m.OnuIdentifier
+func (x *IpHostConfig) GetOnuIdentifier() string {
+	if x != nil {
+		return x.OnuIdentifier
 	}
 	return ""
 }
 
-func (m *IpHostConfig) GetIpAddress() string {
-	if m != nil {
-		return m.IpAddress
+func (x *IpHostConfig) GetIpAddress() string {
+	if x != nil {
+		return x.IpAddress
 	}
 	return ""
 }
 
-func (m *IpHostConfig) GetMask() string {
-	if m != nil {
-		return m.Mask
+func (x *IpHostConfig) GetMask() string {
+	if x != nil {
+		return x.Mask
 	}
 	return ""
 }
 
-func (m *IpHostConfig) GetGateway() string {
-	if m != nil {
-		return m.Gateway
+func (x *IpHostConfig) GetGateway() string {
+	if x != nil {
+		return x.Gateway
 	}
 	return ""
 }
 
-func (m *IpHostConfig) GetPrimaryDns() string {
-	if m != nil {
-		return m.PrimaryDns
+func (x *IpHostConfig) GetPrimaryDns() string {
+	if x != nil {
+		return x.PrimaryDns
 	}
 	return ""
 }
 
-func (m *IpHostConfig) GetSecondaryDns() string {
-	if m != nil {
-		return m.SecondaryDns
+func (x *IpHostConfig) GetSecondaryDns() string {
+	if x != nil {
+		return x.SecondaryDns
 	}
 	return ""
 }
 
-func (m *IpHostConfig) GetRelayAgentOptions() string {
-	if m != nil {
-		return m.RelayAgentOptions
+func (x *IpHostConfig) GetRelayAgentOptions() string {
+	if x != nil {
+		return x.RelayAgentOptions
 	}
 	return ""
 }
 
 type TcpUdpConfig struct {
-	Protocol             uint32   `protobuf:"varint,1,opt,name=protocol,proto3" json:"protocol,omitempty"`
-	TosField             string   `protobuf:"bytes,2,opt,name=tosField,proto3" json:"tosField,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Protocol      uint32                 `protobuf:"varint,1,opt,name=protocol,proto3" json:"protocol,omitempty"`
+	TosField      string                 `protobuf:"bytes,2,opt,name=tosField,proto3" json:"tosField,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *TcpUdpConfig) Reset()         { *m = TcpUdpConfig{} }
-func (m *TcpUdpConfig) String() string { return proto.CompactTextString(m) }
-func (*TcpUdpConfig) ProtoMessage()    {}
+func (x *TcpUdpConfig) Reset() {
+	*x = TcpUdpConfig{}
+	mi := &file_voltha_protos_voip_system_profile_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *TcpUdpConfig) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TcpUdpConfig) ProtoMessage() {}
+
+func (x *TcpUdpConfig) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_voip_system_profile_proto_msgTypes[4]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use TcpUdpConfig.ProtoReflect.Descriptor instead.
 func (*TcpUdpConfig) Descriptor() ([]byte, []int) {
-	return fileDescriptor_02a00a136081bca5, []int{4}
+	return file_voltha_protos_voip_system_profile_proto_rawDescGZIP(), []int{4}
 }
 
-func (m *TcpUdpConfig) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_TcpUdpConfig.Unmarshal(m, b)
-}
-func (m *TcpUdpConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_TcpUdpConfig.Marshal(b, m, deterministic)
-}
-func (m *TcpUdpConfig) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_TcpUdpConfig.Merge(m, src)
-}
-func (m *TcpUdpConfig) XXX_Size() int {
-	return xxx_messageInfo_TcpUdpConfig.Size(m)
-}
-func (m *TcpUdpConfig) XXX_DiscardUnknown() {
-	xxx_messageInfo_TcpUdpConfig.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_TcpUdpConfig proto.InternalMessageInfo
-
-func (m *TcpUdpConfig) GetProtocol() uint32 {
-	if m != nil {
-		return m.Protocol
+func (x *TcpUdpConfig) GetProtocol() uint32 {
+	if x != nil {
+		return x.Protocol
 	}
 	return 0
 }
 
-func (m *TcpUdpConfig) GetTosField() string {
-	if m != nil {
-		return m.TosField
+func (x *TcpUdpConfig) GetTosField() string {
+	if x != nil {
+		return x.TosField
 	}
 	return ""
 }
 
 type VoipVoiceCtp struct {
-	SignallingCode       uint32   `protobuf:"varint,1,opt,name=signallingCode,proto3" json:"signallingCode,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state          protoimpl.MessageState `protogen:"open.v1"`
+	SignallingCode uint32                 `protobuf:"varint,1,opt,name=signallingCode,proto3" json:"signallingCode,omitempty"`
+	unknownFields  protoimpl.UnknownFields
+	sizeCache      protoimpl.SizeCache
 }
 
-func (m *VoipVoiceCtp) Reset()         { *m = VoipVoiceCtp{} }
-func (m *VoipVoiceCtp) String() string { return proto.CompactTextString(m) }
-func (*VoipVoiceCtp) ProtoMessage()    {}
+func (x *VoipVoiceCtp) Reset() {
+	*x = VoipVoiceCtp{}
+	mi := &file_voltha_protos_voip_system_profile_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VoipVoiceCtp) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VoipVoiceCtp) ProtoMessage() {}
+
+func (x *VoipVoiceCtp) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_voip_system_profile_proto_msgTypes[5]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VoipVoiceCtp.ProtoReflect.Descriptor instead.
 func (*VoipVoiceCtp) Descriptor() ([]byte, []int) {
-	return fileDescriptor_02a00a136081bca5, []int{5}
+	return file_voltha_protos_voip_system_profile_proto_rawDescGZIP(), []int{5}
 }
 
-func (m *VoipVoiceCtp) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_VoipVoiceCtp.Unmarshal(m, b)
-}
-func (m *VoipVoiceCtp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_VoipVoiceCtp.Marshal(b, m, deterministic)
-}
-func (m *VoipVoiceCtp) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_VoipVoiceCtp.Merge(m, src)
-}
-func (m *VoipVoiceCtp) XXX_Size() int {
-	return xxx_messageInfo_VoipVoiceCtp.Size(m)
-}
-func (m *VoipVoiceCtp) XXX_DiscardUnknown() {
-	xxx_messageInfo_VoipVoiceCtp.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_VoipVoiceCtp proto.InternalMessageInfo
-
-func (m *VoipVoiceCtp) GetSignallingCode() uint32 {
-	if m != nil {
-		return m.SignallingCode
+func (x *VoipVoiceCtp) GetSignallingCode() uint32 {
+	if x != nil {
+		return x.SignallingCode
 	}
 	return 0
 }
 
 type VoipMediaProfile struct {
-	FaxMode                uint32   `protobuf:"varint,1,opt,name=faxMode,proto3" json:"faxMode,omitempty"`
-	CodecSelection1        uint32   `protobuf:"varint,2,opt,name=codecSelection1,proto3" json:"codecSelection1,omitempty"`
-	PacketPeriodSelection1 uint32   `protobuf:"varint,3,opt,name=packetPeriodSelection1,proto3" json:"packetPeriodSelection1,omitempty"`
-	SilenceSuppression1    uint32   `protobuf:"varint,4,opt,name=silenceSuppression1,proto3" json:"silenceSuppression1,omitempty"`
-	CodecSelection2        uint32   `protobuf:"varint,5,opt,name=codecSelection2,proto3" json:"codecSelection2,omitempty"`
-	PacketPeriodSelection2 uint32   `protobuf:"varint,6,opt,name=packetPeriodSelection2,proto3" json:"packetPeriodSelection2,omitempty"`
-	SilenceSuppression2    uint32   `protobuf:"varint,7,opt,name=silenceSuppression2,proto3" json:"silenceSuppression2,omitempty"`
-	CodecSelection3        uint32   `protobuf:"varint,8,opt,name=codecSelection3,proto3" json:"codecSelection3,omitempty"`
-	PacketPeriodSelection3 uint32   `protobuf:"varint,9,opt,name=packetPeriodSelection3,proto3" json:"packetPeriodSelection3,omitempty"`
-	SilenceSuppression3    uint32   `protobuf:"varint,10,opt,name=silenceSuppression3,proto3" json:"silenceSuppression3,omitempty"`
-	CodecSelection4        uint32   `protobuf:"varint,11,opt,name=codecSelection4,proto3" json:"codecSelection4,omitempty"`
-	PacketPeriodSelection4 uint32   `protobuf:"varint,12,opt,name=packetPeriodSelection4,proto3" json:"packetPeriodSelection4,omitempty"`
-	SilenceSuppression4    uint32   `protobuf:"varint,13,opt,name=silenceSuppression4,proto3" json:"silenceSuppression4,omitempty"`
-	OobDtmf                uint32   `protobuf:"varint,14,opt,name=oobDtmf,proto3" json:"oobDtmf,omitempty"`
-	XXX_NoUnkeyedLiteral   struct{} `json:"-"`
-	XXX_unrecognized       []byte   `json:"-"`
-	XXX_sizecache          int32    `json:"-"`
+	state                  protoimpl.MessageState `protogen:"open.v1"`
+	FaxMode                uint32                 `protobuf:"varint,1,opt,name=faxMode,proto3" json:"faxMode,omitempty"`
+	CodecSelection1        uint32                 `protobuf:"varint,2,opt,name=codecSelection1,proto3" json:"codecSelection1,omitempty"`
+	PacketPeriodSelection1 uint32                 `protobuf:"varint,3,opt,name=packetPeriodSelection1,proto3" json:"packetPeriodSelection1,omitempty"`
+	SilenceSuppression1    uint32                 `protobuf:"varint,4,opt,name=silenceSuppression1,proto3" json:"silenceSuppression1,omitempty"`
+	CodecSelection2        uint32                 `protobuf:"varint,5,opt,name=codecSelection2,proto3" json:"codecSelection2,omitempty"`
+	PacketPeriodSelection2 uint32                 `protobuf:"varint,6,opt,name=packetPeriodSelection2,proto3" json:"packetPeriodSelection2,omitempty"`
+	SilenceSuppression2    uint32                 `protobuf:"varint,7,opt,name=silenceSuppression2,proto3" json:"silenceSuppression2,omitempty"`
+	CodecSelection3        uint32                 `protobuf:"varint,8,opt,name=codecSelection3,proto3" json:"codecSelection3,omitempty"`
+	PacketPeriodSelection3 uint32                 `protobuf:"varint,9,opt,name=packetPeriodSelection3,proto3" json:"packetPeriodSelection3,omitempty"`
+	SilenceSuppression3    uint32                 `protobuf:"varint,10,opt,name=silenceSuppression3,proto3" json:"silenceSuppression3,omitempty"`
+	CodecSelection4        uint32                 `protobuf:"varint,11,opt,name=codecSelection4,proto3" json:"codecSelection4,omitempty"`
+	PacketPeriodSelection4 uint32                 `protobuf:"varint,12,opt,name=packetPeriodSelection4,proto3" json:"packetPeriodSelection4,omitempty"`
+	SilenceSuppression4    uint32                 `protobuf:"varint,13,opt,name=silenceSuppression4,proto3" json:"silenceSuppression4,omitempty"`
+	OobDtmf                uint32                 `protobuf:"varint,14,opt,name=oobDtmf,proto3" json:"oobDtmf,omitempty"`
+	unknownFields          protoimpl.UnknownFields
+	sizeCache              protoimpl.SizeCache
 }
 
-func (m *VoipMediaProfile) Reset()         { *m = VoipMediaProfile{} }
-func (m *VoipMediaProfile) String() string { return proto.CompactTextString(m) }
-func (*VoipMediaProfile) ProtoMessage()    {}
+func (x *VoipMediaProfile) Reset() {
+	*x = VoipMediaProfile{}
+	mi := &file_voltha_protos_voip_system_profile_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VoipMediaProfile) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VoipMediaProfile) ProtoMessage() {}
+
+func (x *VoipMediaProfile) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_voip_system_profile_proto_msgTypes[6]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VoipMediaProfile.ProtoReflect.Descriptor instead.
 func (*VoipMediaProfile) Descriptor() ([]byte, []int) {
-	return fileDescriptor_02a00a136081bca5, []int{6}
+	return file_voltha_protos_voip_system_profile_proto_rawDescGZIP(), []int{6}
 }
 
-func (m *VoipMediaProfile) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_VoipMediaProfile.Unmarshal(m, b)
-}
-func (m *VoipMediaProfile) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_VoipMediaProfile.Marshal(b, m, deterministic)
-}
-func (m *VoipMediaProfile) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_VoipMediaProfile.Merge(m, src)
-}
-func (m *VoipMediaProfile) XXX_Size() int {
-	return xxx_messageInfo_VoipMediaProfile.Size(m)
-}
-func (m *VoipMediaProfile) XXX_DiscardUnknown() {
-	xxx_messageInfo_VoipMediaProfile.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_VoipMediaProfile proto.InternalMessageInfo
-
-func (m *VoipMediaProfile) GetFaxMode() uint32 {
-	if m != nil {
-		return m.FaxMode
+func (x *VoipMediaProfile) GetFaxMode() uint32 {
+	if x != nil {
+		return x.FaxMode
 	}
 	return 0
 }
 
-func (m *VoipMediaProfile) GetCodecSelection1() uint32 {
-	if m != nil {
-		return m.CodecSelection1
+func (x *VoipMediaProfile) GetCodecSelection1() uint32 {
+	if x != nil {
+		return x.CodecSelection1
 	}
 	return 0
 }
 
-func (m *VoipMediaProfile) GetPacketPeriodSelection1() uint32 {
-	if m != nil {
-		return m.PacketPeriodSelection1
+func (x *VoipMediaProfile) GetPacketPeriodSelection1() uint32 {
+	if x != nil {
+		return x.PacketPeriodSelection1
 	}
 	return 0
 }
 
-func (m *VoipMediaProfile) GetSilenceSuppression1() uint32 {
-	if m != nil {
-		return m.SilenceSuppression1
+func (x *VoipMediaProfile) GetSilenceSuppression1() uint32 {
+	if x != nil {
+		return x.SilenceSuppression1
 	}
 	return 0
 }
 
-func (m *VoipMediaProfile) GetCodecSelection2() uint32 {
-	if m != nil {
-		return m.CodecSelection2
+func (x *VoipMediaProfile) GetCodecSelection2() uint32 {
+	if x != nil {
+		return x.CodecSelection2
 	}
 	return 0
 }
 
-func (m *VoipMediaProfile) GetPacketPeriodSelection2() uint32 {
-	if m != nil {
-		return m.PacketPeriodSelection2
+func (x *VoipMediaProfile) GetPacketPeriodSelection2() uint32 {
+	if x != nil {
+		return x.PacketPeriodSelection2
 	}
 	return 0
 }
 
-func (m *VoipMediaProfile) GetSilenceSuppression2() uint32 {
-	if m != nil {
-		return m.SilenceSuppression2
+func (x *VoipMediaProfile) GetSilenceSuppression2() uint32 {
+	if x != nil {
+		return x.SilenceSuppression2
 	}
 	return 0
 }
 
-func (m *VoipMediaProfile) GetCodecSelection3() uint32 {
-	if m != nil {
-		return m.CodecSelection3
+func (x *VoipMediaProfile) GetCodecSelection3() uint32 {
+	if x != nil {
+		return x.CodecSelection3
 	}
 	return 0
 }
 
-func (m *VoipMediaProfile) GetPacketPeriodSelection3() uint32 {
-	if m != nil {
-		return m.PacketPeriodSelection3
+func (x *VoipMediaProfile) GetPacketPeriodSelection3() uint32 {
+	if x != nil {
+		return x.PacketPeriodSelection3
 	}
 	return 0
 }
 
-func (m *VoipMediaProfile) GetSilenceSuppression3() uint32 {
-	if m != nil {
-		return m.SilenceSuppression3
+func (x *VoipMediaProfile) GetSilenceSuppression3() uint32 {
+	if x != nil {
+		return x.SilenceSuppression3
 	}
 	return 0
 }
 
-func (m *VoipMediaProfile) GetCodecSelection4() uint32 {
-	if m != nil {
-		return m.CodecSelection4
+func (x *VoipMediaProfile) GetCodecSelection4() uint32 {
+	if x != nil {
+		return x.CodecSelection4
 	}
 	return 0
 }
 
-func (m *VoipMediaProfile) GetPacketPeriodSelection4() uint32 {
-	if m != nil {
-		return m.PacketPeriodSelection4
+func (x *VoipMediaProfile) GetPacketPeriodSelection4() uint32 {
+	if x != nil {
+		return x.PacketPeriodSelection4
 	}
 	return 0
 }
 
-func (m *VoipMediaProfile) GetSilenceSuppression4() uint32 {
-	if m != nil {
-		return m.SilenceSuppression4
+func (x *VoipMediaProfile) GetSilenceSuppression4() uint32 {
+	if x != nil {
+		return x.SilenceSuppression4
 	}
 	return 0
 }
 
-func (m *VoipMediaProfile) GetOobDtmf() uint32 {
-	if m != nil {
-		return m.OobDtmf
+func (x *VoipMediaProfile) GetOobDtmf() uint32 {
+	if x != nil {
+		return x.OobDtmf
 	}
 	return 0
 }
 
 type VoiceServiceProfile struct {
-	AnnouncementType     uint32   `protobuf:"varint,1,opt,name=announcementType,proto3" json:"announcementType,omitempty"`
-	JitterTarget         uint32   `protobuf:"varint,2,opt,name=jitterTarget,proto3" json:"jitterTarget,omitempty"`
-	JitterBufferMax      uint32   `protobuf:"varint,3,opt,name=jitterBufferMax,proto3" json:"jitterBufferMax,omitempty"`
-	EchoCancelInd        bool     `protobuf:"varint,4,opt,name=echoCancelInd,proto3" json:"echoCancelInd,omitempty"`
-	PstnProtocolVariant  uint32   `protobuf:"varint,5,opt,name=pstnProtocolVariant,proto3" json:"pstnProtocolVariant,omitempty"`
-	DtmfDigitLevels      uint32   `protobuf:"varint,6,opt,name=dtmfDigitLevels,proto3" json:"dtmfDigitLevels,omitempty"`
-	DtmfDigitDuration    uint32   `protobuf:"varint,7,opt,name=dtmfDigitDuration,proto3" json:"dtmfDigitDuration,omitempty"`
-	HookFlashMinimumTime uint32   `protobuf:"varint,8,opt,name=hookFlashMinimumTime,proto3" json:"hookFlashMinimumTime,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state                protoimpl.MessageState `protogen:"open.v1"`
+	AnnouncementType     uint32                 `protobuf:"varint,1,opt,name=announcementType,proto3" json:"announcementType,omitempty"`
+	JitterTarget         uint32                 `protobuf:"varint,2,opt,name=jitterTarget,proto3" json:"jitterTarget,omitempty"`
+	JitterBufferMax      uint32                 `protobuf:"varint,3,opt,name=jitterBufferMax,proto3" json:"jitterBufferMax,omitempty"`
+	EchoCancelInd        bool                   `protobuf:"varint,4,opt,name=echoCancelInd,proto3" json:"echoCancelInd,omitempty"`
+	PstnProtocolVariant  uint32                 `protobuf:"varint,5,opt,name=pstnProtocolVariant,proto3" json:"pstnProtocolVariant,omitempty"`
+	DtmfDigitLevels      uint32                 `protobuf:"varint,6,opt,name=dtmfDigitLevels,proto3" json:"dtmfDigitLevels,omitempty"`
+	DtmfDigitDuration    uint32                 `protobuf:"varint,7,opt,name=dtmfDigitDuration,proto3" json:"dtmfDigitDuration,omitempty"`
+	HookFlashMinimumTime uint32                 `protobuf:"varint,8,opt,name=hookFlashMinimumTime,proto3" json:"hookFlashMinimumTime,omitempty"`
+	unknownFields        protoimpl.UnknownFields
+	sizeCache            protoimpl.SizeCache
 }
 
-func (m *VoiceServiceProfile) Reset()         { *m = VoiceServiceProfile{} }
-func (m *VoiceServiceProfile) String() string { return proto.CompactTextString(m) }
-func (*VoiceServiceProfile) ProtoMessage()    {}
+func (x *VoiceServiceProfile) Reset() {
+	*x = VoiceServiceProfile{}
+	mi := &file_voltha_protos_voip_system_profile_proto_msgTypes[7]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VoiceServiceProfile) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VoiceServiceProfile) ProtoMessage() {}
+
+func (x *VoiceServiceProfile) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_voip_system_profile_proto_msgTypes[7]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VoiceServiceProfile.ProtoReflect.Descriptor instead.
 func (*VoiceServiceProfile) Descriptor() ([]byte, []int) {
-	return fileDescriptor_02a00a136081bca5, []int{7}
+	return file_voltha_protos_voip_system_profile_proto_rawDescGZIP(), []int{7}
 }
 
-func (m *VoiceServiceProfile) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_VoiceServiceProfile.Unmarshal(m, b)
-}
-func (m *VoiceServiceProfile) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_VoiceServiceProfile.Marshal(b, m, deterministic)
-}
-func (m *VoiceServiceProfile) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_VoiceServiceProfile.Merge(m, src)
-}
-func (m *VoiceServiceProfile) XXX_Size() int {
-	return xxx_messageInfo_VoiceServiceProfile.Size(m)
-}
-func (m *VoiceServiceProfile) XXX_DiscardUnknown() {
-	xxx_messageInfo_VoiceServiceProfile.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_VoiceServiceProfile proto.InternalMessageInfo
-
-func (m *VoiceServiceProfile) GetAnnouncementType() uint32 {
-	if m != nil {
-		return m.AnnouncementType
+func (x *VoiceServiceProfile) GetAnnouncementType() uint32 {
+	if x != nil {
+		return x.AnnouncementType
 	}
 	return 0
 }
 
-func (m *VoiceServiceProfile) GetJitterTarget() uint32 {
-	if m != nil {
-		return m.JitterTarget
+func (x *VoiceServiceProfile) GetJitterTarget() uint32 {
+	if x != nil {
+		return x.JitterTarget
 	}
 	return 0
 }
 
-func (m *VoiceServiceProfile) GetJitterBufferMax() uint32 {
-	if m != nil {
-		return m.JitterBufferMax
+func (x *VoiceServiceProfile) GetJitterBufferMax() uint32 {
+	if x != nil {
+		return x.JitterBufferMax
 	}
 	return 0
 }
 
-func (m *VoiceServiceProfile) GetEchoCancelInd() bool {
-	if m != nil {
-		return m.EchoCancelInd
+func (x *VoiceServiceProfile) GetEchoCancelInd() bool {
+	if x != nil {
+		return x.EchoCancelInd
 	}
 	return false
 }
 
-func (m *VoiceServiceProfile) GetPstnProtocolVariant() uint32 {
-	if m != nil {
-		return m.PstnProtocolVariant
+func (x *VoiceServiceProfile) GetPstnProtocolVariant() uint32 {
+	if x != nil {
+		return x.PstnProtocolVariant
 	}
 	return 0
 }
 
-func (m *VoiceServiceProfile) GetDtmfDigitLevels() uint32 {
-	if m != nil {
-		return m.DtmfDigitLevels
+func (x *VoiceServiceProfile) GetDtmfDigitLevels() uint32 {
+	if x != nil {
+		return x.DtmfDigitLevels
 	}
 	return 0
 }
 
-func (m *VoiceServiceProfile) GetDtmfDigitDuration() uint32 {
-	if m != nil {
-		return m.DtmfDigitDuration
+func (x *VoiceServiceProfile) GetDtmfDigitDuration() uint32 {
+	if x != nil {
+		return x.DtmfDigitDuration
 	}
 	return 0
 }
 
-func (m *VoiceServiceProfile) GetHookFlashMinimumTime() uint32 {
-	if m != nil {
-		return m.HookFlashMinimumTime
+func (x *VoiceServiceProfile) GetHookFlashMinimumTime() uint32 {
+	if x != nil {
+		return x.HookFlashMinimumTime
 	}
 	return 0
 }
 
 type RtpProfile struct {
-	LocalPortMin         uint32   `protobuf:"varint,1,opt,name=localPortMin,proto3" json:"localPortMin,omitempty"`
-	LocalPortMax         uint32   `protobuf:"varint,2,opt,name=localPortMax,proto3" json:"localPortMax,omitempty"`
-	DscpMark             string   `protobuf:"bytes,3,opt,name=dscpMark,proto3" json:"dscpMark,omitempty"`
-	PiggyBackEvents      uint32   `protobuf:"varint,4,opt,name=piggyBackEvents,proto3" json:"piggyBackEvents,omitempty"`
-	ToneEvents           uint32   `protobuf:"varint,5,opt,name=toneEvents,proto3" json:"toneEvents,omitempty"`
-	DtmfEvents           uint32   `protobuf:"varint,6,opt,name=dtmfEvents,proto3" json:"dtmfEvents,omitempty"`
-	CasEvents            uint32   `protobuf:"varint,7,opt,name=casEvents,proto3" json:"casEvents,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state           protoimpl.MessageState `protogen:"open.v1"`
+	LocalPortMin    uint32                 `protobuf:"varint,1,opt,name=localPortMin,proto3" json:"localPortMin,omitempty"`
+	LocalPortMax    uint32                 `protobuf:"varint,2,opt,name=localPortMax,proto3" json:"localPortMax,omitempty"`
+	DscpMark        string                 `protobuf:"bytes,3,opt,name=dscpMark,proto3" json:"dscpMark,omitempty"`
+	PiggyBackEvents uint32                 `protobuf:"varint,4,opt,name=piggyBackEvents,proto3" json:"piggyBackEvents,omitempty"`
+	ToneEvents      uint32                 `protobuf:"varint,5,opt,name=toneEvents,proto3" json:"toneEvents,omitempty"`
+	DtmfEvents      uint32                 `protobuf:"varint,6,opt,name=dtmfEvents,proto3" json:"dtmfEvents,omitempty"`
+	CasEvents       uint32                 `protobuf:"varint,7,opt,name=casEvents,proto3" json:"casEvents,omitempty"`
+	unknownFields   protoimpl.UnknownFields
+	sizeCache       protoimpl.SizeCache
 }
 
-func (m *RtpProfile) Reset()         { *m = RtpProfile{} }
-func (m *RtpProfile) String() string { return proto.CompactTextString(m) }
-func (*RtpProfile) ProtoMessage()    {}
+func (x *RtpProfile) Reset() {
+	*x = RtpProfile{}
+	mi := &file_voltha_protos_voip_system_profile_proto_msgTypes[8]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *RtpProfile) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*RtpProfile) ProtoMessage() {}
+
+func (x *RtpProfile) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_voip_system_profile_proto_msgTypes[8]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use RtpProfile.ProtoReflect.Descriptor instead.
 func (*RtpProfile) Descriptor() ([]byte, []int) {
-	return fileDescriptor_02a00a136081bca5, []int{8}
+	return file_voltha_protos_voip_system_profile_proto_rawDescGZIP(), []int{8}
 }
 
-func (m *RtpProfile) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_RtpProfile.Unmarshal(m, b)
-}
-func (m *RtpProfile) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_RtpProfile.Marshal(b, m, deterministic)
-}
-func (m *RtpProfile) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_RtpProfile.Merge(m, src)
-}
-func (m *RtpProfile) XXX_Size() int {
-	return xxx_messageInfo_RtpProfile.Size(m)
-}
-func (m *RtpProfile) XXX_DiscardUnknown() {
-	xxx_messageInfo_RtpProfile.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_RtpProfile proto.InternalMessageInfo
-
-func (m *RtpProfile) GetLocalPortMin() uint32 {
-	if m != nil {
-		return m.LocalPortMin
+func (x *RtpProfile) GetLocalPortMin() uint32 {
+	if x != nil {
+		return x.LocalPortMin
 	}
 	return 0
 }
 
-func (m *RtpProfile) GetLocalPortMax() uint32 {
-	if m != nil {
-		return m.LocalPortMax
+func (x *RtpProfile) GetLocalPortMax() uint32 {
+	if x != nil {
+		return x.LocalPortMax
 	}
 	return 0
 }
 
-func (m *RtpProfile) GetDscpMark() string {
-	if m != nil {
-		return m.DscpMark
+func (x *RtpProfile) GetDscpMark() string {
+	if x != nil {
+		return x.DscpMark
 	}
 	return ""
 }
 
-func (m *RtpProfile) GetPiggyBackEvents() uint32 {
-	if m != nil {
-		return m.PiggyBackEvents
+func (x *RtpProfile) GetPiggyBackEvents() uint32 {
+	if x != nil {
+		return x.PiggyBackEvents
 	}
 	return 0
 }
 
-func (m *RtpProfile) GetToneEvents() uint32 {
-	if m != nil {
-		return m.ToneEvents
+func (x *RtpProfile) GetToneEvents() uint32 {
+	if x != nil {
+		return x.ToneEvents
 	}
 	return 0
 }
 
-func (m *RtpProfile) GetDtmfEvents() uint32 {
-	if m != nil {
-		return m.DtmfEvents
+func (x *RtpProfile) GetDtmfEvents() uint32 {
+	if x != nil {
+		return x.DtmfEvents
 	}
 	return 0
 }
 
-func (m *RtpProfile) GetCasEvents() uint32 {
-	if m != nil {
-		return m.CasEvents
+func (x *RtpProfile) GetCasEvents() uint32 {
+	if x != nil {
+		return x.CasEvents
 	}
 	return 0
 }
 
 type PptpPotsUni struct {
-	Arc                  string   `protobuf:"bytes,1,opt,name=arc,proto3" json:"arc,omitempty"`
-	ArcInterval          string   `protobuf:"bytes,2,opt,name=arcInterval,proto3" json:"arcInterval,omitempty"`
-	Impedance            uint32   `protobuf:"varint,3,opt,name=impedance,proto3" json:"impedance,omitempty"`
-	TransmissionPath     uint32   `protobuf:"varint,4,opt,name=transmissionPath,proto3" json:"transmissionPath,omitempty"`
-	RxGain               int32    `protobuf:"zigzag32,5,opt,name=rxGain,proto3" json:"rxGain,omitempty"`
-	TxGain               int32    `protobuf:"zigzag32,6,opt,name=txGain,proto3" json:"txGain,omitempty"`
-	PotsHoldOverTime     uint32   `protobuf:"varint,7,opt,name=potsHoldOverTime,proto3" json:"potsHoldOverTime,omitempty"`
-	NominalFeedVoltage   uint32   `protobuf:"varint,8,opt,name=nominalFeedVoltage,proto3" json:"nominalFeedVoltage,omitempty"`
-	LossOfSoftSwitch     uint32   `protobuf:"varint,9,opt,name=lossOfSoftSwitch,proto3" json:"lossOfSoftSwitch,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state              protoimpl.MessageState `protogen:"open.v1"`
+	Arc                string                 `protobuf:"bytes,1,opt,name=arc,proto3" json:"arc,omitempty"`
+	ArcInterval        string                 `protobuf:"bytes,2,opt,name=arcInterval,proto3" json:"arcInterval,omitempty"`
+	Impedance          uint32                 `protobuf:"varint,3,opt,name=impedance,proto3" json:"impedance,omitempty"`
+	TransmissionPath   uint32                 `protobuf:"varint,4,opt,name=transmissionPath,proto3" json:"transmissionPath,omitempty"`
+	RxGain             int32                  `protobuf:"zigzag32,5,opt,name=rxGain,proto3" json:"rxGain,omitempty"`
+	TxGain             int32                  `protobuf:"zigzag32,6,opt,name=txGain,proto3" json:"txGain,omitempty"`
+	PotsHoldOverTime   uint32                 `protobuf:"varint,7,opt,name=potsHoldOverTime,proto3" json:"potsHoldOverTime,omitempty"`
+	NominalFeedVoltage uint32                 `protobuf:"varint,8,opt,name=nominalFeedVoltage,proto3" json:"nominalFeedVoltage,omitempty"`
+	LossOfSoftSwitch   uint32                 `protobuf:"varint,9,opt,name=lossOfSoftSwitch,proto3" json:"lossOfSoftSwitch,omitempty"`
+	unknownFields      protoimpl.UnknownFields
+	sizeCache          protoimpl.SizeCache
 }
 
-func (m *PptpPotsUni) Reset()         { *m = PptpPotsUni{} }
-func (m *PptpPotsUni) String() string { return proto.CompactTextString(m) }
-func (*PptpPotsUni) ProtoMessage()    {}
+func (x *PptpPotsUni) Reset() {
+	*x = PptpPotsUni{}
+	mi := &file_voltha_protos_voip_system_profile_proto_msgTypes[9]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *PptpPotsUni) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PptpPotsUni) ProtoMessage() {}
+
+func (x *PptpPotsUni) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_voip_system_profile_proto_msgTypes[9]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use PptpPotsUni.ProtoReflect.Descriptor instead.
 func (*PptpPotsUni) Descriptor() ([]byte, []int) {
-	return fileDescriptor_02a00a136081bca5, []int{9}
+	return file_voltha_protos_voip_system_profile_proto_rawDescGZIP(), []int{9}
 }
 
-func (m *PptpPotsUni) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_PptpPotsUni.Unmarshal(m, b)
-}
-func (m *PptpPotsUni) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_PptpPotsUni.Marshal(b, m, deterministic)
-}
-func (m *PptpPotsUni) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_PptpPotsUni.Merge(m, src)
-}
-func (m *PptpPotsUni) XXX_Size() int {
-	return xxx_messageInfo_PptpPotsUni.Size(m)
-}
-func (m *PptpPotsUni) XXX_DiscardUnknown() {
-	xxx_messageInfo_PptpPotsUni.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_PptpPotsUni proto.InternalMessageInfo
-
-func (m *PptpPotsUni) GetArc() string {
-	if m != nil {
-		return m.Arc
+func (x *PptpPotsUni) GetArc() string {
+	if x != nil {
+		return x.Arc
 	}
 	return ""
 }
 
-func (m *PptpPotsUni) GetArcInterval() string {
-	if m != nil {
-		return m.ArcInterval
+func (x *PptpPotsUni) GetArcInterval() string {
+	if x != nil {
+		return x.ArcInterval
 	}
 	return ""
 }
 
-func (m *PptpPotsUni) GetImpedance() uint32 {
-	if m != nil {
-		return m.Impedance
+func (x *PptpPotsUni) GetImpedance() uint32 {
+	if x != nil {
+		return x.Impedance
 	}
 	return 0
 }
 
-func (m *PptpPotsUni) GetTransmissionPath() uint32 {
-	if m != nil {
-		return m.TransmissionPath
+func (x *PptpPotsUni) GetTransmissionPath() uint32 {
+	if x != nil {
+		return x.TransmissionPath
 	}
 	return 0
 }
 
-func (m *PptpPotsUni) GetRxGain() int32 {
-	if m != nil {
-		return m.RxGain
+func (x *PptpPotsUni) GetRxGain() int32 {
+	if x != nil {
+		return x.RxGain
 	}
 	return 0
 }
 
-func (m *PptpPotsUni) GetTxGain() int32 {
-	if m != nil {
-		return m.TxGain
+func (x *PptpPotsUni) GetTxGain() int32 {
+	if x != nil {
+		return x.TxGain
 	}
 	return 0
 }
 
-func (m *PptpPotsUni) GetPotsHoldOverTime() uint32 {
-	if m != nil {
-		return m.PotsHoldOverTime
+func (x *PptpPotsUni) GetPotsHoldOverTime() uint32 {
+	if x != nil {
+		return x.PotsHoldOverTime
 	}
 	return 0
 }
 
-func (m *PptpPotsUni) GetNominalFeedVoltage() uint32 {
-	if m != nil {
-		return m.NominalFeedVoltage
+func (x *PptpPotsUni) GetNominalFeedVoltage() uint32 {
+	if x != nil {
+		return x.NominalFeedVoltage
 	}
 	return 0
 }
 
-func (m *PptpPotsUni) GetLossOfSoftSwitch() uint32 {
-	if m != nil {
-		return m.LossOfSoftSwitch
+func (x *PptpPotsUni) GetLossOfSoftSwitch() uint32 {
+	if x != nil {
+		return x.LossOfSoftSwitch
 	}
 	return 0
 }
 
 // Sip specific fields are grouped here
 type SipConfig struct {
+	state                         protoimpl.MessageState         `protogen:"open.v1"`
 	SipUserData                   *SipUserData                   `protobuf:"bytes,1,opt,name=sipUserData,proto3" json:"sipUserData,omitempty"`
 	SipAgentConfig                *SipAgentConfig                `protobuf:"bytes,2,opt,name=sipAgentConfig,proto3" json:"sipAgentConfig,omitempty"`
 	NetworkDialPlan               *NetworkDialPlan               `protobuf:"bytes,3,opt,name=networkDialPlan,proto3" json:"networkDialPlan,omitempty"`
 	VoipFeatureAccessCodes        *VoipFeatureAccessCodes        `protobuf:"bytes,4,opt,name=voipFeatureAccessCodes,proto3" json:"voipFeatureAccessCodes,omitempty"`
 	VoipApplicationServiceProfile *VoipApplicationServiceProfile `protobuf:"bytes,5,opt,name=voipApplicationServiceProfile,proto3" json:"voipApplicationServiceProfile,omitempty"`
-	XXX_NoUnkeyedLiteral          struct{}                       `json:"-"`
-	XXX_unrecognized              []byte                         `json:"-"`
-	XXX_sizecache                 int32                          `json:"-"`
+	unknownFields                 protoimpl.UnknownFields
+	sizeCache                     protoimpl.SizeCache
 }
 
-func (m *SipConfig) Reset()         { *m = SipConfig{} }
-func (m *SipConfig) String() string { return proto.CompactTextString(m) }
-func (*SipConfig) ProtoMessage()    {}
+func (x *SipConfig) Reset() {
+	*x = SipConfig{}
+	mi := &file_voltha_protos_voip_system_profile_proto_msgTypes[10]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *SipConfig) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SipConfig) ProtoMessage() {}
+
+func (x *SipConfig) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_voip_system_profile_proto_msgTypes[10]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SipConfig.ProtoReflect.Descriptor instead.
 func (*SipConfig) Descriptor() ([]byte, []int) {
-	return fileDescriptor_02a00a136081bca5, []int{10}
+	return file_voltha_protos_voip_system_profile_proto_rawDescGZIP(), []int{10}
 }
 
-func (m *SipConfig) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_SipConfig.Unmarshal(m, b)
-}
-func (m *SipConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_SipConfig.Marshal(b, m, deterministic)
-}
-func (m *SipConfig) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_SipConfig.Merge(m, src)
-}
-func (m *SipConfig) XXX_Size() int {
-	return xxx_messageInfo_SipConfig.Size(m)
-}
-func (m *SipConfig) XXX_DiscardUnknown() {
-	xxx_messageInfo_SipConfig.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_SipConfig proto.InternalMessageInfo
-
-func (m *SipConfig) GetSipUserData() *SipUserData {
-	if m != nil {
-		return m.SipUserData
+func (x *SipConfig) GetSipUserData() *SipUserData {
+	if x != nil {
+		return x.SipUserData
 	}
 	return nil
 }
 
-func (m *SipConfig) GetSipAgentConfig() *SipAgentConfig {
-	if m != nil {
-		return m.SipAgentConfig
+func (x *SipConfig) GetSipAgentConfig() *SipAgentConfig {
+	if x != nil {
+		return x.SipAgentConfig
 	}
 	return nil
 }
 
-func (m *SipConfig) GetNetworkDialPlan() *NetworkDialPlan {
-	if m != nil {
-		return m.NetworkDialPlan
+func (x *SipConfig) GetNetworkDialPlan() *NetworkDialPlan {
+	if x != nil {
+		return x.NetworkDialPlan
 	}
 	return nil
 }
 
-func (m *SipConfig) GetVoipFeatureAccessCodes() *VoipFeatureAccessCodes {
-	if m != nil {
-		return m.VoipFeatureAccessCodes
+func (x *SipConfig) GetVoipFeatureAccessCodes() *VoipFeatureAccessCodes {
+	if x != nil {
+		return x.VoipFeatureAccessCodes
 	}
 	return nil
 }
 
-func (m *SipConfig) GetVoipApplicationServiceProfile() *VoipApplicationServiceProfile {
-	if m != nil {
-		return m.VoipApplicationServiceProfile
+func (x *SipConfig) GetVoipApplicationServiceProfile() *VoipApplicationServiceProfile {
+	if x != nil {
+		return x.VoipApplicationServiceProfile
 	}
 	return nil
 }
 
 type SipUserData struct {
-	UserPartAor                         string               `protobuf:"bytes,1,opt,name=userPartAor,proto3" json:"userPartAor,omitempty"`
-	UsernameAndPassword                 *UsernameAndPassword `protobuf:"bytes,2,opt,name=usernameAndPassword,proto3" json:"usernameAndPassword,omitempty"`
-	VoicemailServerSipUri               string               `protobuf:"bytes,3,opt,name=voicemailServerSipUri,proto3" json:"voicemailServerSipUri,omitempty"`
-	VoicemailSubscriptionExpirationTime int32                `protobuf:"varint,4,opt,name=voicemailSubscriptionExpirationTime,proto3" json:"voicemailSubscriptionExpirationTime,omitempty"`
-	ReleaseTimer                        int32                `protobuf:"varint,5,opt,name=releaseTimer,proto3" json:"releaseTimer,omitempty"`
-	RohTimer                            int32                `protobuf:"varint,6,opt,name=rohTimer,proto3" json:"rohTimer,omitempty"`
-	XXX_NoUnkeyedLiteral                struct{}             `json:"-"`
-	XXX_unrecognized                    []byte               `json:"-"`
-	XXX_sizecache                       int32                `json:"-"`
+	state                               protoimpl.MessageState `protogen:"open.v1"`
+	UserPartAor                         string                 `protobuf:"bytes,1,opt,name=userPartAor,proto3" json:"userPartAor,omitempty"`
+	UsernameAndPassword                 *UsernameAndPassword   `protobuf:"bytes,2,opt,name=usernameAndPassword,proto3" json:"usernameAndPassword,omitempty"`
+	VoicemailServerSipUri               string                 `protobuf:"bytes,3,opt,name=voicemailServerSipUri,proto3" json:"voicemailServerSipUri,omitempty"`
+	VoicemailSubscriptionExpirationTime int32                  `protobuf:"varint,4,opt,name=voicemailSubscriptionExpirationTime,proto3" json:"voicemailSubscriptionExpirationTime,omitempty"`
+	ReleaseTimer                        int32                  `protobuf:"varint,5,opt,name=releaseTimer,proto3" json:"releaseTimer,omitempty"`
+	RohTimer                            int32                  `protobuf:"varint,6,opt,name=rohTimer,proto3" json:"rohTimer,omitempty"`
+	unknownFields                       protoimpl.UnknownFields
+	sizeCache                           protoimpl.SizeCache
 }
 
-func (m *SipUserData) Reset()         { *m = SipUserData{} }
-func (m *SipUserData) String() string { return proto.CompactTextString(m) }
-func (*SipUserData) ProtoMessage()    {}
+func (x *SipUserData) Reset() {
+	*x = SipUserData{}
+	mi := &file_voltha_protos_voip_system_profile_proto_msgTypes[11]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *SipUserData) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SipUserData) ProtoMessage() {}
+
+func (x *SipUserData) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_voip_system_profile_proto_msgTypes[11]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SipUserData.ProtoReflect.Descriptor instead.
 func (*SipUserData) Descriptor() ([]byte, []int) {
-	return fileDescriptor_02a00a136081bca5, []int{11}
+	return file_voltha_protos_voip_system_profile_proto_rawDescGZIP(), []int{11}
 }
 
-func (m *SipUserData) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_SipUserData.Unmarshal(m, b)
-}
-func (m *SipUserData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_SipUserData.Marshal(b, m, deterministic)
-}
-func (m *SipUserData) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_SipUserData.Merge(m, src)
-}
-func (m *SipUserData) XXX_Size() int {
-	return xxx_messageInfo_SipUserData.Size(m)
-}
-func (m *SipUserData) XXX_DiscardUnknown() {
-	xxx_messageInfo_SipUserData.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_SipUserData proto.InternalMessageInfo
-
-func (m *SipUserData) GetUserPartAor() string {
-	if m != nil {
-		return m.UserPartAor
+func (x *SipUserData) GetUserPartAor() string {
+	if x != nil {
+		return x.UserPartAor
 	}
 	return ""
 }
 
-func (m *SipUserData) GetUsernameAndPassword() *UsernameAndPassword {
-	if m != nil {
-		return m.UsernameAndPassword
+func (x *SipUserData) GetUsernameAndPassword() *UsernameAndPassword {
+	if x != nil {
+		return x.UsernameAndPassword
 	}
 	return nil
 }
 
-func (m *SipUserData) GetVoicemailServerSipUri() string {
-	if m != nil {
-		return m.VoicemailServerSipUri
+func (x *SipUserData) GetVoicemailServerSipUri() string {
+	if x != nil {
+		return x.VoicemailServerSipUri
 	}
 	return ""
 }
 
-func (m *SipUserData) GetVoicemailSubscriptionExpirationTime() int32 {
-	if m != nil {
-		return m.VoicemailSubscriptionExpirationTime
+func (x *SipUserData) GetVoicemailSubscriptionExpirationTime() int32 {
+	if x != nil {
+		return x.VoicemailSubscriptionExpirationTime
 	}
 	return 0
 }
 
-func (m *SipUserData) GetReleaseTimer() int32 {
-	if m != nil {
-		return m.ReleaseTimer
+func (x *SipUserData) GetReleaseTimer() int32 {
+	if x != nil {
+		return x.ReleaseTimer
 	}
 	return 0
 }
 
-func (m *SipUserData) GetRohTimer() int32 {
-	if m != nil {
-		return m.RohTimer
+func (x *SipUserData) GetRohTimer() int32 {
+	if x != nil {
+		return x.RohTimer
 	}
 	return 0
 }
 
 type SipAgentConfig struct {
-	OutboundProxyAddress     string            `protobuf:"bytes,1,opt,name=outboundProxyAddress,proto3" json:"outboundProxyAddress,omitempty"`
-	PrimarySipDns            string            `protobuf:"bytes,2,opt,name=primarySipDns,proto3" json:"primarySipDns,omitempty"`
-	SecondarySipDns          string            `protobuf:"bytes,3,opt,name=secondarySipDns,proto3" json:"secondarySipDns,omitempty"`
-	SipRegExpTime            int32             `protobuf:"varint,4,opt,name=sipRegExpTime,proto3" json:"sipRegExpTime,omitempty"`
-	SipReregHeadStartTime    int32             `protobuf:"varint,5,opt,name=sipReregHeadStartTime,proto3" json:"sipReregHeadStartTime,omitempty"`
-	SipRegistrar             string            `protobuf:"bytes,6,opt,name=SipRegistrar,proto3" json:"SipRegistrar,omitempty"`
-	SoftSwitch               string            `protobuf:"bytes,7,opt,name=softSwitch,proto3" json:"softSwitch,omitempty"`
-	SipResponseTable         *SipResponseTable `protobuf:"bytes,8,opt,name=sipResponseTable,proto3" json:"sipResponseTable,omitempty"`
-	SipOptionTransmitControl bool              `protobuf:"varint,9,opt,name=sipOptionTransmitControl,proto3" json:"sipOptionTransmitControl,omitempty"`
-	SipUriFormat             string            `protobuf:"bytes,10,opt,name=sipUriFormat,proto3" json:"sipUriFormat,omitempty"`
-	RedundantSipAgentPointer string            `protobuf:"bytes,11,opt,name=redundantSipAgentPointer,proto3" json:"redundantSipAgentPointer,omitempty"`
-	XXX_NoUnkeyedLiteral     struct{}          `json:"-"`
-	XXX_unrecognized         []byte            `json:"-"`
-	XXX_sizecache            int32             `json:"-"`
+	state                    protoimpl.MessageState `protogen:"open.v1"`
+	OutboundProxyAddress     string                 `protobuf:"bytes,1,opt,name=outboundProxyAddress,proto3" json:"outboundProxyAddress,omitempty"`
+	PrimarySipDns            string                 `protobuf:"bytes,2,opt,name=primarySipDns,proto3" json:"primarySipDns,omitempty"`
+	SecondarySipDns          string                 `protobuf:"bytes,3,opt,name=secondarySipDns,proto3" json:"secondarySipDns,omitempty"`
+	SipRegExpTime            int32                  `protobuf:"varint,4,opt,name=sipRegExpTime,proto3" json:"sipRegExpTime,omitempty"`
+	SipReregHeadStartTime    int32                  `protobuf:"varint,5,opt,name=sipReregHeadStartTime,proto3" json:"sipReregHeadStartTime,omitempty"`
+	SipRegistrar             string                 `protobuf:"bytes,6,opt,name=SipRegistrar,proto3" json:"SipRegistrar,omitempty"`
+	SoftSwitch               string                 `protobuf:"bytes,7,opt,name=softSwitch,proto3" json:"softSwitch,omitempty"`
+	SipResponseTable         *SipResponseTable      `protobuf:"bytes,8,opt,name=sipResponseTable,proto3" json:"sipResponseTable,omitempty"`
+	SipOptionTransmitControl bool                   `protobuf:"varint,9,opt,name=sipOptionTransmitControl,proto3" json:"sipOptionTransmitControl,omitempty"`
+	SipUriFormat             string                 `protobuf:"bytes,10,opt,name=sipUriFormat,proto3" json:"sipUriFormat,omitempty"`
+	RedundantSipAgentPointer string                 `protobuf:"bytes,11,opt,name=redundantSipAgentPointer,proto3" json:"redundantSipAgentPointer,omitempty"`
+	unknownFields            protoimpl.UnknownFields
+	sizeCache                protoimpl.SizeCache
 }
 
-func (m *SipAgentConfig) Reset()         { *m = SipAgentConfig{} }
-func (m *SipAgentConfig) String() string { return proto.CompactTextString(m) }
-func (*SipAgentConfig) ProtoMessage()    {}
+func (x *SipAgentConfig) Reset() {
+	*x = SipAgentConfig{}
+	mi := &file_voltha_protos_voip_system_profile_proto_msgTypes[12]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *SipAgentConfig) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SipAgentConfig) ProtoMessage() {}
+
+func (x *SipAgentConfig) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_voip_system_profile_proto_msgTypes[12]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SipAgentConfig.ProtoReflect.Descriptor instead.
 func (*SipAgentConfig) Descriptor() ([]byte, []int) {
-	return fileDescriptor_02a00a136081bca5, []int{12}
+	return file_voltha_protos_voip_system_profile_proto_rawDescGZIP(), []int{12}
 }
 
-func (m *SipAgentConfig) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_SipAgentConfig.Unmarshal(m, b)
-}
-func (m *SipAgentConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_SipAgentConfig.Marshal(b, m, deterministic)
-}
-func (m *SipAgentConfig) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_SipAgentConfig.Merge(m, src)
-}
-func (m *SipAgentConfig) XXX_Size() int {
-	return xxx_messageInfo_SipAgentConfig.Size(m)
-}
-func (m *SipAgentConfig) XXX_DiscardUnknown() {
-	xxx_messageInfo_SipAgentConfig.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_SipAgentConfig proto.InternalMessageInfo
-
-func (m *SipAgentConfig) GetOutboundProxyAddress() string {
-	if m != nil {
-		return m.OutboundProxyAddress
+func (x *SipAgentConfig) GetOutboundProxyAddress() string {
+	if x != nil {
+		return x.OutboundProxyAddress
 	}
 	return ""
 }
 
-func (m *SipAgentConfig) GetPrimarySipDns() string {
-	if m != nil {
-		return m.PrimarySipDns
+func (x *SipAgentConfig) GetPrimarySipDns() string {
+	if x != nil {
+		return x.PrimarySipDns
 	}
 	return ""
 }
 
-func (m *SipAgentConfig) GetSecondarySipDns() string {
-	if m != nil {
-		return m.SecondarySipDns
+func (x *SipAgentConfig) GetSecondarySipDns() string {
+	if x != nil {
+		return x.SecondarySipDns
 	}
 	return ""
 }
 
-func (m *SipAgentConfig) GetSipRegExpTime() int32 {
-	if m != nil {
-		return m.SipRegExpTime
+func (x *SipAgentConfig) GetSipRegExpTime() int32 {
+	if x != nil {
+		return x.SipRegExpTime
 	}
 	return 0
 }
 
-func (m *SipAgentConfig) GetSipReregHeadStartTime() int32 {
-	if m != nil {
-		return m.SipReregHeadStartTime
+func (x *SipAgentConfig) GetSipReregHeadStartTime() int32 {
+	if x != nil {
+		return x.SipReregHeadStartTime
 	}
 	return 0
 }
 
-func (m *SipAgentConfig) GetSipRegistrar() string {
-	if m != nil {
-		return m.SipRegistrar
+func (x *SipAgentConfig) GetSipRegistrar() string {
+	if x != nil {
+		return x.SipRegistrar
 	}
 	return ""
 }
 
-func (m *SipAgentConfig) GetSoftSwitch() string {
-	if m != nil {
-		return m.SoftSwitch
+func (x *SipAgentConfig) GetSoftSwitch() string {
+	if x != nil {
+		return x.SoftSwitch
 	}
 	return ""
 }
 
-func (m *SipAgentConfig) GetSipResponseTable() *SipResponseTable {
-	if m != nil {
-		return m.SipResponseTable
+func (x *SipAgentConfig) GetSipResponseTable() *SipResponseTable {
+	if x != nil {
+		return x.SipResponseTable
 	}
 	return nil
 }
 
-func (m *SipAgentConfig) GetSipOptionTransmitControl() bool {
-	if m != nil {
-		return m.SipOptionTransmitControl
+func (x *SipAgentConfig) GetSipOptionTransmitControl() bool {
+	if x != nil {
+		return x.SipOptionTransmitControl
 	}
 	return false
 }
 
-func (m *SipAgentConfig) GetSipUriFormat() string {
-	if m != nil {
-		return m.SipUriFormat
+func (x *SipAgentConfig) GetSipUriFormat() string {
+	if x != nil {
+		return x.SipUriFormat
 	}
 	return ""
 }
 
-func (m *SipAgentConfig) GetRedundantSipAgentPointer() string {
-	if m != nil {
-		return m.RedundantSipAgentPointer
+func (x *SipAgentConfig) GetRedundantSipAgentPointer() string {
+	if x != nil {
+		return x.RedundantSipAgentPointer
 	}
 	return ""
 }
 
 type NetworkDialPlan struct {
-	CriticalDialTimeout  uint32         `protobuf:"varint,1,opt,name=criticalDialTimeout,proto3" json:"criticalDialTimeout,omitempty"`
-	PartialDialTimeout   uint32         `protobuf:"varint,2,opt,name=partialDialTimeout,proto3" json:"partialDialTimeout,omitempty"`
-	DialPlanFormat       uint32         `protobuf:"varint,3,opt,name=dialPlanFormat,proto3" json:"dialPlanFormat,omitempty"`
-	DialPlanTable        *DialPlanTable `protobuf:"bytes,4,opt,name=dialPlanTable,proto3" json:"dialPlanTable,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
-	XXX_unrecognized     []byte         `json:"-"`
-	XXX_sizecache        int32          `json:"-"`
+	state               protoimpl.MessageState `protogen:"open.v1"`
+	CriticalDialTimeout uint32                 `protobuf:"varint,1,opt,name=criticalDialTimeout,proto3" json:"criticalDialTimeout,omitempty"`
+	PartialDialTimeout  uint32                 `protobuf:"varint,2,opt,name=partialDialTimeout,proto3" json:"partialDialTimeout,omitempty"`
+	DialPlanFormat      uint32                 `protobuf:"varint,3,opt,name=dialPlanFormat,proto3" json:"dialPlanFormat,omitempty"`
+	DialPlanTable       *DialPlanTable         `protobuf:"bytes,4,opt,name=dialPlanTable,proto3" json:"dialPlanTable,omitempty"`
+	unknownFields       protoimpl.UnknownFields
+	sizeCache           protoimpl.SizeCache
 }
 
-func (m *NetworkDialPlan) Reset()         { *m = NetworkDialPlan{} }
-func (m *NetworkDialPlan) String() string { return proto.CompactTextString(m) }
-func (*NetworkDialPlan) ProtoMessage()    {}
+func (x *NetworkDialPlan) Reset() {
+	*x = NetworkDialPlan{}
+	mi := &file_voltha_protos_voip_system_profile_proto_msgTypes[13]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *NetworkDialPlan) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*NetworkDialPlan) ProtoMessage() {}
+
+func (x *NetworkDialPlan) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_voip_system_profile_proto_msgTypes[13]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use NetworkDialPlan.ProtoReflect.Descriptor instead.
 func (*NetworkDialPlan) Descriptor() ([]byte, []int) {
-	return fileDescriptor_02a00a136081bca5, []int{13}
+	return file_voltha_protos_voip_system_profile_proto_rawDescGZIP(), []int{13}
 }
 
-func (m *NetworkDialPlan) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_NetworkDialPlan.Unmarshal(m, b)
-}
-func (m *NetworkDialPlan) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_NetworkDialPlan.Marshal(b, m, deterministic)
-}
-func (m *NetworkDialPlan) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_NetworkDialPlan.Merge(m, src)
-}
-func (m *NetworkDialPlan) XXX_Size() int {
-	return xxx_messageInfo_NetworkDialPlan.Size(m)
-}
-func (m *NetworkDialPlan) XXX_DiscardUnknown() {
-	xxx_messageInfo_NetworkDialPlan.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_NetworkDialPlan proto.InternalMessageInfo
-
-func (m *NetworkDialPlan) GetCriticalDialTimeout() uint32 {
-	if m != nil {
-		return m.CriticalDialTimeout
+func (x *NetworkDialPlan) GetCriticalDialTimeout() uint32 {
+	if x != nil {
+		return x.CriticalDialTimeout
 	}
 	return 0
 }
 
-func (m *NetworkDialPlan) GetPartialDialTimeout() uint32 {
-	if m != nil {
-		return m.PartialDialTimeout
+func (x *NetworkDialPlan) GetPartialDialTimeout() uint32 {
+	if x != nil {
+		return x.PartialDialTimeout
 	}
 	return 0
 }
 
-func (m *NetworkDialPlan) GetDialPlanFormat() uint32 {
-	if m != nil {
-		return m.DialPlanFormat
+func (x *NetworkDialPlan) GetDialPlanFormat() uint32 {
+	if x != nil {
+		return x.DialPlanFormat
 	}
 	return 0
 }
 
-func (m *NetworkDialPlan) GetDialPlanTable() *DialPlanTable {
-	if m != nil {
-		return m.DialPlanTable
+func (x *NetworkDialPlan) GetDialPlanTable() *DialPlanTable {
+	if x != nil {
+		return x.DialPlanTable
 	}
 	return nil
 }
 
 type UsernameAndPassword struct {
-	ValidationScheme     int32    `protobuf:"varint,1,opt,name=validationScheme,proto3" json:"validationScheme,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state            protoimpl.MessageState `protogen:"open.v1"`
+	ValidationScheme int32                  `protobuf:"varint,1,opt,name=validationScheme,proto3" json:"validationScheme,omitempty"`
+	unknownFields    protoimpl.UnknownFields
+	sizeCache        protoimpl.SizeCache
 }
 
-func (m *UsernameAndPassword) Reset()         { *m = UsernameAndPassword{} }
-func (m *UsernameAndPassword) String() string { return proto.CompactTextString(m) }
-func (*UsernameAndPassword) ProtoMessage()    {}
+func (x *UsernameAndPassword) Reset() {
+	*x = UsernameAndPassword{}
+	mi := &file_voltha_protos_voip_system_profile_proto_msgTypes[14]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *UsernameAndPassword) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UsernameAndPassword) ProtoMessage() {}
+
+func (x *UsernameAndPassword) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_voip_system_profile_proto_msgTypes[14]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use UsernameAndPassword.ProtoReflect.Descriptor instead.
 func (*UsernameAndPassword) Descriptor() ([]byte, []int) {
-	return fileDescriptor_02a00a136081bca5, []int{14}
+	return file_voltha_protos_voip_system_profile_proto_rawDescGZIP(), []int{14}
 }
 
-func (m *UsernameAndPassword) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_UsernameAndPassword.Unmarshal(m, b)
-}
-func (m *UsernameAndPassword) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_UsernameAndPassword.Marshal(b, m, deterministic)
-}
-func (m *UsernameAndPassword) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_UsernameAndPassword.Merge(m, src)
-}
-func (m *UsernameAndPassword) XXX_Size() int {
-	return xxx_messageInfo_UsernameAndPassword.Size(m)
-}
-func (m *UsernameAndPassword) XXX_DiscardUnknown() {
-	xxx_messageInfo_UsernameAndPassword.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_UsernameAndPassword proto.InternalMessageInfo
-
-func (m *UsernameAndPassword) GetValidationScheme() int32 {
-	if m != nil {
-		return m.ValidationScheme
+func (x *UsernameAndPassword) GetValidationScheme() int32 {
+	if x != nil {
+		return x.ValidationScheme
 	}
 	return 0
 }
 
 type SipResponseTable struct {
-	SipResponseCode      string   `protobuf:"bytes,1,opt,name=sipResponseCode,proto3" json:"sipResponseCode,omitempty"`
-	Tone                 string   `protobuf:"bytes,2,opt,name=tone,proto3" json:"tone,omitempty"`
-	TextMessage          string   `protobuf:"bytes,3,opt,name=textMessage,proto3" json:"textMessage,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state           protoimpl.MessageState `protogen:"open.v1"`
+	SipResponseCode string                 `protobuf:"bytes,1,opt,name=sipResponseCode,proto3" json:"sipResponseCode,omitempty"`
+	Tone            string                 `protobuf:"bytes,2,opt,name=tone,proto3" json:"tone,omitempty"`
+	TextMessage     string                 `protobuf:"bytes,3,opt,name=textMessage,proto3" json:"textMessage,omitempty"`
+	unknownFields   protoimpl.UnknownFields
+	sizeCache       protoimpl.SizeCache
 }
 
-func (m *SipResponseTable) Reset()         { *m = SipResponseTable{} }
-func (m *SipResponseTable) String() string { return proto.CompactTextString(m) }
-func (*SipResponseTable) ProtoMessage()    {}
+func (x *SipResponseTable) Reset() {
+	*x = SipResponseTable{}
+	mi := &file_voltha_protos_voip_system_profile_proto_msgTypes[15]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *SipResponseTable) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SipResponseTable) ProtoMessage() {}
+
+func (x *SipResponseTable) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_voip_system_profile_proto_msgTypes[15]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SipResponseTable.ProtoReflect.Descriptor instead.
 func (*SipResponseTable) Descriptor() ([]byte, []int) {
-	return fileDescriptor_02a00a136081bca5, []int{15}
+	return file_voltha_protos_voip_system_profile_proto_rawDescGZIP(), []int{15}
 }
 
-func (m *SipResponseTable) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_SipResponseTable.Unmarshal(m, b)
-}
-func (m *SipResponseTable) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_SipResponseTable.Marshal(b, m, deterministic)
-}
-func (m *SipResponseTable) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_SipResponseTable.Merge(m, src)
-}
-func (m *SipResponseTable) XXX_Size() int {
-	return xxx_messageInfo_SipResponseTable.Size(m)
-}
-func (m *SipResponseTable) XXX_DiscardUnknown() {
-	xxx_messageInfo_SipResponseTable.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_SipResponseTable proto.InternalMessageInfo
-
-func (m *SipResponseTable) GetSipResponseCode() string {
-	if m != nil {
-		return m.SipResponseCode
+func (x *SipResponseTable) GetSipResponseCode() string {
+	if x != nil {
+		return x.SipResponseCode
 	}
 	return ""
 }
 
-func (m *SipResponseTable) GetTone() string {
-	if m != nil {
-		return m.Tone
+func (x *SipResponseTable) GetTone() string {
+	if x != nil {
+		return x.Tone
 	}
 	return ""
 }
 
-func (m *SipResponseTable) GetTextMessage() string {
-	if m != nil {
-		return m.TextMessage
+func (x *SipResponseTable) GetTextMessage() string {
+	if x != nil {
+		return x.TextMessage
 	}
 	return ""
 }
 
 type DialPlanTable struct {
-	DialPlanId           uint32   `protobuf:"varint,1,opt,name=dialPlanId,proto3" json:"dialPlanId,omitempty"`
-	Action               uint32   `protobuf:"varint,2,opt,name=action,proto3" json:"action,omitempty"`
-	DialPlanToken        string   `protobuf:"bytes,3,opt,name=dialPlanToken,proto3" json:"dialPlanToken,omitempty"`
-	DialPlanTableMaxSize uint32   `protobuf:"varint,4,opt,name=dialPlanTableMaxSize,proto3" json:"dialPlanTableMaxSize,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state                protoimpl.MessageState `protogen:"open.v1"`
+	DialPlanId           uint32                 `protobuf:"varint,1,opt,name=dialPlanId,proto3" json:"dialPlanId,omitempty"`
+	Action               uint32                 `protobuf:"varint,2,opt,name=action,proto3" json:"action,omitempty"`
+	DialPlanToken        string                 `protobuf:"bytes,3,opt,name=dialPlanToken,proto3" json:"dialPlanToken,omitempty"`
+	DialPlanTableMaxSize uint32                 `protobuf:"varint,4,opt,name=dialPlanTableMaxSize,proto3" json:"dialPlanTableMaxSize,omitempty"`
+	unknownFields        protoimpl.UnknownFields
+	sizeCache            protoimpl.SizeCache
 }
 
-func (m *DialPlanTable) Reset()         { *m = DialPlanTable{} }
-func (m *DialPlanTable) String() string { return proto.CompactTextString(m) }
-func (*DialPlanTable) ProtoMessage()    {}
+func (x *DialPlanTable) Reset() {
+	*x = DialPlanTable{}
+	mi := &file_voltha_protos_voip_system_profile_proto_msgTypes[16]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *DialPlanTable) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DialPlanTable) ProtoMessage() {}
+
+func (x *DialPlanTable) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_voip_system_profile_proto_msgTypes[16]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use DialPlanTable.ProtoReflect.Descriptor instead.
 func (*DialPlanTable) Descriptor() ([]byte, []int) {
-	return fileDescriptor_02a00a136081bca5, []int{16}
+	return file_voltha_protos_voip_system_profile_proto_rawDescGZIP(), []int{16}
 }
 
-func (m *DialPlanTable) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_DialPlanTable.Unmarshal(m, b)
-}
-func (m *DialPlanTable) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_DialPlanTable.Marshal(b, m, deterministic)
-}
-func (m *DialPlanTable) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_DialPlanTable.Merge(m, src)
-}
-func (m *DialPlanTable) XXX_Size() int {
-	return xxx_messageInfo_DialPlanTable.Size(m)
-}
-func (m *DialPlanTable) XXX_DiscardUnknown() {
-	xxx_messageInfo_DialPlanTable.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_DialPlanTable proto.InternalMessageInfo
-
-func (m *DialPlanTable) GetDialPlanId() uint32 {
-	if m != nil {
-		return m.DialPlanId
+func (x *DialPlanTable) GetDialPlanId() uint32 {
+	if x != nil {
+		return x.DialPlanId
 	}
 	return 0
 }
 
-func (m *DialPlanTable) GetAction() uint32 {
-	if m != nil {
-		return m.Action
+func (x *DialPlanTable) GetAction() uint32 {
+	if x != nil {
+		return x.Action
 	}
 	return 0
 }
 
-func (m *DialPlanTable) GetDialPlanToken() string {
-	if m != nil {
-		return m.DialPlanToken
+func (x *DialPlanTable) GetDialPlanToken() string {
+	if x != nil {
+		return x.DialPlanToken
 	}
 	return ""
 }
 
-func (m *DialPlanTable) GetDialPlanTableMaxSize() uint32 {
-	if m != nil {
-		return m.DialPlanTableMaxSize
+func (x *DialPlanTable) GetDialPlanTableMaxSize() uint32 {
+	if x != nil {
+		return x.DialPlanTableMaxSize
 	}
 	return 0
 }
 
 type VoipFeatureAccessCodes struct {
-	CancelCallWaiting        string   `protobuf:"bytes,1,opt,name=cancelCallWaiting,proto3" json:"cancelCallWaiting,omitempty"`
-	CallHold                 string   `protobuf:"bytes,2,opt,name=callHold,proto3" json:"callHold,omitempty"`
-	CallPark                 string   `protobuf:"bytes,3,opt,name=callPark,proto3" json:"callPark,omitempty"`
-	CallerIdActivate         string   `protobuf:"bytes,4,opt,name=callerIdActivate,proto3" json:"callerIdActivate,omitempty"`
-	CallerIdDeactivate       string   `protobuf:"bytes,5,opt,name=callerIdDeactivate,proto3" json:"callerIdDeactivate,omitempty"`
-	DoNotDisturbActivation   string   `protobuf:"bytes,6,opt,name=doNotDisturbActivation,proto3" json:"doNotDisturbActivation,omitempty"`
-	DoNotDisturbDeactivation string   `protobuf:"bytes,7,opt,name=doNotDisturbDeactivation,proto3" json:"doNotDisturbDeactivation,omitempty"`
-	DoNotDisturbPinChange    string   `protobuf:"bytes,8,opt,name=doNotDisturbPinChange,proto3" json:"doNotDisturbPinChange,omitempty"`
-	EmergencyServiceNumber   string   `protobuf:"bytes,9,opt,name=emergencyServiceNumber,proto3" json:"emergencyServiceNumber,omitempty"`
-	IntercomService          string   `protobuf:"bytes,10,opt,name=intercomService,proto3" json:"intercomService,omitempty"`
-	UnattendedCallTransfer   string   `protobuf:"bytes,11,opt,name=unattendedCallTransfer,proto3" json:"unattendedCallTransfer,omitempty"`
-	AttendedCallTransfer     string   `protobuf:"bytes,12,opt,name=attendedCallTransfer,proto3" json:"attendedCallTransfer,omitempty"`
-	XXX_NoUnkeyedLiteral     struct{} `json:"-"`
-	XXX_unrecognized         []byte   `json:"-"`
-	XXX_sizecache            int32    `json:"-"`
+	state                    protoimpl.MessageState `protogen:"open.v1"`
+	CancelCallWaiting        string                 `protobuf:"bytes,1,opt,name=cancelCallWaiting,proto3" json:"cancelCallWaiting,omitempty"`
+	CallHold                 string                 `protobuf:"bytes,2,opt,name=callHold,proto3" json:"callHold,omitempty"`
+	CallPark                 string                 `protobuf:"bytes,3,opt,name=callPark,proto3" json:"callPark,omitempty"`
+	CallerIdActivate         string                 `protobuf:"bytes,4,opt,name=callerIdActivate,proto3" json:"callerIdActivate,omitempty"`
+	CallerIdDeactivate       string                 `protobuf:"bytes,5,opt,name=callerIdDeactivate,proto3" json:"callerIdDeactivate,omitempty"`
+	DoNotDisturbActivation   string                 `protobuf:"bytes,6,opt,name=doNotDisturbActivation,proto3" json:"doNotDisturbActivation,omitempty"`
+	DoNotDisturbDeactivation string                 `protobuf:"bytes,7,opt,name=doNotDisturbDeactivation,proto3" json:"doNotDisturbDeactivation,omitempty"`
+	DoNotDisturbPinChange    string                 `protobuf:"bytes,8,opt,name=doNotDisturbPinChange,proto3" json:"doNotDisturbPinChange,omitempty"`
+	EmergencyServiceNumber   string                 `protobuf:"bytes,9,opt,name=emergencyServiceNumber,proto3" json:"emergencyServiceNumber,omitempty"`
+	IntercomService          string                 `protobuf:"bytes,10,opt,name=intercomService,proto3" json:"intercomService,omitempty"`
+	UnattendedCallTransfer   string                 `protobuf:"bytes,11,opt,name=unattendedCallTransfer,proto3" json:"unattendedCallTransfer,omitempty"`
+	AttendedCallTransfer     string                 `protobuf:"bytes,12,opt,name=attendedCallTransfer,proto3" json:"attendedCallTransfer,omitempty"`
+	unknownFields            protoimpl.UnknownFields
+	sizeCache                protoimpl.SizeCache
 }
 
-func (m *VoipFeatureAccessCodes) Reset()         { *m = VoipFeatureAccessCodes{} }
-func (m *VoipFeatureAccessCodes) String() string { return proto.CompactTextString(m) }
-func (*VoipFeatureAccessCodes) ProtoMessage()    {}
+func (x *VoipFeatureAccessCodes) Reset() {
+	*x = VoipFeatureAccessCodes{}
+	mi := &file_voltha_protos_voip_system_profile_proto_msgTypes[17]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VoipFeatureAccessCodes) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VoipFeatureAccessCodes) ProtoMessage() {}
+
+func (x *VoipFeatureAccessCodes) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_voip_system_profile_proto_msgTypes[17]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VoipFeatureAccessCodes.ProtoReflect.Descriptor instead.
 func (*VoipFeatureAccessCodes) Descriptor() ([]byte, []int) {
-	return fileDescriptor_02a00a136081bca5, []int{17}
+	return file_voltha_protos_voip_system_profile_proto_rawDescGZIP(), []int{17}
 }
 
-func (m *VoipFeatureAccessCodes) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_VoipFeatureAccessCodes.Unmarshal(m, b)
-}
-func (m *VoipFeatureAccessCodes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_VoipFeatureAccessCodes.Marshal(b, m, deterministic)
-}
-func (m *VoipFeatureAccessCodes) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_VoipFeatureAccessCodes.Merge(m, src)
-}
-func (m *VoipFeatureAccessCodes) XXX_Size() int {
-	return xxx_messageInfo_VoipFeatureAccessCodes.Size(m)
-}
-func (m *VoipFeatureAccessCodes) XXX_DiscardUnknown() {
-	xxx_messageInfo_VoipFeatureAccessCodes.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_VoipFeatureAccessCodes proto.InternalMessageInfo
-
-func (m *VoipFeatureAccessCodes) GetCancelCallWaiting() string {
-	if m != nil {
-		return m.CancelCallWaiting
+func (x *VoipFeatureAccessCodes) GetCancelCallWaiting() string {
+	if x != nil {
+		return x.CancelCallWaiting
 	}
 	return ""
 }
 
-func (m *VoipFeatureAccessCodes) GetCallHold() string {
-	if m != nil {
-		return m.CallHold
+func (x *VoipFeatureAccessCodes) GetCallHold() string {
+	if x != nil {
+		return x.CallHold
 	}
 	return ""
 }
 
-func (m *VoipFeatureAccessCodes) GetCallPark() string {
-	if m != nil {
-		return m.CallPark
+func (x *VoipFeatureAccessCodes) GetCallPark() string {
+	if x != nil {
+		return x.CallPark
 	}
 	return ""
 }
 
-func (m *VoipFeatureAccessCodes) GetCallerIdActivate() string {
-	if m != nil {
-		return m.CallerIdActivate
+func (x *VoipFeatureAccessCodes) GetCallerIdActivate() string {
+	if x != nil {
+		return x.CallerIdActivate
 	}
 	return ""
 }
 
-func (m *VoipFeatureAccessCodes) GetCallerIdDeactivate() string {
-	if m != nil {
-		return m.CallerIdDeactivate
+func (x *VoipFeatureAccessCodes) GetCallerIdDeactivate() string {
+	if x != nil {
+		return x.CallerIdDeactivate
 	}
 	return ""
 }
 
-func (m *VoipFeatureAccessCodes) GetDoNotDisturbActivation() string {
-	if m != nil {
-		return m.DoNotDisturbActivation
+func (x *VoipFeatureAccessCodes) GetDoNotDisturbActivation() string {
+	if x != nil {
+		return x.DoNotDisturbActivation
 	}
 	return ""
 }
 
-func (m *VoipFeatureAccessCodes) GetDoNotDisturbDeactivation() string {
-	if m != nil {
-		return m.DoNotDisturbDeactivation
+func (x *VoipFeatureAccessCodes) GetDoNotDisturbDeactivation() string {
+	if x != nil {
+		return x.DoNotDisturbDeactivation
 	}
 	return ""
 }
 
-func (m *VoipFeatureAccessCodes) GetDoNotDisturbPinChange() string {
-	if m != nil {
-		return m.DoNotDisturbPinChange
+func (x *VoipFeatureAccessCodes) GetDoNotDisturbPinChange() string {
+	if x != nil {
+		return x.DoNotDisturbPinChange
 	}
 	return ""
 }
 
-func (m *VoipFeatureAccessCodes) GetEmergencyServiceNumber() string {
-	if m != nil {
-		return m.EmergencyServiceNumber
+func (x *VoipFeatureAccessCodes) GetEmergencyServiceNumber() string {
+	if x != nil {
+		return x.EmergencyServiceNumber
 	}
 	return ""
 }
 
-func (m *VoipFeatureAccessCodes) GetIntercomService() string {
-	if m != nil {
-		return m.IntercomService
+func (x *VoipFeatureAccessCodes) GetIntercomService() string {
+	if x != nil {
+		return x.IntercomService
 	}
 	return ""
 }
 
-func (m *VoipFeatureAccessCodes) GetUnattendedCallTransfer() string {
-	if m != nil {
-		return m.UnattendedCallTransfer
+func (x *VoipFeatureAccessCodes) GetUnattendedCallTransfer() string {
+	if x != nil {
+		return x.UnattendedCallTransfer
 	}
 	return ""
 }
 
-func (m *VoipFeatureAccessCodes) GetAttendedCallTransfer() string {
-	if m != nil {
-		return m.AttendedCallTransfer
+func (x *VoipFeatureAccessCodes) GetAttendedCallTransfer() string {
+	if x != nil {
+		return x.AttendedCallTransfer
 	}
 	return ""
 }
 
 type VoipApplicationServiceProfile struct {
-	CidFeatures                    uint32   `protobuf:"varint,1,opt,name=cidFeatures,proto3" json:"cidFeatures,omitempty"`
-	CallWaitingFeatures            uint32   `protobuf:"varint,2,opt,name=callWaitingFeatures,proto3" json:"callWaitingFeatures,omitempty"`
-	CallProgressOrTransferFeatures uint32   `protobuf:"varint,3,opt,name=callProgressOrTransferFeatures,proto3" json:"callProgressOrTransferFeatures,omitempty"`
-	CallPresentationFeatures       uint32   `protobuf:"varint,4,opt,name=callPresentationFeatures,proto3" json:"callPresentationFeatures,omitempty"`
-	DirectConnectFeature           uint32   `protobuf:"varint,5,opt,name=directConnectFeature,proto3" json:"directConnectFeature,omitempty"`
-	DirectConnectUriPointer        string   `protobuf:"bytes,6,opt,name=directConnectUriPointer,proto3" json:"directConnectUriPointer,omitempty"`
-	BridgedLineAgentUriPointer     string   `protobuf:"bytes,7,opt,name=bridgedLineAgentUriPointer,proto3" json:"bridgedLineAgentUriPointer,omitempty"`
-	ConferenceFactoryUriPointer    string   `protobuf:"bytes,8,opt,name=conferenceFactoryUriPointer,proto3" json:"conferenceFactoryUriPointer,omitempty"`
-	DialToneDelayTimer             uint32   `protobuf:"varint,9,opt,name=dialToneDelayTimer,proto3" json:"dialToneDelayTimer,omitempty"`
-	XXX_NoUnkeyedLiteral           struct{} `json:"-"`
-	XXX_unrecognized               []byte   `json:"-"`
-	XXX_sizecache                  int32    `json:"-"`
+	state                          protoimpl.MessageState `protogen:"open.v1"`
+	CidFeatures                    uint32                 `protobuf:"varint,1,opt,name=cidFeatures,proto3" json:"cidFeatures,omitempty"`
+	CallWaitingFeatures            uint32                 `protobuf:"varint,2,opt,name=callWaitingFeatures,proto3" json:"callWaitingFeatures,omitempty"`
+	CallProgressOrTransferFeatures uint32                 `protobuf:"varint,3,opt,name=callProgressOrTransferFeatures,proto3" json:"callProgressOrTransferFeatures,omitempty"`
+	CallPresentationFeatures       uint32                 `protobuf:"varint,4,opt,name=callPresentationFeatures,proto3" json:"callPresentationFeatures,omitempty"`
+	DirectConnectFeature           uint32                 `protobuf:"varint,5,opt,name=directConnectFeature,proto3" json:"directConnectFeature,omitempty"`
+	DirectConnectUriPointer        string                 `protobuf:"bytes,6,opt,name=directConnectUriPointer,proto3" json:"directConnectUriPointer,omitempty"`
+	BridgedLineAgentUriPointer     string                 `protobuf:"bytes,7,opt,name=bridgedLineAgentUriPointer,proto3" json:"bridgedLineAgentUriPointer,omitempty"`
+	ConferenceFactoryUriPointer    string                 `protobuf:"bytes,8,opt,name=conferenceFactoryUriPointer,proto3" json:"conferenceFactoryUriPointer,omitempty"`
+	DialToneDelayTimer             uint32                 `protobuf:"varint,9,opt,name=dialToneDelayTimer,proto3" json:"dialToneDelayTimer,omitempty"`
+	unknownFields                  protoimpl.UnknownFields
+	sizeCache                      protoimpl.SizeCache
 }
 
-func (m *VoipApplicationServiceProfile) Reset()         { *m = VoipApplicationServiceProfile{} }
-func (m *VoipApplicationServiceProfile) String() string { return proto.CompactTextString(m) }
-func (*VoipApplicationServiceProfile) ProtoMessage()    {}
+func (x *VoipApplicationServiceProfile) Reset() {
+	*x = VoipApplicationServiceProfile{}
+	mi := &file_voltha_protos_voip_system_profile_proto_msgTypes[18]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VoipApplicationServiceProfile) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VoipApplicationServiceProfile) ProtoMessage() {}
+
+func (x *VoipApplicationServiceProfile) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_voip_system_profile_proto_msgTypes[18]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VoipApplicationServiceProfile.ProtoReflect.Descriptor instead.
 func (*VoipApplicationServiceProfile) Descriptor() ([]byte, []int) {
-	return fileDescriptor_02a00a136081bca5, []int{18}
+	return file_voltha_protos_voip_system_profile_proto_rawDescGZIP(), []int{18}
 }
 
-func (m *VoipApplicationServiceProfile) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_VoipApplicationServiceProfile.Unmarshal(m, b)
-}
-func (m *VoipApplicationServiceProfile) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_VoipApplicationServiceProfile.Marshal(b, m, deterministic)
-}
-func (m *VoipApplicationServiceProfile) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_VoipApplicationServiceProfile.Merge(m, src)
-}
-func (m *VoipApplicationServiceProfile) XXX_Size() int {
-	return xxx_messageInfo_VoipApplicationServiceProfile.Size(m)
-}
-func (m *VoipApplicationServiceProfile) XXX_DiscardUnknown() {
-	xxx_messageInfo_VoipApplicationServiceProfile.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_VoipApplicationServiceProfile proto.InternalMessageInfo
-
-func (m *VoipApplicationServiceProfile) GetCidFeatures() uint32 {
-	if m != nil {
-		return m.CidFeatures
+func (x *VoipApplicationServiceProfile) GetCidFeatures() uint32 {
+	if x != nil {
+		return x.CidFeatures
 	}
 	return 0
 }
 
-func (m *VoipApplicationServiceProfile) GetCallWaitingFeatures() uint32 {
-	if m != nil {
-		return m.CallWaitingFeatures
+func (x *VoipApplicationServiceProfile) GetCallWaitingFeatures() uint32 {
+	if x != nil {
+		return x.CallWaitingFeatures
 	}
 	return 0
 }
 
-func (m *VoipApplicationServiceProfile) GetCallProgressOrTransferFeatures() uint32 {
-	if m != nil {
-		return m.CallProgressOrTransferFeatures
+func (x *VoipApplicationServiceProfile) GetCallProgressOrTransferFeatures() uint32 {
+	if x != nil {
+		return x.CallProgressOrTransferFeatures
 	}
 	return 0
 }
 
-func (m *VoipApplicationServiceProfile) GetCallPresentationFeatures() uint32 {
-	if m != nil {
-		return m.CallPresentationFeatures
+func (x *VoipApplicationServiceProfile) GetCallPresentationFeatures() uint32 {
+	if x != nil {
+		return x.CallPresentationFeatures
 	}
 	return 0
 }
 
-func (m *VoipApplicationServiceProfile) GetDirectConnectFeature() uint32 {
-	if m != nil {
-		return m.DirectConnectFeature
+func (x *VoipApplicationServiceProfile) GetDirectConnectFeature() uint32 {
+	if x != nil {
+		return x.DirectConnectFeature
 	}
 	return 0
 }
 
-func (m *VoipApplicationServiceProfile) GetDirectConnectUriPointer() string {
-	if m != nil {
-		return m.DirectConnectUriPointer
+func (x *VoipApplicationServiceProfile) GetDirectConnectUriPointer() string {
+	if x != nil {
+		return x.DirectConnectUriPointer
 	}
 	return ""
 }
 
-func (m *VoipApplicationServiceProfile) GetBridgedLineAgentUriPointer() string {
-	if m != nil {
-		return m.BridgedLineAgentUriPointer
+func (x *VoipApplicationServiceProfile) GetBridgedLineAgentUriPointer() string {
+	if x != nil {
+		return x.BridgedLineAgentUriPointer
 	}
 	return ""
 }
 
-func (m *VoipApplicationServiceProfile) GetConferenceFactoryUriPointer() string {
-	if m != nil {
-		return m.ConferenceFactoryUriPointer
+func (x *VoipApplicationServiceProfile) GetConferenceFactoryUriPointer() string {
+	if x != nil {
+		return x.ConferenceFactoryUriPointer
 	}
 	return ""
 }
 
-func (m *VoipApplicationServiceProfile) GetDialToneDelayTimer() uint32 {
-	if m != nil {
-		return m.DialToneDelayTimer
+func (x *VoipApplicationServiceProfile) GetDialToneDelayTimer() uint32 {
+	if x != nil {
+		return x.DialToneDelayTimer
 	}
 	return 0
 }
 
-func init() {
-	proto.RegisterType((*VoipSystemProfileRequest)(nil), "voip_system_profile.VoipSystemProfileRequest")
-	proto.RegisterType((*VoipSystemProfile)(nil), "voip_system_profile.VoipSystemProfile")
-	proto.RegisterType((*VoipConfig)(nil), "voip_system_profile.VoipConfig")
-	proto.RegisterType((*IpHostConfig)(nil), "voip_system_profile.IpHostConfig")
-	proto.RegisterType((*TcpUdpConfig)(nil), "voip_system_profile.TcpUdpConfig")
-	proto.RegisterType((*VoipVoiceCtp)(nil), "voip_system_profile.VoipVoiceCtp")
-	proto.RegisterType((*VoipMediaProfile)(nil), "voip_system_profile.VoipMediaProfile")
-	proto.RegisterType((*VoiceServiceProfile)(nil), "voip_system_profile.VoiceServiceProfile")
-	proto.RegisterType((*RtpProfile)(nil), "voip_system_profile.RtpProfile")
-	proto.RegisterType((*PptpPotsUni)(nil), "voip_system_profile.PptpPotsUni")
-	proto.RegisterType((*SipConfig)(nil), "voip_system_profile.SipConfig")
-	proto.RegisterType((*SipUserData)(nil), "voip_system_profile.SipUserData")
-	proto.RegisterType((*SipAgentConfig)(nil), "voip_system_profile.SipAgentConfig")
-	proto.RegisterType((*NetworkDialPlan)(nil), "voip_system_profile.NetworkDialPlan")
-	proto.RegisterType((*UsernameAndPassword)(nil), "voip_system_profile.UsernameAndPassword")
-	proto.RegisterType((*SipResponseTable)(nil), "voip_system_profile.SipResponseTable")
-	proto.RegisterType((*DialPlanTable)(nil), "voip_system_profile.DialPlanTable")
-	proto.RegisterType((*VoipFeatureAccessCodes)(nil), "voip_system_profile.VoipFeatureAccessCodes")
-	proto.RegisterType((*VoipApplicationServiceProfile)(nil), "voip_system_profile.VoipApplicationServiceProfile")
+var File_voltha_protos_voip_system_profile_proto protoreflect.FileDescriptor
+
+const file_voltha_protos_voip_system_profile_proto_rawDesc = "" +
+	"\n" +
+	"'voltha_protos/voip_system_profile.proto\x12\x13voip_system_profile\x1a\x1cgoogle/api/annotations.proto\"\x82\x01\n" +
+	"\x18VoipSystemProfileRequest\x12\x10\n" +
+	"\x03key\x18\x01 \x01(\tR\x03key\x12T\n" +
+	"\x11voipSystemProfile\x18\x02 \x01(\v2&.voip_system_profile.VoipSystemProfileR\x11voipSystemProfile\"\x92\x01\n" +
+	"\x11VoipSystemProfile\x12<\n" +
+	"\tsipConfig\x18\x01 \x01(\v2\x1e.voip_system_profile.SipConfigR\tsipConfig\x12?\n" +
+	"\n" +
+	"voipConfig\x18\x02 \x01(\v2\x1f.voip_system_profile.VoipConfigR\n" +
+	"voipConfig\"\x95\x04\n" +
+	"\n" +
+	"VoipConfig\x12E\n" +
+	"\fipHostConfig\x18\x01 \x01(\v2!.voip_system_profile.IpHostConfigR\fipHostConfig\x12E\n" +
+	"\ftcpUdpConfig\x18\x02 \x01(\v2!.voip_system_profile.TcpUdpConfigR\ftcpUdpConfig\x12E\n" +
+	"\fvoipVoiceCtp\x18\x03 \x01(\v2!.voip_system_profile.VoipVoiceCtpR\fvoipVoiceCtp\x12Q\n" +
+	"\x10voipMediaProfile\x18\x04 \x01(\v2%.voip_system_profile.VoipMediaProfileR\x10voipMediaProfile\x12Z\n" +
+	"\x13voiceServiceProfile\x18\x05 \x01(\v2(.voip_system_profile.VoiceServiceProfileR\x13voiceServiceProfile\x12?\n" +
+	"\n" +
+	"rtpProfile\x18\x06 \x01(\v2\x1f.voip_system_profile.RtpProfileR\n" +
+	"rtpProfile\x12B\n" +
+	"\vpptpPotsUni\x18\a \x01(\v2 .voip_system_profile.PptpPotsUniR\vpptpPotsUni\"\x90\x02\n" +
+	"\fIpHostConfig\x12\x1c\n" +
+	"\tipOptions\x18\x01 \x01(\rR\tipOptions\x12$\n" +
+	"\ronuIdentifier\x18\x02 \x01(\tR\ronuIdentifier\x12\x1c\n" +
+	"\tipAddress\x18\x03 \x01(\tR\tipAddress\x12\x12\n" +
+	"\x04mask\x18\x04 \x01(\tR\x04mask\x12\x18\n" +
+	"\agateway\x18\x05 \x01(\tR\agateway\x12\x1e\n" +
+	"\n" +
+	"primaryDns\x18\x06 \x01(\tR\n" +
+	"primaryDns\x12\"\n" +
+	"\fsecondaryDns\x18\a \x01(\tR\fsecondaryDns\x12,\n" +
+	"\x11relayAgentOptions\x18\b \x01(\tR\x11relayAgentOptions\"F\n" +
+	"\fTcpUdpConfig\x12\x1a\n" +
+	"\bprotocol\x18\x01 \x01(\rR\bprotocol\x12\x1a\n" +
+	"\btosField\x18\x02 \x01(\tR\btosField\"6\n" +
+	"\fVoipVoiceCtp\x12&\n" +
+	"\x0esignallingCode\x18\x01 \x01(\rR\x0esignallingCode\"\x96\x05\n" +
+	"\x10VoipMediaProfile\x12\x18\n" +
+	"\afaxMode\x18\x01 \x01(\rR\afaxMode\x12(\n" +
+	"\x0fcodecSelection1\x18\x02 \x01(\rR\x0fcodecSelection1\x126\n" +
+	"\x16packetPeriodSelection1\x18\x03 \x01(\rR\x16packetPeriodSelection1\x120\n" +
+	"\x13silenceSuppression1\x18\x04 \x01(\rR\x13silenceSuppression1\x12(\n" +
+	"\x0fcodecSelection2\x18\x05 \x01(\rR\x0fcodecSelection2\x126\n" +
+	"\x16packetPeriodSelection2\x18\x06 \x01(\rR\x16packetPeriodSelection2\x120\n" +
+	"\x13silenceSuppression2\x18\a \x01(\rR\x13silenceSuppression2\x12(\n" +
+	"\x0fcodecSelection3\x18\b \x01(\rR\x0fcodecSelection3\x126\n" +
+	"\x16packetPeriodSelection3\x18\t \x01(\rR\x16packetPeriodSelection3\x120\n" +
+	"\x13silenceSuppression3\x18\n" +
+	" \x01(\rR\x13silenceSuppression3\x12(\n" +
+	"\x0fcodecSelection4\x18\v \x01(\rR\x0fcodecSelection4\x126\n" +
+	"\x16packetPeriodSelection4\x18\f \x01(\rR\x16packetPeriodSelection4\x120\n" +
+	"\x13silenceSuppression4\x18\r \x01(\rR\x13silenceSuppression4\x12\x18\n" +
+	"\aoobDtmf\x18\x0e \x01(\rR\aoobDtmf\"\xf3\x02\n" +
+	"\x13VoiceServiceProfile\x12*\n" +
+	"\x10announcementType\x18\x01 \x01(\rR\x10announcementType\x12\"\n" +
+	"\fjitterTarget\x18\x02 \x01(\rR\fjitterTarget\x12(\n" +
+	"\x0fjitterBufferMax\x18\x03 \x01(\rR\x0fjitterBufferMax\x12$\n" +
+	"\rechoCancelInd\x18\x04 \x01(\bR\rechoCancelInd\x120\n" +
+	"\x13pstnProtocolVariant\x18\x05 \x01(\rR\x13pstnProtocolVariant\x12(\n" +
+	"\x0fdtmfDigitLevels\x18\x06 \x01(\rR\x0fdtmfDigitLevels\x12,\n" +
+	"\x11dtmfDigitDuration\x18\a \x01(\rR\x11dtmfDigitDuration\x122\n" +
+	"\x14hookFlashMinimumTime\x18\b \x01(\rR\x14hookFlashMinimumTime\"\xf8\x01\n" +
+	"\n" +
+	"RtpProfile\x12\"\n" +
+	"\flocalPortMin\x18\x01 \x01(\rR\flocalPortMin\x12\"\n" +
+	"\flocalPortMax\x18\x02 \x01(\rR\flocalPortMax\x12\x1a\n" +
+	"\bdscpMark\x18\x03 \x01(\tR\bdscpMark\x12(\n" +
+	"\x0fpiggyBackEvents\x18\x04 \x01(\rR\x0fpiggyBackEvents\x12\x1e\n" +
+	"\n" +
+	"toneEvents\x18\x05 \x01(\rR\n" +
+	"toneEvents\x12\x1e\n" +
+	"\n" +
+	"dtmfEvents\x18\x06 \x01(\rR\n" +
+	"dtmfEvents\x12\x1c\n" +
+	"\tcasEvents\x18\a \x01(\rR\tcasEvents\"\xc3\x02\n" +
+	"\vPptpPotsUni\x12\x10\n" +
+	"\x03arc\x18\x01 \x01(\tR\x03arc\x12 \n" +
+	"\varcInterval\x18\x02 \x01(\tR\varcInterval\x12\x1c\n" +
+	"\timpedance\x18\x03 \x01(\rR\timpedance\x12*\n" +
+	"\x10transmissionPath\x18\x04 \x01(\rR\x10transmissionPath\x12\x16\n" +
+	"\x06rxGain\x18\x05 \x01(\x11R\x06rxGain\x12\x16\n" +
+	"\x06txGain\x18\x06 \x01(\x11R\x06txGain\x12*\n" +
+	"\x10potsHoldOverTime\x18\a \x01(\rR\x10potsHoldOverTime\x12.\n" +
+	"\x12nominalFeedVoltage\x18\b \x01(\rR\x12nominalFeedVoltage\x12*\n" +
+	"\x10lossOfSoftSwitch\x18\t \x01(\rR\x10lossOfSoftSwitch\"\xcb\x03\n" +
+	"\tSipConfig\x12B\n" +
+	"\vsipUserData\x18\x01 \x01(\v2 .voip_system_profile.SipUserDataR\vsipUserData\x12K\n" +
+	"\x0esipAgentConfig\x18\x02 \x01(\v2#.voip_system_profile.SipAgentConfigR\x0esipAgentConfig\x12N\n" +
+	"\x0fnetworkDialPlan\x18\x03 \x01(\v2$.voip_system_profile.NetworkDialPlanR\x0fnetworkDialPlan\x12c\n" +
+	"\x16voipFeatureAccessCodes\x18\x04 \x01(\v2+.voip_system_profile.VoipFeatureAccessCodesR\x16voipFeatureAccessCodes\x12x\n" +
+	"\x1dvoipApplicationServiceProfile\x18\x05 \x01(\v22.voip_system_profile.VoipApplicationServiceProfileR\x1dvoipApplicationServiceProfile\"\xd3\x02\n" +
+	"\vSipUserData\x12 \n" +
+	"\vuserPartAor\x18\x01 \x01(\tR\vuserPartAor\x12Z\n" +
+	"\x13usernameAndPassword\x18\x02 \x01(\v2(.voip_system_profile.UsernameAndPasswordR\x13usernameAndPassword\x124\n" +
+	"\x15voicemailServerSipUri\x18\x03 \x01(\tR\x15voicemailServerSipUri\x12P\n" +
+	"#voicemailSubscriptionExpirationTime\x18\x04 \x01(\x05R#voicemailSubscriptionExpirationTime\x12\"\n" +
+	"\freleaseTimer\x18\x05 \x01(\x05R\freleaseTimer\x12\x1a\n" +
+	"\brohTimer\x18\x06 \x01(\x05R\brohTimer\"\xa3\x04\n" +
+	"\x0eSipAgentConfig\x122\n" +
+	"\x14outboundProxyAddress\x18\x01 \x01(\tR\x14outboundProxyAddress\x12$\n" +
+	"\rprimarySipDns\x18\x02 \x01(\tR\rprimarySipDns\x12(\n" +
+	"\x0fsecondarySipDns\x18\x03 \x01(\tR\x0fsecondarySipDns\x12$\n" +
+	"\rsipRegExpTime\x18\x04 \x01(\x05R\rsipRegExpTime\x124\n" +
+	"\x15sipReregHeadStartTime\x18\x05 \x01(\x05R\x15sipReregHeadStartTime\x12\"\n" +
+	"\fSipRegistrar\x18\x06 \x01(\tR\fSipRegistrar\x12\x1e\n" +
+	"\n" +
+	"softSwitch\x18\a \x01(\tR\n" +
+	"softSwitch\x12Q\n" +
+	"\x10sipResponseTable\x18\b \x01(\v2%.voip_system_profile.SipResponseTableR\x10sipResponseTable\x12:\n" +
+	"\x18sipOptionTransmitControl\x18\t \x01(\bR\x18sipOptionTransmitControl\x12\"\n" +
+	"\fsipUriFormat\x18\n" +
+	" \x01(\tR\fsipUriFormat\x12:\n" +
+	"\x18redundantSipAgentPointer\x18\v \x01(\tR\x18redundantSipAgentPointer\"\xe5\x01\n" +
+	"\x0fNetworkDialPlan\x120\n" +
+	"\x13criticalDialTimeout\x18\x01 \x01(\rR\x13criticalDialTimeout\x12.\n" +
+	"\x12partialDialTimeout\x18\x02 \x01(\rR\x12partialDialTimeout\x12&\n" +
+	"\x0edialPlanFormat\x18\x03 \x01(\rR\x0edialPlanFormat\x12H\n" +
+	"\rdialPlanTable\x18\x04 \x01(\v2\".voip_system_profile.DialPlanTableR\rdialPlanTable\"A\n" +
+	"\x13UsernameAndPassword\x12*\n" +
+	"\x10validationScheme\x18\x01 \x01(\x05R\x10validationScheme\"r\n" +
+	"\x10SipResponseTable\x12(\n" +
+	"\x0fsipResponseCode\x18\x01 \x01(\tR\x0fsipResponseCode\x12\x12\n" +
+	"\x04tone\x18\x02 \x01(\tR\x04tone\x12 \n" +
+	"\vtextMessage\x18\x03 \x01(\tR\vtextMessage\"\xa1\x01\n" +
+	"\rDialPlanTable\x12\x1e\n" +
+	"\n" +
+	"dialPlanId\x18\x01 \x01(\rR\n" +
+	"dialPlanId\x12\x16\n" +
+	"\x06action\x18\x02 \x01(\rR\x06action\x12$\n" +
+	"\rdialPlanToken\x18\x03 \x01(\tR\rdialPlanToken\x122\n" +
+	"\x14dialPlanTableMaxSize\x18\x04 \x01(\rR\x14dialPlanTableMaxSize\"\xd2\x04\n" +
+	"\x16VoipFeatureAccessCodes\x12,\n" +
+	"\x11cancelCallWaiting\x18\x01 \x01(\tR\x11cancelCallWaiting\x12\x1a\n" +
+	"\bcallHold\x18\x02 \x01(\tR\bcallHold\x12\x1a\n" +
+	"\bcallPark\x18\x03 \x01(\tR\bcallPark\x12*\n" +
+	"\x10callerIdActivate\x18\x04 \x01(\tR\x10callerIdActivate\x12.\n" +
+	"\x12callerIdDeactivate\x18\x05 \x01(\tR\x12callerIdDeactivate\x126\n" +
+	"\x16doNotDisturbActivation\x18\x06 \x01(\tR\x16doNotDisturbActivation\x12:\n" +
+	"\x18doNotDisturbDeactivation\x18\a \x01(\tR\x18doNotDisturbDeactivation\x124\n" +
+	"\x15doNotDisturbPinChange\x18\b \x01(\tR\x15doNotDisturbPinChange\x126\n" +
+	"\x16emergencyServiceNumber\x18\t \x01(\tR\x16emergencyServiceNumber\x12(\n" +
+	"\x0fintercomService\x18\n" +
+	" \x01(\tR\x0fintercomService\x126\n" +
+	"\x16unattendedCallTransfer\x18\v \x01(\tR\x16unattendedCallTransfer\x122\n" +
+	"\x14attendedCallTransfer\x18\f \x01(\tR\x14attendedCallTransfer\"\x97\x04\n" +
+	"\x1dVoipApplicationServiceProfile\x12 \n" +
+	"\vcidFeatures\x18\x01 \x01(\rR\vcidFeatures\x120\n" +
+	"\x13callWaitingFeatures\x18\x02 \x01(\rR\x13callWaitingFeatures\x12F\n" +
+	"\x1ecallProgressOrTransferFeatures\x18\x03 \x01(\rR\x1ecallProgressOrTransferFeatures\x12:\n" +
+	"\x18callPresentationFeatures\x18\x04 \x01(\rR\x18callPresentationFeatures\x122\n" +
+	"\x14directConnectFeature\x18\x05 \x01(\rR\x14directConnectFeature\x128\n" +
+	"\x17directConnectUriPointer\x18\x06 \x01(\tR\x17directConnectUriPointer\x12>\n" +
+	"\x1abridgedLineAgentUriPointer\x18\a \x01(\tR\x1abridgedLineAgentUriPointer\x12@\n" +
+	"\x1bconferenceFactoryUriPointer\x18\b \x01(\tR\x1bconferenceFactoryUriPointer\x12.\n" +
+	"\x12dialToneDelayTimer\x18\t \x01(\rR\x12dialToneDelayTimerBf\n" +
+	"'org.opencord.voltha.voip_system_profileZ;github.com/opencord/voltha-protos/v5/go/voip_system_profileb\x06proto3"
+
+var (
+	file_voltha_protos_voip_system_profile_proto_rawDescOnce sync.Once
+	file_voltha_protos_voip_system_profile_proto_rawDescData []byte
+)
+
+func file_voltha_protos_voip_system_profile_proto_rawDescGZIP() []byte {
+	file_voltha_protos_voip_system_profile_proto_rawDescOnce.Do(func() {
+		file_voltha_protos_voip_system_profile_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_voltha_protos_voip_system_profile_proto_rawDesc), len(file_voltha_protos_voip_system_profile_proto_rawDesc)))
+	})
+	return file_voltha_protos_voip_system_profile_proto_rawDescData
 }
 
-func init() {
-	proto.RegisterFile("voltha_protos/voip_system_profile.proto", fileDescriptor_02a00a136081bca5)
+var file_voltha_protos_voip_system_profile_proto_msgTypes = make([]protoimpl.MessageInfo, 19)
+var file_voltha_protos_voip_system_profile_proto_goTypes = []any{
+	(*VoipSystemProfileRequest)(nil),      // 0: voip_system_profile.VoipSystemProfileRequest
+	(*VoipSystemProfile)(nil),             // 1: voip_system_profile.VoipSystemProfile
+	(*VoipConfig)(nil),                    // 2: voip_system_profile.VoipConfig
+	(*IpHostConfig)(nil),                  // 3: voip_system_profile.IpHostConfig
+	(*TcpUdpConfig)(nil),                  // 4: voip_system_profile.TcpUdpConfig
+	(*VoipVoiceCtp)(nil),                  // 5: voip_system_profile.VoipVoiceCtp
+	(*VoipMediaProfile)(nil),              // 6: voip_system_profile.VoipMediaProfile
+	(*VoiceServiceProfile)(nil),           // 7: voip_system_profile.VoiceServiceProfile
+	(*RtpProfile)(nil),                    // 8: voip_system_profile.RtpProfile
+	(*PptpPotsUni)(nil),                   // 9: voip_system_profile.PptpPotsUni
+	(*SipConfig)(nil),                     // 10: voip_system_profile.SipConfig
+	(*SipUserData)(nil),                   // 11: voip_system_profile.SipUserData
+	(*SipAgentConfig)(nil),                // 12: voip_system_profile.SipAgentConfig
+	(*NetworkDialPlan)(nil),               // 13: voip_system_profile.NetworkDialPlan
+	(*UsernameAndPassword)(nil),           // 14: voip_system_profile.UsernameAndPassword
+	(*SipResponseTable)(nil),              // 15: voip_system_profile.SipResponseTable
+	(*DialPlanTable)(nil),                 // 16: voip_system_profile.DialPlanTable
+	(*VoipFeatureAccessCodes)(nil),        // 17: voip_system_profile.VoipFeatureAccessCodes
+	(*VoipApplicationServiceProfile)(nil), // 18: voip_system_profile.VoipApplicationServiceProfile
+}
+var file_voltha_protos_voip_system_profile_proto_depIdxs = []int32{
+	1,  // 0: voip_system_profile.VoipSystemProfileRequest.voipSystemProfile:type_name -> voip_system_profile.VoipSystemProfile
+	10, // 1: voip_system_profile.VoipSystemProfile.sipConfig:type_name -> voip_system_profile.SipConfig
+	2,  // 2: voip_system_profile.VoipSystemProfile.voipConfig:type_name -> voip_system_profile.VoipConfig
+	3,  // 3: voip_system_profile.VoipConfig.ipHostConfig:type_name -> voip_system_profile.IpHostConfig
+	4,  // 4: voip_system_profile.VoipConfig.tcpUdpConfig:type_name -> voip_system_profile.TcpUdpConfig
+	5,  // 5: voip_system_profile.VoipConfig.voipVoiceCtp:type_name -> voip_system_profile.VoipVoiceCtp
+	6,  // 6: voip_system_profile.VoipConfig.voipMediaProfile:type_name -> voip_system_profile.VoipMediaProfile
+	7,  // 7: voip_system_profile.VoipConfig.voiceServiceProfile:type_name -> voip_system_profile.VoiceServiceProfile
+	8,  // 8: voip_system_profile.VoipConfig.rtpProfile:type_name -> voip_system_profile.RtpProfile
+	9,  // 9: voip_system_profile.VoipConfig.pptpPotsUni:type_name -> voip_system_profile.PptpPotsUni
+	11, // 10: voip_system_profile.SipConfig.sipUserData:type_name -> voip_system_profile.SipUserData
+	12, // 11: voip_system_profile.SipConfig.sipAgentConfig:type_name -> voip_system_profile.SipAgentConfig
+	13, // 12: voip_system_profile.SipConfig.networkDialPlan:type_name -> voip_system_profile.NetworkDialPlan
+	17, // 13: voip_system_profile.SipConfig.voipFeatureAccessCodes:type_name -> voip_system_profile.VoipFeatureAccessCodes
+	18, // 14: voip_system_profile.SipConfig.voipApplicationServiceProfile:type_name -> voip_system_profile.VoipApplicationServiceProfile
+	14, // 15: voip_system_profile.SipUserData.usernameAndPassword:type_name -> voip_system_profile.UsernameAndPassword
+	15, // 16: voip_system_profile.SipAgentConfig.sipResponseTable:type_name -> voip_system_profile.SipResponseTable
+	16, // 17: voip_system_profile.NetworkDialPlan.dialPlanTable:type_name -> voip_system_profile.DialPlanTable
+	18, // [18:18] is the sub-list for method output_type
+	18, // [18:18] is the sub-list for method input_type
+	18, // [18:18] is the sub-list for extension type_name
+	18, // [18:18] is the sub-list for extension extendee
+	0,  // [0:18] is the sub-list for field type_name
 }
 
-var fileDescriptor_02a00a136081bca5 = []byte{
-	// 2057 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x58, 0x5f, 0x73, 0x1b, 0x49,
-	0x11, 0x2f, 0x3b, 0x4e, 0x2e, 0x1a, 0xdb, 0xf9, 0x33, 0x81, 0xa0, 0x0a, 0x77, 0x21, 0xec, 0x1d,
-	0x77, 0x29, 0xfe, 0xd8, 0x60, 0x9b, 0x2b, 0x0a, 0x28, 0xc0, 0xb1, 0x62, 0xe2, 0xe2, 0x9c, 0x88,
-	0x95, 0x63, 0xaa, 0xee, 0xe5, 0x6a, 0x3c, 0xdb, 0x5a, 0x0d, 0xde, 0x9d, 0x59, 0x66, 0x46, 0x8a,
-	0xc4, 0x23, 0x9f, 0x80, 0xa2, 0x0a, 0x78, 0xa6, 0xf8, 0x28, 0x3c, 0xf2, 0x06, 0x9f, 0x81, 0x4f,
-	0xc0, 0x0b, 0x8f, 0x54, 0xcf, 0xcc, 0x4a, 0xbb, 0xda, 0x5d, 0xc3, 0x9b, 0xe6, 0xf7, 0xeb, 0x6e,
-	0xb5, 0xba, 0x7b, 0xba, 0x7b, 0x44, 0x3e, 0x99, 0xa9, 0xcc, 0x4e, 0xd8, 0x17, 0x85, 0x56, 0x56,
-	0x99, 0xfd, 0x99, 0x12, 0xc5, 0x17, 0x66, 0x61, 0x2c, 0xe4, 0x08, 0x8d, 0x45, 0x06, 0x7b, 0x8e,
-	0xa2, 0x8f, 0x5a, 0xa8, 0x27, 0xef, 0xa7, 0x4a, 0xa5, 0x19, 0xec, 0xb3, 0x42, 0xec, 0x33, 0x29,
-	0x95, 0x65, 0x56, 0x28, 0x69, 0xbc, 0x4a, 0xf4, 0xbb, 0x0d, 0xd2, 0xbf, 0x54, 0xa2, 0x18, 0x39,
-	0xa5, 0xa1, 0xd7, 0x89, 0xe1, 0x37, 0x53, 0x30, 0x96, 0x3e, 0x20, 0xb7, 0xae, 0x61, 0xd1, 0xdf,
-	0x78, 0xb6, 0xf1, 0xbc, 0x17, 0xe3, 0x47, 0x7a, 0x41, 0x1e, 0xce, 0xd6, 0xa5, 0xfb, 0x9b, 0xcf,
-	0x36, 0x9e, 0x6f, 0x1f, 0x7c, 0xbc, 0xd7, 0xe6, 0x58, 0xd3, 0x76, 0xd3, 0x40, 0xf4, 0x87, 0x0d,
-	0xf2, 0xb0, 0x21, 0x48, 0x7f, 0x4c, 0x7a, 0x46, 0x14, 0x27, 0x4a, 0x8e, 0x45, 0xea, 0x7c, 0xd8,
-	0x3e, 0x78, 0xda, 0xfa, 0x1d, 0xa3, 0x52, 0x2a, 0x5e, 0x29, 0xd0, 0x9f, 0x12, 0x82, 0xb2, 0x41,
-	0xdd, 0xbb, 0xf8, 0xb5, 0x4e, 0x17, 0x83, 0x7e, 0x45, 0x25, 0xfa, 0xe3, 0x16, 0x21, 0x2b, 0x8a,
-	0xbe, 0x24, 0x3b, 0xa2, 0x78, 0xa5, 0x8c, 0xad, 0x39, 0xf4, 0xf5, 0x56, 0x8b, 0x67, 0x15, 0xc1,
-	0xb8, 0xa6, 0x86, 0x66, 0x2c, 0x2f, 0xde, 0x26, 0x75, 0xc7, 0xda, 0xcd, 0x5c, 0x54, 0x04, 0xe3,
-	0x9a, 0x1a, 0x9a, 0x41, 0x8d, 0x4b, 0x25, 0x38, 0x9c, 0xd8, 0xa2, 0x7f, 0xeb, 0x06, 0x33, 0x97,
-	0x15, 0xc1, 0xb8, 0xa6, 0x46, 0x7f, 0x49, 0x1e, 0xe0, 0xf9, 0x1c, 0x12, 0xc1, 0xca, 0x6c, 0x6e,
-	0x39, 0x53, 0xdf, 0xe8, 0x34, 0x55, 0x15, 0x8e, 0x1b, 0xea, 0xf4, 0x73, 0x82, 0x55, 0xc8, 0x61,
-	0x04, 0x7a, 0x26, 0x38, 0x94, 0x56, 0x6f, 0x3b, 0xab, 0xcf, 0xbb, 0xac, 0xae, 0xcb, 0xc7, 0x6d,
-	0x46, 0x30, 0xa7, 0xda, 0x16, 0xa5, 0xc9, 0x3b, 0x37, 0xe4, 0x34, 0x5e, 0x8a, 0xc5, 0x15, 0x15,
-	0xfa, 0x82, 0x6c, 0x17, 0x85, 0x2d, 0x86, 0xca, 0x9a, 0xb7, 0x52, 0xf4, 0xdf, 0x73, 0x16, 0x9e,
-	0xb5, 0x5a, 0x18, 0xae, 0xe4, 0xe2, 0xaa, 0x52, 0xf4, 0xfb, 0x4d, 0xb2, 0x53, 0x4d, 0x30, 0x7d,
-	0x9f, 0xf4, 0x44, 0xf1, 0xa6, 0x70, 0xb7, 0xca, 0x95, 0xc5, 0x6e, 0xbc, 0x02, 0xe8, 0x47, 0x64,
-	0x57, 0xc9, 0xe9, 0x59, 0x02, 0xd2, 0x8a, 0xb1, 0x00, 0xed, 0x32, 0xde, 0x8b, 0xeb, 0xa0, 0xb7,
-	0x71, 0x9c, 0x24, 0x1a, 0x8c, 0x71, 0xc9, 0xec, 0xc5, 0x2b, 0x80, 0x52, 0xb2, 0x95, 0x33, 0x73,
-	0xed, 0x52, 0xd3, 0x8b, 0xdd, 0x67, 0xda, 0x27, 0xef, 0xa5, 0xcc, 0xc2, 0x3b, 0xb6, 0x70, 0xb1,
-	0xed, 0xc5, 0xe5, 0x91, 0x3e, 0x25, 0xa4, 0xd0, 0x22, 0x67, 0x7a, 0x31, 0x90, 0xc6, 0x45, 0xa9,
-	0x17, 0x57, 0x10, 0x1a, 0x91, 0x1d, 0x03, 0x5c, 0xc9, 0x24, 0x48, 0xbc, 0xe7, 0x24, 0x6a, 0x18,
-	0xfd, 0x36, 0x79, 0xa8, 0x21, 0x63, 0x8b, 0xe3, 0x14, 0xa4, 0x2d, 0x7f, 0xdb, 0x5d, 0x27, 0xd8,
-	0x24, 0xa2, 0x53, 0xb2, 0x53, 0xad, 0x55, 0xfa, 0x84, 0xdc, 0x75, 0xdd, 0x85, 0xab, 0x2c, 0x04,
-	0x64, 0x79, 0x46, 0xce, 0x2a, 0x73, 0x2a, 0x20, 0x4b, 0x42, 0x28, 0x96, 0xe7, 0xe8, 0x53, 0xb2,
-	0x53, 0x2d, 0x56, 0xfa, 0x31, 0xb9, 0x67, 0x44, 0x2a, 0x59, 0x96, 0x09, 0x99, 0x9e, 0xa8, 0x04,
-	0x82, 0xb5, 0x35, 0x34, 0xfa, 0xd3, 0x6d, 0xf2, 0x60, 0xbd, 0x34, 0x31, 0x40, 0x63, 0x36, 0x3f,
-	0x5f, 0x69, 0x95, 0x47, 0xfa, 0x9c, 0xdc, 0xe7, 0x2a, 0x01, 0x3e, 0x82, 0x0c, 0x38, 0xfe, 0x82,
-	0xef, 0x39, 0x4f, 0x76, 0xe3, 0x75, 0x98, 0x7e, 0x4a, 0x1e, 0x17, 0x8c, 0x5f, 0x83, 0x1d, 0x82,
-	0x16, 0x2a, 0xa9, 0x28, 0xdc, 0x72, 0x0a, 0x1d, 0x2c, 0xfd, 0x2e, 0x79, 0x64, 0x44, 0x06, 0x92,
-	0xc3, 0x68, 0x5a, 0x14, 0x98, 0x43, 0xa7, 0xb4, 0xe5, 0x94, 0xda, 0xa8, 0xa6, 0x4f, 0x07, 0x2e,
-	0xad, 0x0d, 0x9f, 0x0e, 0x3a, 0x7d, 0x3a, 0x70, 0xa9, 0xee, 0xf2, 0xe9, 0xa0, 0xdd, 0xa7, 0x03,
-	0x97, 0xfd, 0x56, 0x9f, 0x0e, 0x9a, 0x3e, 0x1d, 0xba, 0x12, 0x68, 0xf8, 0x74, 0xd8, 0xe9, 0xd3,
-	0x61, 0xbf, 0x77, 0x83, 0x4f, 0x87, 0xed, 0x3e, 0x1d, 0xf6, 0x49, 0x97, 0x4f, 0x87, 0x4d, 0x9f,
-	0x8e, 0xfa, 0xdb, 0x6d, 0x3e, 0x1d, 0x75, 0xfa, 0x74, 0xd4, 0xdf, 0xb9, 0xc1, 0xa7, 0xa3, 0x76,
-	0x9f, 0x8e, 0xfa, 0xbb, 0x5d, 0x3e, 0x1d, 0x61, 0xa5, 0x29, 0x75, 0x35, 0xb0, 0xf9, 0xb8, 0x7f,
-	0xcf, 0x57, 0x5a, 0x38, 0x46, 0xff, 0xde, 0x24, 0x8f, 0x5a, 0xba, 0x1b, 0xfd, 0x26, 0x79, 0x80,
-	0xa3, 0x78, 0x2a, 0x39, 0xe4, 0x20, 0xed, 0xc5, 0xa2, 0x28, 0x8b, 0xb4, 0x81, 0xe3, 0x75, 0xfd,
-	0xb5, 0xb0, 0x16, 0xf4, 0x05, 0xd3, 0x29, 0xd8, 0x50, 0xaa, 0x35, 0x0c, 0xa3, 0xe2, 0xcf, 0x2f,
-	0xa6, 0xe3, 0x31, 0xe8, 0x73, 0x36, 0x0f, 0x05, 0xba, 0x0e, 0x63, 0x3b, 0x02, 0x3e, 0x51, 0x27,
-	0x4c, 0x72, 0xc8, 0xce, 0x64, 0xe2, 0x6a, 0xf2, 0x6e, 0x5c, 0x07, 0x31, 0x06, 0x85, 0xb1, 0x72,
-	0x18, 0x2e, 0xed, 0x25, 0xd3, 0x82, 0x49, 0x1b, 0x2a, 0xb2, 0x8d, 0x42, 0x0f, 0x12, 0x9b, 0x8f,
-	0x07, 0x22, 0x15, 0xf6, 0x33, 0x98, 0x41, 0x66, 0x42, 0x39, 0xae, 0xc3, 0xd8, 0x5a, 0x96, 0xd0,
-	0x60, 0xaa, 0xdd, 0x36, 0x12, 0xaa, 0xb0, 0x49, 0xd0, 0x03, 0xf2, 0xa5, 0x89, 0x52, 0xd7, 0xa7,
-	0x19, 0x33, 0x93, 0x73, 0x21, 0x45, 0x3e, 0xcd, 0x2f, 0x44, 0x0e, 0xa1, 0x10, 0x5b, 0xb9, 0xe8,
-	0x3f, 0x1b, 0x84, 0xac, 0x06, 0x00, 0x06, 0x30, 0x53, 0x9c, 0x65, 0x43, 0xa5, 0xed, 0xb9, 0x90,
-	0x21, 0xd0, 0x35, 0xac, 0x2e, 0xc3, 0xe6, 0x65, 0x90, 0xab, 0x18, 0x76, 0xae, 0xc4, 0xf0, 0xe2,
-	0x9c, 0xe9, 0xeb, 0xd0, 0xa2, 0x97, 0x67, 0xfc, 0xf9, 0x85, 0x48, 0xd3, 0xc5, 0x0b, 0xc6, 0xaf,
-	0x5f, 0xce, 0x40, 0x5a, 0x13, 0x2e, 0xfb, 0x3a, 0x8c, 0xdd, 0xd9, 0x2a, 0x09, 0x41, 0xc8, 0x47,
-	0xb4, 0x82, 0x20, 0x8f, 0x51, 0x08, 0xbc, 0x8f, 0x61, 0x05, 0xc1, 0x49, 0xc1, 0x99, 0x09, 0xb4,
-	0x0f, 0xdb, 0x0a, 0x88, 0xfe, 0xb6, 0x49, 0xb6, 0x2b, 0x93, 0x0b, 0x37, 0x38, 0xa6, 0x79, 0xb9,
-	0xc1, 0x31, 0xcd, 0xe9, 0x33, 0xb2, 0xcd, 0x34, 0x3f, 0x93, 0x16, 0xf4, 0x8c, 0x65, 0xa1, 0x05,
-	0x57, 0x21, 0x37, 0x8b, 0xf2, 0x02, 0x12, 0xac, 0x86, 0x50, 0x46, 0x2b, 0x00, 0x4b, 0xd7, 0x6a,
-	0x26, 0x4d, 0x2e, 0x5c, 0xf5, 0x0f, 0x99, 0x9d, 0x84, 0x9f, 0xda, 0xc0, 0xe9, 0x63, 0x72, 0x47,
-	0xcf, 0x7f, 0xce, 0x84, 0x74, 0xbf, 0xf3, 0x61, 0x1c, 0x4e, 0x88, 0x5b, 0x8f, 0xdf, 0xf1, 0xb8,
-	0x3f, 0xa1, 0xed, 0x42, 0x59, 0xf3, 0x4a, 0x65, 0xc9, 0x9b, 0x19, 0x68, 0x97, 0x68, 0xff, 0x13,
-	0x1b, 0x38, 0xdd, 0x23, 0x54, 0xaa, 0x5c, 0x48, 0x96, 0x9d, 0x02, 0x24, 0x97, 0x2a, 0xb3, 0x2c,
-	0x2d, 0xcb, 0xa2, 0x85, 0x41, 0xdb, 0x99, 0x32, 0xe6, 0xcd, 0x78, 0xa4, 0xc6, 0x76, 0xf4, 0x4e,
-	0x58, 0x3e, 0x09, 0xcd, 0xa9, 0x81, 0x47, 0x7f, 0xbf, 0x45, 0x7a, 0xcb, 0xa5, 0x12, 0x97, 0x06,
-	0x23, 0x8a, 0xb7, 0x06, 0xf4, 0x80, 0x59, 0x16, 0x16, 0xbf, 0x67, 0x5d, 0x9b, 0x68, 0x29, 0x17,
-	0x57, 0x95, 0xe8, 0x2f, 0x70, 0x92, 0x15, 0x6e, 0x68, 0xd6, 0x16, 0xbf, 0x0f, 0xbb, 0xcc, 0x54,
-	0x44, 0xe3, 0x35, 0x55, 0xfa, 0x9a, 0xdc, 0x97, 0x60, 0xdf, 0x29, 0x7d, 0x3d, 0x10, 0x2c, 0x1b,
-	0x66, 0x4c, 0x86, 0xfd, 0xef, 0xa3, 0x56, 0x6b, 0xaf, 0xeb, 0xb2, 0xf1, 0xba, 0x32, 0xe5, 0xe4,
-	0x31, 0xea, 0x9d, 0x02, 0xb3, 0x53, 0x0d, 0xc7, 0x9c, 0x83, 0x31, 0x38, 0x57, 0x4d, 0xd8, 0x05,
-	0xbf, 0xd5, 0xb9, 0x0b, 0x36, 0x55, 0xe2, 0x0e, 0x53, 0x74, 0x4e, 0x3e, 0x40, 0xe6, 0xb8, 0x28,
-	0x32, 0xc1, 0xdd, 0xdd, 0x6e, 0xdd, 0x10, 0x0f, 0x3a, 0xbf, 0xab, 0x53, 0x33, 0xbe, 0xd9, 0x70,
-	0xf4, 0xcf, 0x4d, 0xb2, 0x5d, 0x49, 0x0c, 0xde, 0x80, 0xa9, 0x01, 0x3d, 0x64, 0xda, 0x1e, 0x2b,
-	0x1d, 0xee, 0x46, 0x15, 0xc2, 0x1d, 0x16, 0x8f, 0x92, 0xe5, 0x70, 0x2c, 0x93, 0x21, 0x33, 0xe6,
-	0x9d, 0xd2, 0x49, 0x48, 0x59, 0xfb, 0x0e, 0xfb, 0xb6, 0x29, 0x1f, 0xb7, 0x19, 0xa1, 0x47, 0xe4,
-	0xcb, 0x6e, 0xb5, 0xcd, 0x99, 0xc8, 0xd0, 0x51, 0xd0, 0xe8, 0x9b, 0x16, 0xa1, 0xa5, 0xb4, 0x93,
-	0x74, 0x48, 0x3e, 0x5c, 0x11, 0xd3, 0x2b, 0xc3, 0xb5, 0x70, 0xbb, 0xd7, 0xcb, 0x79, 0x21, 0x7c,
-	0xa7, 0x74, 0x97, 0x05, 0xf3, 0x75, 0x3b, 0xfe, 0x7f, 0x44, 0xb1, 0xe3, 0x69, 0xc8, 0x80, 0x19,
-	0xc0, 0xa3, 0x76, 0xe1, 0xbf, 0x1d, 0xd7, 0x30, 0xec, 0x78, 0x5a, 0x4d, 0x3c, 0x7f, 0xc7, 0xf1,
-	0xcb, 0x73, 0xf4, 0xd7, 0x2d, 0x72, 0xaf, 0x5e, 0xa7, 0xd8, 0xab, 0xd5, 0xd4, 0x5e, 0xa9, 0xa9,
-	0x4c, 0x86, 0x5a, 0xcd, 0x17, 0xe5, 0x3e, 0xeb, 0x23, 0xdc, 0xca, 0xe1, 0x3c, 0x0a, 0xab, 0xe9,
-	0x48, 0x14, 0xb8, 0x8d, 0x86, 0xf5, 0xb8, 0x06, 0x62, 0x7b, 0x5d, 0xae, 0xa7, 0x41, 0xce, 0x87,
-	0x6b, 0x1d, 0x46, 0x7b, 0x46, 0x14, 0x31, 0xa4, 0x2f, 0xe7, 0x45, 0x25, 0x24, 0x75, 0x10, 0x93,
-	0xe0, 0x00, 0x0d, 0xe9, 0x2b, 0x60, 0xc9, 0xc8, 0x32, 0x6d, 0x9d, 0xb4, 0x8f, 0x42, 0x3b, 0x89,
-	0x21, 0x1b, 0x39, 0x33, 0xc2, 0x58, 0xcd, 0x74, 0x58, 0xad, 0x6b, 0x18, 0xb6, 0x6f, 0xb3, 0x6a,
-	0x30, 0x7e, 0xb5, 0xae, 0x20, 0xf8, 0xe2, 0x72, 0xc6, 0x4d, 0xa1, 0xa4, 0x81, 0x0b, 0x76, 0x95,
-	0xf9, 0xa6, 0xd5, 0xf5, 0xe2, 0x1a, 0xad, 0x09, 0xc7, 0x0d, 0x75, 0xfa, 0x43, 0xd2, 0x37, 0xe5,
-	0x7b, 0xe3, 0xc2, 0xb7, 0x60, 0xcc, 0x88, 0xd5, 0x2a, 0x73, 0x1d, 0xee, 0x6e, 0xdc, 0xc9, 0xbb,
-	0xb7, 0x80, 0xab, 0xb0, 0x53, 0xa5, 0x73, 0x66, 0xdd, 0xe6, 0x85, 0x6f, 0x81, 0x0a, 0x86, 0xf6,
-	0x35, 0x24, 0x53, 0x99, 0x30, 0x69, 0xcb, 0x8c, 0x0f, 0x95, 0xc0, 0x71, 0xe1, 0x76, 0xaf, 0x5e,
-	0xdc, 0xc9, 0x47, 0xff, 0xda, 0x20, 0xf7, 0xd7, 0xfa, 0x0f, 0x2e, 0x17, 0x5c, 0x0b, 0x2b, 0x38,
-	0xcb, 0x10, 0xc3, 0xd0, 0xaa, 0xa9, 0x0d, 0x63, 0xb9, 0x8d, 0xc2, 0x5e, 0x5f, 0x30, 0x6d, 0x45,
-	0x5d, 0xc1, 0xcf, 0xe8, 0x16, 0x06, 0xdf, 0x0d, 0x49, 0xf8, 0xb6, 0xf0, 0xbb, 0xfc, 0x18, 0x5b,
-	0x43, 0xe9, 0x2b, 0xb2, 0x5b, 0x22, 0x3e, 0x13, 0xbe, 0xdf, 0x45, 0xad, 0x99, 0x18, 0x54, 0x25,
-	0xe3, 0xba, 0x62, 0x74, 0x4c, 0x1e, 0xb5, 0x74, 0x00, 0x1c, 0x3a, 0x33, 0x96, 0x89, 0xc4, 0xb7,
-	0x25, 0x3e, 0x81, 0xdc, 0xef, 0x79, 0xb7, 0xe3, 0x06, 0x1e, 0x69, 0xf2, 0x60, 0x3d, 0xd9, 0xae,
-	0xee, 0x57, 0xd8, 0xf2, 0x05, 0x84, 0x75, 0x5f, 0x87, 0xf1, 0x89, 0x88, 0x4b, 0x44, 0xb8, 0x3e,
-	0xee, 0x33, 0x36, 0x3a, 0x0b, 0x73, 0x7b, 0x0e, 0xc6, 0xe0, 0x6c, 0xf4, 0x37, 0xa6, 0x0a, 0x45,
-	0x7f, 0xd9, 0x20, 0xbb, 0xb5, 0xdf, 0xe5, 0xd6, 0x8f, 0x00, 0x9c, 0x25, 0x21, 0x27, 0x15, 0x04,
-	0x47, 0x37, 0x73, 0x8b, 0x72, 0x08, 0x7f, 0x38, 0xe1, 0xbd, 0x5b, 0x46, 0x44, 0x5d, 0x83, 0x0c,
-	0xdf, 0x56, 0x07, 0xb1, 0x43, 0xd4, 0xe2, 0x76, 0xce, 0xe6, 0x23, 0xf1, 0x5b, 0x08, 0x0b, 0x44,
-	0x2b, 0x17, 0xfd, 0x63, 0x8b, 0x3c, 0x6e, 0x9f, 0x35, 0xb8, 0x4a, 0x72, 0xb7, 0xb3, 0x9e, 0xb0,
-	0x2c, 0xfb, 0x15, 0x13, 0x56, 0xc8, 0x34, 0x04, 0xa8, 0x49, 0x60, 0x37, 0xe3, 0x2c, 0xcb, 0x70,
-	0x8b, 0x28, 0x5f, 0x9e, 0xe5, 0xb9, 0xe4, 0x86, 0x95, 0xdd, 0xae, 0x3c, 0x63, 0x12, 0xf1, 0x33,
-	0xe8, 0xb3, 0xe4, 0x98, 0x5b, 0x31, 0x63, 0x16, 0xc2, 0x4b, 0xbc, 0x81, 0x63, 0xa5, 0x96, 0xd8,
-	0x00, 0x58, 0x29, 0xed, 0x1f, 0xe8, 0x2d, 0x0c, 0x3e, 0x52, 0x12, 0xf5, 0x5a, 0xd9, 0x81, 0x30,
-	0x76, 0xaa, 0xaf, 0x82, 0x1d, 0x0c, 0xaf, 0x6f, 0x2e, 0x1d, 0x2c, 0xde, 0xc9, 0x2a, 0xb3, 0xb4,
-	0x58, 0xee, 0xd2, 0xbd, 0xb8, 0x93, 0xc7, 0xe6, 0x57, 0xe5, 0x86, 0x42, 0x9e, 0x4c, 0x98, 0x0c,
-	0xcb, 0x53, 0x2f, 0x6e, 0x27, 0xd1, 0x53, 0xc8, 0x41, 0xa7, 0x20, 0xf9, 0x22, 0x0c, 0xd8, 0xd7,
-	0xd3, 0xfc, 0x0a, 0xb4, 0xeb, 0x31, 0xbd, 0xb8, 0x83, 0xc5, 0x12, 0x76, 0xad, 0x80, 0xab, 0x3c,
-	0x10, 0xa1, 0xc9, 0xac, 0xc3, 0xf8, 0x0d, 0x53, 0xc9, 0xac, 0x05, 0x99, 0x40, 0x82, 0x89, 0x73,
-	0xcd, 0x6a, 0xbc, 0xec, 0x32, 0x1d, 0x2c, 0x16, 0x55, 0xab, 0xd6, 0x8e, 0x1f, 0x3b, 0x6d, 0x5c,
-	0xf4, 0xe7, 0x2d, 0xf2, 0xc1, 0x8d, 0x4b, 0x05, 0x5e, 0x1e, 0x2e, 0x92, 0x50, 0x74, 0xe5, 0xff,
-	0x3a, 0x55, 0xc8, 0xf5, 0xb1, 0x55, 0x79, 0x2d, 0x25, 0x37, 0x43, 0x1f, 0x6b, 0x52, 0xf4, 0x94,
-	0x3c, 0x75, 0x55, 0xa5, 0x55, 0x8a, 0xc3, 0xef, 0x8d, 0x2e, 0xfd, 0x59, 0x2a, 0xfb, 0x3e, 0xf5,
-	0x3f, 0xa4, 0x30, 0xfb, 0x5e, 0x02, 0x0c, 0x48, 0xff, 0x7f, 0xee, 0xd2, 0x82, 0xbf, 0x4a, 0x9d,
-	0xbc, 0xbf, 0x82, 0x1a, 0x38, 0x8e, 0x00, 0x09, 0xdc, 0x06, 0x22, 0xbc, 0x44, 0x5a, 0x39, 0xfa,
-	0x03, 0xf2, 0x95, 0x1a, 0xfe, 0x56, 0x8b, 0x72, 0x00, 0xf8, 0x32, 0xed, 0xa2, 0xe9, 0x4f, 0xc8,
-	0x93, 0x2b, 0x2d, 0x92, 0x14, 0x92, 0xcf, 0x84, 0x04, 0x37, 0x1a, 0x2a, 0xca, 0xbe, 0x52, 0x6f,
-	0x90, 0xa0, 0x3f, 0x23, 0x5f, 0xe5, 0x4a, 0x8e, 0x41, 0xe3, 0xa3, 0xfb, 0x94, 0x71, 0xab, 0xf4,
-	0xa2, 0x62, 0xc0, 0x57, 0xec, 0x4d, 0x22, 0x78, 0x23, 0xb1, 0xad, 0x5c, 0x28, 0x09, 0x03, 0xc8,
-	0xd8, 0xc2, 0x6f, 0x33, 0x7e, 0xf3, 0x6f, 0x61, 0x5e, 0x8c, 0xc9, 0x27, 0x4a, 0xa7, 0x7b, 0xaa,
-	0x00, 0xc9, 0x95, 0x4e, 0xf6, 0xfc, 0x7f, 0xef, 0x6d, 0x13, 0xe1, 0xf3, 0x1f, 0xa5, 0xc2, 0x4e,
-	0xa6, 0x57, 0x7b, 0x5c, 0xe5, 0xfb, 0xa5, 0xfc, 0xbe, 0x97, 0xff, 0x4e, 0xf9, 0x5f, 0xfd, 0xf7,
-	0xf7, 0x53, 0xd5, 0xf6, 0x8f, 0xfd, 0xd5, 0x1d, 0x27, 0x71, 0xf8, 0xdf, 0x00, 0x00, 0x00, 0xff,
-	0xff, 0xac, 0x32, 0x52, 0x2e, 0xdd, 0x17, 0x00, 0x00,
+func init() { file_voltha_protos_voip_system_profile_proto_init() }
+func file_voltha_protos_voip_system_profile_proto_init() {
+	if File_voltha_protos_voip_system_profile_proto != nil {
+		return
+	}
+	type x struct{}
+	out := protoimpl.TypeBuilder{
+		File: protoimpl.DescBuilder{
+			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+			RawDescriptor: unsafe.Slice(unsafe.StringData(file_voltha_protos_voip_system_profile_proto_rawDesc), len(file_voltha_protos_voip_system_profile_proto_rawDesc)),
+			NumEnums:      0,
+			NumMessages:   19,
+			NumExtensions: 0,
+			NumServices:   0,
+		},
+		GoTypes:           file_voltha_protos_voip_system_profile_proto_goTypes,
+		DependencyIndexes: file_voltha_protos_voip_system_profile_proto_depIdxs,
+		MessageInfos:      file_voltha_protos_voip_system_profile_proto_msgTypes,
+	}.Build()
+	File_voltha_protos_voip_system_profile_proto = out.File
+	file_voltha_protos_voip_system_profile_proto_goTypes = nil
+	file_voltha_protos_voip_system_profile_proto_depIdxs = nil
 }
diff --git a/go/voip_user_profile/voip_user_profile.pb.go b/go/voip_user_profile/voip_user_profile.pb.go
index a4f90f7..3219dc8 100644
--- a/go/voip_user_profile/voip_user_profile.pb.go
+++ b/go/voip_user_profile/voip_user_profile.pb.go
@@ -1,200 +1,260 @@
+// Copyright 2018-2024 Open Networking Foundation (ONF) and the ONF Contributors
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at:
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
 // Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// 	protoc-gen-go v1.36.11
+// 	protoc        v4.25.8
 // source: voltha_protos/voip_user_profile.proto
 
 package voip_user_profile
 
 import (
-	fmt "fmt"
-	proto "github.com/golang/protobuf/proto"
 	_ "google.golang.org/genproto/googleapis/api/annotations"
-	math "math"
+	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+	reflect "reflect"
+	sync "sync"
+	unsafe "unsafe"
 )
 
-// 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
+const (
+	// Verify that this generated code is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+	// Verify that runtime/protoimpl is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
 
 // A user specific profile for voip service
 type VoipUserProfileRequest struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
 	// for the path in KV store
-	Key                  string           `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
-	VoipUserProfile      *VoipUserProfile `protobuf:"bytes,2,opt,name=voipUserProfile,proto3" json:"voipUserProfile,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
-	XXX_unrecognized     []byte           `json:"-"`
-	XXX_sizecache        int32            `json:"-"`
+	Key             string           `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
+	VoipUserProfile *VoipUserProfile `protobuf:"bytes,2,opt,name=voipUserProfile,proto3" json:"voipUserProfile,omitempty"`
+	unknownFields   protoimpl.UnknownFields
+	sizeCache       protoimpl.SizeCache
 }
 
-func (m *VoipUserProfileRequest) Reset()         { *m = VoipUserProfileRequest{} }
-func (m *VoipUserProfileRequest) String() string { return proto.CompactTextString(m) }
-func (*VoipUserProfileRequest) ProtoMessage()    {}
+func (x *VoipUserProfileRequest) Reset() {
+	*x = VoipUserProfileRequest{}
+	mi := &file_voltha_protos_voip_user_profile_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VoipUserProfileRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VoipUserProfileRequest) ProtoMessage() {}
+
+func (x *VoipUserProfileRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_voip_user_profile_proto_msgTypes[0]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VoipUserProfileRequest.ProtoReflect.Descriptor instead.
 func (*VoipUserProfileRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_0ecf0ef501fce1bc, []int{0}
+	return file_voltha_protos_voip_user_profile_proto_rawDescGZIP(), []int{0}
 }
 
-func (m *VoipUserProfileRequest) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_VoipUserProfileRequest.Unmarshal(m, b)
-}
-func (m *VoipUserProfileRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_VoipUserProfileRequest.Marshal(b, m, deterministic)
-}
-func (m *VoipUserProfileRequest) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_VoipUserProfileRequest.Merge(m, src)
-}
-func (m *VoipUserProfileRequest) XXX_Size() int {
-	return xxx_messageInfo_VoipUserProfileRequest.Size(m)
-}
-func (m *VoipUserProfileRequest) XXX_DiscardUnknown() {
-	xxx_messageInfo_VoipUserProfileRequest.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_VoipUserProfileRequest proto.InternalMessageInfo
-
-func (m *VoipUserProfileRequest) GetKey() string {
-	if m != nil {
-		return m.Key
+func (x *VoipUserProfileRequest) GetKey() string {
+	if x != nil {
+		return x.Key
 	}
 	return ""
 }
 
-func (m *VoipUserProfileRequest) GetVoipUserProfile() *VoipUserProfile {
-	if m != nil {
-		return m.VoipUserProfile
+func (x *VoipUserProfileRequest) GetVoipUserProfile() *VoipUserProfile {
+	if x != nil {
+		return x.VoipUserProfile
 	}
 	return nil
 }
 
 type VoipUserProfile struct {
-	VoipSystemProfileKey string   `protobuf:"bytes,1,opt,name=voipSystemProfileKey,proto3" json:"voipSystemProfileKey,omitempty"`
-	Username             string   `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"`
-	Password             string   `protobuf:"bytes,3,opt,name=password,proto3" json:"password,omitempty"`
-	Domain               string   `protobuf:"bytes,4,opt,name=domain,proto3" json:"domain,omitempty"`
-	Proxy                string   `protobuf:"bytes,5,opt,name=proxy,proto3" json:"proxy,omitempty"`
-	Port                 uint32   `protobuf:"varint,6,opt,name=port,proto3" json:"port,omitempty"`
-	SipDisplayName       string   `protobuf:"bytes,7,opt,name=sipDisplayName,proto3" json:"sipDisplayName,omitempty"`
-	Realm                string   `protobuf:"bytes,8,opt,name=realm,proto3" json:"realm,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state                protoimpl.MessageState `protogen:"open.v1"`
+	VoipSystemProfileKey string                 `protobuf:"bytes,1,opt,name=voipSystemProfileKey,proto3" json:"voipSystemProfileKey,omitempty"`
+	Username             string                 `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"`
+	Password             string                 `protobuf:"bytes,3,opt,name=password,proto3" json:"password,omitempty"`
+	Domain               string                 `protobuf:"bytes,4,opt,name=domain,proto3" json:"domain,omitempty"`
+	Proxy                string                 `protobuf:"bytes,5,opt,name=proxy,proto3" json:"proxy,omitempty"`
+	Port                 uint32                 `protobuf:"varint,6,opt,name=port,proto3" json:"port,omitempty"`
+	SipDisplayName       string                 `protobuf:"bytes,7,opt,name=sipDisplayName,proto3" json:"sipDisplayName,omitempty"`
+	Realm                string                 `protobuf:"bytes,8,opt,name=realm,proto3" json:"realm,omitempty"`
+	unknownFields        protoimpl.UnknownFields
+	sizeCache            protoimpl.SizeCache
 }
 
-func (m *VoipUserProfile) Reset()         { *m = VoipUserProfile{} }
-func (m *VoipUserProfile) String() string { return proto.CompactTextString(m) }
-func (*VoipUserProfile) ProtoMessage()    {}
+func (x *VoipUserProfile) Reset() {
+	*x = VoipUserProfile{}
+	mi := &file_voltha_protos_voip_user_profile_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *VoipUserProfile) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VoipUserProfile) ProtoMessage() {}
+
+func (x *VoipUserProfile) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_voip_user_profile_proto_msgTypes[1]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use VoipUserProfile.ProtoReflect.Descriptor instead.
 func (*VoipUserProfile) Descriptor() ([]byte, []int) {
-	return fileDescriptor_0ecf0ef501fce1bc, []int{1}
+	return file_voltha_protos_voip_user_profile_proto_rawDescGZIP(), []int{1}
 }
 
-func (m *VoipUserProfile) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_VoipUserProfile.Unmarshal(m, b)
-}
-func (m *VoipUserProfile) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_VoipUserProfile.Marshal(b, m, deterministic)
-}
-func (m *VoipUserProfile) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_VoipUserProfile.Merge(m, src)
-}
-func (m *VoipUserProfile) XXX_Size() int {
-	return xxx_messageInfo_VoipUserProfile.Size(m)
-}
-func (m *VoipUserProfile) XXX_DiscardUnknown() {
-	xxx_messageInfo_VoipUserProfile.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_VoipUserProfile proto.InternalMessageInfo
-
-func (m *VoipUserProfile) GetVoipSystemProfileKey() string {
-	if m != nil {
-		return m.VoipSystemProfileKey
+func (x *VoipUserProfile) GetVoipSystemProfileKey() string {
+	if x != nil {
+		return x.VoipSystemProfileKey
 	}
 	return ""
 }
 
-func (m *VoipUserProfile) GetUsername() string {
-	if m != nil {
-		return m.Username
+func (x *VoipUserProfile) GetUsername() string {
+	if x != nil {
+		return x.Username
 	}
 	return ""
 }
 
-func (m *VoipUserProfile) GetPassword() string {
-	if m != nil {
-		return m.Password
+func (x *VoipUserProfile) GetPassword() string {
+	if x != nil {
+		return x.Password
 	}
 	return ""
 }
 
-func (m *VoipUserProfile) GetDomain() string {
-	if m != nil {
-		return m.Domain
+func (x *VoipUserProfile) GetDomain() string {
+	if x != nil {
+		return x.Domain
 	}
 	return ""
 }
 
-func (m *VoipUserProfile) GetProxy() string {
-	if m != nil {
-		return m.Proxy
+func (x *VoipUserProfile) GetProxy() string {
+	if x != nil {
+		return x.Proxy
 	}
 	return ""
 }
 
-func (m *VoipUserProfile) GetPort() uint32 {
-	if m != nil {
-		return m.Port
+func (x *VoipUserProfile) GetPort() uint32 {
+	if x != nil {
+		return x.Port
 	}
 	return 0
 }
 
-func (m *VoipUserProfile) GetSipDisplayName() string {
-	if m != nil {
-		return m.SipDisplayName
+func (x *VoipUserProfile) GetSipDisplayName() string {
+	if x != nil {
+		return x.SipDisplayName
 	}
 	return ""
 }
 
-func (m *VoipUserProfile) GetRealm() string {
-	if m != nil {
-		return m.Realm
+func (x *VoipUserProfile) GetRealm() string {
+	if x != nil {
+		return x.Realm
 	}
 	return ""
 }
 
-func init() {
-	proto.RegisterType((*VoipUserProfileRequest)(nil), "voip_user_profile.VoipUserProfileRequest")
-	proto.RegisterType((*VoipUserProfile)(nil), "voip_user_profile.VoipUserProfile")
+var File_voltha_protos_voip_user_profile_proto protoreflect.FileDescriptor
+
+const file_voltha_protos_voip_user_profile_proto_rawDesc = "" +
+	"\n" +
+	"%voltha_protos/voip_user_profile.proto\x12\x11voip_user_profile\x1a\x1cgoogle/api/annotations.proto\"x\n" +
+	"\x16VoipUserProfileRequest\x12\x10\n" +
+	"\x03key\x18\x01 \x01(\tR\x03key\x12L\n" +
+	"\x0fvoipUserProfile\x18\x02 \x01(\v2\".voip_user_profile.VoipUserProfileR\x0fvoipUserProfile\"\xfd\x01\n" +
+	"\x0fVoipUserProfile\x122\n" +
+	"\x14voipSystemProfileKey\x18\x01 \x01(\tR\x14voipSystemProfileKey\x12\x1a\n" +
+	"\busername\x18\x02 \x01(\tR\busername\x12\x1a\n" +
+	"\bpassword\x18\x03 \x01(\tR\bpassword\x12\x16\n" +
+	"\x06domain\x18\x04 \x01(\tR\x06domain\x12\x14\n" +
+	"\x05proxy\x18\x05 \x01(\tR\x05proxy\x12\x12\n" +
+	"\x04port\x18\x06 \x01(\rR\x04port\x12&\n" +
+	"\x0esipDisplayName\x18\a \x01(\tR\x0esipDisplayName\x12\x14\n" +
+	"\x05realm\x18\b \x01(\tR\x05realmBb\n" +
+	"%org.opencord.voltha.voip_user_profileZ9github.com/opencord/voltha-protos/v5/go/voip_user_profileb\x06proto3"
+
+var (
+	file_voltha_protos_voip_user_profile_proto_rawDescOnce sync.Once
+	file_voltha_protos_voip_user_profile_proto_rawDescData []byte
+)
+
+func file_voltha_protos_voip_user_profile_proto_rawDescGZIP() []byte {
+	file_voltha_protos_voip_user_profile_proto_rawDescOnce.Do(func() {
+		file_voltha_protos_voip_user_profile_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_voltha_protos_voip_user_profile_proto_rawDesc), len(file_voltha_protos_voip_user_profile_proto_rawDesc)))
+	})
+	return file_voltha_protos_voip_user_profile_proto_rawDescData
 }
 
-func init() {
-	proto.RegisterFile("voltha_protos/voip_user_profile.proto", fileDescriptor_0ecf0ef501fce1bc)
+var file_voltha_protos_voip_user_profile_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
+var file_voltha_protos_voip_user_profile_proto_goTypes = []any{
+	(*VoipUserProfileRequest)(nil), // 0: voip_user_profile.VoipUserProfileRequest
+	(*VoipUserProfile)(nil),        // 1: voip_user_profile.VoipUserProfile
+}
+var file_voltha_protos_voip_user_profile_proto_depIdxs = []int32{
+	1, // 0: voip_user_profile.VoipUserProfileRequest.voipUserProfile:type_name -> voip_user_profile.VoipUserProfile
+	1, // [1:1] is the sub-list for method output_type
+	1, // [1:1] is the sub-list for method input_type
+	1, // [1:1] is the sub-list for extension type_name
+	1, // [1:1] is the sub-list for extension extendee
+	0, // [0:1] is the sub-list for field type_name
 }
 
-var fileDescriptor_0ecf0ef501fce1bc = []byte{
-	// 322 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x52, 0xcb, 0x4b, 0x33, 0x31,
-	0x10, 0x67, 0xbf, 0x3e, 0xbe, 0x76, 0x44, 0xab, 0xa1, 0x94, 0x50, 0x3c, 0x94, 0x42, 0xa5, 0x17,
-	0x77, 0xa1, 0xe2, 0xc1, 0xab, 0x78, 0x53, 0x44, 0x56, 0xf4, 0xe0, 0xa5, 0xa4, 0x6d, 0xdc, 0x06,
-	0x77, 0x77, 0x62, 0x92, 0xd6, 0xee, 0x1f, 0x2f, 0x48, 0x92, 0x6e, 0xc1, 0x5d, 0x6f, 0xf3, 0x7b,
-	0xcd, 0x0c, 0xc9, 0xc0, 0x64, 0x8b, 0xa9, 0x59, 0xb3, 0xb9, 0x54, 0x68, 0x50, 0x47, 0x5b, 0x14,
-	0x72, 0xbe, 0xd1, 0x5c, 0x59, 0xe2, 0x5d, 0xa4, 0x3c, 0x74, 0x02, 0x39, 0xab, 0x09, 0xc3, 0xf3,
-	0x04, 0x31, 0x49, 0x79, 0xc4, 0xa4, 0x88, 0x58, 0x9e, 0xa3, 0x61, 0x46, 0x60, 0xae, 0x7d, 0x60,
-	0xbc, 0x83, 0xc1, 0x2b, 0x0a, 0xf9, 0xa2, 0xb9, 0x7a, 0xf2, 0x81, 0x98, 0x7f, 0x6e, 0xb8, 0x36,
-	0xe4, 0x14, 0x1a, 0x1f, 0xbc, 0xa0, 0xc1, 0x28, 0x98, 0x76, 0x63, 0x5b, 0x92, 0x07, 0xe8, 0x6d,
-	0x7f, 0x7b, 0xe9, 0xbf, 0x51, 0x30, 0x3d, 0x9a, 0x8d, 0xc3, 0xfa, 0x3e, 0xd5, 0xae, 0xd5, 0xe8,
-	0xf8, 0x3b, 0x80, 0x5e, 0xc5, 0x44, 0x66, 0xd0, 0xb7, 0xb6, 0xe7, 0x42, 0x1b, 0x9e, 0xed, 0xc9,
-	0xfb, 0xc3, 0x12, 0x7f, 0x6a, 0x64, 0x08, 0x1d, 0x3b, 0x38, 0x67, 0x99, 0x5f, 0xa7, 0x1b, 0x1f,
-	0xb0, 0xd5, 0x24, 0xd3, 0xfa, 0x0b, 0xd5, 0x8a, 0x36, 0xbc, 0x56, 0x62, 0x32, 0x80, 0xf6, 0x0a,
-	0x33, 0x26, 0x72, 0xda, 0x74, 0xca, 0x1e, 0x91, 0x3e, 0xb4, 0xa4, 0xc2, 0x5d, 0x41, 0x5b, 0x8e,
-	0xf6, 0x80, 0x10, 0x68, 0x4a, 0x54, 0x86, 0xb6, 0x47, 0xc1, 0xf4, 0x38, 0x76, 0x35, 0xb9, 0x80,
-	0x13, 0x2d, 0xe4, 0x9d, 0xd0, 0x32, 0x65, 0xc5, 0xa3, 0x9d, 0xff, 0xdf, 0x45, 0x2a, 0xac, 0xed,
-	0xa8, 0x38, 0x4b, 0x33, 0xda, 0xf1, 0x1d, 0x1d, 0xb8, 0x5d, 0xc0, 0x04, 0x55, 0x12, 0xa2, 0xe4,
-	0xf9, 0x12, 0xd5, 0x2a, 0xf4, 0x1f, 0x5c, 0x7f, 0xc9, 0xb7, 0x9b, 0x44, 0x98, 0xf5, 0x66, 0x11,
-	0x2e, 0x31, 0x8b, 0x4a, 0x77, 0xe4, 0xdd, 0x97, 0xe5, 0x39, 0x5c, 0x47, 0x09, 0xd6, 0x8f, 0x62,
-	0xd1, 0x76, 0xfa, 0xd5, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x84, 0x23, 0x54, 0x5a, 0x3e, 0x02,
-	0x00, 0x00,
+func init() { file_voltha_protos_voip_user_profile_proto_init() }
+func file_voltha_protos_voip_user_profile_proto_init() {
+	if File_voltha_protos_voip_user_profile_proto != nil {
+		return
+	}
+	type x struct{}
+	out := protoimpl.TypeBuilder{
+		File: protoimpl.DescBuilder{
+			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+			RawDescriptor: unsafe.Slice(unsafe.StringData(file_voltha_protos_voip_user_profile_proto_rawDesc), len(file_voltha_protos_voip_user_profile_proto_rawDesc)),
+			NumEnums:      0,
+			NumMessages:   2,
+			NumExtensions: 0,
+			NumServices:   0,
+		},
+		GoTypes:           file_voltha_protos_voip_user_profile_proto_goTypes,
+		DependencyIndexes: file_voltha_protos_voip_user_profile_proto_depIdxs,
+		MessageInfos:      file_voltha_protos_voip_user_profile_proto_msgTypes,
+	}.Build()
+	File_voltha_protos_voip_user_profile_proto = out.File
+	file_voltha_protos_voip_user_profile_proto_goTypes = nil
+	file_voltha_protos_voip_user_profile_proto_depIdxs = nil
 }
diff --git a/go/voltha/adapter.pb.go b/go/voltha/adapter.pb.go
index 04a40f2..e8ea3df 100644
--- a/go/voltha/adapter.pb.go
+++ b/go/voltha/adapter.pb.go
@@ -1,68 +1,75 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// 	protoc-gen-go v1.36.11
+// 	protoc        v4.25.8
 // source: voltha_protos/adapter.proto
 
 package voltha
 
 import (
-	fmt "fmt"
-	proto "github.com/golang/protobuf/proto"
-	any "github.com/golang/protobuf/ptypes/any"
-	math "math"
+	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+	anypb "google.golang.org/protobuf/types/known/anypb"
+	reflect "reflect"
+	sync "sync"
+	unsafe "unsafe"
 )
 
-// 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
+const (
+	// Verify that this generated code is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+	// Verify that runtime/protoimpl is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
 
 type AdapterConfig struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
 	// Custom (vendor-specific) configuration attributes
-	AdditionalConfig     *any.Any `protobuf:"bytes,64,opt,name=additional_config,json=additionalConfig,proto3" json:"additional_config,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	AdditionalConfig *anypb.Any `protobuf:"bytes,64,opt,name=additional_config,json=additionalConfig,proto3" json:"additional_config,omitempty"`
+	unknownFields    protoimpl.UnknownFields
+	sizeCache        protoimpl.SizeCache
 }
 
-func (m *AdapterConfig) Reset()         { *m = AdapterConfig{} }
-func (m *AdapterConfig) String() string { return proto.CompactTextString(m) }
-func (*AdapterConfig) ProtoMessage()    {}
+func (x *AdapterConfig) Reset() {
+	*x = AdapterConfig{}
+	mi := &file_voltha_protos_adapter_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *AdapterConfig) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AdapterConfig) ProtoMessage() {}
+
+func (x *AdapterConfig) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_adapter_proto_msgTypes[0]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use AdapterConfig.ProtoReflect.Descriptor instead.
 func (*AdapterConfig) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7e998ce153307274, []int{0}
+	return file_voltha_protos_adapter_proto_rawDescGZIP(), []int{0}
 }
 
-func (m *AdapterConfig) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_AdapterConfig.Unmarshal(m, b)
-}
-func (m *AdapterConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_AdapterConfig.Marshal(b, m, deterministic)
-}
-func (m *AdapterConfig) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_AdapterConfig.Merge(m, src)
-}
-func (m *AdapterConfig) XXX_Size() int {
-	return xxx_messageInfo_AdapterConfig.Size(m)
-}
-func (m *AdapterConfig) XXX_DiscardUnknown() {
-	xxx_messageInfo_AdapterConfig.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_AdapterConfig proto.InternalMessageInfo
-
-func (m *AdapterConfig) GetAdditionalConfig() *any.Any {
-	if m != nil {
-		return m.AdditionalConfig
+func (x *AdapterConfig) GetAdditionalConfig() *anypb.Any {
+	if x != nil {
+		return x.AdditionalConfig
 	}
 	return nil
 }
 
 // Adapter (software plugin)
 type Adapter struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
 	// the adapter ID has to be unique,
 	// it will be generated as Type + CurrentReplica
 	Id      string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
@@ -71,8 +78,8 @@
 	// Adapter configuration
 	Config *AdapterConfig `protobuf:"bytes,16,opt,name=config,proto3" json:"config,omitempty"`
 	// Custom descriptors and custom configuration
-	AdditionalDescription *any.Any `protobuf:"bytes,64,opt,name=additional_description,json=additionalDescription,proto3" json:"additional_description,omitempty"`
-	LogicalDeviceIds      []string `protobuf:"bytes,4,rep,name=logical_device_ids,json=logicalDeviceIds,proto3" json:"logical_device_ids,omitempty"`
+	AdditionalDescription *anypb.Any `protobuf:"bytes,64,opt,name=additional_description,json=additionalDescription,proto3" json:"additional_description,omitempty"`
+	LogicalDeviceIds      []string   `protobuf:"bytes,4,rep,name=logical_device_ids,json=logicalDeviceIds,proto3" json:"logical_device_ids,omitempty"` // Logical devices "owned"
 	// timestamp when the adapter last sent a message to the core
 	LastCommunication int64  `protobuf:"varint,5,opt,name=last_communication,json=lastCommunication,proto3" json:"last_communication,omitempty"`
 	CurrentReplica    int32  `protobuf:"varint,6,opt,name=currentReplica,proto3" json:"currentReplica,omitempty"`
@@ -80,187 +87,236 @@
 	Endpoint          string `protobuf:"bytes,8,opt,name=endpoint,proto3" json:"endpoint,omitempty"`
 	// all replicas of the same adapter will have the same type
 	// it is used to associate a device to an adapter
-	Type                 string   `protobuf:"bytes,9,opt,name=type,proto3" json:"type,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	Type          string `protobuf:"bytes,9,opt,name=type,proto3" json:"type,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *Adapter) Reset()         { *m = Adapter{} }
-func (m *Adapter) String() string { return proto.CompactTextString(m) }
-func (*Adapter) ProtoMessage()    {}
+func (x *Adapter) Reset() {
+	*x = Adapter{}
+	mi := &file_voltha_protos_adapter_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *Adapter) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Adapter) ProtoMessage() {}
+
+func (x *Adapter) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_adapter_proto_msgTypes[1]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use Adapter.ProtoReflect.Descriptor instead.
 func (*Adapter) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7e998ce153307274, []int{1}
+	return file_voltha_protos_adapter_proto_rawDescGZIP(), []int{1}
 }
 
-func (m *Adapter) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_Adapter.Unmarshal(m, b)
-}
-func (m *Adapter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_Adapter.Marshal(b, m, deterministic)
-}
-func (m *Adapter) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Adapter.Merge(m, src)
-}
-func (m *Adapter) XXX_Size() int {
-	return xxx_messageInfo_Adapter.Size(m)
-}
-func (m *Adapter) XXX_DiscardUnknown() {
-	xxx_messageInfo_Adapter.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_Adapter proto.InternalMessageInfo
-
-func (m *Adapter) GetId() string {
-	if m != nil {
-		return m.Id
+func (x *Adapter) GetId() string {
+	if x != nil {
+		return x.Id
 	}
 	return ""
 }
 
-func (m *Adapter) GetVendor() string {
-	if m != nil {
-		return m.Vendor
+func (x *Adapter) GetVendor() string {
+	if x != nil {
+		return x.Vendor
 	}
 	return ""
 }
 
-func (m *Adapter) GetVersion() string {
-	if m != nil {
-		return m.Version
+func (x *Adapter) GetVersion() string {
+	if x != nil {
+		return x.Version
 	}
 	return ""
 }
 
-func (m *Adapter) GetConfig() *AdapterConfig {
-	if m != nil {
-		return m.Config
+func (x *Adapter) GetConfig() *AdapterConfig {
+	if x != nil {
+		return x.Config
 	}
 	return nil
 }
 
-func (m *Adapter) GetAdditionalDescription() *any.Any {
-	if m != nil {
-		return m.AdditionalDescription
+func (x *Adapter) GetAdditionalDescription() *anypb.Any {
+	if x != nil {
+		return x.AdditionalDescription
 	}
 	return nil
 }
 
-func (m *Adapter) GetLogicalDeviceIds() []string {
-	if m != nil {
-		return m.LogicalDeviceIds
+func (x *Adapter) GetLogicalDeviceIds() []string {
+	if x != nil {
+		return x.LogicalDeviceIds
 	}
 	return nil
 }
 
-func (m *Adapter) GetLastCommunication() int64 {
-	if m != nil {
-		return m.LastCommunication
+func (x *Adapter) GetLastCommunication() int64 {
+	if x != nil {
+		return x.LastCommunication
 	}
 	return 0
 }
 
-func (m *Adapter) GetCurrentReplica() int32 {
-	if m != nil {
-		return m.CurrentReplica
+func (x *Adapter) GetCurrentReplica() int32 {
+	if x != nil {
+		return x.CurrentReplica
 	}
 	return 0
 }
 
-func (m *Adapter) GetTotalReplicas() int32 {
-	if m != nil {
-		return m.TotalReplicas
+func (x *Adapter) GetTotalReplicas() int32 {
+	if x != nil {
+		return x.TotalReplicas
 	}
 	return 0
 }
 
-func (m *Adapter) GetEndpoint() string {
-	if m != nil {
-		return m.Endpoint
+func (x *Adapter) GetEndpoint() string {
+	if x != nil {
+		return x.Endpoint
 	}
 	return ""
 }
 
-func (m *Adapter) GetType() string {
-	if m != nil {
-		return m.Type
+func (x *Adapter) GetType() string {
+	if x != nil {
+		return x.Type
 	}
 	return ""
 }
 
 type Adapters struct {
-	Items                []*Adapter `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
-	XXX_unrecognized     []byte     `json:"-"`
-	XXX_sizecache        int32      `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Items         []*Adapter             `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *Adapters) Reset()         { *m = Adapters{} }
-func (m *Adapters) String() string { return proto.CompactTextString(m) }
-func (*Adapters) ProtoMessage()    {}
+func (x *Adapters) Reset() {
+	*x = Adapters{}
+	mi := &file_voltha_protos_adapter_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *Adapters) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Adapters) ProtoMessage() {}
+
+func (x *Adapters) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_adapter_proto_msgTypes[2]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use Adapters.ProtoReflect.Descriptor instead.
 func (*Adapters) Descriptor() ([]byte, []int) {
-	return fileDescriptor_7e998ce153307274, []int{2}
+	return file_voltha_protos_adapter_proto_rawDescGZIP(), []int{2}
 }
 
-func (m *Adapters) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_Adapters.Unmarshal(m, b)
-}
-func (m *Adapters) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_Adapters.Marshal(b, m, deterministic)
-}
-func (m *Adapters) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Adapters.Merge(m, src)
-}
-func (m *Adapters) XXX_Size() int {
-	return xxx_messageInfo_Adapters.Size(m)
-}
-func (m *Adapters) XXX_DiscardUnknown() {
-	xxx_messageInfo_Adapters.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_Adapters proto.InternalMessageInfo
-
-func (m *Adapters) GetItems() []*Adapter {
-	if m != nil {
-		return m.Items
+func (x *Adapters) GetItems() []*Adapter {
+	if x != nil {
+		return x.Items
 	}
 	return nil
 }
 
-func init() {
-	proto.RegisterType((*AdapterConfig)(nil), "adapter.AdapterConfig")
-	proto.RegisterType((*Adapter)(nil), "adapter.Adapter")
-	proto.RegisterType((*Adapters)(nil), "adapter.Adapters")
+var File_voltha_protos_adapter_proto protoreflect.FileDescriptor
+
+const file_voltha_protos_adapter_proto_rawDesc = "" +
+	"\n" +
+	"\x1bvoltha_protos/adapter.proto\x12\aadapter\x1a\x19google/protobuf/any.proto\"R\n" +
+	"\rAdapterConfig\x12A\n" +
+	"\x11additional_config\x18@ \x01(\v2\x14.google.protobuf.AnyR\x10additionalConfig\"\xa3\x03\n" +
+	"\aAdapter\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\tR\x02id\x12\x16\n" +
+	"\x06vendor\x18\x02 \x01(\tR\x06vendor\x12\x18\n" +
+	"\aversion\x18\x03 \x01(\tR\aversion\x12.\n" +
+	"\x06config\x18\x10 \x01(\v2\x16.adapter.AdapterConfigR\x06config\x12K\n" +
+	"\x16additional_description\x18@ \x01(\v2\x14.google.protobuf.AnyR\x15additionalDescription\x12,\n" +
+	"\x12logical_device_ids\x18\x04 \x03(\tR\x10logicalDeviceIds\x12-\n" +
+	"\x12last_communication\x18\x05 \x01(\x03R\x11lastCommunication\x12&\n" +
+	"\x0ecurrentReplica\x18\x06 \x01(\x05R\x0ecurrentReplica\x12$\n" +
+	"\rtotalReplicas\x18\a \x01(\x05R\rtotalReplicas\x12\x1a\n" +
+	"\bendpoint\x18\b \x01(\tR\bendpoint\x12\x12\n" +
+	"\x04type\x18\t \x01(\tR\x04type\"2\n" +
+	"\bAdapters\x12&\n" +
+	"\x05items\x18\x01 \x03(\v2\x10.adapter.AdapterR\x05itemsB\\\n" +
+	"\x1borg.opencord.voltha.adapterB\rVolthaAdapterZ.github.com/opencord/voltha-protos/v5/go/volthab\x06proto3"
+
+var (
+	file_voltha_protos_adapter_proto_rawDescOnce sync.Once
+	file_voltha_protos_adapter_proto_rawDescData []byte
+)
+
+func file_voltha_protos_adapter_proto_rawDescGZIP() []byte {
+	file_voltha_protos_adapter_proto_rawDescOnce.Do(func() {
+		file_voltha_protos_adapter_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_voltha_protos_adapter_proto_rawDesc), len(file_voltha_protos_adapter_proto_rawDesc)))
+	})
+	return file_voltha_protos_adapter_proto_rawDescData
 }
 
-func init() { proto.RegisterFile("voltha_protos/adapter.proto", fileDescriptor_7e998ce153307274) }
+var file_voltha_protos_adapter_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
+var file_voltha_protos_adapter_proto_goTypes = []any{
+	(*AdapterConfig)(nil), // 0: adapter.AdapterConfig
+	(*Adapter)(nil),       // 1: adapter.Adapter
+	(*Adapters)(nil),      // 2: adapter.Adapters
+	(*anypb.Any)(nil),     // 3: google.protobuf.Any
+}
+var file_voltha_protos_adapter_proto_depIdxs = []int32{
+	3, // 0: adapter.AdapterConfig.additional_config:type_name -> google.protobuf.Any
+	0, // 1: adapter.Adapter.config:type_name -> adapter.AdapterConfig
+	3, // 2: adapter.Adapter.additional_description:type_name -> google.protobuf.Any
+	1, // 3: adapter.Adapters.items:type_name -> adapter.Adapter
+	4, // [4:4] is the sub-list for method output_type
+	4, // [4:4] is the sub-list for method input_type
+	4, // [4:4] is the sub-list for extension type_name
+	4, // [4:4] is the sub-list for extension extendee
+	0, // [0:4] is the sub-list for field type_name
+}
 
-var fileDescriptor_7e998ce153307274 = []byte{
-	// 413 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x52, 0x4f, 0x6b, 0xdb, 0x30,
-	0x14, 0xc7, 0x49, 0xf3, 0xef, 0x95, 0x94, 0x54, 0x6c, 0x41, 0x6b, 0x2f, 0x26, 0x8c, 0xe2, 0xc3,
-	0x2a, 0x43, 0xc6, 0xee, 0x4b, 0xdb, 0xcb, 0xd8, 0x4d, 0x87, 0x1d, 0xc6, 0x20, 0x28, 0x92, 0xea,
-	0x0a, 0x1c, 0x3d, 0x23, 0x29, 0x86, 0x7c, 0x9e, 0x7d, 0xd1, 0x51, 0x59, 0x5e, 0xda, 0x1e, 0x7a,
-	0xf3, 0xef, 0xaf, 0xdf, 0x7b, 0x08, 0xae, 0x5b, 0xac, 0xc3, 0x93, 0xd8, 0x36, 0x0e, 0x03, 0xfa,
-	0x52, 0x28, 0xd1, 0x04, 0xed, 0x58, 0x84, 0x64, 0x92, 0xe0, 0xd5, 0xa7, 0x0a, 0xb1, 0xaa, 0x75,
-	0x19, 0xe9, 0xdd, 0xe1, 0xb1, 0x14, 0xf6, 0xd8, 0x79, 0x56, 0x1c, 0xe6, 0x9b, 0xce, 0x75, 0x8f,
-	0xf6, 0xd1, 0x54, 0x64, 0x03, 0x97, 0x42, 0x29, 0x13, 0x0c, 0x5a, 0x51, 0x6f, 0x65, 0x24, 0xe9,
-	0xf7, 0x3c, 0x2b, 0xce, 0xd7, 0x1f, 0x58, 0xd7, 0xc3, 0xfa, 0x1e, 0xb6, 0xb1, 0x47, 0xbe, 0x38,
-	0xd9, 0xbb, 0x8a, 0xd5, 0xdf, 0x21, 0x4c, 0x52, 0x29, 0xb9, 0x80, 0x81, 0x51, 0x34, 0xcb, 0xb3,
-	0x62, 0xc6, 0x07, 0x46, 0x91, 0x25, 0x8c, 0x5b, 0x6d, 0x15, 0x3a, 0x3a, 0x88, 0x5c, 0x42, 0x84,
-	0xc2, 0xa4, 0xd5, 0xce, 0x1b, 0xb4, 0x74, 0x18, 0x85, 0x1e, 0x12, 0x06, 0xe3, 0x34, 0xc5, 0x22,
-	0x4e, 0xb1, 0x64, 0xfd, 0x96, 0xaf, 0x06, 0xe7, 0xc9, 0x45, 0x7e, 0xc2, 0xf2, 0xc5, 0x02, 0x4a,
-	0x7b, 0xe9, 0x4c, 0xf3, 0x8c, 0xde, 0xdd, 0xe2, 0xe3, 0x29, 0xf3, 0x70, 0x8a, 0x90, 0x2f, 0x40,
-	0x6a, 0xac, 0x8c, 0x8c, 0x4d, 0xad, 0x91, 0x7a, 0x6b, 0x94, 0xa7, 0x67, 0xf9, 0xb0, 0x98, 0xf1,
-	0x45, 0x52, 0x1e, 0xa2, 0xf0, 0x43, 0x79, 0x72, 0x0b, 0xa4, 0x16, 0x3e, 0x6c, 0x25, 0xee, 0xf7,
-	0x07, 0x6b, 0xa4, 0x88, 0xbf, 0x1d, 0xe5, 0x59, 0x31, 0xe4, 0x97, 0xcf, 0xca, 0xfd, 0x4b, 0x81,
-	0xdc, 0xc0, 0x85, 0x3c, 0x38, 0xa7, 0x6d, 0xe0, 0xba, 0xa9, 0x8d, 0x14, 0x74, 0x9c, 0x67, 0xc5,
-	0x88, 0xbf, 0x61, 0xc9, 0x67, 0x98, 0x07, 0x0c, 0xa2, 0x4e, 0xd8, 0xd3, 0x49, 0xb4, 0xbd, 0x26,
-	0xc9, 0x15, 0x4c, 0xb5, 0x55, 0x0d, 0x1a, 0x1b, 0xe8, 0x34, 0x9e, 0xf0, 0x3f, 0x26, 0x04, 0xce,
-	0xc2, 0xb1, 0xd1, 0x74, 0x16, 0xf9, 0xf8, 0xbd, 0x5a, 0xc3, 0x34, 0x1d, 0xd0, 0x93, 0x1b, 0x18,
-	0x99, 0xa0, 0xf7, 0x9e, 0x66, 0xf9, 0xb0, 0x38, 0x5f, 0x2f, 0xde, 0x9e, 0x98, 0x77, 0xf2, 0xdd,
-	0x1f, 0xb8, 0x46, 0x57, 0x31, 0x6c, 0xb4, 0x95, 0xe8, 0x14, 0xeb, 0x5e, 0x5f, 0xef, 0xbe, 0x9b,
-	0xff, 0x8a, 0x38, 0x85, 0x7e, 0xb3, 0xca, 0x84, 0xa7, 0xc3, 0x8e, 0x49, 0xdc, 0x97, 0x7d, 0xa4,
-	0xec, 0x22, 0xb7, 0xe9, 0xc1, 0xb6, 0xdf, 0xca, 0x0a, 0x13, 0xb7, 0x1b, 0x47, 0xf2, 0xeb, 0xbf,
-	0x00, 0x00, 0x00, 0xff, 0xff, 0x41, 0x02, 0xed, 0xf9, 0xd5, 0x02, 0x00, 0x00,
+func init() { file_voltha_protos_adapter_proto_init() }
+func file_voltha_protos_adapter_proto_init() {
+	if File_voltha_protos_adapter_proto != nil {
+		return
+	}
+	type x struct{}
+	out := protoimpl.TypeBuilder{
+		File: protoimpl.DescBuilder{
+			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+			RawDescriptor: unsafe.Slice(unsafe.StringData(file_voltha_protos_adapter_proto_rawDesc), len(file_voltha_protos_adapter_proto_rawDesc)),
+			NumEnums:      0,
+			NumMessages:   3,
+			NumExtensions: 0,
+			NumServices:   0,
+		},
+		GoTypes:           file_voltha_protos_adapter_proto_goTypes,
+		DependencyIndexes: file_voltha_protos_adapter_proto_depIdxs,
+		MessageInfos:      file_voltha_protos_adapter_proto_msgTypes,
+	}.Build()
+	File_voltha_protos_adapter_proto = out.File
+	file_voltha_protos_adapter_proto_goTypes = nil
+	file_voltha_protos_adapter_proto_depIdxs = nil
 }
diff --git a/go/voltha/device.pb.go b/go/voltha/device.pb.go
index 81c3b36..5e46934 100644
--- a/go/voltha/device.pb.go
+++ b/go/voltha/device.pb.go
@@ -1,27 +1,28 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// 	protoc-gen-go v1.36.11
+// 	protoc        v4.25.8
 // source: voltha_protos/device.proto
 
 package voltha
 
 import (
-	fmt "fmt"
-	proto "github.com/golang/protobuf/proto"
-	any "github.com/golang/protobuf/ptypes/any"
 	common "github.com/opencord/voltha-protos/v5/go/common"
 	openflow_13 "github.com/opencord/voltha-protos/v5/go/openflow_13"
-	math "math"
+	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+	anypb "google.golang.org/protobuf/types/known/anypb"
+	reflect "reflect"
+	sync "sync"
+	unsafe "unsafe"
 )
 
-// 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
+const (
+	// Verify that this generated code is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+	// Verify that runtime/protoimpl is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
 
 type PmConfig_PmType int32
 
@@ -32,26 +33,47 @@
 	PmConfig_CONTEXT PmConfig_PmType = 3
 )
 
-var PmConfig_PmType_name = map[int32]string{
-	0: "COUNTER",
-	1: "GAUGE",
-	2: "STATE",
-	3: "CONTEXT",
-}
+// Enum value maps for PmConfig_PmType.
+var (
+	PmConfig_PmType_name = map[int32]string{
+		0: "COUNTER",
+		1: "GAUGE",
+		2: "STATE",
+		3: "CONTEXT",
+	}
+	PmConfig_PmType_value = map[string]int32{
+		"COUNTER": 0,
+		"GAUGE":   1,
+		"STATE":   2,
+		"CONTEXT": 3,
+	}
+)
 
-var PmConfig_PmType_value = map[string]int32{
-	"COUNTER": 0,
-	"GAUGE":   1,
-	"STATE":   2,
-	"CONTEXT": 3,
+func (x PmConfig_PmType) Enum() *PmConfig_PmType {
+	p := new(PmConfig_PmType)
+	*p = x
+	return p
 }
 
 func (x PmConfig_PmType) String() string {
-	return proto.EnumName(PmConfig_PmType_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (PmConfig_PmType) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_device_proto_enumTypes[0].Descriptor()
+}
+
+func (PmConfig_PmType) Type() protoreflect.EnumType {
+	return &file_voltha_protos_device_proto_enumTypes[0]
+}
+
+func (x PmConfig_PmType) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use PmConfig_PmType.Descriptor instead.
 func (PmConfig_PmType) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_200940f73d155856, []int{2, 0}
+	return file_voltha_protos_device_proto_rawDescGZIP(), []int{2, 0}
 }
 
 type ImageDownload_ImageDownloadState int32
@@ -66,32 +88,53 @@
 	ImageDownload_DOWNLOAD_CANCELLED   ImageDownload_ImageDownloadState = 6
 )
 
-var ImageDownload_ImageDownloadState_name = map[int32]string{
-	0: "DOWNLOAD_UNKNOWN",
-	1: "DOWNLOAD_SUCCEEDED",
-	2: "DOWNLOAD_REQUESTED",
-	3: "DOWNLOAD_STARTED",
-	4: "DOWNLOAD_FAILED",
-	5: "DOWNLOAD_UNSUPPORTED",
-	6: "DOWNLOAD_CANCELLED",
-}
+// Enum value maps for ImageDownload_ImageDownloadState.
+var (
+	ImageDownload_ImageDownloadState_name = map[int32]string{
+		0: "DOWNLOAD_UNKNOWN",
+		1: "DOWNLOAD_SUCCEEDED",
+		2: "DOWNLOAD_REQUESTED",
+		3: "DOWNLOAD_STARTED",
+		4: "DOWNLOAD_FAILED",
+		5: "DOWNLOAD_UNSUPPORTED",
+		6: "DOWNLOAD_CANCELLED",
+	}
+	ImageDownload_ImageDownloadState_value = map[string]int32{
+		"DOWNLOAD_UNKNOWN":     0,
+		"DOWNLOAD_SUCCEEDED":   1,
+		"DOWNLOAD_REQUESTED":   2,
+		"DOWNLOAD_STARTED":     3,
+		"DOWNLOAD_FAILED":      4,
+		"DOWNLOAD_UNSUPPORTED": 5,
+		"DOWNLOAD_CANCELLED":   6,
+	}
+)
 
-var ImageDownload_ImageDownloadState_value = map[string]int32{
-	"DOWNLOAD_UNKNOWN":     0,
-	"DOWNLOAD_SUCCEEDED":   1,
-	"DOWNLOAD_REQUESTED":   2,
-	"DOWNLOAD_STARTED":     3,
-	"DOWNLOAD_FAILED":      4,
-	"DOWNLOAD_UNSUPPORTED": 5,
-	"DOWNLOAD_CANCELLED":   6,
+func (x ImageDownload_ImageDownloadState) Enum() *ImageDownload_ImageDownloadState {
+	p := new(ImageDownload_ImageDownloadState)
+	*p = x
+	return p
 }
 
 func (x ImageDownload_ImageDownloadState) String() string {
-	return proto.EnumName(ImageDownload_ImageDownloadState_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (ImageDownload_ImageDownloadState) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_device_proto_enumTypes[1].Descriptor()
+}
+
+func (ImageDownload_ImageDownloadState) Type() protoreflect.EnumType {
+	return &file_voltha_protos_device_proto_enumTypes[1]
+}
+
+func (x ImageDownload_ImageDownloadState) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use ImageDownload_ImageDownloadState.Descriptor instead.
 func (ImageDownload_ImageDownloadState) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_200940f73d155856, []int{6, 0}
+	return file_voltha_protos_device_proto_rawDescGZIP(), []int{6, 0}
 }
 
 type ImageDownload_ImageDownloadFailureReason int32
@@ -105,30 +148,51 @@
 	ImageDownload_CANCELLED          ImageDownload_ImageDownloadFailureReason = 5
 )
 
-var ImageDownload_ImageDownloadFailureReason_name = map[int32]string{
-	0: "NO_ERROR",
-	1: "INVALID_URL",
-	2: "DEVICE_BUSY",
-	3: "INSUFFICIENT_SPACE",
-	4: "UNKNOWN_ERROR",
-	5: "CANCELLED",
-}
+// Enum value maps for ImageDownload_ImageDownloadFailureReason.
+var (
+	ImageDownload_ImageDownloadFailureReason_name = map[int32]string{
+		0: "NO_ERROR",
+		1: "INVALID_URL",
+		2: "DEVICE_BUSY",
+		3: "INSUFFICIENT_SPACE",
+		4: "UNKNOWN_ERROR",
+		5: "CANCELLED",
+	}
+	ImageDownload_ImageDownloadFailureReason_value = map[string]int32{
+		"NO_ERROR":           0,
+		"INVALID_URL":        1,
+		"DEVICE_BUSY":        2,
+		"INSUFFICIENT_SPACE": 3,
+		"UNKNOWN_ERROR":      4,
+		"CANCELLED":          5,
+	}
+)
 
-var ImageDownload_ImageDownloadFailureReason_value = map[string]int32{
-	"NO_ERROR":           0,
-	"INVALID_URL":        1,
-	"DEVICE_BUSY":        2,
-	"INSUFFICIENT_SPACE": 3,
-	"UNKNOWN_ERROR":      4,
-	"CANCELLED":          5,
+func (x ImageDownload_ImageDownloadFailureReason) Enum() *ImageDownload_ImageDownloadFailureReason {
+	p := new(ImageDownload_ImageDownloadFailureReason)
+	*p = x
+	return p
 }
 
 func (x ImageDownload_ImageDownloadFailureReason) String() string {
-	return proto.EnumName(ImageDownload_ImageDownloadFailureReason_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (ImageDownload_ImageDownloadFailureReason) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_device_proto_enumTypes[2].Descriptor()
+}
+
+func (ImageDownload_ImageDownloadFailureReason) Type() protoreflect.EnumType {
+	return &file_voltha_protos_device_proto_enumTypes[2]
+}
+
+func (x ImageDownload_ImageDownloadFailureReason) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use ImageDownload_ImageDownloadFailureReason.Descriptor instead.
 func (ImageDownload_ImageDownloadFailureReason) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_200940f73d155856, []int{6, 1}
+	return file_voltha_protos_device_proto_rawDescGZIP(), []int{6, 1}
 }
 
 type ImageDownload_ImageActivateState int32
@@ -142,30 +206,51 @@
 	ImageDownload_IMAGE_REVERTED   ImageDownload_ImageActivateState = 5
 )
 
-var ImageDownload_ImageActivateState_name = map[int32]string{
-	0: "IMAGE_UNKNOWN",
-	1: "IMAGE_INACTIVE",
-	2: "IMAGE_ACTIVATING",
-	3: "IMAGE_ACTIVE",
-	4: "IMAGE_REVERTING",
-	5: "IMAGE_REVERTED",
-}
+// Enum value maps for ImageDownload_ImageActivateState.
+var (
+	ImageDownload_ImageActivateState_name = map[int32]string{
+		0: "IMAGE_UNKNOWN",
+		1: "IMAGE_INACTIVE",
+		2: "IMAGE_ACTIVATING",
+		3: "IMAGE_ACTIVE",
+		4: "IMAGE_REVERTING",
+		5: "IMAGE_REVERTED",
+	}
+	ImageDownload_ImageActivateState_value = map[string]int32{
+		"IMAGE_UNKNOWN":    0,
+		"IMAGE_INACTIVE":   1,
+		"IMAGE_ACTIVATING": 2,
+		"IMAGE_ACTIVE":     3,
+		"IMAGE_REVERTING":  4,
+		"IMAGE_REVERTED":   5,
+	}
+)
 
-var ImageDownload_ImageActivateState_value = map[string]int32{
-	"IMAGE_UNKNOWN":    0,
-	"IMAGE_INACTIVE":   1,
-	"IMAGE_ACTIVATING": 2,
-	"IMAGE_ACTIVE":     3,
-	"IMAGE_REVERTING":  4,
-	"IMAGE_REVERTED":   5,
+func (x ImageDownload_ImageActivateState) Enum() *ImageDownload_ImageActivateState {
+	p := new(ImageDownload_ImageActivateState)
+	*p = x
+	return p
 }
 
 func (x ImageDownload_ImageActivateState) String() string {
-	return proto.EnumName(ImageDownload_ImageActivateState_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (ImageDownload_ImageActivateState) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_device_proto_enumTypes[3].Descriptor()
+}
+
+func (ImageDownload_ImageActivateState) Type() protoreflect.EnumType {
+	return &file_voltha_protos_device_proto_enumTypes[3]
+}
+
+func (x ImageDownload_ImageActivateState) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use ImageDownload_ImageActivateState.Descriptor instead.
 func (ImageDownload_ImageActivateState) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_200940f73d155856, []int{6, 2}
+	return file_voltha_protos_device_proto_rawDescGZIP(), []int{6, 2}
 }
 
 type ImageState_ImageDownloadState int32
@@ -181,34 +266,55 @@
 	ImageState_DOWNLOAD_CANCELLED   ImageState_ImageDownloadState = 7
 )
 
-var ImageState_ImageDownloadState_name = map[int32]string{
-	0: "DOWNLOAD_UNKNOWN",
-	1: "DOWNLOAD_SUCCEEDED",
-	2: "DOWNLOAD_REQUESTED",
-	3: "DOWNLOAD_STARTED",
-	4: "DOWNLOAD_FAILED",
-	5: "DOWNLOAD_UNSUPPORTED",
-	6: "DOWNLOAD_CANCELLING",
-	7: "DOWNLOAD_CANCELLED",
-}
+// Enum value maps for ImageState_ImageDownloadState.
+var (
+	ImageState_ImageDownloadState_name = map[int32]string{
+		0: "DOWNLOAD_UNKNOWN",
+		1: "DOWNLOAD_SUCCEEDED",
+		2: "DOWNLOAD_REQUESTED",
+		3: "DOWNLOAD_STARTED",
+		4: "DOWNLOAD_FAILED",
+		5: "DOWNLOAD_UNSUPPORTED",
+		6: "DOWNLOAD_CANCELLING",
+		7: "DOWNLOAD_CANCELLED",
+	}
+	ImageState_ImageDownloadState_value = map[string]int32{
+		"DOWNLOAD_UNKNOWN":     0,
+		"DOWNLOAD_SUCCEEDED":   1,
+		"DOWNLOAD_REQUESTED":   2,
+		"DOWNLOAD_STARTED":     3,
+		"DOWNLOAD_FAILED":      4,
+		"DOWNLOAD_UNSUPPORTED": 5,
+		"DOWNLOAD_CANCELLING":  6,
+		"DOWNLOAD_CANCELLED":   7,
+	}
+)
 
-var ImageState_ImageDownloadState_value = map[string]int32{
-	"DOWNLOAD_UNKNOWN":     0,
-	"DOWNLOAD_SUCCEEDED":   1,
-	"DOWNLOAD_REQUESTED":   2,
-	"DOWNLOAD_STARTED":     3,
-	"DOWNLOAD_FAILED":      4,
-	"DOWNLOAD_UNSUPPORTED": 5,
-	"DOWNLOAD_CANCELLING":  6,
-	"DOWNLOAD_CANCELLED":   7,
+func (x ImageState_ImageDownloadState) Enum() *ImageState_ImageDownloadState {
+	p := new(ImageState_ImageDownloadState)
+	*p = x
+	return p
 }
 
 func (x ImageState_ImageDownloadState) String() string {
-	return proto.EnumName(ImageState_ImageDownloadState_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (ImageState_ImageDownloadState) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_device_proto_enumTypes[4].Descriptor()
+}
+
+func (ImageState_ImageDownloadState) Type() protoreflect.EnumType {
+	return &file_voltha_protos_device_proto_enumTypes[4]
+}
+
+func (x ImageState_ImageDownloadState) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use ImageState_ImageDownloadState.Descriptor instead.
 func (ImageState_ImageDownloadState) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_200940f73d155856, []int{12, 0}
+	return file_voltha_protos_device_proto_rawDescGZIP(), []int{12, 0}
 }
 
 type ImageState_ImageFailureReason int32
@@ -217,8 +323,8 @@
 	ImageState_NO_ERROR               ImageState_ImageFailureReason = 0
 	ImageState_INVALID_URL            ImageState_ImageFailureReason = 1
 	ImageState_DEVICE_BUSY            ImageState_ImageFailureReason = 2
-	ImageState_INSUFFICIENT_SPACE     ImageState_ImageFailureReason = 3
-	ImageState_UNKNOWN_ERROR          ImageState_ImageFailureReason = 4
+	ImageState_INSUFFICIENT_SPACE     ImageState_ImageFailureReason = 3 // VOLTHA ONU ADAPTER has no more space to store images
+	ImageState_UNKNOWN_ERROR          ImageState_ImageFailureReason = 4 // Used also for Checksum failure on ONU
 	ImageState_CANCELLED_ON_REQUEST   ImageState_ImageFailureReason = 5
 	ImageState_CANCELLED_ON_ONU_STATE ImageState_ImageFailureReason = 6
 	ImageState_VENDOR_DEVICE_MISMATCH ImageState_ImageFailureReason = 7
@@ -226,38 +332,59 @@
 	ImageState_IMAGE_REFUSED_BY_ONU   ImageState_ImageFailureReason = 9
 )
 
-var ImageState_ImageFailureReason_name = map[int32]string{
-	0: "NO_ERROR",
-	1: "INVALID_URL",
-	2: "DEVICE_BUSY",
-	3: "INSUFFICIENT_SPACE",
-	4: "UNKNOWN_ERROR",
-	5: "CANCELLED_ON_REQUEST",
-	6: "CANCELLED_ON_ONU_STATE",
-	7: "VENDOR_DEVICE_MISMATCH",
-	8: "OMCI_TRANSFER_ERROR",
-	9: "IMAGE_REFUSED_BY_ONU",
-}
+// Enum value maps for ImageState_ImageFailureReason.
+var (
+	ImageState_ImageFailureReason_name = map[int32]string{
+		0: "NO_ERROR",
+		1: "INVALID_URL",
+		2: "DEVICE_BUSY",
+		3: "INSUFFICIENT_SPACE",
+		4: "UNKNOWN_ERROR",
+		5: "CANCELLED_ON_REQUEST",
+		6: "CANCELLED_ON_ONU_STATE",
+		7: "VENDOR_DEVICE_MISMATCH",
+		8: "OMCI_TRANSFER_ERROR",
+		9: "IMAGE_REFUSED_BY_ONU",
+	}
+	ImageState_ImageFailureReason_value = map[string]int32{
+		"NO_ERROR":               0,
+		"INVALID_URL":            1,
+		"DEVICE_BUSY":            2,
+		"INSUFFICIENT_SPACE":     3,
+		"UNKNOWN_ERROR":          4,
+		"CANCELLED_ON_REQUEST":   5,
+		"CANCELLED_ON_ONU_STATE": 6,
+		"VENDOR_DEVICE_MISMATCH": 7,
+		"OMCI_TRANSFER_ERROR":    8,
+		"IMAGE_REFUSED_BY_ONU":   9,
+	}
+)
 
-var ImageState_ImageFailureReason_value = map[string]int32{
-	"NO_ERROR":               0,
-	"INVALID_URL":            1,
-	"DEVICE_BUSY":            2,
-	"INSUFFICIENT_SPACE":     3,
-	"UNKNOWN_ERROR":          4,
-	"CANCELLED_ON_REQUEST":   5,
-	"CANCELLED_ON_ONU_STATE": 6,
-	"VENDOR_DEVICE_MISMATCH": 7,
-	"OMCI_TRANSFER_ERROR":    8,
-	"IMAGE_REFUSED_BY_ONU":   9,
+func (x ImageState_ImageFailureReason) Enum() *ImageState_ImageFailureReason {
+	p := new(ImageState_ImageFailureReason)
+	*p = x
+	return p
 }
 
 func (x ImageState_ImageFailureReason) String() string {
-	return proto.EnumName(ImageState_ImageFailureReason_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (ImageState_ImageFailureReason) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_device_proto_enumTypes[5].Descriptor()
+}
+
+func (ImageState_ImageFailureReason) Type() protoreflect.EnumType {
+	return &file_voltha_protos_device_proto_enumTypes[5]
+}
+
+func (x ImageState_ImageFailureReason) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use ImageState_ImageFailureReason.Descriptor instead.
 func (ImageState_ImageFailureReason) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_200940f73d155856, []int{12, 1}
+	return file_voltha_protos_device_proto_rawDescGZIP(), []int{12, 1}
 }
 
 type ImageState_ImageActivationState int32
@@ -265,7 +392,7 @@
 const (
 	ImageState_IMAGE_UNKNOWN             ImageState_ImageActivationState = 0
 	ImageState_IMAGE_INACTIVE            ImageState_ImageActivationState = 1
-	ImageState_IMAGE_ACTIVATING          ImageState_ImageActivationState = 2
+	ImageState_IMAGE_ACTIVATING          ImageState_ImageActivationState = 2 // Happens during Reboot of the ONU after activate call.
 	ImageState_IMAGE_ACTIVE              ImageState_ImageActivationState = 3
 	ImageState_IMAGE_COMMITTING          ImageState_ImageActivationState = 4
 	ImageState_IMAGE_COMMITTED           ImageState_ImageActivationState = 5
@@ -277,42 +404,63 @@
 	ImageState_IMAGE_DOWNLOADING_ABORTED ImageState_ImageActivationState = 11
 )
 
-var ImageState_ImageActivationState_name = map[int32]string{
-	0:  "IMAGE_UNKNOWN",
-	1:  "IMAGE_INACTIVE",
-	2:  "IMAGE_ACTIVATING",
-	3:  "IMAGE_ACTIVE",
-	4:  "IMAGE_COMMITTING",
-	5:  "IMAGE_COMMITTED",
-	6:  "IMAGE_ACTIVATION_ABORTING",
-	7:  "IMAGE_ACTIVATION_ABORTED",
-	8:  "IMAGE_COMMIT_ABORTING",
-	9:  "IMAGE_COMMIT_ABORTED",
-	10: "IMAGE_DOWNLOADING",
-	11: "IMAGE_DOWNLOADING_ABORTED",
-}
+// Enum value maps for ImageState_ImageActivationState.
+var (
+	ImageState_ImageActivationState_name = map[int32]string{
+		0:  "IMAGE_UNKNOWN",
+		1:  "IMAGE_INACTIVE",
+		2:  "IMAGE_ACTIVATING",
+		3:  "IMAGE_ACTIVE",
+		4:  "IMAGE_COMMITTING",
+		5:  "IMAGE_COMMITTED",
+		6:  "IMAGE_ACTIVATION_ABORTING",
+		7:  "IMAGE_ACTIVATION_ABORTED",
+		8:  "IMAGE_COMMIT_ABORTING",
+		9:  "IMAGE_COMMIT_ABORTED",
+		10: "IMAGE_DOWNLOADING",
+		11: "IMAGE_DOWNLOADING_ABORTED",
+	}
+	ImageState_ImageActivationState_value = map[string]int32{
+		"IMAGE_UNKNOWN":             0,
+		"IMAGE_INACTIVE":            1,
+		"IMAGE_ACTIVATING":          2,
+		"IMAGE_ACTIVE":              3,
+		"IMAGE_COMMITTING":          4,
+		"IMAGE_COMMITTED":           5,
+		"IMAGE_ACTIVATION_ABORTING": 6,
+		"IMAGE_ACTIVATION_ABORTED":  7,
+		"IMAGE_COMMIT_ABORTING":     8,
+		"IMAGE_COMMIT_ABORTED":      9,
+		"IMAGE_DOWNLOADING":         10,
+		"IMAGE_DOWNLOADING_ABORTED": 11,
+	}
+)
 
-var ImageState_ImageActivationState_value = map[string]int32{
-	"IMAGE_UNKNOWN":             0,
-	"IMAGE_INACTIVE":            1,
-	"IMAGE_ACTIVATING":          2,
-	"IMAGE_ACTIVE":              3,
-	"IMAGE_COMMITTING":          4,
-	"IMAGE_COMMITTED":           5,
-	"IMAGE_ACTIVATION_ABORTING": 6,
-	"IMAGE_ACTIVATION_ABORTED":  7,
-	"IMAGE_COMMIT_ABORTING":     8,
-	"IMAGE_COMMIT_ABORTED":      9,
-	"IMAGE_DOWNLOADING":         10,
-	"IMAGE_DOWNLOADING_ABORTED": 11,
+func (x ImageState_ImageActivationState) Enum() *ImageState_ImageActivationState {
+	p := new(ImageState_ImageActivationState)
+	*p = x
+	return p
 }
 
 func (x ImageState_ImageActivationState) String() string {
-	return proto.EnumName(ImageState_ImageActivationState_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (ImageState_ImageActivationState) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_device_proto_enumTypes[6].Descriptor()
+}
+
+func (ImageState_ImageActivationState) Type() protoreflect.EnumType {
+	return &file_voltha_protos_device_proto_enumTypes[6]
+}
+
+func (x ImageState_ImageActivationState) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use ImageState_ImageActivationState.Descriptor instead.
 func (ImageState_ImageActivationState) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_200940f73d155856, []int{12, 2}
+	return file_voltha_protos_device_proto_rawDescGZIP(), []int{12, 2}
 }
 
 type Port_PortType int32
@@ -327,32 +475,53 @@
 	Port_VENET_ONU    Port_PortType = 6
 )
 
-var Port_PortType_name = map[int32]string{
-	0: "UNKNOWN",
-	1: "ETHERNET_NNI",
-	2: "ETHERNET_UNI",
-	3: "PON_OLT",
-	4: "PON_ONU",
-	5: "VENET_OLT",
-	6: "VENET_ONU",
-}
+// Enum value maps for Port_PortType.
+var (
+	Port_PortType_name = map[int32]string{
+		0: "UNKNOWN",
+		1: "ETHERNET_NNI",
+		2: "ETHERNET_UNI",
+		3: "PON_OLT",
+		4: "PON_ONU",
+		5: "VENET_OLT",
+		6: "VENET_ONU",
+	}
+	Port_PortType_value = map[string]int32{
+		"UNKNOWN":      0,
+		"ETHERNET_NNI": 1,
+		"ETHERNET_UNI": 2,
+		"PON_OLT":      3,
+		"PON_ONU":      4,
+		"VENET_OLT":    5,
+		"VENET_ONU":    6,
+	}
+)
 
-var Port_PortType_value = map[string]int32{
-	"UNKNOWN":      0,
-	"ETHERNET_NNI": 1,
-	"ETHERNET_UNI": 2,
-	"PON_OLT":      3,
-	"PON_ONU":      4,
-	"VENET_OLT":    5,
-	"VENET_ONU":    6,
+func (x Port_PortType) Enum() *Port_PortType {
+	p := new(Port_PortType)
+	*p = x
+	return p
 }
 
 func (x Port_PortType) String() string {
-	return proto.EnumName(Port_PortType_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (Port_PortType) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_device_proto_enumTypes[7].Descriptor()
+}
+
+func (Port_PortType) Type() protoreflect.EnumType {
+	return &file_voltha_protos_device_proto_enumTypes[7]
+}
+
+func (x Port_PortType) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use Port_PortType.Descriptor instead.
 func (Port_PortType) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_200940f73d155856, []int{13, 0}
+	return file_voltha_protos_device_proto_rawDescGZIP(), []int{13, 0}
 }
 
 type SelfTestResponse_SelfTestResult int32
@@ -364,26 +533,47 @@
 	SelfTestResponse_UNKNOWN_ERROR SelfTestResponse_SelfTestResult = 3
 )
 
-var SelfTestResponse_SelfTestResult_name = map[int32]string{
-	0: "SUCCESS",
-	1: "FAILURE",
-	2: "NOT_SUPPORTED",
-	3: "UNKNOWN_ERROR",
-}
+// Enum value maps for SelfTestResponse_SelfTestResult.
+var (
+	SelfTestResponse_SelfTestResult_name = map[int32]string{
+		0: "SUCCESS",
+		1: "FAILURE",
+		2: "NOT_SUPPORTED",
+		3: "UNKNOWN_ERROR",
+	}
+	SelfTestResponse_SelfTestResult_value = map[string]int32{
+		"SUCCESS":       0,
+		"FAILURE":       1,
+		"NOT_SUPPORTED": 2,
+		"UNKNOWN_ERROR": 3,
+	}
+)
 
-var SelfTestResponse_SelfTestResult_value = map[string]int32{
-	"SUCCESS":       0,
-	"FAILURE":       1,
-	"NOT_SUPPORTED": 2,
-	"UNKNOWN_ERROR": 3,
+func (x SelfTestResponse_SelfTestResult) Enum() *SelfTestResponse_SelfTestResult {
+	p := new(SelfTestResponse_SelfTestResult)
+	*p = x
+	return p
 }
 
 func (x SelfTestResponse_SelfTestResult) String() string {
-	return proto.EnumName(SelfTestResponse_SelfTestResult_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (SelfTestResponse_SelfTestResult) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_device_proto_enumTypes[8].Descriptor()
+}
+
+func (SelfTestResponse_SelfTestResult) Type() protoreflect.EnumType {
+	return &file_voltha_protos_device_proto_enumTypes[8]
+}
+
+func (x SelfTestResponse_SelfTestResult) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use SelfTestResponse_SelfTestResult.Descriptor instead.
 func (SelfTestResponse_SelfTestResult) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_200940f73d155856, []int{19, 0}
+	return file_voltha_protos_device_proto_rawDescGZIP(), []int{19, 0}
 }
 
 type SimulateAlarmRequest_OperationType int32
@@ -393,26 +583,48 @@
 	SimulateAlarmRequest_CLEAR SimulateAlarmRequest_OperationType = 1
 )
 
-var SimulateAlarmRequest_OperationType_name = map[int32]string{
-	0: "RAISE",
-	1: "CLEAR",
-}
+// Enum value maps for SimulateAlarmRequest_OperationType.
+var (
+	SimulateAlarmRequest_OperationType_name = map[int32]string{
+		0: "RAISE",
+		1: "CLEAR",
+	}
+	SimulateAlarmRequest_OperationType_value = map[string]int32{
+		"RAISE": 0,
+		"CLEAR": 1,
+	}
+)
 
-var SimulateAlarmRequest_OperationType_value = map[string]int32{
-	"RAISE": 0,
-	"CLEAR": 1,
+func (x SimulateAlarmRequest_OperationType) Enum() *SimulateAlarmRequest_OperationType {
+	p := new(SimulateAlarmRequest_OperationType)
+	*p = x
+	return p
 }
 
 func (x SimulateAlarmRequest_OperationType) String() string {
-	return proto.EnumName(SimulateAlarmRequest_OperationType_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (SimulateAlarmRequest_OperationType) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_device_proto_enumTypes[9].Descriptor()
+}
+
+func (SimulateAlarmRequest_OperationType) Type() protoreflect.EnumType {
+	return &file_voltha_protos_device_proto_enumTypes[9]
+}
+
+func (x SimulateAlarmRequest_OperationType) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use SimulateAlarmRequest_OperationType.Descriptor instead.
 func (SimulateAlarmRequest_OperationType) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_200940f73d155856, []int{21, 0}
+	return file_voltha_protos_device_proto_rawDescGZIP(), []int{21, 0}
 }
 
 // A Device Type
 type DeviceType struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
 	// Unique name for the device type
 	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
 	// Unique vendor id for the device type applicable to ONU
@@ -427,351 +639,376 @@
 	AcceptsAddRemoveFlowUpdates     bool `protobuf:"varint,4,opt,name=accepts_add_remove_flow_updates,json=acceptsAddRemoveFlowUpdates,proto3" json:"accepts_add_remove_flow_updates,omitempty"`
 	AcceptsDirectLogicalFlowsUpdate bool `protobuf:"varint,7,opt,name=accepts_direct_logical_flows_update,json=acceptsDirectLogicalFlowsUpdate,proto3" json:"accepts_direct_logical_flows_update,omitempty"`
 	// Type of adapter that can handle this device type
-	AdapterType          string   `protobuf:"bytes,8,opt,name=adapter_type,json=adapterType,proto3" json:"adapter_type,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	AdapterType   string `protobuf:"bytes,8,opt,name=adapter_type,json=adapterType,proto3" json:"adapter_type,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *DeviceType) Reset()         { *m = DeviceType{} }
-func (m *DeviceType) String() string { return proto.CompactTextString(m) }
-func (*DeviceType) ProtoMessage()    {}
+func (x *DeviceType) Reset() {
+	*x = DeviceType{}
+	mi := &file_voltha_protos_device_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *DeviceType) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeviceType) ProtoMessage() {}
+
+func (x *DeviceType) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_device_proto_msgTypes[0]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeviceType.ProtoReflect.Descriptor instead.
 func (*DeviceType) Descriptor() ([]byte, []int) {
-	return fileDescriptor_200940f73d155856, []int{0}
+	return file_voltha_protos_device_proto_rawDescGZIP(), []int{0}
 }
 
-func (m *DeviceType) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_DeviceType.Unmarshal(m, b)
-}
-func (m *DeviceType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_DeviceType.Marshal(b, m, deterministic)
-}
-func (m *DeviceType) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_DeviceType.Merge(m, src)
-}
-func (m *DeviceType) XXX_Size() int {
-	return xxx_messageInfo_DeviceType.Size(m)
-}
-func (m *DeviceType) XXX_DiscardUnknown() {
-	xxx_messageInfo_DeviceType.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_DeviceType proto.InternalMessageInfo
-
-func (m *DeviceType) GetId() string {
-	if m != nil {
-		return m.Id
+func (x *DeviceType) GetId() string {
+	if x != nil {
+		return x.Id
 	}
 	return ""
 }
 
-func (m *DeviceType) GetVendorId() string {
-	if m != nil {
-		return m.VendorId
+func (x *DeviceType) GetVendorId() string {
+	if x != nil {
+		return x.VendorId
 	}
 	return ""
 }
 
-func (m *DeviceType) GetVendorIds() []string {
-	if m != nil {
-		return m.VendorIds
+func (x *DeviceType) GetVendorIds() []string {
+	if x != nil {
+		return x.VendorIds
 	}
 	return nil
 }
 
-func (m *DeviceType) GetAdapter() string {
-	if m != nil {
-		return m.Adapter
+func (x *DeviceType) GetAdapter() string {
+	if x != nil {
+		return x.Adapter
 	}
 	return ""
 }
 
-func (m *DeviceType) GetAcceptsBulkFlowUpdate() bool {
-	if m != nil {
-		return m.AcceptsBulkFlowUpdate
+func (x *DeviceType) GetAcceptsBulkFlowUpdate() bool {
+	if x != nil {
+		return x.AcceptsBulkFlowUpdate
 	}
 	return false
 }
 
-func (m *DeviceType) GetAcceptsAddRemoveFlowUpdates() bool {
-	if m != nil {
-		return m.AcceptsAddRemoveFlowUpdates
+func (x *DeviceType) GetAcceptsAddRemoveFlowUpdates() bool {
+	if x != nil {
+		return x.AcceptsAddRemoveFlowUpdates
 	}
 	return false
 }
 
-func (m *DeviceType) GetAcceptsDirectLogicalFlowsUpdate() bool {
-	if m != nil {
-		return m.AcceptsDirectLogicalFlowsUpdate
+func (x *DeviceType) GetAcceptsDirectLogicalFlowsUpdate() bool {
+	if x != nil {
+		return x.AcceptsDirectLogicalFlowsUpdate
 	}
 	return false
 }
 
-func (m *DeviceType) GetAdapterType() string {
-	if m != nil {
-		return m.AdapterType
+func (x *DeviceType) GetAdapterType() string {
+	if x != nil {
+		return x.AdapterType
 	}
 	return ""
 }
 
 // A plurality of device types
 type DeviceTypes struct {
-	Items                []*DeviceType `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
-	XXX_unrecognized     []byte        `json:"-"`
-	XXX_sizecache        int32         `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Items         []*DeviceType          `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *DeviceTypes) Reset()         { *m = DeviceTypes{} }
-func (m *DeviceTypes) String() string { return proto.CompactTextString(m) }
-func (*DeviceTypes) ProtoMessage()    {}
+func (x *DeviceTypes) Reset() {
+	*x = DeviceTypes{}
+	mi := &file_voltha_protos_device_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *DeviceTypes) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeviceTypes) ProtoMessage() {}
+
+func (x *DeviceTypes) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_device_proto_msgTypes[1]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeviceTypes.ProtoReflect.Descriptor instead.
 func (*DeviceTypes) Descriptor() ([]byte, []int) {
-	return fileDescriptor_200940f73d155856, []int{1}
+	return file_voltha_protos_device_proto_rawDescGZIP(), []int{1}
 }
 
-func (m *DeviceTypes) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_DeviceTypes.Unmarshal(m, b)
-}
-func (m *DeviceTypes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_DeviceTypes.Marshal(b, m, deterministic)
-}
-func (m *DeviceTypes) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_DeviceTypes.Merge(m, src)
-}
-func (m *DeviceTypes) XXX_Size() int {
-	return xxx_messageInfo_DeviceTypes.Size(m)
-}
-func (m *DeviceTypes) XXX_DiscardUnknown() {
-	xxx_messageInfo_DeviceTypes.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_DeviceTypes proto.InternalMessageInfo
-
-func (m *DeviceTypes) GetItems() []*DeviceType {
-	if m != nil {
-		return m.Items
+func (x *DeviceTypes) GetItems() []*DeviceType {
+	if x != nil {
+		return x.Items
 	}
 	return nil
 }
 
 type PmConfig struct {
-	Name                 string          `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
-	Type                 PmConfig_PmType `protobuf:"varint,2,opt,name=type,proto3,enum=device.PmConfig_PmType" json:"type,omitempty"`
-	Enabled              bool            `protobuf:"varint,3,opt,name=enabled,proto3" json:"enabled,omitempty"`
-	SampleFreq           uint32          `protobuf:"varint,4,opt,name=sample_freq,json=sampleFreq,proto3" json:"sample_freq,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
-	XXX_unrecognized     []byte          `json:"-"`
-	XXX_sizecache        int32           `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Name          string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+	Type          PmConfig_PmType        `protobuf:"varint,2,opt,name=type,proto3,enum=device.PmConfig_PmType" json:"type,omitempty"`
+	Enabled       bool                   `protobuf:"varint,3,opt,name=enabled,proto3" json:"enabled,omitempty"`                         // Whether or not this metric makes it to Kafka
+	SampleFreq    uint32                 `protobuf:"varint,4,opt,name=sample_freq,json=sampleFreq,proto3" json:"sample_freq,omitempty"` // Sample rate in 10ths of a second
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *PmConfig) Reset()         { *m = PmConfig{} }
-func (m *PmConfig) String() string { return proto.CompactTextString(m) }
-func (*PmConfig) ProtoMessage()    {}
+func (x *PmConfig) Reset() {
+	*x = PmConfig{}
+	mi := &file_voltha_protos_device_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *PmConfig) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PmConfig) ProtoMessage() {}
+
+func (x *PmConfig) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_device_proto_msgTypes[2]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use PmConfig.ProtoReflect.Descriptor instead.
 func (*PmConfig) Descriptor() ([]byte, []int) {
-	return fileDescriptor_200940f73d155856, []int{2}
+	return file_voltha_protos_device_proto_rawDescGZIP(), []int{2}
 }
 
-func (m *PmConfig) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_PmConfig.Unmarshal(m, b)
-}
-func (m *PmConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_PmConfig.Marshal(b, m, deterministic)
-}
-func (m *PmConfig) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_PmConfig.Merge(m, src)
-}
-func (m *PmConfig) XXX_Size() int {
-	return xxx_messageInfo_PmConfig.Size(m)
-}
-func (m *PmConfig) XXX_DiscardUnknown() {
-	xxx_messageInfo_PmConfig.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_PmConfig proto.InternalMessageInfo
-
-func (m *PmConfig) GetName() string {
-	if m != nil {
-		return m.Name
+func (x *PmConfig) GetName() string {
+	if x != nil {
+		return x.Name
 	}
 	return ""
 }
 
-func (m *PmConfig) GetType() PmConfig_PmType {
-	if m != nil {
-		return m.Type
+func (x *PmConfig) GetType() PmConfig_PmType {
+	if x != nil {
+		return x.Type
 	}
 	return PmConfig_COUNTER
 }
 
-func (m *PmConfig) GetEnabled() bool {
-	if m != nil {
-		return m.Enabled
+func (x *PmConfig) GetEnabled() bool {
+	if x != nil {
+		return x.Enabled
 	}
 	return false
 }
 
-func (m *PmConfig) GetSampleFreq() uint32 {
-	if m != nil {
-		return m.SampleFreq
+func (x *PmConfig) GetSampleFreq() uint32 {
+	if x != nil {
+		return x.SampleFreq
 	}
 	return 0
 }
 
 type PmGroupConfig struct {
-	GroupName            string      `protobuf:"bytes,1,opt,name=group_name,json=groupName,proto3" json:"group_name,omitempty"`
-	GroupFreq            uint32      `protobuf:"varint,2,opt,name=group_freq,json=groupFreq,proto3" json:"group_freq,omitempty"`
-	Enabled              bool        `protobuf:"varint,3,opt,name=enabled,proto3" json:"enabled,omitempty"`
-	Metrics              []*PmConfig `protobuf:"bytes,4,rep,name=metrics,proto3" json:"metrics,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
-	XXX_unrecognized     []byte      `json:"-"`
-	XXX_sizecache        int32       `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	GroupName     string                 `protobuf:"bytes,1,opt,name=group_name,json=groupName,proto3" json:"group_name,omitempty"`
+	GroupFreq     uint32                 `protobuf:"varint,2,opt,name=group_freq,json=groupFreq,proto3" json:"group_freq,omitempty"` // Frequency applicable to the grop
+	Enabled       bool                   `protobuf:"varint,3,opt,name=enabled,proto3" json:"enabled,omitempty"`                      // Enable/disable group level only
+	Metrics       []*PmConfig            `protobuf:"bytes,4,rep,name=metrics,proto3" json:"metrics,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *PmGroupConfig) Reset()         { *m = PmGroupConfig{} }
-func (m *PmGroupConfig) String() string { return proto.CompactTextString(m) }
-func (*PmGroupConfig) ProtoMessage()    {}
+func (x *PmGroupConfig) Reset() {
+	*x = PmGroupConfig{}
+	mi := &file_voltha_protos_device_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *PmGroupConfig) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PmGroupConfig) ProtoMessage() {}
+
+func (x *PmGroupConfig) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_device_proto_msgTypes[3]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use PmGroupConfig.ProtoReflect.Descriptor instead.
 func (*PmGroupConfig) Descriptor() ([]byte, []int) {
-	return fileDescriptor_200940f73d155856, []int{3}
+	return file_voltha_protos_device_proto_rawDescGZIP(), []int{3}
 }
 
-func (m *PmGroupConfig) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_PmGroupConfig.Unmarshal(m, b)
-}
-func (m *PmGroupConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_PmGroupConfig.Marshal(b, m, deterministic)
-}
-func (m *PmGroupConfig) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_PmGroupConfig.Merge(m, src)
-}
-func (m *PmGroupConfig) XXX_Size() int {
-	return xxx_messageInfo_PmGroupConfig.Size(m)
-}
-func (m *PmGroupConfig) XXX_DiscardUnknown() {
-	xxx_messageInfo_PmGroupConfig.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_PmGroupConfig proto.InternalMessageInfo
-
-func (m *PmGroupConfig) GetGroupName() string {
-	if m != nil {
-		return m.GroupName
+func (x *PmGroupConfig) GetGroupName() string {
+	if x != nil {
+		return x.GroupName
 	}
 	return ""
 }
 
-func (m *PmGroupConfig) GetGroupFreq() uint32 {
-	if m != nil {
-		return m.GroupFreq
+func (x *PmGroupConfig) GetGroupFreq() uint32 {
+	if x != nil {
+		return x.GroupFreq
 	}
 	return 0
 }
 
-func (m *PmGroupConfig) GetEnabled() bool {
-	if m != nil {
-		return m.Enabled
+func (x *PmGroupConfig) GetEnabled() bool {
+	if x != nil {
+		return x.Enabled
 	}
 	return false
 }
 
-func (m *PmGroupConfig) GetMetrics() []*PmConfig {
-	if m != nil {
-		return m.Metrics
+func (x *PmGroupConfig) GetMetrics() []*PmConfig {
+	if x != nil {
+		return x.Metrics
 	}
 	return nil
 }
 
 type PmConfigs struct {
-	Id          string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
-	DefaultFreq uint32 `protobuf:"varint,2,opt,name=default_freq,json=defaultFreq,proto3" json:"default_freq,omitempty"`
+	state       protoimpl.MessageState `protogen:"open.v1"`
+	Id          string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`                                       // To work around a chameleon POST bug
+	DefaultFreq uint32                 `protobuf:"varint,2,opt,name=default_freq,json=defaultFreq,proto3" json:"default_freq,omitempty"` // Default sample rate
 	// Forces group names and group semantics
 	Grouped bool `protobuf:"varint,3,opt,name=grouped,proto3" json:"grouped,omitempty"`
 	// Allows Pm to set an individual sample frequency
-	FreqOverride         bool             `protobuf:"varint,4,opt,name=freq_override,json=freqOverride,proto3" json:"freq_override,omitempty"`
-	Groups               []*PmGroupConfig `protobuf:"bytes,5,rep,name=groups,proto3" json:"groups,omitempty"`
-	Metrics              []*PmConfig      `protobuf:"bytes,6,rep,name=metrics,proto3" json:"metrics,omitempty"`
-	MaxSkew              uint32           `protobuf:"varint,7,opt,name=max_skew,json=maxSkew,proto3" json:"max_skew,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
-	XXX_unrecognized     []byte           `json:"-"`
-	XXX_sizecache        int32            `json:"-"`
+	FreqOverride  bool             `protobuf:"varint,4,opt,name=freq_override,json=freqOverride,proto3" json:"freq_override,omitempty"`
+	Groups        []*PmGroupConfig `protobuf:"bytes,5,rep,name=groups,proto3" json:"groups,omitempty"`                   // The groups if grouped is true
+	Metrics       []*PmConfig      `protobuf:"bytes,6,rep,name=metrics,proto3" json:"metrics,omitempty"`                 // The metrics themselves if grouped is false.
+	MaxSkew       uint32           `protobuf:"varint,7,opt,name=max_skew,json=maxSkew,proto3" json:"max_skew,omitempty"` //Default value is set to 5 seconds
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *PmConfigs) Reset()         { *m = PmConfigs{} }
-func (m *PmConfigs) String() string { return proto.CompactTextString(m) }
-func (*PmConfigs) ProtoMessage()    {}
+func (x *PmConfigs) Reset() {
+	*x = PmConfigs{}
+	mi := &file_voltha_protos_device_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *PmConfigs) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PmConfigs) ProtoMessage() {}
+
+func (x *PmConfigs) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_device_proto_msgTypes[4]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use PmConfigs.ProtoReflect.Descriptor instead.
 func (*PmConfigs) Descriptor() ([]byte, []int) {
-	return fileDescriptor_200940f73d155856, []int{4}
+	return file_voltha_protos_device_proto_rawDescGZIP(), []int{4}
 }
 
-func (m *PmConfigs) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_PmConfigs.Unmarshal(m, b)
-}
-func (m *PmConfigs) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_PmConfigs.Marshal(b, m, deterministic)
-}
-func (m *PmConfigs) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_PmConfigs.Merge(m, src)
-}
-func (m *PmConfigs) XXX_Size() int {
-	return xxx_messageInfo_PmConfigs.Size(m)
-}
-func (m *PmConfigs) XXX_DiscardUnknown() {
-	xxx_messageInfo_PmConfigs.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_PmConfigs proto.InternalMessageInfo
-
-func (m *PmConfigs) GetId() string {
-	if m != nil {
-		return m.Id
+func (x *PmConfigs) GetId() string {
+	if x != nil {
+		return x.Id
 	}
 	return ""
 }
 
-func (m *PmConfigs) GetDefaultFreq() uint32 {
-	if m != nil {
-		return m.DefaultFreq
+func (x *PmConfigs) GetDefaultFreq() uint32 {
+	if x != nil {
+		return x.DefaultFreq
 	}
 	return 0
 }
 
-func (m *PmConfigs) GetGrouped() bool {
-	if m != nil {
-		return m.Grouped
+func (x *PmConfigs) GetGrouped() bool {
+	if x != nil {
+		return x.Grouped
 	}
 	return false
 }
 
-func (m *PmConfigs) GetFreqOverride() bool {
-	if m != nil {
-		return m.FreqOverride
+func (x *PmConfigs) GetFreqOverride() bool {
+	if x != nil {
+		return x.FreqOverride
 	}
 	return false
 }
 
-func (m *PmConfigs) GetGroups() []*PmGroupConfig {
-	if m != nil {
-		return m.Groups
+func (x *PmConfigs) GetGroups() []*PmGroupConfig {
+	if x != nil {
+		return x.Groups
 	}
 	return nil
 }
 
-func (m *PmConfigs) GetMetrics() []*PmConfig {
-	if m != nil {
-		return m.Metrics
+func (x *PmConfigs) GetMetrics() []*PmConfig {
+	if x != nil {
+		return x.Metrics
 	}
 	return nil
 }
 
-func (m *PmConfigs) GetMaxSkew() uint32 {
-	if m != nil {
-		return m.MaxSkew
+func (x *PmConfigs) GetMaxSkew() uint32 {
+	if x != nil {
+		return x.MaxSkew
 	}
 	return 0
 }
 
-//Object representing an image
+// Object representing an image
 type Image struct {
-	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+	state protoimpl.MessageState `protogen:"open.v1"`
+	Name  string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // software patch name
 	// Version, this is the sole identifier of the image. it's the vendor specified OMCI version
 	// must be known at the time of initiating a download, activate, commit image on an onu.
 	Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
@@ -779,24 +1016,24 @@
 	// Deprecated in voltha 2.8, will be removed
 	Hash uint32 `protobuf:"varint,3,opt,name=hash,proto3" json:"hash,omitempty"`
 	// Deprecated in voltha 2.8, will be removed
-	InstallDatetime string `protobuf:"bytes,4,opt,name=install_datetime,json=installDatetime,proto3" json:"install_datetime,omitempty"`
+	InstallDatetime string `protobuf:"bytes,4,opt,name=install_datetime,json=installDatetime,proto3" json:"install_datetime,omitempty"` // combined date and time expressed in UTC.
 	// The active software image is one that is currently loaded and executing
 	// in the ONU or circuit pack. Under normal operation, one software image
 	// is always active while the other is inactive. Under no circumstances are
 	// both software images allowed to be active at the same time
 	// Deprecated in voltha 2.8, will be removed
-	IsActive bool `protobuf:"varint,5,opt,name=is_active,json=isActive,proto3" json:"is_active,omitempty"`
+	IsActive bool `protobuf:"varint,5,opt,name=is_active,json=isActive,proto3" json:"is_active,omitempty"` // True if the image is active
 	// The committed software image is loaded and executed upon reboot of the
 	// ONU and/or circuit pack. During normal operation, one software image is
 	// always committed, while the other is uncommitted.
 	// Deprecated in voltha 2.8, will be removed
-	IsCommitted bool `protobuf:"varint,6,opt,name=is_committed,json=isCommitted,proto3" json:"is_committed,omitempty"`
+	IsCommitted bool `protobuf:"varint,6,opt,name=is_committed,json=isCommitted,proto3" json:"is_committed,omitempty"` // True if the image is committed
 	// A software image is valid if it has been verified to be an executable
 	// code image. The verification mechanism is not subject to standardization;
 	// however, it should include at least a data integrity (e.g., CRC) check of
 	// the entire code image.
 	// Deprecated in voltha 2.8, will be removed
-	IsValid bool `protobuf:"varint,7,opt,name=is_valid,json=isValid,proto3" json:"is_valid,omitempty"`
+	IsValid bool `protobuf:"varint,7,opt,name=is_valid,json=isValid,proto3" json:"is_valid,omitempty"` // True if the image is valid
 	// URL where the image is available
 	// URL MUST be fully qualified,
 	// including filename, username and password
@@ -809,103 +1046,107 @@
 	// Default to value 0 if not specified.
 	// If different then 0 it's used to verify the image retrieved from outside before sending it to the ONU.
 	// Calculation of this needs to be done according to ITU-T I.363.5 as per OMCI spec (section A.2.27)
-	Crc32                uint32   `protobuf:"varint,10,opt,name=crc32,proto3" json:"crc32,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	Crc32         uint32 `protobuf:"varint,10,opt,name=crc32,proto3" json:"crc32,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *Image) Reset()         { *m = Image{} }
-func (m *Image) String() string { return proto.CompactTextString(m) }
-func (*Image) ProtoMessage()    {}
+func (x *Image) Reset() {
+	*x = Image{}
+	mi := &file_voltha_protos_device_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *Image) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Image) ProtoMessage() {}
+
+func (x *Image) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_device_proto_msgTypes[5]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use Image.ProtoReflect.Descriptor instead.
 func (*Image) Descriptor() ([]byte, []int) {
-	return fileDescriptor_200940f73d155856, []int{5}
+	return file_voltha_protos_device_proto_rawDescGZIP(), []int{5}
 }
 
-func (m *Image) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_Image.Unmarshal(m, b)
-}
-func (m *Image) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_Image.Marshal(b, m, deterministic)
-}
-func (m *Image) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Image.Merge(m, src)
-}
-func (m *Image) XXX_Size() int {
-	return xxx_messageInfo_Image.Size(m)
-}
-func (m *Image) XXX_DiscardUnknown() {
-	xxx_messageInfo_Image.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_Image proto.InternalMessageInfo
-
-func (m *Image) GetName() string {
-	if m != nil {
-		return m.Name
+func (x *Image) GetName() string {
+	if x != nil {
+		return x.Name
 	}
 	return ""
 }
 
-func (m *Image) GetVersion() string {
-	if m != nil {
-		return m.Version
+func (x *Image) GetVersion() string {
+	if x != nil {
+		return x.Version
 	}
 	return ""
 }
 
-func (m *Image) GetHash() uint32 {
-	if m != nil {
-		return m.Hash
+func (x *Image) GetHash() uint32 {
+	if x != nil {
+		return x.Hash
 	}
 	return 0
 }
 
-func (m *Image) GetInstallDatetime() string {
-	if m != nil {
-		return m.InstallDatetime
+func (x *Image) GetInstallDatetime() string {
+	if x != nil {
+		return x.InstallDatetime
 	}
 	return ""
 }
 
-func (m *Image) GetIsActive() bool {
-	if m != nil {
-		return m.IsActive
+func (x *Image) GetIsActive() bool {
+	if x != nil {
+		return x.IsActive
 	}
 	return false
 }
 
-func (m *Image) GetIsCommitted() bool {
-	if m != nil {
-		return m.IsCommitted
+func (x *Image) GetIsCommitted() bool {
+	if x != nil {
+		return x.IsCommitted
 	}
 	return false
 }
 
-func (m *Image) GetIsValid() bool {
-	if m != nil {
-		return m.IsValid
+func (x *Image) GetIsValid() bool {
+	if x != nil {
+		return x.IsValid
 	}
 	return false
 }
 
-func (m *Image) GetUrl() string {
-	if m != nil {
-		return m.Url
+func (x *Image) GetUrl() string {
+	if x != nil {
+		return x.Url
 	}
 	return ""
 }
 
-func (m *Image) GetVendor() string {
-	if m != nil {
-		return m.Vendor
+func (x *Image) GetVendor() string {
+	if x != nil {
+		return x.Vendor
 	}
 	return ""
 }
 
-func (m *Image) GetCrc32() uint32 {
-	if m != nil {
-		return m.Crc32
+func (x *Image) GetCrc32() uint32 {
+	if x != nil {
+		return x.Crc32
 	}
 	return 0
 }
@@ -913,8 +1154,9 @@
 // Older version of the API please see DeviceImageDownloadRequest
 // Deprecated in voltha 2.8, will be removed
 //
-// Deprecated: Do not use.
+// Deprecated: Marked as deprecated in voltha_protos/device.proto.
 type ImageDownload struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
 	// Device Identifier
 	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
 	// Image unique identifier
@@ -941,205 +1183,219 @@
 	// Image activation state
 	ImageState ImageDownload_ImageActivateState `protobuf:"varint,12,opt,name=image_state,json=imageState,proto3,enum=device.ImageDownload_ImageActivateState" json:"image_state,omitempty"`
 	// Image file size
-	FileSize             uint32   `protobuf:"varint,13,opt,name=file_size,json=fileSize,proto3" json:"file_size,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	FileSize      uint32 `protobuf:"varint,13,opt,name=file_size,json=fileSize,proto3" json:"file_size,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *ImageDownload) Reset()         { *m = ImageDownload{} }
-func (m *ImageDownload) String() string { return proto.CompactTextString(m) }
-func (*ImageDownload) ProtoMessage()    {}
+func (x *ImageDownload) Reset() {
+	*x = ImageDownload{}
+	mi := &file_voltha_protos_device_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ImageDownload) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ImageDownload) ProtoMessage() {}
+
+func (x *ImageDownload) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_device_proto_msgTypes[6]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ImageDownload.ProtoReflect.Descriptor instead.
 func (*ImageDownload) Descriptor() ([]byte, []int) {
-	return fileDescriptor_200940f73d155856, []int{6}
+	return file_voltha_protos_device_proto_rawDescGZIP(), []int{6}
 }
 
-func (m *ImageDownload) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_ImageDownload.Unmarshal(m, b)
-}
-func (m *ImageDownload) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_ImageDownload.Marshal(b, m, deterministic)
-}
-func (m *ImageDownload) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_ImageDownload.Merge(m, src)
-}
-func (m *ImageDownload) XXX_Size() int {
-	return xxx_messageInfo_ImageDownload.Size(m)
-}
-func (m *ImageDownload) XXX_DiscardUnknown() {
-	xxx_messageInfo_ImageDownload.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_ImageDownload proto.InternalMessageInfo
-
-func (m *ImageDownload) GetId() string {
-	if m != nil {
-		return m.Id
+func (x *ImageDownload) GetId() string {
+	if x != nil {
+		return x.Id
 	}
 	return ""
 }
 
-func (m *ImageDownload) GetName() string {
-	if m != nil {
-		return m.Name
+func (x *ImageDownload) GetName() string {
+	if x != nil {
+		return x.Name
 	}
 	return ""
 }
 
-func (m *ImageDownload) GetUrl() string {
-	if m != nil {
-		return m.Url
+func (x *ImageDownload) GetUrl() string {
+	if x != nil {
+		return x.Url
 	}
 	return ""
 }
 
-func (m *ImageDownload) GetCrc() uint32 {
-	if m != nil {
-		return m.Crc
+func (x *ImageDownload) GetCrc() uint32 {
+	if x != nil {
+		return x.Crc
 	}
 	return 0
 }
 
-func (m *ImageDownload) GetDownloadState() ImageDownload_ImageDownloadState {
-	if m != nil {
-		return m.DownloadState
+func (x *ImageDownload) GetDownloadState() ImageDownload_ImageDownloadState {
+	if x != nil {
+		return x.DownloadState
 	}
 	return ImageDownload_DOWNLOAD_UNKNOWN
 }
 
-func (m *ImageDownload) GetImageVersion() string {
-	if m != nil {
-		return m.ImageVersion
+func (x *ImageDownload) GetImageVersion() string {
+	if x != nil {
+		return x.ImageVersion
 	}
 	return ""
 }
 
-func (m *ImageDownload) GetDownloadedBytes() uint32 {
-	if m != nil {
-		return m.DownloadedBytes
+func (x *ImageDownload) GetDownloadedBytes() uint32 {
+	if x != nil {
+		return x.DownloadedBytes
 	}
 	return 0
 }
 
-func (m *ImageDownload) GetReason() ImageDownload_ImageDownloadFailureReason {
-	if m != nil {
-		return m.Reason
+func (x *ImageDownload) GetReason() ImageDownload_ImageDownloadFailureReason {
+	if x != nil {
+		return x.Reason
 	}
 	return ImageDownload_NO_ERROR
 }
 
-func (m *ImageDownload) GetAdditionalInfo() string {
-	if m != nil {
-		return m.AdditionalInfo
+func (x *ImageDownload) GetAdditionalInfo() string {
+	if x != nil {
+		return x.AdditionalInfo
 	}
 	return ""
 }
 
-func (m *ImageDownload) GetSaveConfig() bool {
-	if m != nil {
-		return m.SaveConfig
+func (x *ImageDownload) GetSaveConfig() bool {
+	if x != nil {
+		return x.SaveConfig
 	}
 	return false
 }
 
-func (m *ImageDownload) GetLocalDir() string {
-	if m != nil {
-		return m.LocalDir
+func (x *ImageDownload) GetLocalDir() string {
+	if x != nil {
+		return x.LocalDir
 	}
 	return ""
 }
 
-func (m *ImageDownload) GetImageState() ImageDownload_ImageActivateState {
-	if m != nil {
-		return m.ImageState
+func (x *ImageDownload) GetImageState() ImageDownload_ImageActivateState {
+	if x != nil {
+		return x.ImageState
 	}
 	return ImageDownload_IMAGE_UNKNOWN
 }
 
-func (m *ImageDownload) GetFileSize() uint32 {
-	if m != nil {
-		return m.FileSize
+func (x *ImageDownload) GetFileSize() uint32 {
+	if x != nil {
+		return x.FileSize
 	}
 	return 0
 }
 
 // Deprecated in voltha 2.8, will be removed
 //
-// Deprecated: Do not use.
+// Deprecated: Marked as deprecated in voltha_protos/device.proto.
 type ImageDownloads struct {
-	Items                []*ImageDownload `protobuf:"bytes,2,rep,name=items,proto3" json:"items,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
-	XXX_unrecognized     []byte           `json:"-"`
-	XXX_sizecache        int32            `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Items         []*ImageDownload       `protobuf:"bytes,2,rep,name=items,proto3" json:"items,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *ImageDownloads) Reset()         { *m = ImageDownloads{} }
-func (m *ImageDownloads) String() string { return proto.CompactTextString(m) }
-func (*ImageDownloads) ProtoMessage()    {}
+func (x *ImageDownloads) Reset() {
+	*x = ImageDownloads{}
+	mi := &file_voltha_protos_device_proto_msgTypes[7]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ImageDownloads) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ImageDownloads) ProtoMessage() {}
+
+func (x *ImageDownloads) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_device_proto_msgTypes[7]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ImageDownloads.ProtoReflect.Descriptor instead.
 func (*ImageDownloads) Descriptor() ([]byte, []int) {
-	return fileDescriptor_200940f73d155856, []int{7}
+	return file_voltha_protos_device_proto_rawDescGZIP(), []int{7}
 }
 
-func (m *ImageDownloads) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_ImageDownloads.Unmarshal(m, b)
-}
-func (m *ImageDownloads) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_ImageDownloads.Marshal(b, m, deterministic)
-}
-func (m *ImageDownloads) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_ImageDownloads.Merge(m, src)
-}
-func (m *ImageDownloads) XXX_Size() int {
-	return xxx_messageInfo_ImageDownloads.Size(m)
-}
-func (m *ImageDownloads) XXX_DiscardUnknown() {
-	xxx_messageInfo_ImageDownloads.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_ImageDownloads proto.InternalMessageInfo
-
-func (m *ImageDownloads) GetItems() []*ImageDownload {
-	if m != nil {
-		return m.Items
+func (x *ImageDownloads) GetItems() []*ImageDownload {
+	if x != nil {
+		return x.Items
 	}
 	return nil
 }
 
 type Images struct {
-	Image                []*Image `protobuf:"bytes,1,rep,name=image,proto3" json:"image,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Image         []*Image               `protobuf:"bytes,1,rep,name=image,proto3" json:"image,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *Images) Reset()         { *m = Images{} }
-func (m *Images) String() string { return proto.CompactTextString(m) }
-func (*Images) ProtoMessage()    {}
+func (x *Images) Reset() {
+	*x = Images{}
+	mi := &file_voltha_protos_device_proto_msgTypes[8]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *Images) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Images) ProtoMessage() {}
+
+func (x *Images) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_device_proto_msgTypes[8]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use Images.ProtoReflect.Descriptor instead.
 func (*Images) Descriptor() ([]byte, []int) {
-	return fileDescriptor_200940f73d155856, []int{8}
+	return file_voltha_protos_device_proto_rawDescGZIP(), []int{8}
 }
 
-func (m *Images) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_Images.Unmarshal(m, b)
-}
-func (m *Images) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_Images.Marshal(b, m, deterministic)
-}
-func (m *Images) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Images.Merge(m, src)
-}
-func (m *Images) XXX_Size() int {
-	return xxx_messageInfo_Images.Size(m)
-}
-func (m *Images) XXX_DiscardUnknown() {
-	xxx_messageInfo_Images.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_Images proto.InternalMessageInfo
-
-func (m *Images) GetImage() []*Image {
-	if m != nil {
-		return m.Image
+func (x *Images) GetImage() []*Image {
+	if x != nil {
+		return x.Image
 	}
 	return nil
 }
@@ -1147,7 +1403,8 @@
 // OnuImage represents the OMCI information as per OMCI spec
 // the information will be populates exactly as extracted from the device.
 type OnuImage struct {
-	//image version
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// image version
 	Version     string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
 	IsCommited  bool   `protobuf:"varint,2,opt,name=isCommited,proto3" json:"isCommited,omitempty"`
 	IsActive    bool   `protobuf:"varint,3,opt,name=isActive,proto3" json:"isActive,omitempty"`
@@ -1155,166 +1412,181 @@
 	ProductCode string `protobuf:"bytes,5,opt,name=productCode,proto3" json:"productCode,omitempty"`
 	// Hash is computed by the ONU and is optional as per OMCI spec (paragraph 9.1.4)
 	// No assumption should be made on the existence of this attribute at any time.
-	Hash                 string   `protobuf:"bytes,6,opt,name=hash,proto3" json:"hash,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	Hash          string `protobuf:"bytes,6,opt,name=hash,proto3" json:"hash,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *OnuImage) Reset()         { *m = OnuImage{} }
-func (m *OnuImage) String() string { return proto.CompactTextString(m) }
-func (*OnuImage) ProtoMessage()    {}
+func (x *OnuImage) Reset() {
+	*x = OnuImage{}
+	mi := &file_voltha_protos_device_proto_msgTypes[9]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OnuImage) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OnuImage) ProtoMessage() {}
+
+func (x *OnuImage) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_device_proto_msgTypes[9]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OnuImage.ProtoReflect.Descriptor instead.
 func (*OnuImage) Descriptor() ([]byte, []int) {
-	return fileDescriptor_200940f73d155856, []int{9}
+	return file_voltha_protos_device_proto_rawDescGZIP(), []int{9}
 }
 
-func (m *OnuImage) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OnuImage.Unmarshal(m, b)
-}
-func (m *OnuImage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OnuImage.Marshal(b, m, deterministic)
-}
-func (m *OnuImage) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OnuImage.Merge(m, src)
-}
-func (m *OnuImage) XXX_Size() int {
-	return xxx_messageInfo_OnuImage.Size(m)
-}
-func (m *OnuImage) XXX_DiscardUnknown() {
-	xxx_messageInfo_OnuImage.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OnuImage proto.InternalMessageInfo
-
-func (m *OnuImage) GetVersion() string {
-	if m != nil {
-		return m.Version
+func (x *OnuImage) GetVersion() string {
+	if x != nil {
+		return x.Version
 	}
 	return ""
 }
 
-func (m *OnuImage) GetIsCommited() bool {
-	if m != nil {
-		return m.IsCommited
+func (x *OnuImage) GetIsCommited() bool {
+	if x != nil {
+		return x.IsCommited
 	}
 	return false
 }
 
-func (m *OnuImage) GetIsActive() bool {
-	if m != nil {
-		return m.IsActive
+func (x *OnuImage) GetIsActive() bool {
+	if x != nil {
+		return x.IsActive
 	}
 	return false
 }
 
-func (m *OnuImage) GetIsValid() bool {
-	if m != nil {
-		return m.IsValid
+func (x *OnuImage) GetIsValid() bool {
+	if x != nil {
+		return x.IsValid
 	}
 	return false
 }
 
-func (m *OnuImage) GetProductCode() string {
-	if m != nil {
-		return m.ProductCode
+func (x *OnuImage) GetProductCode() string {
+	if x != nil {
+		return x.ProductCode
 	}
 	return ""
 }
 
-func (m *OnuImage) GetHash() string {
-	if m != nil {
-		return m.Hash
+func (x *OnuImage) GetHash() string {
+	if x != nil {
+		return x.Hash
 	}
 	return ""
 }
 
 type OnuImages struct {
-	Items                []*OnuImage `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
-	XXX_unrecognized     []byte      `json:"-"`
-	XXX_sizecache        int32       `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Items         []*OnuImage            `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *OnuImages) Reset()         { *m = OnuImages{} }
-func (m *OnuImages) String() string { return proto.CompactTextString(m) }
-func (*OnuImages) ProtoMessage()    {}
+func (x *OnuImages) Reset() {
+	*x = OnuImages{}
+	mi := &file_voltha_protos_device_proto_msgTypes[10]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OnuImages) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OnuImages) ProtoMessage() {}
+
+func (x *OnuImages) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_device_proto_msgTypes[10]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OnuImages.ProtoReflect.Descriptor instead.
 func (*OnuImages) Descriptor() ([]byte, []int) {
-	return fileDescriptor_200940f73d155856, []int{10}
+	return file_voltha_protos_device_proto_rawDescGZIP(), []int{10}
 }
 
-func (m *OnuImages) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OnuImages.Unmarshal(m, b)
-}
-func (m *OnuImages) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OnuImages.Marshal(b, m, deterministic)
-}
-func (m *OnuImages) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OnuImages.Merge(m, src)
-}
-func (m *OnuImages) XXX_Size() int {
-	return xxx_messageInfo_OnuImages.Size(m)
-}
-func (m *OnuImages) XXX_DiscardUnknown() {
-	xxx_messageInfo_OnuImages.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OnuImages proto.InternalMessageInfo
-
-func (m *OnuImages) GetItems() []*OnuImage {
-	if m != nil {
-		return m.Items
+func (x *OnuImages) GetItems() []*OnuImage {
+	if x != nil {
+		return x.Items
 	}
 	return nil
 }
 
 type DeviceImageState struct {
-	DeviceId             string      `protobuf:"bytes,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
-	ImageState           *ImageState `protobuf:"bytes,2,opt,name=imageState,proto3" json:"imageState,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
-	XXX_unrecognized     []byte      `json:"-"`
-	XXX_sizecache        int32       `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	DeviceId      string                 `protobuf:"bytes,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
+	ImageState    *ImageState            `protobuf:"bytes,2,opt,name=imageState,proto3" json:"imageState,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *DeviceImageState) Reset()         { *m = DeviceImageState{} }
-func (m *DeviceImageState) String() string { return proto.CompactTextString(m) }
-func (*DeviceImageState) ProtoMessage()    {}
+func (x *DeviceImageState) Reset() {
+	*x = DeviceImageState{}
+	mi := &file_voltha_protos_device_proto_msgTypes[11]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *DeviceImageState) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeviceImageState) ProtoMessage() {}
+
+func (x *DeviceImageState) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_device_proto_msgTypes[11]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeviceImageState.ProtoReflect.Descriptor instead.
 func (*DeviceImageState) Descriptor() ([]byte, []int) {
-	return fileDescriptor_200940f73d155856, []int{11}
+	return file_voltha_protos_device_proto_rawDescGZIP(), []int{11}
 }
 
-func (m *DeviceImageState) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_DeviceImageState.Unmarshal(m, b)
-}
-func (m *DeviceImageState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_DeviceImageState.Marshal(b, m, deterministic)
-}
-func (m *DeviceImageState) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_DeviceImageState.Merge(m, src)
-}
-func (m *DeviceImageState) XXX_Size() int {
-	return xxx_messageInfo_DeviceImageState.Size(m)
-}
-func (m *DeviceImageState) XXX_DiscardUnknown() {
-	xxx_messageInfo_DeviceImageState.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_DeviceImageState proto.InternalMessageInfo
-
-func (m *DeviceImageState) GetDeviceId() string {
-	if m != nil {
-		return m.DeviceId
+func (x *DeviceImageState) GetDeviceId() string {
+	if x != nil {
+		return x.DeviceId
 	}
 	return ""
 }
 
-func (m *DeviceImageState) GetImageState() *ImageState {
-	if m != nil {
-		return m.ImageState
+func (x *DeviceImageState) GetImageState() *ImageState {
+	if x != nil {
+		return x.ImageState
 	}
 	return nil
 }
 
 type ImageState struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
 	// image version
 	Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
 	// Download state
@@ -1322,72 +1594,77 @@
 	// Image Operation Failure reason (use for both Download and Activate)
 	Reason ImageState_ImageFailureReason `protobuf:"varint,3,opt,name=reason,proto3,enum=device.ImageState_ImageFailureReason" json:"reason,omitempty"`
 	// Image activation state
-	ImageState           ImageState_ImageActivationState `protobuf:"varint,4,opt,name=image_state,json=imageState,proto3,enum=device.ImageState_ImageActivationState" json:"image_state,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                        `json:"-"`
-	XXX_unrecognized     []byte                          `json:"-"`
-	XXX_sizecache        int32                           `json:"-"`
+	ImageState    ImageState_ImageActivationState `protobuf:"varint,4,opt,name=image_state,json=imageState,proto3,enum=device.ImageState_ImageActivationState" json:"image_state,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *ImageState) Reset()         { *m = ImageState{} }
-func (m *ImageState) String() string { return proto.CompactTextString(m) }
-func (*ImageState) ProtoMessage()    {}
+func (x *ImageState) Reset() {
+	*x = ImageState{}
+	mi := &file_voltha_protos_device_proto_msgTypes[12]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ImageState) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ImageState) ProtoMessage() {}
+
+func (x *ImageState) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_device_proto_msgTypes[12]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ImageState.ProtoReflect.Descriptor instead.
 func (*ImageState) Descriptor() ([]byte, []int) {
-	return fileDescriptor_200940f73d155856, []int{12}
+	return file_voltha_protos_device_proto_rawDescGZIP(), []int{12}
 }
 
-func (m *ImageState) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_ImageState.Unmarshal(m, b)
-}
-func (m *ImageState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_ImageState.Marshal(b, m, deterministic)
-}
-func (m *ImageState) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_ImageState.Merge(m, src)
-}
-func (m *ImageState) XXX_Size() int {
-	return xxx_messageInfo_ImageState.Size(m)
-}
-func (m *ImageState) XXX_DiscardUnknown() {
-	xxx_messageInfo_ImageState.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_ImageState proto.InternalMessageInfo
-
-func (m *ImageState) GetVersion() string {
-	if m != nil {
-		return m.Version
+func (x *ImageState) GetVersion() string {
+	if x != nil {
+		return x.Version
 	}
 	return ""
 }
 
-func (m *ImageState) GetDownloadState() ImageState_ImageDownloadState {
-	if m != nil {
-		return m.DownloadState
+func (x *ImageState) GetDownloadState() ImageState_ImageDownloadState {
+	if x != nil {
+		return x.DownloadState
 	}
 	return ImageState_DOWNLOAD_UNKNOWN
 }
 
-func (m *ImageState) GetReason() ImageState_ImageFailureReason {
-	if m != nil {
-		return m.Reason
+func (x *ImageState) GetReason() ImageState_ImageFailureReason {
+	if x != nil {
+		return x.Reason
 	}
 	return ImageState_NO_ERROR
 }
 
-func (m *ImageState) GetImageState() ImageState_ImageActivationState {
-	if m != nil {
-		return m.ImageState
+func (x *ImageState) GetImageState() ImageState_ImageActivationState {
+	if x != nil {
+		return x.ImageState
 	}
 	return ImageState_IMAGE_UNKNOWN
 }
 
 type Port struct {
-	PortNo     uint32                  `protobuf:"varint,1,opt,name=port_no,json=portNo,proto3" json:"port_no,omitempty"`
-	Label      string                  `protobuf:"bytes,2,opt,name=label,proto3" json:"label,omitempty"`
-	Type       Port_PortType           `protobuf:"varint,3,opt,name=type,proto3,enum=device.Port_PortType" json:"type,omitempty"`
+	state      protoimpl.MessageState  `protogen:"open.v1"`
+	PortNo     uint32                  `protobuf:"varint,1,opt,name=port_no,json=portNo,proto3" json:"port_no,omitempty"`         // Device-unique port number
+	Label      string                  `protobuf:"bytes,2,opt,name=label,proto3" json:"label,omitempty"`                          // Arbitrary port label
+	Type       Port_PortType           `protobuf:"varint,3,opt,name=type,proto3,enum=device.Port_PortType" json:"type,omitempty"` //  Type of port
 	AdminState common.AdminState_Types `protobuf:"varint,5,opt,name=admin_state,json=adminState,proto3,enum=common.AdminState_Types" json:"admin_state,omitempty"`
 	OperStatus common.OperStatus_Types `protobuf:"varint,6,opt,name=oper_status,json=operStatus,proto3,enum=common.OperStatus_Types" json:"oper_status,omitempty"`
-	DeviceId   string                  `protobuf:"bytes,7,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
+	DeviceId   string                  `protobuf:"bytes,7,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"` // Unique .id of device that owns this port
 	Peers      []*Port_PeerPort        `protobuf:"bytes,8,rep,name=peers,proto3" json:"peers,omitempty"`
 	RxPackets  uint64                  `protobuf:"fixed64,9,opt,name=rx_packets,json=rxPackets,proto3" json:"rx_packets,omitempty"`
 	RxBytes    uint64                  `protobuf:"fixed64,10,opt,name=rx_bytes,json=rxBytes,proto3" json:"rx_bytes,omitempty"`
@@ -1398,223 +1675,186 @@
 	// ofp_port represents the characteristics of a port, e.g. hardware
 	// address and supported features.  This field is relevant only for
 	// UNI and NNI ports.   For PON ports, it can be left empty.
-	OfpPort              *openflow_13.OfpPort `protobuf:"bytes,15,opt,name=ofp_port,json=ofpPort,proto3" json:"ofp_port,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
-	XXX_unrecognized     []byte               `json:"-"`
-	XXX_sizecache        int32                `json:"-"`
+	OfpPort       *openflow_13.OfpPort `protobuf:"bytes,15,opt,name=ofp_port,json=ofpPort,proto3" json:"ofp_port,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *Port) Reset()         { *m = Port{} }
-func (m *Port) String() string { return proto.CompactTextString(m) }
-func (*Port) ProtoMessage()    {}
+func (x *Port) Reset() {
+	*x = Port{}
+	mi := &file_voltha_protos_device_proto_msgTypes[13]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *Port) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Port) ProtoMessage() {}
+
+func (x *Port) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_device_proto_msgTypes[13]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use Port.ProtoReflect.Descriptor instead.
 func (*Port) Descriptor() ([]byte, []int) {
-	return fileDescriptor_200940f73d155856, []int{13}
+	return file_voltha_protos_device_proto_rawDescGZIP(), []int{13}
 }
 
-func (m *Port) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_Port.Unmarshal(m, b)
-}
-func (m *Port) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_Port.Marshal(b, m, deterministic)
-}
-func (m *Port) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Port.Merge(m, src)
-}
-func (m *Port) XXX_Size() int {
-	return xxx_messageInfo_Port.Size(m)
-}
-func (m *Port) XXX_DiscardUnknown() {
-	xxx_messageInfo_Port.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_Port proto.InternalMessageInfo
-
-func (m *Port) GetPortNo() uint32 {
-	if m != nil {
-		return m.PortNo
+func (x *Port) GetPortNo() uint32 {
+	if x != nil {
+		return x.PortNo
 	}
 	return 0
 }
 
-func (m *Port) GetLabel() string {
-	if m != nil {
-		return m.Label
+func (x *Port) GetLabel() string {
+	if x != nil {
+		return x.Label
 	}
 	return ""
 }
 
-func (m *Port) GetType() Port_PortType {
-	if m != nil {
-		return m.Type
+func (x *Port) GetType() Port_PortType {
+	if x != nil {
+		return x.Type
 	}
 	return Port_UNKNOWN
 }
 
-func (m *Port) GetAdminState() common.AdminState_Types {
-	if m != nil {
-		return m.AdminState
+func (x *Port) GetAdminState() common.AdminState_Types {
+	if x != nil {
+		return x.AdminState
 	}
-	return common.AdminState_UNKNOWN
+	return common.AdminState_Types(0)
 }
 
-func (m *Port) GetOperStatus() common.OperStatus_Types {
-	if m != nil {
-		return m.OperStatus
+func (x *Port) GetOperStatus() common.OperStatus_Types {
+	if x != nil {
+		return x.OperStatus
 	}
-	return common.OperStatus_UNKNOWN
+	return common.OperStatus_Types(0)
 }
 
-func (m *Port) GetDeviceId() string {
-	if m != nil {
-		return m.DeviceId
+func (x *Port) GetDeviceId() string {
+	if x != nil {
+		return x.DeviceId
 	}
 	return ""
 }
 
-func (m *Port) GetPeers() []*Port_PeerPort {
-	if m != nil {
-		return m.Peers
+func (x *Port) GetPeers() []*Port_PeerPort {
+	if x != nil {
+		return x.Peers
 	}
 	return nil
 }
 
-func (m *Port) GetRxPackets() uint64 {
-	if m != nil {
-		return m.RxPackets
+func (x *Port) GetRxPackets() uint64 {
+	if x != nil {
+		return x.RxPackets
 	}
 	return 0
 }
 
-func (m *Port) GetRxBytes() uint64 {
-	if m != nil {
-		return m.RxBytes
+func (x *Port) GetRxBytes() uint64 {
+	if x != nil {
+		return x.RxBytes
 	}
 	return 0
 }
 
-func (m *Port) GetRxErrors() uint64 {
-	if m != nil {
-		return m.RxErrors
+func (x *Port) GetRxErrors() uint64 {
+	if x != nil {
+		return x.RxErrors
 	}
 	return 0
 }
 
-func (m *Port) GetTxPackets() uint64 {
-	if m != nil {
-		return m.TxPackets
+func (x *Port) GetTxPackets() uint64 {
+	if x != nil {
+		return x.TxPackets
 	}
 	return 0
 }
 
-func (m *Port) GetTxBytes() uint64 {
-	if m != nil {
-		return m.TxBytes
+func (x *Port) GetTxBytes() uint64 {
+	if x != nil {
+		return x.TxBytes
 	}
 	return 0
 }
 
-func (m *Port) GetTxErrors() uint64 {
-	if m != nil {
-		return m.TxErrors
+func (x *Port) GetTxErrors() uint64 {
+	if x != nil {
+		return x.TxErrors
 	}
 	return 0
 }
 
-func (m *Port) GetOfpPort() *openflow_13.OfpPort {
-	if m != nil {
-		return m.OfpPort
+func (x *Port) GetOfpPort() *openflow_13.OfpPort {
+	if x != nil {
+		return x.OfpPort
 	}
 	return nil
 }
 
-type Port_PeerPort struct {
-	DeviceId             string   `protobuf:"bytes,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
-	PortNo               uint32   `protobuf:"varint,2,opt,name=port_no,json=portNo,proto3" json:"port_no,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *Port_PeerPort) Reset()         { *m = Port_PeerPort{} }
-func (m *Port_PeerPort) String() string { return proto.CompactTextString(m) }
-func (*Port_PeerPort) ProtoMessage()    {}
-func (*Port_PeerPort) Descriptor() ([]byte, []int) {
-	return fileDescriptor_200940f73d155856, []int{13, 0}
-}
-
-func (m *Port_PeerPort) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_Port_PeerPort.Unmarshal(m, b)
-}
-func (m *Port_PeerPort) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_Port_PeerPort.Marshal(b, m, deterministic)
-}
-func (m *Port_PeerPort) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Port_PeerPort.Merge(m, src)
-}
-func (m *Port_PeerPort) XXX_Size() int {
-	return xxx_messageInfo_Port_PeerPort.Size(m)
-}
-func (m *Port_PeerPort) XXX_DiscardUnknown() {
-	xxx_messageInfo_Port_PeerPort.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_Port_PeerPort proto.InternalMessageInfo
-
-func (m *Port_PeerPort) GetDeviceId() string {
-	if m != nil {
-		return m.DeviceId
-	}
-	return ""
-}
-
-func (m *Port_PeerPort) GetPortNo() uint32 {
-	if m != nil {
-		return m.PortNo
-	}
-	return 0
-}
-
 type Ports struct {
-	Items                []*Port  `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Items         []*Port                `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *Ports) Reset()         { *m = Ports{} }
-func (m *Ports) String() string { return proto.CompactTextString(m) }
-func (*Ports) ProtoMessage()    {}
+func (x *Ports) Reset() {
+	*x = Ports{}
+	mi := &file_voltha_protos_device_proto_msgTypes[14]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *Ports) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Ports) ProtoMessage() {}
+
+func (x *Ports) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_device_proto_msgTypes[14]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use Ports.ProtoReflect.Descriptor instead.
 func (*Ports) Descriptor() ([]byte, []int) {
-	return fileDescriptor_200940f73d155856, []int{14}
+	return file_voltha_protos_device_proto_rawDescGZIP(), []int{14}
 }
 
-func (m *Ports) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_Ports.Unmarshal(m, b)
-}
-func (m *Ports) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_Ports.Marshal(b, m, deterministic)
-}
-func (m *Ports) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Ports.Merge(m, src)
-}
-func (m *Ports) XXX_Size() int {
-	return xxx_messageInfo_Ports.Size(m)
-}
-func (m *Ports) XXX_DiscardUnknown() {
-	xxx_messageInfo_Ports.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_Ports proto.InternalMessageInfo
-
-func (m *Ports) GetItems() []*Port {
-	if m != nil {
-		return m.Items
+func (x *Ports) GetItems() []*Port {
+	if x != nil {
+		return x.Items
 	}
 	return nil
 }
 
 // A Physical Device instance
 type Device struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
 	// Voltha's device identifier
 	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
 	// Device type, refers to one of the registered device types
@@ -1642,165 +1882,270 @@
 	// Device contact MAC address (format: "xx:xx:xx:xx:xx:xx")
 	MacAddress string `protobuf:"bytes,13,opt,name=mac_address,json=macAddress,proto3" json:"mac_address,omitempty"`
 	// Types that are valid to be assigned to Address:
+	//
 	//	*Device_Ipv4Address
 	//	*Device_Ipv6Address
 	//	*Device_HostAndPort
 	Address       isDevice_Address           `protobuf_oneof:"address"`
-	ExtraArgs     string                     `protobuf:"bytes,23,opt,name=extra_args,json=extraArgs,proto3" json:"extra_args,omitempty"`
+	ExtraArgs     string                     `protobuf:"bytes,23,opt,name=extra_args,json=extraArgs,proto3" json:"extra_args,omitempty"` // Used to pass additional device specific arguments
 	ProxyAddress  *Device_ProxyAddress       `protobuf:"bytes,19,opt,name=proxy_address,json=proxyAddress,proto3" json:"proxy_address,omitempty"`
 	AdminState    common.AdminState_Types    `protobuf:"varint,16,opt,name=admin_state,json=adminState,proto3,enum=common.AdminState_Types" json:"admin_state,omitempty"`
 	OperStatus    common.OperStatus_Types    `protobuf:"varint,17,opt,name=oper_status,json=operStatus,proto3,enum=common.OperStatus_Types" json:"oper_status,omitempty"`
-	Reason        string                     `protobuf:"bytes,22,opt,name=reason,proto3" json:"reason,omitempty"`
+	Reason        string                     `protobuf:"bytes,22,opt,name=reason,proto3" json:"reason,omitempty"` //  Used in FAILED state
 	ConnectStatus common.ConnectStatus_Types `protobuf:"varint,18,opt,name=connect_status,json=connectStatus,proto3,enum=common.ConnectStatus_Types" json:"connect_status,omitempty"`
 	// Device type specific attributes
-	Custom *any.Any `protobuf:"bytes,64,opt,name=custom,proto3" json:"custom,omitempty"`
+	Custom *anypb.Any `protobuf:"bytes,64,opt,name=custom,proto3" json:"custom,omitempty"`
 	// PmConfigs type
-	PmConfigs            *PmConfigs       `protobuf:"bytes,131,opt,name=pm_configs,json=pmConfigs,proto3" json:"pm_configs,omitempty"`
-	ImageDownloads       []*ImageDownload `protobuf:"bytes,133,rep,name=image_downloads,json=imageDownloads,proto3" json:"image_downloads,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
-	XXX_unrecognized     []byte           `json:"-"`
-	XXX_sizecache        int32            `json:"-"`
+	PmConfigs      *PmConfigs       `protobuf:"bytes,131,opt,name=pm_configs,json=pmConfigs,proto3" json:"pm_configs,omitempty"`
+	ImageDownloads []*ImageDownload `protobuf:"bytes,133,rep,name=image_downloads,json=imageDownloads,proto3" json:"image_downloads,omitempty"`
+	unknownFields  protoimpl.UnknownFields
+	sizeCache      protoimpl.SizeCache
 }
 
-func (m *Device) Reset()         { *m = Device{} }
-func (m *Device) String() string { return proto.CompactTextString(m) }
-func (*Device) ProtoMessage()    {}
+func (x *Device) Reset() {
+	*x = Device{}
+	mi := &file_voltha_protos_device_proto_msgTypes[15]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *Device) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Device) ProtoMessage() {}
+
+func (x *Device) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_device_proto_msgTypes[15]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use Device.ProtoReflect.Descriptor instead.
 func (*Device) Descriptor() ([]byte, []int) {
-	return fileDescriptor_200940f73d155856, []int{15}
+	return file_voltha_protos_device_proto_rawDescGZIP(), []int{15}
 }
 
-func (m *Device) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_Device.Unmarshal(m, b)
-}
-func (m *Device) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_Device.Marshal(b, m, deterministic)
-}
-func (m *Device) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Device.Merge(m, src)
-}
-func (m *Device) XXX_Size() int {
-	return xxx_messageInfo_Device.Size(m)
-}
-func (m *Device) XXX_DiscardUnknown() {
-	xxx_messageInfo_Device.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_Device proto.InternalMessageInfo
-
-func (m *Device) GetId() string {
-	if m != nil {
-		return m.Id
+func (x *Device) GetId() string {
+	if x != nil {
+		return x.Id
 	}
 	return ""
 }
 
-func (m *Device) GetType() string {
-	if m != nil {
-		return m.Type
+func (x *Device) GetType() string {
+	if x != nil {
+		return x.Type
 	}
 	return ""
 }
 
-func (m *Device) GetRoot() bool {
-	if m != nil {
-		return m.Root
+func (x *Device) GetRoot() bool {
+	if x != nil {
+		return x.Root
 	}
 	return false
 }
 
-func (m *Device) GetParentId() string {
-	if m != nil {
-		return m.ParentId
+func (x *Device) GetParentId() string {
+	if x != nil {
+		return x.ParentId
 	}
 	return ""
 }
 
-func (m *Device) GetParentPortNo() uint32 {
-	if m != nil {
-		return m.ParentPortNo
+func (x *Device) GetParentPortNo() uint32 {
+	if x != nil {
+		return x.ParentPortNo
 	}
 	return 0
 }
 
-func (m *Device) GetVendor() string {
-	if m != nil {
-		return m.Vendor
+func (x *Device) GetVendor() string {
+	if x != nil {
+		return x.Vendor
 	}
 	return ""
 }
 
-func (m *Device) GetModel() string {
-	if m != nil {
-		return m.Model
+func (x *Device) GetModel() string {
+	if x != nil {
+		return x.Model
 	}
 	return ""
 }
 
-func (m *Device) GetHardwareVersion() string {
-	if m != nil {
-		return m.HardwareVersion
+func (x *Device) GetHardwareVersion() string {
+	if x != nil {
+		return x.HardwareVersion
 	}
 	return ""
 }
 
-func (m *Device) GetFirmwareVersion() string {
-	if m != nil {
-		return m.FirmwareVersion
+func (x *Device) GetFirmwareVersion() string {
+	if x != nil {
+		return x.FirmwareVersion
 	}
 	return ""
 }
 
-func (m *Device) GetImages() *Images {
-	if m != nil {
-		return m.Images
+func (x *Device) GetImages() *Images {
+	if x != nil {
+		return x.Images
 	}
 	return nil
 }
 
-func (m *Device) GetSerialNumber() string {
-	if m != nil {
-		return m.SerialNumber
+func (x *Device) GetSerialNumber() string {
+	if x != nil {
+		return x.SerialNumber
 	}
 	return ""
 }
 
-func (m *Device) GetVendorId() string {
-	if m != nil {
-		return m.VendorId
+func (x *Device) GetVendorId() string {
+	if x != nil {
+		return x.VendorId
 	}
 	return ""
 }
 
-func (m *Device) GetAdapterEndpoint() string {
-	if m != nil {
-		return m.AdapterEndpoint
+func (x *Device) GetAdapterEndpoint() string {
+	if x != nil {
+		return x.AdapterEndpoint
 	}
 	return ""
 }
 
-func (m *Device) GetVlan() uint32 {
-	if m != nil {
-		return m.Vlan
+func (x *Device) GetVlan() uint32 {
+	if x != nil {
+		return x.Vlan
 	}
 	return 0
 }
 
-func (m *Device) GetMacAddress() string {
-	if m != nil {
-		return m.MacAddress
+func (x *Device) GetMacAddress() string {
+	if x != nil {
+		return x.MacAddress
 	}
 	return ""
 }
 
+func (x *Device) GetAddress() isDevice_Address {
+	if x != nil {
+		return x.Address
+	}
+	return nil
+}
+
+func (x *Device) GetIpv4Address() string {
+	if x != nil {
+		if x, ok := x.Address.(*Device_Ipv4Address); ok {
+			return x.Ipv4Address
+		}
+	}
+	return ""
+}
+
+func (x *Device) GetIpv6Address() string {
+	if x != nil {
+		if x, ok := x.Address.(*Device_Ipv6Address); ok {
+			return x.Ipv6Address
+		}
+	}
+	return ""
+}
+
+func (x *Device) GetHostAndPort() string {
+	if x != nil {
+		if x, ok := x.Address.(*Device_HostAndPort); ok {
+			return x.HostAndPort
+		}
+	}
+	return ""
+}
+
+func (x *Device) GetExtraArgs() string {
+	if x != nil {
+		return x.ExtraArgs
+	}
+	return ""
+}
+
+func (x *Device) GetProxyAddress() *Device_ProxyAddress {
+	if x != nil {
+		return x.ProxyAddress
+	}
+	return nil
+}
+
+func (x *Device) GetAdminState() common.AdminState_Types {
+	if x != nil {
+		return x.AdminState
+	}
+	return common.AdminState_Types(0)
+}
+
+func (x *Device) GetOperStatus() common.OperStatus_Types {
+	if x != nil {
+		return x.OperStatus
+	}
+	return common.OperStatus_Types(0)
+}
+
+func (x *Device) GetReason() string {
+	if x != nil {
+		return x.Reason
+	}
+	return ""
+}
+
+func (x *Device) GetConnectStatus() common.ConnectStatus_Types {
+	if x != nil {
+		return x.ConnectStatus
+	}
+	return common.ConnectStatus_Types(0)
+}
+
+func (x *Device) GetCustom() *anypb.Any {
+	if x != nil {
+		return x.Custom
+	}
+	return nil
+}
+
+func (x *Device) GetPmConfigs() *PmConfigs {
+	if x != nil {
+		return x.PmConfigs
+	}
+	return nil
+}
+
+func (x *Device) GetImageDownloads() []*ImageDownload {
+	if x != nil {
+		return x.ImageDownloads
+	}
+	return nil
+}
+
 type isDevice_Address interface {
 	isDevice_Address()
 }
 
 type Device_Ipv4Address struct {
+	// Device contact IPv4 address (format: "a.b.c.d" or can use hostname too)
 	Ipv4Address string `protobuf:"bytes,14,opt,name=ipv4_address,json=ipv4Address,proto3,oneof"`
 }
 
 type Device_Ipv6Address struct {
+	// Device contact IPv6 address using the canonical string form
+	// ("xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx")
 	Ipv6Address string `protobuf:"bytes,15,opt,name=ipv6_address,json=ipv6Address,proto3,oneof"`
 }
 
@@ -1814,656 +2159,536 @@
 
 func (*Device_HostAndPort) isDevice_Address() {}
 
-func (m *Device) GetAddress() isDevice_Address {
-	if m != nil {
-		return m.Address
-	}
-	return nil
-}
-
-func (m *Device) GetIpv4Address() string {
-	if x, ok := m.GetAddress().(*Device_Ipv4Address); ok {
-		return x.Ipv4Address
-	}
-	return ""
-}
-
-func (m *Device) GetIpv6Address() string {
-	if x, ok := m.GetAddress().(*Device_Ipv6Address); ok {
-		return x.Ipv6Address
-	}
-	return ""
-}
-
-func (m *Device) GetHostAndPort() string {
-	if x, ok := m.GetAddress().(*Device_HostAndPort); ok {
-		return x.HostAndPort
-	}
-	return ""
-}
-
-func (m *Device) GetExtraArgs() string {
-	if m != nil {
-		return m.ExtraArgs
-	}
-	return ""
-}
-
-func (m *Device) GetProxyAddress() *Device_ProxyAddress {
-	if m != nil {
-		return m.ProxyAddress
-	}
-	return nil
-}
-
-func (m *Device) GetAdminState() common.AdminState_Types {
-	if m != nil {
-		return m.AdminState
-	}
-	return common.AdminState_UNKNOWN
-}
-
-func (m *Device) GetOperStatus() common.OperStatus_Types {
-	if m != nil {
-		return m.OperStatus
-	}
-	return common.OperStatus_UNKNOWN
-}
-
-func (m *Device) GetReason() string {
-	if m != nil {
-		return m.Reason
-	}
-	return ""
-}
-
-func (m *Device) GetConnectStatus() common.ConnectStatus_Types {
-	if m != nil {
-		return m.ConnectStatus
-	}
-	return common.ConnectStatus_UNKNOWN
-}
-
-func (m *Device) GetCustom() *any.Any {
-	if m != nil {
-		return m.Custom
-	}
-	return nil
-}
-
-func (m *Device) GetPmConfigs() *PmConfigs {
-	if m != nil {
-		return m.PmConfigs
-	}
-	return nil
-}
-
-func (m *Device) GetImageDownloads() []*ImageDownload {
-	if m != nil {
-		return m.ImageDownloads
-	}
-	return nil
-}
-
-// XXX_OneofWrappers is for the internal use of the proto package.
-func (*Device) XXX_OneofWrappers() []interface{} {
-	return []interface{}{
-		(*Device_Ipv4Address)(nil),
-		(*Device_Ipv6Address)(nil),
-		(*Device_HostAndPort)(nil),
-	}
-}
-
-type Device_ProxyAddress struct {
-	DeviceId             string   `protobuf:"bytes,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
-	DeviceType           string   `protobuf:"bytes,2,opt,name=device_type,json=deviceType,proto3" json:"device_type,omitempty"`
-	ChannelId            uint32   `protobuf:"varint,3,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"`
-	ChannelGroupId       uint32   `protobuf:"varint,4,opt,name=channel_group_id,json=channelGroupId,proto3" json:"channel_group_id,omitempty"`
-	ChannelTermination   string   `protobuf:"bytes,5,opt,name=channel_termination,json=channelTermination,proto3" json:"channel_termination,omitempty"`
-	OnuId                uint32   `protobuf:"varint,6,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
-	OnuSessionId         uint32   `protobuf:"varint,7,opt,name=onu_session_id,json=onuSessionId,proto3" json:"onu_session_id,omitempty"`
-	AdapterEndpoint      string   `protobuf:"bytes,8,opt,name=adapter_endpoint,json=adapterEndpoint,proto3" json:"adapter_endpoint,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *Device_ProxyAddress) Reset()         { *m = Device_ProxyAddress{} }
-func (m *Device_ProxyAddress) String() string { return proto.CompactTextString(m) }
-func (*Device_ProxyAddress) ProtoMessage()    {}
-func (*Device_ProxyAddress) Descriptor() ([]byte, []int) {
-	return fileDescriptor_200940f73d155856, []int{15, 0}
-}
-
-func (m *Device_ProxyAddress) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_Device_ProxyAddress.Unmarshal(m, b)
-}
-func (m *Device_ProxyAddress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_Device_ProxyAddress.Marshal(b, m, deterministic)
-}
-func (m *Device_ProxyAddress) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Device_ProxyAddress.Merge(m, src)
-}
-func (m *Device_ProxyAddress) XXX_Size() int {
-	return xxx_messageInfo_Device_ProxyAddress.Size(m)
-}
-func (m *Device_ProxyAddress) XXX_DiscardUnknown() {
-	xxx_messageInfo_Device_ProxyAddress.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_Device_ProxyAddress proto.InternalMessageInfo
-
-func (m *Device_ProxyAddress) GetDeviceId() string {
-	if m != nil {
-		return m.DeviceId
-	}
-	return ""
-}
-
-func (m *Device_ProxyAddress) GetDeviceType() string {
-	if m != nil {
-		return m.DeviceType
-	}
-	return ""
-}
-
-func (m *Device_ProxyAddress) GetChannelId() uint32 {
-	if m != nil {
-		return m.ChannelId
-	}
-	return 0
-}
-
-func (m *Device_ProxyAddress) GetChannelGroupId() uint32 {
-	if m != nil {
-		return m.ChannelGroupId
-	}
-	return 0
-}
-
-func (m *Device_ProxyAddress) GetChannelTermination() string {
-	if m != nil {
-		return m.ChannelTermination
-	}
-	return ""
-}
-
-func (m *Device_ProxyAddress) GetOnuId() uint32 {
-	if m != nil {
-		return m.OnuId
-	}
-	return 0
-}
-
-func (m *Device_ProxyAddress) GetOnuSessionId() uint32 {
-	if m != nil {
-		return m.OnuSessionId
-	}
-	return 0
-}
-
-func (m *Device_ProxyAddress) GetAdapterEndpoint() string {
-	if m != nil {
-		return m.AdapterEndpoint
-	}
-	return ""
-}
-
 type DeviceImageDownloadRequest struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
 	// Device Id
 	// allows for operations on multiple devices.
 	DeviceId []*common.ID `protobuf:"bytes,1,rep,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
-	//The image for the device containing all the information
+	// The image for the device containing all the information
 	Image *Image `protobuf:"bytes,2,opt,name=image,proto3" json:"image,omitempty"`
-	//Activate the image if the download to the device is successful
+	// Activate the image if the download to the device is successful
 	ActivateOnSuccess bool `protobuf:"varint,3,opt,name=activateOnSuccess,proto3" json:"activateOnSuccess,omitempty"`
-	//Automatically commit the image if the activation on the device is successful
-	CommitOnSuccess      bool     `protobuf:"varint,4,opt,name=commitOnSuccess,proto3" json:"commitOnSuccess,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	// Automatically commit the image if the activation on the device is successful
+	CommitOnSuccess bool `protobuf:"varint,4,opt,name=commitOnSuccess,proto3" json:"commitOnSuccess,omitempty"`
+	unknownFields   protoimpl.UnknownFields
+	sizeCache       protoimpl.SizeCache
 }
 
-func (m *DeviceImageDownloadRequest) Reset()         { *m = DeviceImageDownloadRequest{} }
-func (m *DeviceImageDownloadRequest) String() string { return proto.CompactTextString(m) }
-func (*DeviceImageDownloadRequest) ProtoMessage()    {}
+func (x *DeviceImageDownloadRequest) Reset() {
+	*x = DeviceImageDownloadRequest{}
+	mi := &file_voltha_protos_device_proto_msgTypes[16]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *DeviceImageDownloadRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeviceImageDownloadRequest) ProtoMessage() {}
+
+func (x *DeviceImageDownloadRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_device_proto_msgTypes[16]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeviceImageDownloadRequest.ProtoReflect.Descriptor instead.
 func (*DeviceImageDownloadRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_200940f73d155856, []int{16}
+	return file_voltha_protos_device_proto_rawDescGZIP(), []int{16}
 }
 
-func (m *DeviceImageDownloadRequest) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_DeviceImageDownloadRequest.Unmarshal(m, b)
-}
-func (m *DeviceImageDownloadRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_DeviceImageDownloadRequest.Marshal(b, m, deterministic)
-}
-func (m *DeviceImageDownloadRequest) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_DeviceImageDownloadRequest.Merge(m, src)
-}
-func (m *DeviceImageDownloadRequest) XXX_Size() int {
-	return xxx_messageInfo_DeviceImageDownloadRequest.Size(m)
-}
-func (m *DeviceImageDownloadRequest) XXX_DiscardUnknown() {
-	xxx_messageInfo_DeviceImageDownloadRequest.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_DeviceImageDownloadRequest proto.InternalMessageInfo
-
-func (m *DeviceImageDownloadRequest) GetDeviceId() []*common.ID {
-	if m != nil {
-		return m.DeviceId
+func (x *DeviceImageDownloadRequest) GetDeviceId() []*common.ID {
+	if x != nil {
+		return x.DeviceId
 	}
 	return nil
 }
 
-func (m *DeviceImageDownloadRequest) GetImage() *Image {
-	if m != nil {
-		return m.Image
+func (x *DeviceImageDownloadRequest) GetImage() *Image {
+	if x != nil {
+		return x.Image
 	}
 	return nil
 }
 
-func (m *DeviceImageDownloadRequest) GetActivateOnSuccess() bool {
-	if m != nil {
-		return m.ActivateOnSuccess
+func (x *DeviceImageDownloadRequest) GetActivateOnSuccess() bool {
+	if x != nil {
+		return x.ActivateOnSuccess
 	}
 	return false
 }
 
-func (m *DeviceImageDownloadRequest) GetCommitOnSuccess() bool {
-	if m != nil {
-		return m.CommitOnSuccess
+func (x *DeviceImageDownloadRequest) GetCommitOnSuccess() bool {
+	if x != nil {
+		return x.CommitOnSuccess
 	}
 	return false
 }
 
 type DeviceImageRequest struct {
-	//Device Id
-	//allows for operations on multiple adapters.
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// Device Id
+	// allows for operations on multiple adapters.
 	DeviceId []*common.ID `protobuf:"bytes,1,rep,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
 	// Image Version, this is the sole identifier of the image. it's the vendor specified OMCI version
 	// must be known at the time of initiating a download, activate, commit image on an onu.
 	Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
-	//Automatically commit the image if the activation on the device is successful
-	CommitOnSuccess      bool     `protobuf:"varint,3,opt,name=commitOnSuccess,proto3" json:"commitOnSuccess,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	// Automatically commit the image if the activation on the device is successful
+	CommitOnSuccess bool `protobuf:"varint,3,opt,name=commitOnSuccess,proto3" json:"commitOnSuccess,omitempty"`
+	unknownFields   protoimpl.UnknownFields
+	sizeCache       protoimpl.SizeCache
 }
 
-func (m *DeviceImageRequest) Reset()         { *m = DeviceImageRequest{} }
-func (m *DeviceImageRequest) String() string { return proto.CompactTextString(m) }
-func (*DeviceImageRequest) ProtoMessage()    {}
+func (x *DeviceImageRequest) Reset() {
+	*x = DeviceImageRequest{}
+	mi := &file_voltha_protos_device_proto_msgTypes[17]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *DeviceImageRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeviceImageRequest) ProtoMessage() {}
+
+func (x *DeviceImageRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_device_proto_msgTypes[17]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeviceImageRequest.ProtoReflect.Descriptor instead.
 func (*DeviceImageRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_200940f73d155856, []int{17}
+	return file_voltha_protos_device_proto_rawDescGZIP(), []int{17}
 }
 
-func (m *DeviceImageRequest) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_DeviceImageRequest.Unmarshal(m, b)
-}
-func (m *DeviceImageRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_DeviceImageRequest.Marshal(b, m, deterministic)
-}
-func (m *DeviceImageRequest) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_DeviceImageRequest.Merge(m, src)
-}
-func (m *DeviceImageRequest) XXX_Size() int {
-	return xxx_messageInfo_DeviceImageRequest.Size(m)
-}
-func (m *DeviceImageRequest) XXX_DiscardUnknown() {
-	xxx_messageInfo_DeviceImageRequest.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_DeviceImageRequest proto.InternalMessageInfo
-
-func (m *DeviceImageRequest) GetDeviceId() []*common.ID {
-	if m != nil {
-		return m.DeviceId
+func (x *DeviceImageRequest) GetDeviceId() []*common.ID {
+	if x != nil {
+		return x.DeviceId
 	}
 	return nil
 }
 
-func (m *DeviceImageRequest) GetVersion() string {
-	if m != nil {
-		return m.Version
+func (x *DeviceImageRequest) GetVersion() string {
+	if x != nil {
+		return x.Version
 	}
 	return ""
 }
 
-func (m *DeviceImageRequest) GetCommitOnSuccess() bool {
-	if m != nil {
-		return m.CommitOnSuccess
+func (x *DeviceImageRequest) GetCommitOnSuccess() bool {
+	if x != nil {
+		return x.CommitOnSuccess
 	}
 	return false
 }
 
 type DeviceImageResponse struct {
-	//Image state for the different devices
-	DeviceImageStates    []*DeviceImageState `protobuf:"bytes,1,rep,name=device_image_states,json=deviceImageStates,proto3" json:"device_image_states,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
-	XXX_unrecognized     []byte              `json:"-"`
-	XXX_sizecache        int32               `json:"-"`
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// Image state for the different devices
+	DeviceImageStates []*DeviceImageState `protobuf:"bytes,1,rep,name=device_image_states,json=deviceImageStates,proto3" json:"device_image_states,omitempty"`
+	unknownFields     protoimpl.UnknownFields
+	sizeCache         protoimpl.SizeCache
 }
 
-func (m *DeviceImageResponse) Reset()         { *m = DeviceImageResponse{} }
-func (m *DeviceImageResponse) String() string { return proto.CompactTextString(m) }
-func (*DeviceImageResponse) ProtoMessage()    {}
+func (x *DeviceImageResponse) Reset() {
+	*x = DeviceImageResponse{}
+	mi := &file_voltha_protos_device_proto_msgTypes[18]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *DeviceImageResponse) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeviceImageResponse) ProtoMessage() {}
+
+func (x *DeviceImageResponse) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_device_proto_msgTypes[18]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeviceImageResponse.ProtoReflect.Descriptor instead.
 func (*DeviceImageResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_200940f73d155856, []int{18}
+	return file_voltha_protos_device_proto_rawDescGZIP(), []int{18}
 }
 
-func (m *DeviceImageResponse) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_DeviceImageResponse.Unmarshal(m, b)
-}
-func (m *DeviceImageResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_DeviceImageResponse.Marshal(b, m, deterministic)
-}
-func (m *DeviceImageResponse) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_DeviceImageResponse.Merge(m, src)
-}
-func (m *DeviceImageResponse) XXX_Size() int {
-	return xxx_messageInfo_DeviceImageResponse.Size(m)
-}
-func (m *DeviceImageResponse) XXX_DiscardUnknown() {
-	xxx_messageInfo_DeviceImageResponse.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_DeviceImageResponse proto.InternalMessageInfo
-
-func (m *DeviceImageResponse) GetDeviceImageStates() []*DeviceImageState {
-	if m != nil {
-		return m.DeviceImageStates
+func (x *DeviceImageResponse) GetDeviceImageStates() []*DeviceImageState {
+	if x != nil {
+		return x.DeviceImageStates
 	}
 	return nil
 }
 
 // Device Self Test Response
 type SelfTestResponse struct {
-	Result               SelfTestResponse_SelfTestResult `protobuf:"varint,1,opt,name=result,proto3,enum=device.SelfTestResponse_SelfTestResult" json:"result,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                        `json:"-"`
-	XXX_unrecognized     []byte                          `json:"-"`
-	XXX_sizecache        int32                           `json:"-"`
+	state         protoimpl.MessageState          `protogen:"open.v1"`
+	Result        SelfTestResponse_SelfTestResult `protobuf:"varint,1,opt,name=result,proto3,enum=device.SelfTestResponse_SelfTestResult" json:"result,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *SelfTestResponse) Reset()         { *m = SelfTestResponse{} }
-func (m *SelfTestResponse) String() string { return proto.CompactTextString(m) }
-func (*SelfTestResponse) ProtoMessage()    {}
+func (x *SelfTestResponse) Reset() {
+	*x = SelfTestResponse{}
+	mi := &file_voltha_protos_device_proto_msgTypes[19]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *SelfTestResponse) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SelfTestResponse) ProtoMessage() {}
+
+func (x *SelfTestResponse) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_device_proto_msgTypes[19]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SelfTestResponse.ProtoReflect.Descriptor instead.
 func (*SelfTestResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_200940f73d155856, []int{19}
+	return file_voltha_protos_device_proto_rawDescGZIP(), []int{19}
 }
 
-func (m *SelfTestResponse) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_SelfTestResponse.Unmarshal(m, b)
-}
-func (m *SelfTestResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_SelfTestResponse.Marshal(b, m, deterministic)
-}
-func (m *SelfTestResponse) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_SelfTestResponse.Merge(m, src)
-}
-func (m *SelfTestResponse) XXX_Size() int {
-	return xxx_messageInfo_SelfTestResponse.Size(m)
-}
-func (m *SelfTestResponse) XXX_DiscardUnknown() {
-	xxx_messageInfo_SelfTestResponse.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_SelfTestResponse proto.InternalMessageInfo
-
-func (m *SelfTestResponse) GetResult() SelfTestResponse_SelfTestResult {
-	if m != nil {
-		return m.Result
+func (x *SelfTestResponse) GetResult() SelfTestResponse_SelfTestResult {
+	if x != nil {
+		return x.Result
 	}
 	return SelfTestResponse_SUCCESS
 }
 
 type Devices struct {
-	Items                []*Device `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
-	XXX_unrecognized     []byte    `json:"-"`
-	XXX_sizecache        int32     `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Items         []*Device              `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *Devices) Reset()         { *m = Devices{} }
-func (m *Devices) String() string { return proto.CompactTextString(m) }
-func (*Devices) ProtoMessage()    {}
+func (x *Devices) Reset() {
+	*x = Devices{}
+	mi := &file_voltha_protos_device_proto_msgTypes[20]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *Devices) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Devices) ProtoMessage() {}
+
+func (x *Devices) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_device_proto_msgTypes[20]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use Devices.ProtoReflect.Descriptor instead.
 func (*Devices) Descriptor() ([]byte, []int) {
-	return fileDescriptor_200940f73d155856, []int{20}
+	return file_voltha_protos_device_proto_rawDescGZIP(), []int{20}
 }
 
-func (m *Devices) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_Devices.Unmarshal(m, b)
-}
-func (m *Devices) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_Devices.Marshal(b, m, deterministic)
-}
-func (m *Devices) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Devices.Merge(m, src)
-}
-func (m *Devices) XXX_Size() int {
-	return xxx_messageInfo_Devices.Size(m)
-}
-func (m *Devices) XXX_DiscardUnknown() {
-	xxx_messageInfo_Devices.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_Devices proto.InternalMessageInfo
-
-func (m *Devices) GetItems() []*Device {
-	if m != nil {
-		return m.Items
+func (x *Devices) GetItems() []*Device {
+	if x != nil {
+		return x.Items
 	}
 	return nil
 }
 
 type SimulateAlarmRequest struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
 	// Device Identifier
-	Id                   string                             `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
-	Indicator            string                             `protobuf:"bytes,2,opt,name=indicator,proto3" json:"indicator,omitempty"`
-	IntfId               string                             `protobuf:"bytes,3,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
-	PortTypeName         string                             `protobuf:"bytes,4,opt,name=port_type_name,json=portTypeName,proto3" json:"port_type_name,omitempty"`
-	OnuDeviceId          string                             `protobuf:"bytes,5,opt,name=onu_device_id,json=onuDeviceId,proto3" json:"onu_device_id,omitempty"`
-	InverseBitErrorRate  int32                              `protobuf:"varint,6,opt,name=inverse_bit_error_rate,json=inverseBitErrorRate,proto3" json:"inverse_bit_error_rate,omitempty"`
-	Drift                int32                              `protobuf:"varint,7,opt,name=drift,proto3" json:"drift,omitempty"`
-	NewEqd               int32                              `protobuf:"varint,8,opt,name=new_eqd,json=newEqd,proto3" json:"new_eqd,omitempty"`
-	OnuSerialNumber      string                             `protobuf:"bytes,9,opt,name=onu_serial_number,json=onuSerialNumber,proto3" json:"onu_serial_number,omitempty"`
-	Operation            SimulateAlarmRequest_OperationType `protobuf:"varint,10,opt,name=operation,proto3,enum=device.SimulateAlarmRequest_OperationType" json:"operation,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                           `json:"-"`
-	XXX_unrecognized     []byte                             `json:"-"`
-	XXX_sizecache        int32                              `json:"-"`
+	Id                  string                             `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+	Indicator           string                             `protobuf:"bytes,2,opt,name=indicator,proto3" json:"indicator,omitempty"`
+	IntfId              string                             `protobuf:"bytes,3,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
+	PortTypeName        string                             `protobuf:"bytes,4,opt,name=port_type_name,json=portTypeName,proto3" json:"port_type_name,omitempty"`
+	OnuDeviceId         string                             `protobuf:"bytes,5,opt,name=onu_device_id,json=onuDeviceId,proto3" json:"onu_device_id,omitempty"`
+	InverseBitErrorRate int32                              `protobuf:"varint,6,opt,name=inverse_bit_error_rate,json=inverseBitErrorRate,proto3" json:"inverse_bit_error_rate,omitempty"`
+	Drift               int32                              `protobuf:"varint,7,opt,name=drift,proto3" json:"drift,omitempty"`
+	NewEqd              int32                              `protobuf:"varint,8,opt,name=new_eqd,json=newEqd,proto3" json:"new_eqd,omitempty"`
+	OnuSerialNumber     string                             `protobuf:"bytes,9,opt,name=onu_serial_number,json=onuSerialNumber,proto3" json:"onu_serial_number,omitempty"`
+	Operation           SimulateAlarmRequest_OperationType `protobuf:"varint,10,opt,name=operation,proto3,enum=device.SimulateAlarmRequest_OperationType" json:"operation,omitempty"`
+	unknownFields       protoimpl.UnknownFields
+	sizeCache           protoimpl.SizeCache
 }
 
-func (m *SimulateAlarmRequest) Reset()         { *m = SimulateAlarmRequest{} }
-func (m *SimulateAlarmRequest) String() string { return proto.CompactTextString(m) }
-func (*SimulateAlarmRequest) ProtoMessage()    {}
+func (x *SimulateAlarmRequest) Reset() {
+	*x = SimulateAlarmRequest{}
+	mi := &file_voltha_protos_device_proto_msgTypes[21]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *SimulateAlarmRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SimulateAlarmRequest) ProtoMessage() {}
+
+func (x *SimulateAlarmRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_device_proto_msgTypes[21]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use SimulateAlarmRequest.ProtoReflect.Descriptor instead.
 func (*SimulateAlarmRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_200940f73d155856, []int{21}
+	return file_voltha_protos_device_proto_rawDescGZIP(), []int{21}
 }
 
-func (m *SimulateAlarmRequest) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_SimulateAlarmRequest.Unmarshal(m, b)
-}
-func (m *SimulateAlarmRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_SimulateAlarmRequest.Marshal(b, m, deterministic)
-}
-func (m *SimulateAlarmRequest) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_SimulateAlarmRequest.Merge(m, src)
-}
-func (m *SimulateAlarmRequest) XXX_Size() int {
-	return xxx_messageInfo_SimulateAlarmRequest.Size(m)
-}
-func (m *SimulateAlarmRequest) XXX_DiscardUnknown() {
-	xxx_messageInfo_SimulateAlarmRequest.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_SimulateAlarmRequest proto.InternalMessageInfo
-
-func (m *SimulateAlarmRequest) GetId() string {
-	if m != nil {
-		return m.Id
+func (x *SimulateAlarmRequest) GetId() string {
+	if x != nil {
+		return x.Id
 	}
 	return ""
 }
 
-func (m *SimulateAlarmRequest) GetIndicator() string {
-	if m != nil {
-		return m.Indicator
+func (x *SimulateAlarmRequest) GetIndicator() string {
+	if x != nil {
+		return x.Indicator
 	}
 	return ""
 }
 
-func (m *SimulateAlarmRequest) GetIntfId() string {
-	if m != nil {
-		return m.IntfId
+func (x *SimulateAlarmRequest) GetIntfId() string {
+	if x != nil {
+		return x.IntfId
 	}
 	return ""
 }
 
-func (m *SimulateAlarmRequest) GetPortTypeName() string {
-	if m != nil {
-		return m.PortTypeName
+func (x *SimulateAlarmRequest) GetPortTypeName() string {
+	if x != nil {
+		return x.PortTypeName
 	}
 	return ""
 }
 
-func (m *SimulateAlarmRequest) GetOnuDeviceId() string {
-	if m != nil {
-		return m.OnuDeviceId
+func (x *SimulateAlarmRequest) GetOnuDeviceId() string {
+	if x != nil {
+		return x.OnuDeviceId
 	}
 	return ""
 }
 
-func (m *SimulateAlarmRequest) GetInverseBitErrorRate() int32 {
-	if m != nil {
-		return m.InverseBitErrorRate
+func (x *SimulateAlarmRequest) GetInverseBitErrorRate() int32 {
+	if x != nil {
+		return x.InverseBitErrorRate
 	}
 	return 0
 }
 
-func (m *SimulateAlarmRequest) GetDrift() int32 {
-	if m != nil {
-		return m.Drift
+func (x *SimulateAlarmRequest) GetDrift() int32 {
+	if x != nil {
+		return x.Drift
 	}
 	return 0
 }
 
-func (m *SimulateAlarmRequest) GetNewEqd() int32 {
-	if m != nil {
-		return m.NewEqd
+func (x *SimulateAlarmRequest) GetNewEqd() int32 {
+	if x != nil {
+		return x.NewEqd
 	}
 	return 0
 }
 
-func (m *SimulateAlarmRequest) GetOnuSerialNumber() string {
-	if m != nil {
-		return m.OnuSerialNumber
+func (x *SimulateAlarmRequest) GetOnuSerialNumber() string {
+	if x != nil {
+		return x.OnuSerialNumber
 	}
 	return ""
 }
 
-func (m *SimulateAlarmRequest) GetOperation() SimulateAlarmRequest_OperationType {
-	if m != nil {
-		return m.Operation
+func (x *SimulateAlarmRequest) GetOperation() SimulateAlarmRequest_OperationType {
+	if x != nil {
+		return x.Operation
 	}
 	return SimulateAlarmRequest_RAISE
 }
 
 // Represents a serialNumber of a  child device on a olt pon port
 type OnuSerialNumberOnOLTPon struct {
-	OltDeviceId          *common.ID `protobuf:"bytes,1,opt,name=olt_device_id,json=oltDeviceId,proto3" json:"olt_device_id,omitempty"`
-	Port                 *Port      `protobuf:"bytes,2,opt,name=port,proto3" json:"port,omitempty"`
-	SerialNumber         string     `protobuf:"bytes,3,opt,name=serial_number,json=serialNumber,proto3" json:"serial_number,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
-	XXX_unrecognized     []byte     `json:"-"`
-	XXX_sizecache        int32      `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	OltDeviceId   *common.ID             `protobuf:"bytes,1,opt,name=olt_device_id,json=oltDeviceId,proto3" json:"olt_device_id,omitempty"`
+	Port          *Port                  `protobuf:"bytes,2,opt,name=port,proto3" json:"port,omitempty"`
+	SerialNumber  string                 `protobuf:"bytes,3,opt,name=serial_number,json=serialNumber,proto3" json:"serial_number,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *OnuSerialNumberOnOLTPon) Reset()         { *m = OnuSerialNumberOnOLTPon{} }
-func (m *OnuSerialNumberOnOLTPon) String() string { return proto.CompactTextString(m) }
-func (*OnuSerialNumberOnOLTPon) ProtoMessage()    {}
+func (x *OnuSerialNumberOnOLTPon) Reset() {
+	*x = OnuSerialNumberOnOLTPon{}
+	mi := &file_voltha_protos_device_proto_msgTypes[22]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *OnuSerialNumberOnOLTPon) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OnuSerialNumberOnOLTPon) ProtoMessage() {}
+
+func (x *OnuSerialNumberOnOLTPon) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_device_proto_msgTypes[22]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use OnuSerialNumberOnOLTPon.ProtoReflect.Descriptor instead.
 func (*OnuSerialNumberOnOLTPon) Descriptor() ([]byte, []int) {
-	return fileDescriptor_200940f73d155856, []int{22}
+	return file_voltha_protos_device_proto_rawDescGZIP(), []int{22}
 }
 
-func (m *OnuSerialNumberOnOLTPon) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_OnuSerialNumberOnOLTPon.Unmarshal(m, b)
-}
-func (m *OnuSerialNumberOnOLTPon) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_OnuSerialNumberOnOLTPon.Marshal(b, m, deterministic)
-}
-func (m *OnuSerialNumberOnOLTPon) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_OnuSerialNumberOnOLTPon.Merge(m, src)
-}
-func (m *OnuSerialNumberOnOLTPon) XXX_Size() int {
-	return xxx_messageInfo_OnuSerialNumberOnOLTPon.Size(m)
-}
-func (m *OnuSerialNumberOnOLTPon) XXX_DiscardUnknown() {
-	xxx_messageInfo_OnuSerialNumberOnOLTPon.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_OnuSerialNumberOnOLTPon proto.InternalMessageInfo
-
-func (m *OnuSerialNumberOnOLTPon) GetOltDeviceId() *common.ID {
-	if m != nil {
-		return m.OltDeviceId
+func (x *OnuSerialNumberOnOLTPon) GetOltDeviceId() *common.ID {
+	if x != nil {
+		return x.OltDeviceId
 	}
 	return nil
 }
 
-func (m *OnuSerialNumberOnOLTPon) GetPort() *Port {
-	if m != nil {
-		return m.Port
+func (x *OnuSerialNumberOnOLTPon) GetPort() *Port {
+	if x != nil {
+		return x.Port
 	}
 	return nil
 }
 
-func (m *OnuSerialNumberOnOLTPon) GetSerialNumber() string {
-	if m != nil {
-		return m.SerialNumber
+func (x *OnuSerialNumberOnOLTPon) GetSerialNumber() string {
+	if x != nil {
+		return x.SerialNumber
 	}
 	return ""
 }
 
 type UpdateDevice struct {
-	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+	state protoimpl.MessageState `protogen:"open.v1"`
+	Id    string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` //Device id of the device, for now only updating the OLT device is supported, and only ip address of the OLT
 	// Types that are valid to be assigned to Address:
+	//
 	//	*UpdateDevice_Ipv4Address
 	//	*UpdateDevice_Ipv6Address
 	//	*UpdateDevice_HostAndPort
-	Address              isUpdateDevice_Address `protobuf_oneof:"address"`
-	XXX_NoUnkeyedLiteral struct{}               `json:"-"`
-	XXX_unrecognized     []byte                 `json:"-"`
-	XXX_sizecache        int32                  `json:"-"`
+	Address       isUpdateDevice_Address `protobuf_oneof:"address"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *UpdateDevice) Reset()         { *m = UpdateDevice{} }
-func (m *UpdateDevice) String() string { return proto.CompactTextString(m) }
-func (*UpdateDevice) ProtoMessage()    {}
+func (x *UpdateDevice) Reset() {
+	*x = UpdateDevice{}
+	mi := &file_voltha_protos_device_proto_msgTypes[23]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *UpdateDevice) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpdateDevice) ProtoMessage() {}
+
+func (x *UpdateDevice) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_device_proto_msgTypes[23]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpdateDevice.ProtoReflect.Descriptor instead.
 func (*UpdateDevice) Descriptor() ([]byte, []int) {
-	return fileDescriptor_200940f73d155856, []int{23}
+	return file_voltha_protos_device_proto_rawDescGZIP(), []int{23}
 }
 
-func (m *UpdateDevice) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_UpdateDevice.Unmarshal(m, b)
-}
-func (m *UpdateDevice) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_UpdateDevice.Marshal(b, m, deterministic)
-}
-func (m *UpdateDevice) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_UpdateDevice.Merge(m, src)
-}
-func (m *UpdateDevice) XXX_Size() int {
-	return xxx_messageInfo_UpdateDevice.Size(m)
-}
-func (m *UpdateDevice) XXX_DiscardUnknown() {
-	xxx_messageInfo_UpdateDevice.DiscardUnknown(m)
+func (x *UpdateDevice) GetId() string {
+	if x != nil {
+		return x.Id
+	}
+	return ""
 }
 
-var xxx_messageInfo_UpdateDevice proto.InternalMessageInfo
+func (x *UpdateDevice) GetAddress() isUpdateDevice_Address {
+	if x != nil {
+		return x.Address
+	}
+	return nil
+}
 
-func (m *UpdateDevice) GetId() string {
-	if m != nil {
-		return m.Id
+func (x *UpdateDevice) GetIpv4Address() string {
+	if x != nil {
+		if x, ok := x.Address.(*UpdateDevice_Ipv4Address); ok {
+			return x.Ipv4Address
+		}
+	}
+	return ""
+}
+
+func (x *UpdateDevice) GetIpv6Address() string {
+	if x != nil {
+		if x, ok := x.Address.(*UpdateDevice_Ipv6Address); ok {
+			return x.Ipv6Address
+		}
+	}
+	return ""
+}
+
+func (x *UpdateDevice) GetHostAndPort() string {
+	if x != nil {
+		if x, ok := x.Address.(*UpdateDevice_HostAndPort); ok {
+			return x.HostAndPort
+		}
 	}
 	return ""
 }
@@ -2473,10 +2698,13 @@
 }
 
 type UpdateDevice_Ipv4Address struct {
+	// Device contact IPv4 address (format: "a.b.c.d" or can use hostname too)
 	Ipv4Address string `protobuf:"bytes,2,opt,name=ipv4_address,json=ipv4Address,proto3,oneof"`
 }
 
 type UpdateDevice_Ipv6Address struct {
+	// Device contact IPv6 address using the canonical string form
+	// ("xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx")
 	Ipv6Address string `protobuf:"bytes,3,opt,name=ipv6_address,json=ipv6Address,proto3,oneof"`
 }
 
@@ -2490,268 +2718,579 @@
 
 func (*UpdateDevice_HostAndPort) isUpdateDevice_Address() {}
 
-func (m *UpdateDevice) GetAddress() isUpdateDevice_Address {
-	if m != nil {
-		return m.Address
-	}
-	return nil
+type Port_PeerPort struct {
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	DeviceId      string                 `protobuf:"bytes,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
+	PortNo        uint32                 `protobuf:"varint,2,opt,name=port_no,json=portNo,proto3" json:"port_no,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *UpdateDevice) GetIpv4Address() string {
-	if x, ok := m.GetAddress().(*UpdateDevice_Ipv4Address); ok {
-		return x.Ipv4Address
+func (x *Port_PeerPort) Reset() {
+	*x = Port_PeerPort{}
+	mi := &file_voltha_protos_device_proto_msgTypes[24]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *Port_PeerPort) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Port_PeerPort) ProtoMessage() {}
+
+func (x *Port_PeerPort) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_device_proto_msgTypes[24]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use Port_PeerPort.ProtoReflect.Descriptor instead.
+func (*Port_PeerPort) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_device_proto_rawDescGZIP(), []int{13, 0}
+}
+
+func (x *Port_PeerPort) GetDeviceId() string {
+	if x != nil {
+		return x.DeviceId
 	}
 	return ""
 }
 
-func (m *UpdateDevice) GetIpv6Address() string {
-	if x, ok := m.GetAddress().(*UpdateDevice_Ipv6Address); ok {
-		return x.Ipv6Address
+func (x *Port_PeerPort) GetPortNo() uint32 {
+	if x != nil {
+		return x.PortNo
+	}
+	return 0
+}
+
+type Device_ProxyAddress struct {
+	state              protoimpl.MessageState `protogen:"open.v1"`
+	DeviceId           string                 `protobuf:"bytes,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`                               // Which device to use as proxy to this device
+	DeviceType         string                 `protobuf:"bytes,2,opt,name=device_type,json=deviceType,proto3" json:"device_type,omitempty"`                         // The device type of the proxy device to use as the adapter name
+	ChannelId          uint32                 `protobuf:"varint,3,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"`                           // Sub-address within proxy
+	ChannelGroupId     uint32                 `protobuf:"varint,4,opt,name=channel_group_id,json=channelGroupId,proto3" json:"channel_group_id,omitempty"`          // Channel Group index
+	ChannelTermination string                 `protobuf:"bytes,5,opt,name=channel_termination,json=channelTermination,proto3" json:"channel_termination,omitempty"` // Channel Termination name
+	OnuId              uint32                 `protobuf:"varint,6,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`                                       // onu identifier; optional
+	OnuSessionId       uint32                 `protobuf:"varint,7,opt,name=onu_session_id,json=onuSessionId,proto3" json:"onu_session_id,omitempty"`                // session identifier for the ONU; optional
+	AdapterEndpoint    string                 `protobuf:"bytes,8,opt,name=adapter_endpoint,json=adapterEndpoint,proto3" json:"adapter_endpoint,omitempty"`          // endpoint of the adapter that handles the proxy device
+	unknownFields      protoimpl.UnknownFields
+	sizeCache          protoimpl.SizeCache
+}
+
+func (x *Device_ProxyAddress) Reset() {
+	*x = Device_ProxyAddress{}
+	mi := &file_voltha_protos_device_proto_msgTypes[25]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *Device_ProxyAddress) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Device_ProxyAddress) ProtoMessage() {}
+
+func (x *Device_ProxyAddress) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_device_proto_msgTypes[25]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use Device_ProxyAddress.ProtoReflect.Descriptor instead.
+func (*Device_ProxyAddress) Descriptor() ([]byte, []int) {
+	return file_voltha_protos_device_proto_rawDescGZIP(), []int{15, 0}
+}
+
+func (x *Device_ProxyAddress) GetDeviceId() string {
+	if x != nil {
+		return x.DeviceId
 	}
 	return ""
 }
 
-func (m *UpdateDevice) GetHostAndPort() string {
-	if x, ok := m.GetAddress().(*UpdateDevice_HostAndPort); ok {
-		return x.HostAndPort
+func (x *Device_ProxyAddress) GetDeviceType() string {
+	if x != nil {
+		return x.DeviceType
 	}
 	return ""
 }
 
-// XXX_OneofWrappers is for the internal use of the proto package.
-func (*UpdateDevice) XXX_OneofWrappers() []interface{} {
-	return []interface{}{
+func (x *Device_ProxyAddress) GetChannelId() uint32 {
+	if x != nil {
+		return x.ChannelId
+	}
+	return 0
+}
+
+func (x *Device_ProxyAddress) GetChannelGroupId() uint32 {
+	if x != nil {
+		return x.ChannelGroupId
+	}
+	return 0
+}
+
+func (x *Device_ProxyAddress) GetChannelTermination() string {
+	if x != nil {
+		return x.ChannelTermination
+	}
+	return ""
+}
+
+func (x *Device_ProxyAddress) GetOnuId() uint32 {
+	if x != nil {
+		return x.OnuId
+	}
+	return 0
+}
+
+func (x *Device_ProxyAddress) GetOnuSessionId() uint32 {
+	if x != nil {
+		return x.OnuSessionId
+	}
+	return 0
+}
+
+func (x *Device_ProxyAddress) GetAdapterEndpoint() string {
+	if x != nil {
+		return x.AdapterEndpoint
+	}
+	return ""
+}
+
+var File_voltha_protos_device_proto protoreflect.FileDescriptor
+
+const file_voltha_protos_device_proto_rawDesc = "" +
+	"\n" +
+	"\x1avoltha_protos/device.proto\x12\x06device\x1a\x19google/protobuf/any.proto\x1a\x1avoltha_protos/common.proto\x1a\x1fvoltha_protos/openflow_13.proto\"\xe2\x02\n" +
+	"\n" +
+	"DeviceType\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\tR\x02id\x12\x1b\n" +
+	"\tvendor_id\x18\x05 \x01(\tR\bvendorId\x12\x1d\n" +
+	"\n" +
+	"vendor_ids\x18\x06 \x03(\tR\tvendorIds\x12\x18\n" +
+	"\aadapter\x18\x02 \x01(\tR\aadapter\x127\n" +
+	"\x18accepts_bulk_flow_update\x18\x03 \x01(\bR\x15acceptsBulkFlowUpdate\x12D\n" +
+	"\x1faccepts_add_remove_flow_updates\x18\x04 \x01(\bR\x1bacceptsAddRemoveFlowUpdates\x12L\n" +
+	"#accepts_direct_logical_flows_update\x18\a \x01(\bR\x1facceptsDirectLogicalFlowsUpdate\x12!\n" +
+	"\fadapter_type\x18\b \x01(\tR\vadapterType\"7\n" +
+	"\vDeviceTypes\x12(\n" +
+	"\x05items\x18\x01 \x03(\v2\x12.device.DeviceTypeR\x05items\"\xc0\x01\n" +
+	"\bPmConfig\x12\x12\n" +
+	"\x04name\x18\x01 \x01(\tR\x04name\x12+\n" +
+	"\x04type\x18\x02 \x01(\x0e2\x17.device.PmConfig.PmTypeR\x04type\x12\x18\n" +
+	"\aenabled\x18\x03 \x01(\bR\aenabled\x12\x1f\n" +
+	"\vsample_freq\x18\x04 \x01(\rR\n" +
+	"sampleFreq\"8\n" +
+	"\x06PmType\x12\v\n" +
+	"\aCOUNTER\x10\x00\x12\t\n" +
+	"\x05GAUGE\x10\x01\x12\t\n" +
+	"\x05STATE\x10\x02\x12\v\n" +
+	"\aCONTEXT\x10\x03\"\x93\x01\n" +
+	"\rPmGroupConfig\x12\x1d\n" +
+	"\n" +
+	"group_name\x18\x01 \x01(\tR\tgroupName\x12\x1d\n" +
+	"\n" +
+	"group_freq\x18\x02 \x01(\rR\tgroupFreq\x12\x18\n" +
+	"\aenabled\x18\x03 \x01(\bR\aenabled\x12*\n" +
+	"\ametrics\x18\x04 \x03(\v2\x10.device.PmConfigR\ametrics\"\xf3\x01\n" +
+	"\tPmConfigs\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\tR\x02id\x12!\n" +
+	"\fdefault_freq\x18\x02 \x01(\rR\vdefaultFreq\x12\x18\n" +
+	"\agrouped\x18\x03 \x01(\bR\agrouped\x12#\n" +
+	"\rfreq_override\x18\x04 \x01(\bR\ffreqOverride\x12-\n" +
+	"\x06groups\x18\x05 \x03(\v2\x15.device.PmGroupConfigR\x06groups\x12*\n" +
+	"\ametrics\x18\x06 \x03(\v2\x10.device.PmConfigR\ametrics\x12\x19\n" +
+	"\bmax_skew\x18\a \x01(\rR\amaxSkew\"\x8f\x02\n" +
+	"\x05Image\x12\x12\n" +
+	"\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n" +
+	"\aversion\x18\x02 \x01(\tR\aversion\x12\x12\n" +
+	"\x04hash\x18\x03 \x01(\rR\x04hash\x12)\n" +
+	"\x10install_datetime\x18\x04 \x01(\tR\x0finstallDatetime\x12\x1b\n" +
+	"\tis_active\x18\x05 \x01(\bR\bisActive\x12!\n" +
+	"\fis_committed\x18\x06 \x01(\bR\visCommitted\x12\x19\n" +
+	"\bis_valid\x18\a \x01(\bR\aisValid\x12\x10\n" +
+	"\x03url\x18\b \x01(\tR\x03url\x12\x16\n" +
+	"\x06vendor\x18\t \x01(\tR\x06vendor\x12\x14\n" +
+	"\x05crc32\x18\n" +
+	" \x01(\rR\x05crc32\"\xe7\a\n" +
+	"\rImageDownload\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" +
+	"\x04name\x18\x02 \x01(\tR\x04name\x12\x10\n" +
+	"\x03url\x18\x03 \x01(\tR\x03url\x12\x10\n" +
+	"\x03crc\x18\x04 \x01(\rR\x03crc\x12O\n" +
+	"\x0edownload_state\x18\x05 \x01(\x0e2(.device.ImageDownload.ImageDownloadStateR\rdownloadState\x12#\n" +
+	"\rimage_version\x18\x06 \x01(\tR\fimageVersion\x12)\n" +
+	"\x10downloaded_bytes\x18\a \x01(\rR\x0fdownloadedBytes\x12H\n" +
+	"\x06reason\x18\b \x01(\x0e20.device.ImageDownload.ImageDownloadFailureReasonR\x06reason\x12'\n" +
+	"\x0fadditional_info\x18\t \x01(\tR\x0eadditionalInfo\x12\x1f\n" +
+	"\vsave_config\x18\n" +
+	" \x01(\bR\n" +
+	"saveConfig\x12\x1b\n" +
+	"\tlocal_dir\x18\v \x01(\tR\blocalDir\x12I\n" +
+	"\vimage_state\x18\f \x01(\x0e2(.device.ImageDownload.ImageActivateStateR\n" +
+	"imageState\x12\x1b\n" +
+	"\tfile_size\x18\r \x01(\rR\bfileSize\"\xb7\x01\n" +
+	"\x12ImageDownloadState\x12\x14\n" +
+	"\x10DOWNLOAD_UNKNOWN\x10\x00\x12\x16\n" +
+	"\x12DOWNLOAD_SUCCEEDED\x10\x01\x12\x16\n" +
+	"\x12DOWNLOAD_REQUESTED\x10\x02\x12\x14\n" +
+	"\x10DOWNLOAD_STARTED\x10\x03\x12\x13\n" +
+	"\x0fDOWNLOAD_FAILED\x10\x04\x12\x18\n" +
+	"\x14DOWNLOAD_UNSUPPORTED\x10\x05\x12\x16\n" +
+	"\x12DOWNLOAD_CANCELLED\x10\x06\"\x86\x01\n" +
+	"\x1aImageDownloadFailureReason\x12\f\n" +
+	"\bNO_ERROR\x10\x00\x12\x0f\n" +
+	"\vINVALID_URL\x10\x01\x12\x0f\n" +
+	"\vDEVICE_BUSY\x10\x02\x12\x16\n" +
+	"\x12INSUFFICIENT_SPACE\x10\x03\x12\x11\n" +
+	"\rUNKNOWN_ERROR\x10\x04\x12\r\n" +
+	"\tCANCELLED\x10\x05\"\x8c\x01\n" +
+	"\x12ImageActivateState\x12\x11\n" +
+	"\rIMAGE_UNKNOWN\x10\x00\x12\x12\n" +
+	"\x0eIMAGE_INACTIVE\x10\x01\x12\x14\n" +
+	"\x10IMAGE_ACTIVATING\x10\x02\x12\x10\n" +
+	"\fIMAGE_ACTIVE\x10\x03\x12\x13\n" +
+	"\x0fIMAGE_REVERTING\x10\x04\x12\x12\n" +
+	"\x0eIMAGE_REVERTED\x10\x05:\x02\x18\x01\"A\n" +
+	"\x0eImageDownloads\x12+\n" +
+	"\x05items\x18\x02 \x03(\v2\x15.device.ImageDownloadR\x05items:\x02\x18\x01\"-\n" +
+	"\x06Images\x12#\n" +
+	"\x05image\x18\x01 \x03(\v2\r.device.ImageR\x05image\"\xb0\x01\n" +
+	"\bOnuImage\x12\x18\n" +
+	"\aversion\x18\x01 \x01(\tR\aversion\x12\x1e\n" +
+	"\n" +
+	"isCommited\x18\x02 \x01(\bR\n" +
+	"isCommited\x12\x1a\n" +
+	"\bisActive\x18\x03 \x01(\bR\bisActive\x12\x18\n" +
+	"\aisValid\x18\x04 \x01(\bR\aisValid\x12 \n" +
+	"\vproductCode\x18\x05 \x01(\tR\vproductCode\x12\x12\n" +
+	"\x04hash\x18\x06 \x01(\tR\x04hash\"3\n" +
+	"\tOnuImages\x12&\n" +
+	"\x05items\x18\x01 \x03(\v2\x10.device.OnuImageR\x05items\"c\n" +
+	"\x10DeviceImageState\x12\x1b\n" +
+	"\tdevice_id\x18\x01 \x01(\tR\bdeviceId\x122\n" +
+	"\n" +
+	"imageState\x18\x02 \x01(\v2\x12.device.ImageStateR\n" +
+	"imageState\"\x82\b\n" +
+	"\n" +
+	"ImageState\x12\x18\n" +
+	"\aversion\x18\x01 \x01(\tR\aversion\x12L\n" +
+	"\x0edownload_state\x18\x02 \x01(\x0e2%.device.ImageState.ImageDownloadStateR\rdownloadState\x12=\n" +
+	"\x06reason\x18\x03 \x01(\x0e2%.device.ImageState.ImageFailureReasonR\x06reason\x12H\n" +
+	"\vimage_state\x18\x04 \x01(\x0e2'.device.ImageState.ImageActivationStateR\n" +
+	"imageState\"\xd0\x01\n" +
+	"\x12ImageDownloadState\x12\x14\n" +
+	"\x10DOWNLOAD_UNKNOWN\x10\x00\x12\x16\n" +
+	"\x12DOWNLOAD_SUCCEEDED\x10\x01\x12\x16\n" +
+	"\x12DOWNLOAD_REQUESTED\x10\x02\x12\x14\n" +
+	"\x10DOWNLOAD_STARTED\x10\x03\x12\x13\n" +
+	"\x0fDOWNLOAD_FAILED\x10\x04\x12\x18\n" +
+	"\x14DOWNLOAD_UNSUPPORTED\x10\x05\x12\x17\n" +
+	"\x13DOWNLOAD_CANCELLING\x10\x06\x12\x16\n" +
+	"\x12DOWNLOAD_CANCELLED\x10\a\"\xf4\x01\n" +
+	"\x12ImageFailureReason\x12\f\n" +
+	"\bNO_ERROR\x10\x00\x12\x0f\n" +
+	"\vINVALID_URL\x10\x01\x12\x0f\n" +
+	"\vDEVICE_BUSY\x10\x02\x12\x16\n" +
+	"\x12INSUFFICIENT_SPACE\x10\x03\x12\x11\n" +
+	"\rUNKNOWN_ERROR\x10\x04\x12\x18\n" +
+	"\x14CANCELLED_ON_REQUEST\x10\x05\x12\x1a\n" +
+	"\x16CANCELLED_ON_ONU_STATE\x10\x06\x12\x1a\n" +
+	"\x16VENDOR_DEVICE_MISMATCH\x10\a\x12\x17\n" +
+	"\x13OMCI_TRANSFER_ERROR\x10\b\x12\x18\n" +
+	"\x14IMAGE_REFUSED_BY_ONU\x10\t\"\xb8\x02\n" +
+	"\x14ImageActivationState\x12\x11\n" +
+	"\rIMAGE_UNKNOWN\x10\x00\x12\x12\n" +
+	"\x0eIMAGE_INACTIVE\x10\x01\x12\x14\n" +
+	"\x10IMAGE_ACTIVATING\x10\x02\x12\x10\n" +
+	"\fIMAGE_ACTIVE\x10\x03\x12\x14\n" +
+	"\x10IMAGE_COMMITTING\x10\x04\x12\x13\n" +
+	"\x0fIMAGE_COMMITTED\x10\x05\x12\x1d\n" +
+	"\x19IMAGE_ACTIVATION_ABORTING\x10\x06\x12\x1c\n" +
+	"\x18IMAGE_ACTIVATION_ABORTED\x10\a\x12\x19\n" +
+	"\x15IMAGE_COMMIT_ABORTING\x10\b\x12\x18\n" +
+	"\x14IMAGE_COMMIT_ABORTED\x10\t\x12\x15\n" +
+	"\x11IMAGE_DOWNLOADING\x10\n" +
+	"\x12\x1d\n" +
+	"\x19IMAGE_DOWNLOADING_ABORTED\x10\v\"\xb7\x05\n" +
+	"\x04Port\x12\x17\n" +
+	"\aport_no\x18\x01 \x01(\rR\x06portNo\x12\x14\n" +
+	"\x05label\x18\x02 \x01(\tR\x05label\x12)\n" +
+	"\x04type\x18\x03 \x01(\x0e2\x15.device.Port.PortTypeR\x04type\x129\n" +
+	"\vadmin_state\x18\x05 \x01(\x0e2\x18.common.AdminState.TypesR\n" +
+	"adminState\x129\n" +
+	"\voper_status\x18\x06 \x01(\x0e2\x18.common.OperStatus.TypesR\n" +
+	"operStatus\x12\x1b\n" +
+	"\tdevice_id\x18\a \x01(\tR\bdeviceId\x12+\n" +
+	"\x05peers\x18\b \x03(\v2\x15.device.Port.PeerPortR\x05peers\x12\x1d\n" +
+	"\n" +
+	"rx_packets\x18\t \x01(\x06R\trxPackets\x12\x19\n" +
+	"\brx_bytes\x18\n" +
+	" \x01(\x06R\arxBytes\x12\x1b\n" +
+	"\trx_errors\x18\v \x01(\x06R\brxErrors\x12\x1d\n" +
+	"\n" +
+	"tx_packets\x18\f \x01(\x06R\ttxPackets\x12\x19\n" +
+	"\btx_bytes\x18\r \x01(\x06R\atxBytes\x12\x1b\n" +
+	"\ttx_errors\x18\x0e \x01(\x06R\btxErrors\x120\n" +
+	"\bofp_port\x18\x0f \x01(\v2\x15.openflow_13.ofp_portR\aofpPort\x1a@\n" +
+	"\bPeerPort\x12\x1b\n" +
+	"\tdevice_id\x18\x01 \x01(\tR\bdeviceId\x12\x17\n" +
+	"\aport_no\x18\x02 \x01(\rR\x06portNo\"s\n" +
+	"\bPortType\x12\v\n" +
+	"\aUNKNOWN\x10\x00\x12\x10\n" +
+	"\fETHERNET_NNI\x10\x01\x12\x10\n" +
+	"\fETHERNET_UNI\x10\x02\x12\v\n" +
+	"\aPON_OLT\x10\x03\x12\v\n" +
+	"\aPON_ONU\x10\x04\x12\r\n" +
+	"\tVENET_OLT\x10\x05\x12\r\n" +
+	"\tVENET_ONU\x10\x06\"+\n" +
+	"\x05Ports\x12\"\n" +
+	"\x05items\x18\x01 \x03(\v2\f.device.PortR\x05items\"\xd8\n" +
+	"\n" +
+	"\x06Device\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" +
+	"\x04type\x18\x02 \x01(\tR\x04type\x12\x12\n" +
+	"\x04root\x18\x03 \x01(\bR\x04root\x12\x1b\n" +
+	"\tparent_id\x18\x04 \x01(\tR\bparentId\x12$\n" +
+	"\x0eparent_port_no\x18\x14 \x01(\rR\fparentPortNo\x12\x16\n" +
+	"\x06vendor\x18\x05 \x01(\tR\x06vendor\x12\x14\n" +
+	"\x05model\x18\x06 \x01(\tR\x05model\x12)\n" +
+	"\x10hardware_version\x18\a \x01(\tR\x0fhardwareVersion\x12)\n" +
+	"\x10firmware_version\x18\b \x01(\tR\x0ffirmwareVersion\x12&\n" +
+	"\x06images\x18\t \x01(\v2\x0e.device.ImagesR\x06images\x12#\n" +
+	"\rserial_number\x18\n" +
+	" \x01(\tR\fserialNumber\x12\x1b\n" +
+	"\tvendor_id\x18\x18 \x01(\tR\bvendorId\x12)\n" +
+	"\x10adapter_endpoint\x18\x19 \x01(\tR\x0fadapterEndpoint\x12\x12\n" +
+	"\x04vlan\x18\f \x01(\rR\x04vlan\x12\x1f\n" +
+	"\vmac_address\x18\r \x01(\tR\n" +
+	"macAddress\x12#\n" +
+	"\fipv4_address\x18\x0e \x01(\tH\x00R\vipv4Address\x12#\n" +
+	"\fipv6_address\x18\x0f \x01(\tH\x00R\vipv6Address\x12$\n" +
+	"\rhost_and_port\x18\x15 \x01(\tH\x00R\vhostAndPort\x12\x1d\n" +
+	"\n" +
+	"extra_args\x18\x17 \x01(\tR\textraArgs\x12@\n" +
+	"\rproxy_address\x18\x13 \x01(\v2\x1b.device.Device.ProxyAddressR\fproxyAddress\x129\n" +
+	"\vadmin_state\x18\x10 \x01(\x0e2\x18.common.AdminState.TypesR\n" +
+	"adminState\x129\n" +
+	"\voper_status\x18\x11 \x01(\x0e2\x18.common.OperStatus.TypesR\n" +
+	"operStatus\x12\x16\n" +
+	"\x06reason\x18\x16 \x01(\tR\x06reason\x12B\n" +
+	"\x0econnect_status\x18\x12 \x01(\x0e2\x1b.common.ConnectStatus.TypesR\rconnectStatus\x12,\n" +
+	"\x06custom\x18@ \x01(\v2\x14.google.protobuf.AnyR\x06custom\x121\n" +
+	"\n" +
+	"pm_configs\x18\x83\x01 \x01(\v2\x11.device.PmConfigsR\tpmConfigs\x12?\n" +
+	"\x0fimage_downloads\x18\x85\x01 \x03(\v2\x15.device.ImageDownloadR\x0eimageDownloads\x1a\xae\x02\n" +
+	"\fProxyAddress\x12\x1b\n" +
+	"\tdevice_id\x18\x01 \x01(\tR\bdeviceId\x12\x1f\n" +
+	"\vdevice_type\x18\x02 \x01(\tR\n" +
+	"deviceType\x12\x1d\n" +
+	"\n" +
+	"channel_id\x18\x03 \x01(\rR\tchannelId\x12(\n" +
+	"\x10channel_group_id\x18\x04 \x01(\rR\x0echannelGroupId\x12/\n" +
+	"\x13channel_termination\x18\x05 \x01(\tR\x12channelTermination\x12\x15\n" +
+	"\x06onu_id\x18\x06 \x01(\rR\x05onuId\x12$\n" +
+	"\x0eonu_session_id\x18\a \x01(\rR\fonuSessionId\x12)\n" +
+	"\x10adapter_endpoint\x18\b \x01(\tR\x0fadapterEndpointB\t\n" +
+	"\aaddressJ\x04\b\v\x10\f\"\xc2\x01\n" +
+	"\x1aDeviceImageDownloadRequest\x12'\n" +
+	"\tdevice_id\x18\x01 \x03(\v2\n" +
+	".common.IDR\bdeviceId\x12#\n" +
+	"\x05image\x18\x02 \x01(\v2\r.device.ImageR\x05image\x12,\n" +
+	"\x11activateOnSuccess\x18\x03 \x01(\bR\x11activateOnSuccess\x12(\n" +
+	"\x0fcommitOnSuccess\x18\x04 \x01(\bR\x0fcommitOnSuccess\"\x81\x01\n" +
+	"\x12DeviceImageRequest\x12'\n" +
+	"\tdevice_id\x18\x01 \x03(\v2\n" +
+	".common.IDR\bdeviceId\x12\x18\n" +
+	"\aversion\x18\x02 \x01(\tR\aversion\x12(\n" +
+	"\x0fcommitOnSuccess\x18\x03 \x01(\bR\x0fcommitOnSuccess\"_\n" +
+	"\x13DeviceImageResponse\x12H\n" +
+	"\x13device_image_states\x18\x01 \x03(\v2\x18.device.DeviceImageStateR\x11deviceImageStates\"\xa5\x01\n" +
+	"\x10SelfTestResponse\x12?\n" +
+	"\x06result\x18\x01 \x01(\x0e2'.device.SelfTestResponse.SelfTestResultR\x06result\"P\n" +
+	"\x0eSelfTestResult\x12\v\n" +
+	"\aSUCCESS\x10\x00\x12\v\n" +
+	"\aFAILURE\x10\x01\x12\x11\n" +
+	"\rNOT_SUPPORTED\x10\x02\x12\x11\n" +
+	"\rUNKNOWN_ERROR\x10\x03\"/\n" +
+	"\aDevices\x12$\n" +
+	"\x05items\x18\x01 \x03(\v2\x0e.device.DeviceR\x05items\"\xa8\x03\n" +
+	"\x14SimulateAlarmRequest\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\tR\x02id\x12\x1c\n" +
+	"\tindicator\x18\x02 \x01(\tR\tindicator\x12\x17\n" +
+	"\aintf_id\x18\x03 \x01(\tR\x06intfId\x12$\n" +
+	"\x0eport_type_name\x18\x04 \x01(\tR\fportTypeName\x12\"\n" +
+	"\ronu_device_id\x18\x05 \x01(\tR\vonuDeviceId\x123\n" +
+	"\x16inverse_bit_error_rate\x18\x06 \x01(\x05R\x13inverseBitErrorRate\x12\x14\n" +
+	"\x05drift\x18\a \x01(\x05R\x05drift\x12\x17\n" +
+	"\anew_eqd\x18\b \x01(\x05R\x06newEqd\x12*\n" +
+	"\x11onu_serial_number\x18\t \x01(\tR\x0fonuSerialNumber\x12H\n" +
+	"\toperation\x18\n" +
+	" \x01(\x0e2*.device.SimulateAlarmRequest.OperationTypeR\toperation\"%\n" +
+	"\rOperationType\x12\t\n" +
+	"\x05RAISE\x10\x00\x12\t\n" +
+	"\x05CLEAR\x10\x01\"\x90\x01\n" +
+	"\x17OnuSerialNumberOnOLTPon\x12.\n" +
+	"\rolt_device_id\x18\x01 \x01(\v2\n" +
+	".common.IDR\voltDeviceId\x12 \n" +
+	"\x04port\x18\x02 \x01(\v2\f.device.PortR\x04port\x12#\n" +
+	"\rserial_number\x18\x03 \x01(\tR\fserialNumber\"\x99\x01\n" +
+	"\fUpdateDevice\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\tR\x02id\x12#\n" +
+	"\fipv4_address\x18\x02 \x01(\tH\x00R\vipv4Address\x12#\n" +
+	"\fipv6_address\x18\x03 \x01(\tH\x00R\vipv6Address\x12$\n" +
+	"\rhost_and_port\x18\x04 \x01(\tH\x00R\vhostAndPortB\t\n" +
+	"\aaddressBZ\n" +
+	"\x1aorg.opencord.voltha.deviceB\fVolthaDeviceZ.github.com/opencord/voltha-protos/v5/go/volthab\x06proto3"
+
+var (
+	file_voltha_protos_device_proto_rawDescOnce sync.Once
+	file_voltha_protos_device_proto_rawDescData []byte
+)
+
+func file_voltha_protos_device_proto_rawDescGZIP() []byte {
+	file_voltha_protos_device_proto_rawDescOnce.Do(func() {
+		file_voltha_protos_device_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_voltha_protos_device_proto_rawDesc), len(file_voltha_protos_device_proto_rawDesc)))
+	})
+	return file_voltha_protos_device_proto_rawDescData
+}
+
+var file_voltha_protos_device_proto_enumTypes = make([]protoimpl.EnumInfo, 10)
+var file_voltha_protos_device_proto_msgTypes = make([]protoimpl.MessageInfo, 26)
+var file_voltha_protos_device_proto_goTypes = []any{
+	(PmConfig_PmType)(0),                          // 0: device.PmConfig.PmType
+	(ImageDownload_ImageDownloadState)(0),         // 1: device.ImageDownload.ImageDownloadState
+	(ImageDownload_ImageDownloadFailureReason)(0), // 2: device.ImageDownload.ImageDownloadFailureReason
+	(ImageDownload_ImageActivateState)(0),         // 3: device.ImageDownload.ImageActivateState
+	(ImageState_ImageDownloadState)(0),            // 4: device.ImageState.ImageDownloadState
+	(ImageState_ImageFailureReason)(0),            // 5: device.ImageState.ImageFailureReason
+	(ImageState_ImageActivationState)(0),          // 6: device.ImageState.ImageActivationState
+	(Port_PortType)(0),                            // 7: device.Port.PortType
+	(SelfTestResponse_SelfTestResult)(0),          // 8: device.SelfTestResponse.SelfTestResult
+	(SimulateAlarmRequest_OperationType)(0),       // 9: device.SimulateAlarmRequest.OperationType
+	(*DeviceType)(nil),                            // 10: device.DeviceType
+	(*DeviceTypes)(nil),                           // 11: device.DeviceTypes
+	(*PmConfig)(nil),                              // 12: device.PmConfig
+	(*PmGroupConfig)(nil),                         // 13: device.PmGroupConfig
+	(*PmConfigs)(nil),                             // 14: device.PmConfigs
+	(*Image)(nil),                                 // 15: device.Image
+	(*ImageDownload)(nil),                         // 16: device.ImageDownload
+	(*ImageDownloads)(nil),                        // 17: device.ImageDownloads
+	(*Images)(nil),                                // 18: device.Images
+	(*OnuImage)(nil),                              // 19: device.OnuImage
+	(*OnuImages)(nil),                             // 20: device.OnuImages
+	(*DeviceImageState)(nil),                      // 21: device.DeviceImageState
+	(*ImageState)(nil),                            // 22: device.ImageState
+	(*Port)(nil),                                  // 23: device.Port
+	(*Ports)(nil),                                 // 24: device.Ports
+	(*Device)(nil),                                // 25: device.Device
+	(*DeviceImageDownloadRequest)(nil),            // 26: device.DeviceImageDownloadRequest
+	(*DeviceImageRequest)(nil),                    // 27: device.DeviceImageRequest
+	(*DeviceImageResponse)(nil),                   // 28: device.DeviceImageResponse
+	(*SelfTestResponse)(nil),                      // 29: device.SelfTestResponse
+	(*Devices)(nil),                               // 30: device.Devices
+	(*SimulateAlarmRequest)(nil),                  // 31: device.SimulateAlarmRequest
+	(*OnuSerialNumberOnOLTPon)(nil),               // 32: device.OnuSerialNumberOnOLTPon
+	(*UpdateDevice)(nil),                          // 33: device.UpdateDevice
+	(*Port_PeerPort)(nil),                         // 34: device.Port.PeerPort
+	(*Device_ProxyAddress)(nil),                   // 35: device.Device.ProxyAddress
+	(common.AdminState_Types)(0),                  // 36: common.AdminState.Types
+	(common.OperStatus_Types)(0),                  // 37: common.OperStatus.Types
+	(*openflow_13.OfpPort)(nil),                   // 38: openflow_13.ofp_port
+	(common.ConnectStatus_Types)(0),               // 39: common.ConnectStatus.Types
+	(*anypb.Any)(nil),                             // 40: google.protobuf.Any
+	(*common.ID)(nil),                             // 41: common.ID
+}
+var file_voltha_protos_device_proto_depIdxs = []int32{
+	10, // 0: device.DeviceTypes.items:type_name -> device.DeviceType
+	0,  // 1: device.PmConfig.type:type_name -> device.PmConfig.PmType
+	12, // 2: device.PmGroupConfig.metrics:type_name -> device.PmConfig
+	13, // 3: device.PmConfigs.groups:type_name -> device.PmGroupConfig
+	12, // 4: device.PmConfigs.metrics:type_name -> device.PmConfig
+	1,  // 5: device.ImageDownload.download_state:type_name -> device.ImageDownload.ImageDownloadState
+	2,  // 6: device.ImageDownload.reason:type_name -> device.ImageDownload.ImageDownloadFailureReason
+	3,  // 7: device.ImageDownload.image_state:type_name -> device.ImageDownload.ImageActivateState
+	16, // 8: device.ImageDownloads.items:type_name -> device.ImageDownload
+	15, // 9: device.Images.image:type_name -> device.Image
+	19, // 10: device.OnuImages.items:type_name -> device.OnuImage
+	22, // 11: device.DeviceImageState.imageState:type_name -> device.ImageState
+	4,  // 12: device.ImageState.download_state:type_name -> device.ImageState.ImageDownloadState
+	5,  // 13: device.ImageState.reason:type_name -> device.ImageState.ImageFailureReason
+	6,  // 14: device.ImageState.image_state:type_name -> device.ImageState.ImageActivationState
+	7,  // 15: device.Port.type:type_name -> device.Port.PortType
+	36, // 16: device.Port.admin_state:type_name -> common.AdminState.Types
+	37, // 17: device.Port.oper_status:type_name -> common.OperStatus.Types
+	34, // 18: device.Port.peers:type_name -> device.Port.PeerPort
+	38, // 19: device.Port.ofp_port:type_name -> openflow_13.ofp_port
+	23, // 20: device.Ports.items:type_name -> device.Port
+	18, // 21: device.Device.images:type_name -> device.Images
+	35, // 22: device.Device.proxy_address:type_name -> device.Device.ProxyAddress
+	36, // 23: device.Device.admin_state:type_name -> common.AdminState.Types
+	37, // 24: device.Device.oper_status:type_name -> common.OperStatus.Types
+	39, // 25: device.Device.connect_status:type_name -> common.ConnectStatus.Types
+	40, // 26: device.Device.custom:type_name -> google.protobuf.Any
+	14, // 27: device.Device.pm_configs:type_name -> device.PmConfigs
+	16, // 28: device.Device.image_downloads:type_name -> device.ImageDownload
+	41, // 29: device.DeviceImageDownloadRequest.device_id:type_name -> common.ID
+	15, // 30: device.DeviceImageDownloadRequest.image:type_name -> device.Image
+	41, // 31: device.DeviceImageRequest.device_id:type_name -> common.ID
+	21, // 32: device.DeviceImageResponse.device_image_states:type_name -> device.DeviceImageState
+	8,  // 33: device.SelfTestResponse.result:type_name -> device.SelfTestResponse.SelfTestResult
+	25, // 34: device.Devices.items:type_name -> device.Device
+	9,  // 35: device.SimulateAlarmRequest.operation:type_name -> device.SimulateAlarmRequest.OperationType
+	41, // 36: device.OnuSerialNumberOnOLTPon.olt_device_id:type_name -> common.ID
+	23, // 37: device.OnuSerialNumberOnOLTPon.port:type_name -> device.Port
+	38, // [38:38] is the sub-list for method output_type
+	38, // [38:38] is the sub-list for method input_type
+	38, // [38:38] is the sub-list for extension type_name
+	38, // [38:38] is the sub-list for extension extendee
+	0,  // [0:38] is the sub-list for field type_name
+}
+
+func init() { file_voltha_protos_device_proto_init() }
+func file_voltha_protos_device_proto_init() {
+	if File_voltha_protos_device_proto != nil {
+		return
+	}
+	file_voltha_protos_device_proto_msgTypes[15].OneofWrappers = []any{
+		(*Device_Ipv4Address)(nil),
+		(*Device_Ipv6Address)(nil),
+		(*Device_HostAndPort)(nil),
+	}
+	file_voltha_protos_device_proto_msgTypes[23].OneofWrappers = []any{
 		(*UpdateDevice_Ipv4Address)(nil),
 		(*UpdateDevice_Ipv6Address)(nil),
 		(*UpdateDevice_HostAndPort)(nil),
 	}
-}
-
-func init() {
-	proto.RegisterEnum("device.PmConfig_PmType", PmConfig_PmType_name, PmConfig_PmType_value)
-	proto.RegisterEnum("device.ImageDownload_ImageDownloadState", ImageDownload_ImageDownloadState_name, ImageDownload_ImageDownloadState_value)
-	proto.RegisterEnum("device.ImageDownload_ImageDownloadFailureReason", ImageDownload_ImageDownloadFailureReason_name, ImageDownload_ImageDownloadFailureReason_value)
-	proto.RegisterEnum("device.ImageDownload_ImageActivateState", ImageDownload_ImageActivateState_name, ImageDownload_ImageActivateState_value)
-	proto.RegisterEnum("device.ImageState_ImageDownloadState", ImageState_ImageDownloadState_name, ImageState_ImageDownloadState_value)
-	proto.RegisterEnum("device.ImageState_ImageFailureReason", ImageState_ImageFailureReason_name, ImageState_ImageFailureReason_value)
-	proto.RegisterEnum("device.ImageState_ImageActivationState", ImageState_ImageActivationState_name, ImageState_ImageActivationState_value)
-	proto.RegisterEnum("device.Port_PortType", Port_PortType_name, Port_PortType_value)
-	proto.RegisterEnum("device.SelfTestResponse_SelfTestResult", SelfTestResponse_SelfTestResult_name, SelfTestResponse_SelfTestResult_value)
-	proto.RegisterEnum("device.SimulateAlarmRequest_OperationType", SimulateAlarmRequest_OperationType_name, SimulateAlarmRequest_OperationType_value)
-	proto.RegisterType((*DeviceType)(nil), "device.DeviceType")
-	proto.RegisterType((*DeviceTypes)(nil), "device.DeviceTypes")
-	proto.RegisterType((*PmConfig)(nil), "device.PmConfig")
-	proto.RegisterType((*PmGroupConfig)(nil), "device.PmGroupConfig")
-	proto.RegisterType((*PmConfigs)(nil), "device.PmConfigs")
-	proto.RegisterType((*Image)(nil), "device.Image")
-	proto.RegisterType((*ImageDownload)(nil), "device.ImageDownload")
-	proto.RegisterType((*ImageDownloads)(nil), "device.ImageDownloads")
-	proto.RegisterType((*Images)(nil), "device.Images")
-	proto.RegisterType((*OnuImage)(nil), "device.OnuImage")
-	proto.RegisterType((*OnuImages)(nil), "device.OnuImages")
-	proto.RegisterType((*DeviceImageState)(nil), "device.DeviceImageState")
-	proto.RegisterType((*ImageState)(nil), "device.ImageState")
-	proto.RegisterType((*Port)(nil), "device.Port")
-	proto.RegisterType((*Port_PeerPort)(nil), "device.Port.PeerPort")
-	proto.RegisterType((*Ports)(nil), "device.Ports")
-	proto.RegisterType((*Device)(nil), "device.Device")
-	proto.RegisterType((*Device_ProxyAddress)(nil), "device.Device.ProxyAddress")
-	proto.RegisterType((*DeviceImageDownloadRequest)(nil), "device.DeviceImageDownloadRequest")
-	proto.RegisterType((*DeviceImageRequest)(nil), "device.DeviceImageRequest")
-	proto.RegisterType((*DeviceImageResponse)(nil), "device.DeviceImageResponse")
-	proto.RegisterType((*SelfTestResponse)(nil), "device.SelfTestResponse")
-	proto.RegisterType((*Devices)(nil), "device.Devices")
-	proto.RegisterType((*SimulateAlarmRequest)(nil), "device.SimulateAlarmRequest")
-	proto.RegisterType((*OnuSerialNumberOnOLTPon)(nil), "device.OnuSerialNumberOnOLTPon")
-	proto.RegisterType((*UpdateDevice)(nil), "device.UpdateDevice")
-}
-
-func init() { proto.RegisterFile("voltha_protos/device.proto", fileDescriptor_200940f73d155856) }
-
-var fileDescriptor_200940f73d155856 = []byte{
-	// 2938 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x59, 0x4b, 0x6f, 0x1b, 0xc9,
-	0xf1, 0x37, 0x49, 0xf1, 0x31, 0xc5, 0x87, 0x46, 0x2d, 0xc9, 0x1e, 0x4b, 0xeb, 0xbf, 0xbd, 0xe3,
-	0x7d, 0xc8, 0xeb, 0x5d, 0x69, 0xd7, 0xfe, 0x67, 0x37, 0x09, 0x10, 0xac, 0x29, 0x72, 0x64, 0x31,
-	0x91, 0x87, 0xca, 0x90, 0xd4, 0x66, 0xf7, 0x32, 0x18, 0x71, 0x9a, 0xd2, 0xc0, 0xc3, 0x69, 0x7a,
-	0x66, 0x28, 0xc9, 0x7b, 0x4b, 0x82, 0xe4, 0x14, 0x20, 0x01, 0x72, 0xca, 0x07, 0x08, 0x90, 0x53,
-	0x90, 0xdb, 0xe6, 0x18, 0xe4, 0x13, 0xe4, 0x98, 0x73, 0x2e, 0xf9, 0x00, 0xc9, 0x07, 0x08, 0xfa,
-	0x35, 0x0f, 0x4a, 0xf2, 0x7a, 0x83, 0x20, 0xc8, 0x85, 0x98, 0xfe, 0x55, 0x75, 0x75, 0x77, 0x75,
-	0xd7, 0xaf, 0xab, 0x9a, 0xb0, 0x71, 0x46, 0xfc, 0xf8, 0xd4, 0xb1, 0x67, 0x21, 0x89, 0x49, 0xb4,
-	0xe3, 0xe2, 0x33, 0x6f, 0x8c, 0xb7, 0x59, 0x0b, 0x55, 0x78, 0x6b, 0xe3, 0xf6, 0x09, 0x21, 0x27,
-	0x3e, 0xde, 0x61, 0xe8, 0xf1, 0x7c, 0xb2, 0xe3, 0x04, 0x2f, 0xb9, 0xca, 0xc6, 0x42, 0xf7, 0x31,
-	0x99, 0x4e, 0x49, 0x20, 0x64, 0x77, 0xf3, 0x32, 0x32, 0xc3, 0xc1, 0xc4, 0x27, 0xe7, 0xf6, 0x47,
-	0x8f, 0xb9, 0x82, 0xfe, 0xb7, 0x22, 0x40, 0x97, 0x0d, 0x31, 0x7c, 0x39, 0xc3, 0xa8, 0x05, 0x45,
-	0xcf, 0xd5, 0x0a, 0xf7, 0x0a, 0x5b, 0x8a, 0x55, 0xf4, 0x5c, 0xb4, 0x09, 0xca, 0x19, 0x0e, 0x5c,
-	0x12, 0xda, 0x9e, 0xab, 0x95, 0x19, 0x5c, 0xe3, 0x40, 0xcf, 0x45, 0x77, 0x00, 0x12, 0x61, 0xa4,
-	0x55, 0xee, 0x95, 0xb6, 0x14, 0x4b, 0x91, 0xd2, 0x08, 0x69, 0x50, 0x75, 0x5c, 0x67, 0x16, 0xe3,
-	0x50, 0x2b, 0xb2, 0x9e, 0xb2, 0x89, 0x3e, 0x01, 0xcd, 0x19, 0x8f, 0xf1, 0x2c, 0x8e, 0xec, 0xe3,
-	0xb9, 0xff, 0xdc, 0x66, 0x53, 0x9a, 0xcf, 0x5c, 0x27, 0xc6, 0x5a, 0xe9, 0x5e, 0x61, 0xab, 0x66,
-	0xad, 0x0b, 0xf9, 0xee, 0xdc, 0x7f, 0xbe, 0xe7, 0x93, 0xf3, 0x11, 0x13, 0xa2, 0x2e, 0xdc, 0x95,
-	0x1d, 0x1d, 0xd7, 0xb5, 0x43, 0x3c, 0x25, 0x67, 0x38, 0xdb, 0x3d, 0xd2, 0x96, 0x58, 0xff, 0x4d,
-	0xa1, 0xd6, 0x76, 0x5d, 0x8b, 0x29, 0xa5, 0x46, 0x22, 0x74, 0x00, 0xf7, 0xa5, 0x15, 0xd7, 0x0b,
-	0xf1, 0x38, 0xb6, 0x7d, 0x72, 0xe2, 0x8d, 0x1d, 0x9f, 0x59, 0x8a, 0xe4, 0x4c, 0xaa, 0xcc, 0x92,
-	0x1c, 0xb0, 0xcb, 0x34, 0x0f, 0xb8, 0x22, 0xb5, 0x16, 0x89, 0x39, 0xbd, 0x09, 0x0d, 0xb1, 0x2e,
-	0x3b, 0x7e, 0x39, 0xc3, 0x5a, 0x8d, 0xad, 0xb5, 0x2e, 0x30, 0xea, 0x55, 0xfd, 0x13, 0xa8, 0xa7,
-	0x3e, 0x8e, 0xd0, 0x16, 0x94, 0xbd, 0x18, 0x4f, 0x23, 0xad, 0x70, 0xaf, 0xb4, 0x55, 0x7f, 0x84,
-	0xb6, 0xc5, 0x8e, 0xa7, 0x3a, 0x16, 0x57, 0xd0, 0xff, 0x54, 0x80, 0xda, 0xe1, 0xb4, 0x43, 0x82,
-	0x89, 0x77, 0x82, 0x10, 0x2c, 0x05, 0xce, 0x14, 0x8b, 0xdd, 0x61, 0xdf, 0xe8, 0x21, 0x2c, 0xb1,
-	0x41, 0xa9, 0x83, 0x5b, 0x8f, 0x6e, 0x49, 0x4b, 0xb2, 0xcf, 0xf6, 0xe1, 0x94, 0x99, 0x63, 0x4a,
-	0x74, 0x43, 0x70, 0xe0, 0x1c, 0xfb, 0xd8, 0x15, 0x5e, 0x96, 0x4d, 0x74, 0x17, 0xea, 0x91, 0x33,
-	0x9d, 0xf9, 0xd8, 0x9e, 0x84, 0xf8, 0x05, 0xf3, 0x61, 0xd3, 0x02, 0x0e, 0xed, 0x85, 0xf8, 0x85,
-	0xfe, 0x6d, 0xa8, 0x70, 0x53, 0xa8, 0x0e, 0xd5, 0x4e, 0x7f, 0x64, 0x0e, 0x0d, 0x4b, 0xbd, 0x81,
-	0x14, 0x28, 0x3f, 0x6d, 0x8f, 0x9e, 0x1a, 0x6a, 0x81, 0x7e, 0x0e, 0x86, 0xed, 0xa1, 0xa1, 0x16,
-	0xb9, 0x8a, 0x39, 0x34, 0x7e, 0x34, 0x54, 0x4b, 0xfa, 0xaf, 0x0b, 0xd0, 0x3c, 0x9c, 0x3e, 0x0d,
-	0xc9, 0x7c, 0x26, 0xd6, 0x71, 0x07, 0xe0, 0x84, 0x36, 0xed, 0xcc, 0x6a, 0x14, 0x86, 0x98, 0x74,
-	0x49, 0x89, 0x98, 0x4d, 0xa5, 0xc8, 0xa6, 0xc2, 0xc5, 0x74, 0x26, 0xaf, 0x58, 0xc4, 0x7b, 0x50,
-	0x9d, 0xe2, 0x38, 0xf4, 0xc6, 0xf4, 0x10, 0x50, 0xc7, 0xaa, 0x8b, 0xee, 0xb0, 0xa4, 0x82, 0xfe,
-	0x8f, 0x02, 0x28, 0x12, 0x8d, 0x2e, 0x9d, 0xfa, 0x37, 0xa1, 0xe1, 0xe2, 0x89, 0x33, 0xf7, 0xe3,
-	0xec, 0x24, 0xea, 0x02, 0x93, 0xd3, 0x60, 0x73, 0x4a, 0xa7, 0x21, 0x9a, 0xe8, 0x3e, 0x34, 0x69,
-	0x27, 0x9b, 0x9c, 0xe1, 0x30, 0xf4, 0x5c, 0x2c, 0x4e, 0x64, 0x83, 0x82, 0x7d, 0x81, 0xa1, 0x0f,
-	0xa0, 0xc2, 0xf4, 0x23, 0xad, 0xcc, 0xa6, 0xba, 0x9e, 0x4e, 0x35, 0xe3, 0x2a, 0x4b, 0x28, 0x65,
-	0x97, 0x56, 0xf9, 0x9a, 0xa5, 0xa1, 0xdb, 0x50, 0x9b, 0x3a, 0x17, 0x76, 0xf4, 0x1c, 0x9f, 0xb3,
-	0x23, 0xdc, 0xb4, 0xaa, 0x53, 0xe7, 0x62, 0xf0, 0x1c, 0x9f, 0xeb, 0xbf, 0x2c, 0x42, 0xb9, 0x37,
-	0x75, 0x4e, 0xf0, 0x95, 0x67, 0x49, 0x83, 0xea, 0x19, 0x0e, 0x23, 0x8f, 0x04, 0x32, 0x5e, 0x45,
-	0x93, 0x6a, 0x9f, 0x3a, 0xd1, 0x29, 0x5b, 0x69, 0xd3, 0x62, 0xdf, 0xe8, 0x01, 0xa8, 0x5e, 0x10,
-	0xc5, 0x8e, 0xef, 0xdb, 0x34, 0x0c, 0x62, 0x6f, 0xca, 0x57, 0xaa, 0x58, 0xcb, 0x02, 0xef, 0x0a,
-	0x98, 0x92, 0x88, 0x17, 0xd9, 0xce, 0x38, 0xf6, 0xce, 0x30, 0x23, 0x91, 0x9a, 0x55, 0xf3, 0xa2,
-	0x36, 0x6b, 0x53, 0x5f, 0x7b, 0x91, 0x4d, 0x49, 0xcb, 0x8b, 0x63, 0xec, 0x6a, 0x15, 0x26, 0xaf,
-	0x7b, 0x51, 0x47, 0x42, 0x74, 0x45, 0x5e, 0x64, 0x9f, 0x39, 0xbe, 0xe7, 0x8a, 0xa0, 0xac, 0x7a,
-	0xd1, 0x11, 0x6d, 0x22, 0x15, 0x4a, 0xf3, 0xd0, 0x17, 0x31, 0x47, 0x3f, 0xd1, 0x4d, 0xa8, 0x70,
-	0x0a, 0xd2, 0x14, 0x06, 0x8a, 0x16, 0x5a, 0x83, 0xf2, 0x38, 0x1c, 0x3f, 0x7e, 0xa4, 0x01, 0x5b,
-	0x04, 0x6f, 0xe8, 0x7f, 0xaf, 0x42, 0x93, 0x79, 0xa4, 0x4b, 0xce, 0x03, 0x9f, 0x38, 0xee, 0xa5,
-	0xb3, 0x20, 0x3d, 0x55, 0xcc, 0x78, 0x4a, 0x8c, 0x5a, 0x4a, 0x47, 0x55, 0xa1, 0x34, 0x0e, 0xc7,
-	0x22, 0x70, 0xe8, 0x27, 0xea, 0x43, 0xcb, 0x15, 0x36, 0xed, 0x28, 0xa6, 0x7c, 0x52, 0x66, 0x31,
-	0xba, 0x25, 0x77, 0x2e, 0x37, 0x6c, 0xbe, 0x35, 0xa0, 0xfa, 0x56, 0xd3, 0xcd, 0x36, 0xe9, 0xb9,
-	0xf2, 0xa8, 0x92, 0x2d, 0x37, 0xa9, 0xc2, 0x86, 0x6f, 0x30, 0xf0, 0x48, 0xec, 0xd4, 0x03, 0x50,
-	0x65, 0x2f, 0xec, 0xda, 0xc7, 0x2f, 0x29, 0x23, 0xf2, 0x43, 0xb0, 0x9c, 0xe2, 0xbb, 0x14, 0x46,
-	0xfb, 0x50, 0x09, 0xb1, 0x13, 0x91, 0x80, 0x79, 0xaf, 0xf5, 0xe8, 0xc3, 0xd7, 0x98, 0xd8, 0x9e,
-	0xe3, 0xf9, 0xf3, 0x10, 0x5b, 0xac, 0x9f, 0x25, 0xfa, 0xa3, 0x77, 0x61, 0xd9, 0x71, 0x5d, 0x2f,
-	0xf6, 0x48, 0xe0, 0xf8, 0xb6, 0x17, 0x4c, 0x88, 0xf0, 0x7d, 0x2b, 0x85, 0x7b, 0xc1, 0x84, 0x70,
-	0x9a, 0x39, 0xc3, 0xf6, 0x98, 0x1d, 0x59, 0xb6, 0x13, 0x35, 0x4a, 0x33, 0x67, 0x58, 0x50, 0xc3,
-	0x26, 0x28, 0x3e, 0xa1, 0x44, 0xec, 0x7a, 0xa1, 0x56, 0xe7, 0xd7, 0x0d, 0x03, 0xba, 0x5e, 0x88,
-	0x7a, 0x50, 0xe7, 0x0e, 0xe0, 0xee, 0x6c, 0x7c, 0xad, 0x3b, 0xd9, 0x09, 0x73, 0x62, 0xcc, 0xdd,
-	0x09, 0xac, 0x33, 0xf7, 0xe5, 0x26, 0x28, 0x13, 0xcf, 0xc7, 0x76, 0xe4, 0x7d, 0x89, 0xb5, 0x26,
-	0xf3, 0x4f, 0x8d, 0x02, 0x03, 0xef, 0x4b, 0xac, 0x7f, 0x55, 0x00, 0x74, 0x79, 0x3b, 0xd0, 0x1a,
-	0xa8, 0xdd, 0xfe, 0x67, 0xe6, 0x41, 0xbf, 0xdd, 0xb5, 0x47, 0xe6, 0x0f, 0xcc, 0xfe, 0x67, 0xa6,
-	0x7a, 0x03, 0xdd, 0x04, 0x94, 0xa0, 0x83, 0x51, 0xa7, 0x63, 0x18, 0x5d, 0xa3, 0xab, 0x16, 0x72,
-	0xb8, 0x65, 0xfc, 0x70, 0x64, 0x0c, 0x86, 0x46, 0x57, 0x2d, 0xe6, 0xac, 0x0c, 0x86, 0x6d, 0x8b,
-	0xa2, 0x25, 0xb4, 0x0a, 0xcb, 0x09, 0xba, 0xd7, 0xee, 0x1d, 0x18, 0x5d, 0x75, 0x09, 0x69, 0xb0,
-	0x96, 0x19, 0x70, 0x30, 0x3a, 0x3c, 0xec, 0x33, 0xf5, 0x72, 0xce, 0x78, 0xa7, 0x6d, 0x76, 0x8c,
-	0x03, 0xda, 0xa3, 0xa2, 0xff, 0xbc, 0x00, 0x1b, 0xd7, 0xef, 0x17, 0x6a, 0x40, 0xcd, 0xec, 0xdb,
-	0x86, 0x65, 0xf5, 0x29, 0x77, 0x2f, 0x43, 0xbd, 0x67, 0x1e, 0xb5, 0x0f, 0x7a, 0x5d, 0x7b, 0x64,
-	0x1d, 0xa8, 0x05, 0x0a, 0x74, 0x8d, 0xa3, 0x5e, 0xc7, 0xb0, 0x77, 0x47, 0x83, 0xcf, 0xd5, 0x22,
-	0x1d, 0xa6, 0x67, 0x0e, 0x46, 0x7b, 0x7b, 0xbd, 0x4e, 0xcf, 0x30, 0x87, 0xf6, 0xe0, 0xb0, 0xdd,
-	0x31, 0xd4, 0x12, 0x5a, 0x81, 0xa6, 0x70, 0x80, 0x30, 0xb6, 0x84, 0x9a, 0xa0, 0xa4, 0x13, 0x29,
-	0xeb, 0xbf, 0x90, 0x2e, 0xcc, 0x6d, 0x01, 0xed, 0xd8, 0x7b, 0xd6, 0x7e, 0x6a, 0x64, 0xfc, 0x87,
-	0xa0, 0xc5, 0xa1, 0x9e, 0xd9, 0xee, 0x0c, 0x7b, 0x47, 0xf4, 0x2a, 0x59, 0x03, 0x95, 0x63, 0x0c,
-	0x69, 0x0f, 0x7b, 0xe6, 0x53, 0xb5, 0x88, 0x54, 0x68, 0x64, 0x50, 0x83, 0x7b, 0x8d, 0x23, 0x96,
-	0x71, 0x64, 0x58, 0x4c, 0x6d, 0x29, 0x35, 0xc8, 0x41, 0x3a, 0x9d, 0xef, 0x16, 0xb5, 0x82, 0xde,
-	0x86, 0x56, 0xce, 0x35, 0x11, 0x7a, 0x28, 0xaf, 0xe1, 0x62, 0x9e, 0x82, 0x73, 0x6a, 0xe2, 0x26,
-	0x66, 0x26, 0x3e, 0x80, 0x0a, 0x93, 0x45, 0xe8, 0x3e, 0x94, 0xd9, 0x69, 0x12, 0x37, 0x78, 0x33,
-	0xd7, 0xd5, 0xe2, 0x32, 0xfd, 0x0f, 0x05, 0xa8, 0xf5, 0x83, 0x39, 0x27, 0xdc, 0x0c, 0xb9, 0x16,
-	0xf2, 0xe4, 0xfa, 0x7f, 0x00, 0x92, 0xec, 0xb0, 0xcb, 0x68, 0xa6, 0x66, 0x65, 0x10, 0xb4, 0x01,
-	0x09, 0x59, 0x8a, 0xab, 0x26, 0x25, 0x4f, 0x0d, 0x24, 0x13, 0x8a, 0x5b, 0x26, 0x21, 0xc6, 0x7b,
-	0x50, 0x9f, 0x85, 0xc4, 0x9d, 0x8f, 0xe3, 0x0e, 0x71, 0xb1, 0x48, 0xdd, 0xb2, 0x50, 0x42, 0xea,
-	0x9c, 0x46, 0xd8, 0xb7, 0xfe, 0x18, 0x14, 0x39, 0xe3, 0x08, 0xbd, 0x93, 0x4f, 0x53, 0x92, 0x2b,
-	0x47, 0x6a, 0xc8, 0x24, 0x65, 0x0c, 0x2a, 0xcf, 0x5c, 0x7a, 0xb9, 0x00, 0xe3, 0xda, 0x76, 0x42,
-	0xa6, 0x35, 0x0e, 0xf4, 0x5c, 0xf4, 0x08, 0x32, 0xb1, 0xc8, 0x56, 0x9c, 0x49, 0x82, 0x52, 0x23,
-	0xd9, 0x88, 0xd5, 0x7f, 0x52, 0x03, 0xc8, 0xd8, 0xbf, 0xde, 0x9d, 0x07, 0x97, 0x78, 0x97, 0xe7,
-	0x46, 0x6f, 0x5f, 0x1e, 0xe0, 0x35, 0x48, 0xf7, 0x7b, 0x09, 0x49, 0x96, 0x5e, 0x6d, 0xe5, 0x6a,
-	0x66, 0xdc, 0xcf, 0x53, 0xd6, 0x12, 0xb3, 0xf1, 0xee, 0x75, 0x36, 0x44, 0xb0, 0x78, 0x24, 0xb8,
-	0xbc, 0xfe, 0xbf, 0xfc, 0xcf, 0x93, 0xd2, 0x2d, 0x58, 0x5d, 0x24, 0x25, 0x1a, 0x91, 0x95, 0x6b,
-	0xd8, 0xaa, 0xaa, 0xff, 0x53, 0x2e, 0xe9, 0xbf, 0xc6, 0x52, 0x1a, 0xac, 0x25, 0x13, 0xb0, 0xfb,
-	0xa6, 0xf4, 0x81, 0x5a, 0x46, 0x1b, 0x70, 0x33, 0x27, 0xe9, 0x9b, 0x23, 0x9b, 0xa7, 0xb3, 0x15,
-	0x2a, 0x3b, 0x32, 0xcc, 0x6e, 0xdf, 0xb2, 0xc5, 0xc0, 0xcf, 0x7a, 0x83, 0x67, 0xed, 0x61, 0x67,
-	0x5f, 0xad, 0xd2, 0x45, 0xf7, 0x9f, 0x75, 0x7a, 0xf6, 0xd0, 0x6a, 0x9b, 0x83, 0x3d, 0xc3, 0x12,
-	0x43, 0xd5, 0xe8, 0x50, 0x92, 0x86, 0xf6, 0x46, 0x03, 0xa3, 0x6b, 0xef, 0x7e, 0x4e, 0x8d, 0xaa,
-	0x8a, 0xfe, 0xc7, 0x22, 0xac, 0x5d, 0xb5, 0xdd, 0xff, 0x69, 0x76, 0x4c, 0xf4, 0x3a, 0xfd, 0x67,
-	0xcf, 0x7a, 0x43, 0x41, 0x8f, 0x09, 0x67, 0x0a, 0x94, 0x6d, 0xdd, 0x1d, 0xb8, 0x9d, 0x37, 0xd9,
-	0x37, 0xed, 0xf6, 0x6e, 0x9f, 0x53, 0x6a, 0x05, 0xbd, 0x01, 0xda, 0xd5, 0x62, 0xba, 0x8d, 0xe8,
-	0x36, 0xac, 0x67, 0x2d, 0xa6, 0x1d, 0x33, 0x4e, 0xc8, 0x8a, 0x8c, 0xae, 0xaa, 0xa0, 0x75, 0x58,
-	0xe1, 0x12, 0x79, 0x32, 0x68, 0x07, 0x48, 0x27, 0x92, 0x81, 0x93, 0x5e, 0x75, 0xfd, 0xab, 0x32,
-	0x2c, 0x1d, 0x92, 0x30, 0x46, 0xb7, 0xa0, 0x3a, 0x23, 0x61, 0x6c, 0x07, 0x84, 0x85, 0x7f, 0xd3,
-	0xaa, 0xd0, 0xa6, 0x49, 0x68, 0x96, 0xe7, 0x3b, 0xc7, 0xd8, 0x17, 0xe9, 0x1a, 0x6f, 0xa0, 0x07,
-	0xa2, 0x4a, 0xe2, 0x31, 0x9c, 0xe6, 0xda, 0x24, 0x8c, 0xd9, 0x4f, 0xa6, 0x46, 0xfa, 0x0e, 0xd4,
-	0x1d, 0x77, 0xea, 0x05, 0xb9, 0x9c, 0x4d, 0xdb, 0x16, 0x45, 0x75, 0x9b, 0x8a, 0x78, 0xc4, 0xb2,
-	0x52, 0xce, 0x02, 0x27, 0x41, 0x68, 0x57, 0x32, 0xc3, 0x21, 0xeb, 0x39, 0x8f, 0x18, 0xaf, 0x66,
-	0xba, 0xf6, 0x67, 0x38, 0x1c, 0x30, 0x89, 0xec, 0x4a, 0x12, 0x24, 0x4f, 0x97, 0xd5, 0x05, 0xba,
-	0x7c, 0x08, 0xe5, 0x19, 0xc6, 0x61, 0xa4, 0xd5, 0x16, 0x4a, 0x05, 0x36, 0x7d, 0x8c, 0x43, 0xfa,
-	0x61, 0x71, 0x1d, 0x5a, 0x3d, 0x85, 0x17, 0xf6, 0xcc, 0x19, 0x3f, 0xc7, 0x71, 0xc4, 0xd2, 0xb0,
-	0x8a, 0xa5, 0x84, 0x17, 0x87, 0x1c, 0xa0, 0xa9, 0x74, 0x78, 0x21, 0xf2, 0x42, 0x60, 0xc2, 0x6a,
-	0x78, 0xc1, 0xf3, 0xc1, 0x4d, 0x50, 0xc2, 0x0b, 0x1b, 0x87, 0x21, 0x09, 0x23, 0x96, 0x7b, 0x55,
-	0xac, 0x5a, 0x78, 0x61, 0xb0, 0x36, 0x35, 0x1b, 0xa7, 0x66, 0x1b, 0xdc, 0x6c, 0x9c, 0x35, 0x1b,
-	0x4b, 0xb3, 0x4d, 0x6e, 0x36, 0x4e, 0xcd, 0xc6, 0x89, 0xd9, 0x16, 0x37, 0x1b, 0x4b, 0xb3, 0x1f,
-	0x42, 0x8d, 0x4c, 0x66, 0x36, 0xdd, 0x3c, 0x6d, 0x99, 0xdd, 0x03, 0xeb, 0xdb, 0xd9, 0x37, 0x0a,
-	0x29, 0xb4, 0xaa, 0x64, 0x32, 0xa3, 0xcb, 0xdc, 0x78, 0x02, 0x35, 0xb9, 0xe4, 0x57, 0x5f, 0x32,
-	0x99, 0x23, 0x52, 0xcc, 0x1e, 0x11, 0x3d, 0x82, 0x9a, 0xdc, 0x73, 0x5a, 0xa9, 0xa6, 0xc1, 0xa6,
-	0x42, 0xc3, 0x18, 0xee, 0x1b, 0x96, 0x69, 0x0c, 0x6d, 0xd3, 0xec, 0xa9, 0x85, 0x1c, 0x32, 0x32,
-	0x7b, 0xbc, 0xb4, 0x3d, 0xa4, 0xf4, 0x70, 0x30, 0x54, 0x4b, 0x49, 0xc3, 0x1c, 0xf1, 0x0c, 0xe8,
-	0xc8, 0xa0, 0x8a, 0x54, 0x56, 0xce, 0x34, 0xcd, 0x91, 0x5a, 0xd1, 0x1f, 0x42, 0x99, 0x0e, 0x1a,
-	0x21, 0x3d, 0x7f, 0xa9, 0x36, 0xb2, 0x9b, 0x29, 0x2f, 0xd4, 0xbf, 0x02, 0x54, 0xf8, 0x8d, 0x7a,
-	0x55, 0x35, 0x92, 0xd4, 0xfb, 0x8a, 0x38, 0xb2, 0x08, 0x96, 0x42, 0x42, 0x62, 0x91, 0x1c, 0xb0,
-	0x6f, 0xea, 0x9a, 0x99, 0x13, 0xe2, 0x20, 0xb6, 0x45, 0x6a, 0xa0, 0x58, 0x35, 0x0e, 0xf4, 0x5c,
-	0xf4, 0x16, 0xb4, 0x84, 0x50, 0x7a, 0x68, 0x8d, 0x79, 0xa8, 0xc1, 0xd1, 0x43, 0x1e, 0x4a, 0x69,
-	0x21, 0x55, 0x5e, 0x2c, 0xa4, 0xa6, 0xc4, 0xc5, 0xbe, 0x48, 0x1c, 0x78, 0x83, 0x16, 0x1e, 0xa7,
-	0x4e, 0xe8, 0x9e, 0x3b, 0x61, 0x5a, 0xa0, 0xf0, 0x83, 0xbc, 0x2c, 0xf1, 0x4c, 0x8d, 0x32, 0xf1,
-	0xc2, 0x69, 0x4e, 0x95, 0x17, 0x70, 0xcb, 0x12, 0x97, 0xaa, 0xef, 0x40, 0x85, 0xdd, 0x81, 0xfc,
-	0x24, 0xd7, 0x1f, 0xb5, 0x72, 0x57, 0x67, 0x64, 0x09, 0x29, 0xad, 0x8d, 0x22, 0x1c, 0x7a, 0x8e,
-	0x6f, 0x07, 0xf3, 0xe9, 0x31, 0x0e, 0xd9, 0xd9, 0x56, 0xac, 0x06, 0x07, 0x4d, 0x86, 0xe5, 0xdf,
-	0xb2, 0xb4, 0x85, 0xb7, 0xac, 0x07, 0xa0, 0xca, 0x57, 0x1c, 0x1c, 0xb8, 0x33, 0xe2, 0x05, 0xb1,
-	0x76, 0x9b, 0x4f, 0x4a, 0xe0, 0x86, 0x80, 0xa9, 0xbf, 0xcf, 0x7c, 0x27, 0x60, 0x51, 0xd0, 0xb4,
-	0xd8, 0x37, 0xad, 0x6c, 0xa6, 0xce, 0xd8, 0x76, 0x5c, 0x37, 0xc4, 0x11, 0x8f, 0x01, 0xc5, 0x82,
-	0xa9, 0x33, 0x6e, 0x73, 0x04, 0xdd, 0x87, 0x86, 0x37, 0x3b, 0xfb, 0xff, 0x44, 0x83, 0x46, 0x82,
-	0xb2, 0x7f, 0xc3, 0xaa, 0x53, 0x34, 0xaf, 0xf4, 0x71, 0xa2, 0xb4, 0x9c, 0x51, 0xfa, 0x58, 0x2a,
-	0xbd, 0x05, 0xcd, 0x53, 0x12, 0xc5, 0xb6, 0x13, 0xb8, 0x3c, 0x70, 0xd6, 0xa5, 0x16, 0x85, 0xdb,
-	0x81, 0xcb, 0x62, 0xe3, 0x0e, 0x00, 0xbe, 0x88, 0x43, 0xc7, 0x76, 0xc2, 0x93, 0x48, 0xbb, 0xc5,
-	0x1f, 0x59, 0x18, 0xd2, 0x0e, 0x4f, 0x22, 0xf4, 0x04, 0x9a, 0xb3, 0x90, 0x5c, 0xbc, 0x4c, 0x86,
-	0x5a, 0x65, 0xfe, 0xdd, 0xcc, 0x3f, 0x45, 0x6d, 0x1f, 0x52, 0x1d, 0x31, 0xb0, 0xd5, 0x98, 0x65,
-	0x5a, 0x8b, 0x44, 0xa9, 0xfe, 0xfb, 0x44, 0xb9, 0xf2, 0x0d, 0x88, 0xf2, 0x66, 0x92, 0x8f, 0xdd,
-	0xe4, 0x87, 0x52, 0x24, 0x5a, 0xbb, 0xd0, 0x1a, 0x93, 0x20, 0xc0, 0xe3, 0x58, 0x5a, 0x45, 0xcc,
-	0xea, 0xa6, 0xb4, 0xda, 0xe1, 0xd2, 0x9c, 0xe1, 0xe6, 0x38, 0x0b, 0xa2, 0xf7, 0xa1, 0x32, 0x9e,
-	0x47, 0x31, 0x99, 0x6a, 0x4f, 0x98, 0x33, 0xd6, 0xb6, 0xf9, 0x9b, 0xeb, 0xb6, 0x7c, 0x73, 0xdd,
-	0x6e, 0x07, 0x2f, 0x2d, 0xa1, 0x83, 0x3e, 0x02, 0x98, 0x4d, 0x45, 0x25, 0x1b, 0x69, 0x3f, 0x2d,
-	0xb0, 0x2e, 0x2b, 0x8b, 0xcf, 0x32, 0x91, 0xa5, 0xcc, 0x92, 0x67, 0xa6, 0x4f, 0x61, 0x99, 0x67,
-	0x83, 0x32, 0xc7, 0x8c, 0xb4, 0x9f, 0x15, 0x5e, 0x55, 0x7b, 0xb4, 0xbc, 0x5c, 0xc5, 0xb2, 0xf1,
-	0xfb, 0x22, 0x34, 0xb2, 0x5b, 0xf2, 0x6a, 0x06, 0xbc, 0x0b, 0x75, 0x21, 0xcc, 0x50, 0x06, 0xb8,
-	0xe9, 0x63, 0xef, 0x1d, 0x80, 0xf1, 0xa9, 0x13, 0x04, 0xd8, 0xa7, 0xdd, 0xf9, 0xe3, 0x8e, 0x22,
-	0x90, 0x9e, 0x8b, 0xb6, 0x40, 0x95, 0x62, 0xfe, 0x20, 0x27, 0xa8, 0xa4, 0x69, 0xb5, 0x04, 0xce,
-	0x9e, 0xaa, 0x7a, 0x2e, 0xda, 0x81, 0x55, 0xa9, 0x19, 0xe3, 0x70, 0xea, 0x05, 0x2c, 0xab, 0x11,
-	0xbc, 0x81, 0x84, 0x68, 0x98, 0x4a, 0xd0, 0x3a, 0x54, 0x48, 0x30, 0xa7, 0x06, 0x2b, 0xfc, 0x35,
-	0x86, 0x04, 0x73, 0x4e, 0x4c, 0x14, 0x8e, 0x70, 0x44, 0xa3, 0x5f, 0xde, 0x85, 0x4d, 0xab, 0x41,
-	0x82, 0xf9, 0x80, 0x83, 0xd7, 0x84, 0x6a, 0xed, 0xca, 0x50, 0xdd, 0x55, 0xa0, 0x2a, 0x0e, 0xf8,
-	0xf7, 0x97, 0x6a, 0x75, 0xb5, 0xa1, 0xff, 0xb9, 0x00, 0x1b, 0x99, 0x62, 0x25, 0xf1, 0x34, 0x7e,
-	0x31, 0xc7, 0x51, 0x8c, 0xde, 0xcd, 0xfb, 0x93, 0x6e, 0x0d, 0xc8, 0x13, 0xd4, 0xeb, 0x66, 0x7c,
-	0x9b, 0x14, 0x80, 0xbc, 0x7a, 0xb9, 0xb2, 0x00, 0x44, 0xef, 0xc3, 0x8a, 0x23, 0xea, 0xdf, 0x7e,
-	0x30, 0x98, 0x8f, 0xc7, 0x34, 0xd0, 0x38, 0x4b, 0x5f, 0x16, 0xa0, 0x2d, 0x58, 0xe6, 0xaf, 0x60,
-	0xa9, 0x2e, 0xaf, 0xe9, 0x16, 0x61, 0xfd, 0xc7, 0x05, 0x40, 0x99, 0x45, 0x7c, 0xe3, 0xc9, 0x5f,
-	0xff, 0xd0, 0x77, 0xc5, 0x1c, 0x4a, 0x57, 0xcf, 0xc1, 0x86, 0xd5, 0xdc, 0x14, 0xa2, 0x19, 0x09,
-	0x22, 0x8c, 0xf6, 0x61, 0x55, 0xce, 0x21, 0xad, 0x7b, 0xe4, 0x65, 0xa7, 0xe5, 0xd9, 0x25, 0x53,
-	0xe9, 0xad, 0xb8, 0x0b, 0x48, 0xa4, 0xff, 0xb6, 0x00, 0xea, 0x00, 0xfb, 0x93, 0x21, 0x8e, 0xe2,
-	0xc4, 0xfc, 0xa7, 0x34, 0xfc, 0xa3, 0xb9, 0x1f, 0xb3, 0xc3, 0x9e, 0x29, 0xa5, 0x16, 0x35, 0xb3,
-	0xc0, 0xdc, 0x8f, 0x2d, 0xd1, 0x4d, 0x3f, 0x84, 0x56, 0x5e, 0x42, 0x2f, 0x71, 0x56, 0x22, 0x0d,
-	0x06, 0xea, 0x0d, 0xda, 0xa0, 0x95, 0xce, 0xc8, 0xa2, 0x89, 0xf6, 0x0a, 0x34, 0xcd, 0xfe, 0xd0,
-	0x4e, 0x6b, 0x9c, 0xe2, 0xe5, 0x9a, 0xa2, 0xa4, 0xef, 0x40, 0x95, 0x2f, 0x87, 0x32, 0x73, 0xee,
-	0x6e, 0x6f, 0xe5, 0x97, 0x2b, 0x6f, 0xf7, 0xdf, 0x95, 0x60, 0x6d, 0xe0, 0x4d, 0xe7, 0xbe, 0x13,
-	0xe3, 0xb6, 0xef, 0x84, 0x53, 0xb9, 0x7f, 0x8b, 0x77, 0xfd, 0x1b, 0xa0, 0x78, 0x81, 0xeb, 0x8d,
-	0x9d, 0x98, 0xc8, 0x7f, 0x50, 0x52, 0x80, 0xe6, 0x37, 0x5e, 0x10, 0x4f, 0x64, 0xe4, 0x2a, 0x56,
-	0x85, 0x36, 0xc5, 0xed, 0x4e, 0xaf, 0x75, 0x1a, 0xf4, 0xfc, 0x89, 0x9d, 0xdf, 0xff, 0x8d, 0x99,
-	0xc8, 0x7a, 0xd8, 0x2b, 0xbb, 0x0e, 0x4d, 0x1a, 0x6a, 0xe9, 0x81, 0x11, 0x2f, 0x04, 0x24, 0x98,
-	0x77, 0xe5, 0x39, 0x79, 0x0c, 0x37, 0xbd, 0x80, 0x1e, 0x0d, 0x6c, 0x1f, 0x7b, 0x31, 0xcf, 0xe1,
-	0xec, 0x90, 0xb2, 0x3d, 0x8d, 0xda, 0xb2, 0xb5, 0x2a, 0xa4, 0xbb, 0x5e, 0xcc, 0xf2, 0x39, 0x8b,
-	0x57, 0xa4, 0x65, 0x37, 0xf4, 0x26, 0x31, 0x0b, 0xdd, 0xb2, 0xc5, 0x1b, 0x74, 0xb6, 0x01, 0x3e,
-	0xb7, 0xf1, 0x0b, 0x97, 0x85, 0x6a, 0xd9, 0xaa, 0x04, 0xf8, 0xdc, 0x78, 0xe1, 0xa2, 0xf7, 0x60,
-	0x85, 0x87, 0x7c, 0xf6, 0xf6, 0xe6, 0xaf, 0x87, 0xcb, 0x2c, 0xea, 0x33, 0x17, 0xf8, 0x3e, 0x28,
-	0xf4, 0x2a, 0xe0, 0xe4, 0x02, 0xec, 0x00, 0xbc, 0x97, 0x1c, 0x80, 0x2b, 0x3c, 0xca, 0xae, 0x12,
-	0xa6, 0xcd, 0x12, 0xfc, 0xb4, 0xb3, 0xfe, 0x36, 0x34, 0x73, 0x32, 0xa4, 0x40, 0xd9, 0x6a, 0xf7,
-	0x06, 0x06, 0xff, 0x4f, 0xa3, 0x73, 0x60, 0xb4, 0x2d, 0xb5, 0xa0, 0xff, 0xaa, 0x00, 0xb7, 0xfa,
-	0xf9, 0x49, 0xf4, 0x83, 0xfe, 0xc1, 0xf0, 0x90, 0x04, 0x68, 0x1b, 0x9a, 0xc4, 0x8f, 0xed, 0x3c,
-	0xfd, 0xe6, 0x23, 0xae, 0x4e, 0xfc, 0x38, 0x71, 0xe6, 0x3d, 0x58, 0x62, 0xb7, 0x35, 0x27, 0x8c,
-	0x7c, 0xde, 0xc7, 0x24, 0x97, 0x93, 0x98, 0xd2, 0xe5, 0x24, 0x46, 0xff, 0x4d, 0x01, 0x1a, 0xfc,
-	0x8f, 0xa7, 0x6b, 0x32, 0xc4, 0xc5, 0x44, 0xa3, 0xf8, 0x3a, 0x89, 0x46, 0xe9, 0xb5, 0x12, 0x8d,
-	0xa5, 0x2b, 0x12, 0x8d, 0x0c, 0xc5, 0xee, 0x7e, 0x01, 0x1b, 0x24, 0x3c, 0x61, 0x09, 0xfc, 0x98,
-	0x84, 0xee, 0x36, 0xff, 0xef, 0x51, 0xac, 0x74, 0xb7, 0x71, 0xc4, 0x9a, 0x7c, 0xda, 0x5f, 0x6c,
-	0x9f, 0x78, 0xf1, 0xe9, 0xfc, 0x98, 0x7a, 0x6b, 0x47, 0x76, 0xd8, 0xe1, 0x1d, 0x3e, 0x10, 0x7f,
-	0x56, 0x9e, 0x7d, 0x6b, 0xe7, 0x84, 0x08, 0xec, 0xb8, 0xc2, 0xc0, 0xc7, 0xff, 0x0a, 0x00, 0x00,
-	0xff, 0xff, 0x7b, 0x3a, 0xcb, 0x63, 0x2c, 0x1d, 0x00, 0x00,
+	type x struct{}
+	out := protoimpl.TypeBuilder{
+		File: protoimpl.DescBuilder{
+			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+			RawDescriptor: unsafe.Slice(unsafe.StringData(file_voltha_protos_device_proto_rawDesc), len(file_voltha_protos_device_proto_rawDesc)),
+			NumEnums:      10,
+			NumMessages:   26,
+			NumExtensions: 0,
+			NumServices:   0,
+		},
+		GoTypes:           file_voltha_protos_device_proto_goTypes,
+		DependencyIndexes: file_voltha_protos_device_proto_depIdxs,
+		EnumInfos:         file_voltha_protos_device_proto_enumTypes,
+		MessageInfos:      file_voltha_protos_device_proto_msgTypes,
+	}.Build()
+	File_voltha_protos_device_proto = out.File
+	file_voltha_protos_device_proto_goTypes = nil
+	file_voltha_protos_device_proto_depIdxs = nil
 }
diff --git a/go/voltha/events.pb.go b/go/voltha/events.pb.go
index 3125fa9..38bd8c3 100644
--- a/go/voltha/events.pb.go
+++ b/go/voltha/events.pb.go
@@ -1,27 +1,28 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// 	protoc-gen-go v1.36.11
+// 	protoc        v4.25.8
 // source: voltha_protos/events.proto
 
 package voltha
 
 import (
-	fmt "fmt"
-	proto "github.com/golang/protobuf/proto"
-	timestamp "github.com/golang/protobuf/ptypes/timestamp"
 	common "github.com/opencord/voltha-protos/v5/go/common"
 	_ "google.golang.org/genproto/googleapis/api/annotations"
-	math "math"
+	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
+	reflect "reflect"
+	sync "sync"
+	unsafe "unsafe"
 )
 
-// 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
+const (
+	// Verify that this generated code is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+	// Verify that runtime/protoimpl is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
 
 type EventFilterRuleKey_EventFilterRuleType int32
 
@@ -34,83 +35,146 @@
 	EventFilterRuleKey_device_event_type EventFilterRuleKey_EventFilterRuleType = 5
 )
 
-var EventFilterRuleKey_EventFilterRuleType_name = map[int32]string{
-	0: "filter_all",
-	1: "category",
-	2: "sub_category",
-	3: "kpi_event_type",
-	4: "config_event_type",
-	5: "device_event_type",
-}
+// Enum value maps for EventFilterRuleKey_EventFilterRuleType.
+var (
+	EventFilterRuleKey_EventFilterRuleType_name = map[int32]string{
+		0: "filter_all",
+		1: "category",
+		2: "sub_category",
+		3: "kpi_event_type",
+		4: "config_event_type",
+		5: "device_event_type",
+	}
+	EventFilterRuleKey_EventFilterRuleType_value = map[string]int32{
+		"filter_all":        0,
+		"category":          1,
+		"sub_category":      2,
+		"kpi_event_type":    3,
+		"config_event_type": 4,
+		"device_event_type": 5,
+	}
+)
 
-var EventFilterRuleKey_EventFilterRuleType_value = map[string]int32{
-	"filter_all":        0,
-	"category":          1,
-	"sub_category":      2,
-	"kpi_event_type":    3,
-	"config_event_type": 4,
-	"device_event_type": 5,
+func (x EventFilterRuleKey_EventFilterRuleType) Enum() *EventFilterRuleKey_EventFilterRuleType {
+	p := new(EventFilterRuleKey_EventFilterRuleType)
+	*p = x
+	return p
 }
 
 func (x EventFilterRuleKey_EventFilterRuleType) String() string {
-	return proto.EnumName(EventFilterRuleKey_EventFilterRuleType_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (EventFilterRuleKey_EventFilterRuleType) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_events_proto_enumTypes[0].Descriptor()
+}
+
+func (EventFilterRuleKey_EventFilterRuleType) Type() protoreflect.EnumType {
+	return &file_voltha_protos_events_proto_enumTypes[0]
+}
+
+func (x EventFilterRuleKey_EventFilterRuleType) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use EventFilterRuleKey_EventFilterRuleType.Descriptor instead.
 func (EventFilterRuleKey_EventFilterRuleType) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{0, 0}
+	return file_voltha_protos_events_proto_rawDescGZIP(), []int{0, 0}
 }
 
 type ConfigEventType_Types int32
 
 const (
-	ConfigEventType_add    ConfigEventType_Types = 0
-	ConfigEventType_remove ConfigEventType_Types = 1
-	ConfigEventType_update ConfigEventType_Types = 2
+	ConfigEventType_add    ConfigEventType_Types = 0 // A new config has been added
+	ConfigEventType_remove ConfigEventType_Types = 1 // A config has been removed
+	ConfigEventType_update ConfigEventType_Types = 2 // A config has been updated
 )
 
-var ConfigEventType_Types_name = map[int32]string{
-	0: "add",
-	1: "remove",
-	2: "update",
-}
+// Enum value maps for ConfigEventType_Types.
+var (
+	ConfigEventType_Types_name = map[int32]string{
+		0: "add",
+		1: "remove",
+		2: "update",
+	}
+	ConfigEventType_Types_value = map[string]int32{
+		"add":    0,
+		"remove": 1,
+		"update": 2,
+	}
+)
 
-var ConfigEventType_Types_value = map[string]int32{
-	"add":    0,
-	"remove": 1,
-	"update": 2,
+func (x ConfigEventType_Types) Enum() *ConfigEventType_Types {
+	p := new(ConfigEventType_Types)
+	*p = x
+	return p
 }
 
 func (x ConfigEventType_Types) String() string {
-	return proto.EnumName(ConfigEventType_Types_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (ConfigEventType_Types) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_events_proto_enumTypes[1].Descriptor()
+}
+
+func (ConfigEventType_Types) Type() protoreflect.EnumType {
+	return &file_voltha_protos_events_proto_enumTypes[1]
+}
+
+func (x ConfigEventType_Types) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use ConfigEventType_Types.Descriptor instead.
 func (ConfigEventType_Types) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{4, 0}
+	return file_voltha_protos_events_proto_rawDescGZIP(), []int{4, 0}
 }
 
 type KpiEventType_Types int32
 
 const (
-	KpiEventType_slice KpiEventType_Types = 0
-	KpiEventType_ts    KpiEventType_Types = 1
+	KpiEventType_slice KpiEventType_Types = 0 // slice: a set of path/metric data for same time-stamp
+	KpiEventType_ts    KpiEventType_Types = 1 // time-series: array of data for same metric
 )
 
-var KpiEventType_Types_name = map[int32]string{
-	0: "slice",
-	1: "ts",
-}
+// Enum value maps for KpiEventType_Types.
+var (
+	KpiEventType_Types_name = map[int32]string{
+		0: "slice",
+		1: "ts",
+	}
+	KpiEventType_Types_value = map[string]int32{
+		"slice": 0,
+		"ts":    1,
+	}
+)
 
-var KpiEventType_Types_value = map[string]int32{
-	"slice": 0,
-	"ts":    1,
+func (x KpiEventType_Types) Enum() *KpiEventType_Types {
+	p := new(KpiEventType_Types)
+	*p = x
+	return p
 }
 
 func (x KpiEventType_Types) String() string {
-	return proto.EnumName(KpiEventType_Types_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (KpiEventType_Types) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_events_proto_enumTypes[2].Descriptor()
+}
+
+func (KpiEventType_Types) Type() protoreflect.EnumType {
+	return &file_voltha_protos_events_proto_enumTypes[2]
+}
+
+func (x KpiEventType_Types) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use KpiEventType_Types.Descriptor instead.
 func (KpiEventType_Types) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{6, 0}
+	return file_voltha_protos_events_proto_rawDescGZIP(), []int{6, 0}
 }
 
 type EventCategory_Types int32
@@ -121,33 +185,54 @@
 	EventCategory_EQUIPMENT     EventCategory_Types = 2
 	EventCategory_SERVICE       EventCategory_Types = 3
 	EventCategory_PROCESSING    EventCategory_Types = 4
-	EventCategory_SECURITY      EventCategory_Types = 5
+	EventCategory_SECURITY      EventCategory_Types = 5 // Add new event areas here
 )
 
-var EventCategory_Types_name = map[int32]string{
-	0: "COMMUNICATION",
-	1: "ENVIRONMENT",
-	2: "EQUIPMENT",
-	3: "SERVICE",
-	4: "PROCESSING",
-	5: "SECURITY",
-}
+// Enum value maps for EventCategory_Types.
+var (
+	EventCategory_Types_name = map[int32]string{
+		0: "COMMUNICATION",
+		1: "ENVIRONMENT",
+		2: "EQUIPMENT",
+		3: "SERVICE",
+		4: "PROCESSING",
+		5: "SECURITY",
+	}
+	EventCategory_Types_value = map[string]int32{
+		"COMMUNICATION": 0,
+		"ENVIRONMENT":   1,
+		"EQUIPMENT":     2,
+		"SERVICE":       3,
+		"PROCESSING":    4,
+		"SECURITY":      5,
+	}
+)
 
-var EventCategory_Types_value = map[string]int32{
-	"COMMUNICATION": 0,
-	"ENVIRONMENT":   1,
-	"EQUIPMENT":     2,
-	"SERVICE":       3,
-	"PROCESSING":    4,
-	"SECURITY":      5,
+func (x EventCategory_Types) Enum() *EventCategory_Types {
+	p := new(EventCategory_Types)
+	*p = x
+	return p
 }
 
 func (x EventCategory_Types) String() string {
-	return proto.EnumName(EventCategory_Types_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (EventCategory_Types) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_events_proto_enumTypes[3].Descriptor()
+}
+
+func (EventCategory_Types) Type() protoreflect.EnumType {
+	return &file_voltha_protos_events_proto_enumTypes[3]
+}
+
+func (x EventCategory_Types) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use EventCategory_Types.Descriptor instead.
 func (EventCategory_Types) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{16, 0}
+	return file_voltha_protos_events_proto_rawDescGZIP(), []int{16, 0}
 }
 
 type EventSubCategory_Types int32
@@ -158,33 +243,54 @@
 	EventSubCategory_ONT  EventSubCategory_Types = 2
 	EventSubCategory_ONU  EventSubCategory_Types = 3
 	EventSubCategory_NNI  EventSubCategory_Types = 4
-	EventSubCategory_NONE EventSubCategory_Types = 5
+	EventSubCategory_NONE EventSubCategory_Types = 5 //Adding None for RPC Events
 )
 
-var EventSubCategory_Types_name = map[int32]string{
-	0: "PON",
-	1: "OLT",
-	2: "ONT",
-	3: "ONU",
-	4: "NNI",
-	5: "NONE",
-}
+// Enum value maps for EventSubCategory_Types.
+var (
+	EventSubCategory_Types_name = map[int32]string{
+		0: "PON",
+		1: "OLT",
+		2: "ONT",
+		3: "ONU",
+		4: "NNI",
+		5: "NONE",
+	}
+	EventSubCategory_Types_value = map[string]int32{
+		"PON":  0,
+		"OLT":  1,
+		"ONT":  2,
+		"ONU":  3,
+		"NNI":  4,
+		"NONE": 5,
+	}
+)
 
-var EventSubCategory_Types_value = map[string]int32{
-	"PON":  0,
-	"OLT":  1,
-	"ONT":  2,
-	"ONU":  3,
-	"NNI":  4,
-	"NONE": 5,
+func (x EventSubCategory_Types) Enum() *EventSubCategory_Types {
+	p := new(EventSubCategory_Types)
+	*p = x
+	return p
 }
 
 func (x EventSubCategory_Types) String() string {
-	return proto.EnumName(EventSubCategory_Types_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (EventSubCategory_Types) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_events_proto_enumTypes[4].Descriptor()
+}
+
+func (EventSubCategory_Types) Type() protoreflect.EnumType {
+	return &file_voltha_protos_events_proto_enumTypes[4]
+}
+
+func (x EventSubCategory_Types) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use EventSubCategory_Types.Descriptor instead.
 func (EventSubCategory_Types) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{17, 0}
+	return file_voltha_protos_events_proto_rawDescGZIP(), []int{17, 0}
 }
 
 type EventType_Types int32
@@ -198,753 +304,840 @@
 	EventType_KPI_EVENT3   EventType_Types = 5
 )
 
-var EventType_Types_name = map[int32]string{
-	0: "CONFIG_EVENT",
-	1: "KPI_EVENT",
-	2: "KPI_EVENT2",
-	3: "DEVICE_EVENT",
-	4: "RPC_EVENT",
-	5: "KPI_EVENT3",
-}
+// Enum value maps for EventType_Types.
+var (
+	EventType_Types_name = map[int32]string{
+		0: "CONFIG_EVENT",
+		1: "KPI_EVENT",
+		2: "KPI_EVENT2",
+		3: "DEVICE_EVENT",
+		4: "RPC_EVENT",
+		5: "KPI_EVENT3",
+	}
+	EventType_Types_value = map[string]int32{
+		"CONFIG_EVENT": 0,
+		"KPI_EVENT":    1,
+		"KPI_EVENT2":   2,
+		"DEVICE_EVENT": 3,
+		"RPC_EVENT":    4,
+		"KPI_EVENT3":   5,
+	}
+)
 
-var EventType_Types_value = map[string]int32{
-	"CONFIG_EVENT": 0,
-	"KPI_EVENT":    1,
-	"KPI_EVENT2":   2,
-	"DEVICE_EVENT": 3,
-	"RPC_EVENT":    4,
-	"KPI_EVENT3":   5,
+func (x EventType_Types) Enum() *EventType_Types {
+	p := new(EventType_Types)
+	*p = x
+	return p
 }
 
 func (x EventType_Types) String() string {
-	return proto.EnumName(EventType_Types_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (EventType_Types) Descriptor() protoreflect.EnumDescriptor {
+	return file_voltha_protos_events_proto_enumTypes[5].Descriptor()
+}
+
+func (EventType_Types) Type() protoreflect.EnumType {
+	return &file_voltha_protos_events_proto_enumTypes[5]
+}
+
+func (x EventType_Types) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use EventType_Types.Descriptor instead.
 func (EventType_Types) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{18, 0}
+	return file_voltha_protos_events_proto_rawDescGZIP(), []int{18, 0}
 }
 
 type EventFilterRuleKey struct {
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *EventFilterRuleKey) Reset()         { *m = EventFilterRuleKey{} }
-func (m *EventFilterRuleKey) String() string { return proto.CompactTextString(m) }
-func (*EventFilterRuleKey) ProtoMessage()    {}
+func (x *EventFilterRuleKey) Reset() {
+	*x = EventFilterRuleKey{}
+	mi := &file_voltha_protos_events_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *EventFilterRuleKey) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*EventFilterRuleKey) ProtoMessage() {}
+
+func (x *EventFilterRuleKey) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_events_proto_msgTypes[0]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use EventFilterRuleKey.ProtoReflect.Descriptor instead.
 func (*EventFilterRuleKey) Descriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{0}
+	return file_voltha_protos_events_proto_rawDescGZIP(), []int{0}
 }
 
-func (m *EventFilterRuleKey) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_EventFilterRuleKey.Unmarshal(m, b)
-}
-func (m *EventFilterRuleKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_EventFilterRuleKey.Marshal(b, m, deterministic)
-}
-func (m *EventFilterRuleKey) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_EventFilterRuleKey.Merge(m, src)
-}
-func (m *EventFilterRuleKey) XXX_Size() int {
-	return xxx_messageInfo_EventFilterRuleKey.Size(m)
-}
-func (m *EventFilterRuleKey) XXX_DiscardUnknown() {
-	xxx_messageInfo_EventFilterRuleKey.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_EventFilterRuleKey proto.InternalMessageInfo
-
 type EventFilterRule struct {
-	Key                  EventFilterRuleKey_EventFilterRuleType `protobuf:"varint,1,opt,name=key,proto3,enum=event.EventFilterRuleKey_EventFilterRuleType" json:"key,omitempty"`
-	Value                string                                 `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                               `json:"-"`
-	XXX_unrecognized     []byte                                 `json:"-"`
-	XXX_sizecache        int32                                  `json:"-"`
+	state         protoimpl.MessageState                 `protogen:"open.v1"`
+	Key           EventFilterRuleKey_EventFilterRuleType `protobuf:"varint,1,opt,name=key,proto3,enum=event.EventFilterRuleKey_EventFilterRuleType" json:"key,omitempty"`
+	Value         string                                 `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *EventFilterRule) Reset()         { *m = EventFilterRule{} }
-func (m *EventFilterRule) String() string { return proto.CompactTextString(m) }
-func (*EventFilterRule) ProtoMessage()    {}
+func (x *EventFilterRule) Reset() {
+	*x = EventFilterRule{}
+	mi := &file_voltha_protos_events_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *EventFilterRule) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*EventFilterRule) ProtoMessage() {}
+
+func (x *EventFilterRule) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_events_proto_msgTypes[1]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use EventFilterRule.ProtoReflect.Descriptor instead.
 func (*EventFilterRule) Descriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{1}
+	return file_voltha_protos_events_proto_rawDescGZIP(), []int{1}
 }
 
-func (m *EventFilterRule) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_EventFilterRule.Unmarshal(m, b)
-}
-func (m *EventFilterRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_EventFilterRule.Marshal(b, m, deterministic)
-}
-func (m *EventFilterRule) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_EventFilterRule.Merge(m, src)
-}
-func (m *EventFilterRule) XXX_Size() int {
-	return xxx_messageInfo_EventFilterRule.Size(m)
-}
-func (m *EventFilterRule) XXX_DiscardUnknown() {
-	xxx_messageInfo_EventFilterRule.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_EventFilterRule proto.InternalMessageInfo
-
-func (m *EventFilterRule) GetKey() EventFilterRuleKey_EventFilterRuleType {
-	if m != nil {
-		return m.Key
+func (x *EventFilterRule) GetKey() EventFilterRuleKey_EventFilterRuleType {
+	if x != nil {
+		return x.Key
 	}
 	return EventFilterRuleKey_filter_all
 }
 
-func (m *EventFilterRule) GetValue() string {
-	if m != nil {
-		return m.Value
+func (x *EventFilterRule) GetValue() string {
+	if x != nil {
+		return x.Value
 	}
 	return ""
 }
 
 type EventFilter struct {
-	Id                   string             `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
-	Enable               bool               `protobuf:"varint,2,opt,name=enable,proto3" json:"enable,omitempty"`
-	DeviceId             string             `protobuf:"bytes,3,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
-	EventType            string             `protobuf:"bytes,4,opt,name=event_type,json=eventType,proto3" json:"event_type,omitempty"`
-	Rules                []*EventFilterRule `protobuf:"bytes,5,rep,name=rules,proto3" json:"rules,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
-	XXX_unrecognized     []byte             `json:"-"`
-	XXX_sizecache        int32              `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+	Enable        bool                   `protobuf:"varint,2,opt,name=enable,proto3" json:"enable,omitempty"`
+	DeviceId      string                 `protobuf:"bytes,3,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
+	EventType     string                 `protobuf:"bytes,4,opt,name=event_type,json=eventType,proto3" json:"event_type,omitempty"`
+	Rules         []*EventFilterRule     `protobuf:"bytes,5,rep,name=rules,proto3" json:"rules,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *EventFilter) Reset()         { *m = EventFilter{} }
-func (m *EventFilter) String() string { return proto.CompactTextString(m) }
-func (*EventFilter) ProtoMessage()    {}
+func (x *EventFilter) Reset() {
+	*x = EventFilter{}
+	mi := &file_voltha_protos_events_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *EventFilter) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*EventFilter) ProtoMessage() {}
+
+func (x *EventFilter) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_events_proto_msgTypes[2]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use EventFilter.ProtoReflect.Descriptor instead.
 func (*EventFilter) Descriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{2}
+	return file_voltha_protos_events_proto_rawDescGZIP(), []int{2}
 }
 
-func (m *EventFilter) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_EventFilter.Unmarshal(m, b)
-}
-func (m *EventFilter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_EventFilter.Marshal(b, m, deterministic)
-}
-func (m *EventFilter) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_EventFilter.Merge(m, src)
-}
-func (m *EventFilter) XXX_Size() int {
-	return xxx_messageInfo_EventFilter.Size(m)
-}
-func (m *EventFilter) XXX_DiscardUnknown() {
-	xxx_messageInfo_EventFilter.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_EventFilter proto.InternalMessageInfo
-
-func (m *EventFilter) GetId() string {
-	if m != nil {
-		return m.Id
+func (x *EventFilter) GetId() string {
+	if x != nil {
+		return x.Id
 	}
 	return ""
 }
 
-func (m *EventFilter) GetEnable() bool {
-	if m != nil {
-		return m.Enable
+func (x *EventFilter) GetEnable() bool {
+	if x != nil {
+		return x.Enable
 	}
 	return false
 }
 
-func (m *EventFilter) GetDeviceId() string {
-	if m != nil {
-		return m.DeviceId
+func (x *EventFilter) GetDeviceId() string {
+	if x != nil {
+		return x.DeviceId
 	}
 	return ""
 }
 
-func (m *EventFilter) GetEventType() string {
-	if m != nil {
-		return m.EventType
+func (x *EventFilter) GetEventType() string {
+	if x != nil {
+		return x.EventType
 	}
 	return ""
 }
 
-func (m *EventFilter) GetRules() []*EventFilterRule {
-	if m != nil {
-		return m.Rules
+func (x *EventFilter) GetRules() []*EventFilterRule {
+	if x != nil {
+		return x.Rules
 	}
 	return nil
 }
 
 type EventFilters struct {
-	Filters              []*EventFilter `protobuf:"bytes,1,rep,name=filters,proto3" json:"filters,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
-	XXX_unrecognized     []byte         `json:"-"`
-	XXX_sizecache        int32          `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Filters       []*EventFilter         `protobuf:"bytes,1,rep,name=filters,proto3" json:"filters,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *EventFilters) Reset()         { *m = EventFilters{} }
-func (m *EventFilters) String() string { return proto.CompactTextString(m) }
-func (*EventFilters) ProtoMessage()    {}
+func (x *EventFilters) Reset() {
+	*x = EventFilters{}
+	mi := &file_voltha_protos_events_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *EventFilters) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*EventFilters) ProtoMessage() {}
+
+func (x *EventFilters) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_events_proto_msgTypes[3]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use EventFilters.ProtoReflect.Descriptor instead.
 func (*EventFilters) Descriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{3}
+	return file_voltha_protos_events_proto_rawDescGZIP(), []int{3}
 }
 
-func (m *EventFilters) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_EventFilters.Unmarshal(m, b)
-}
-func (m *EventFilters) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_EventFilters.Marshal(b, m, deterministic)
-}
-func (m *EventFilters) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_EventFilters.Merge(m, src)
-}
-func (m *EventFilters) XXX_Size() int {
-	return xxx_messageInfo_EventFilters.Size(m)
-}
-func (m *EventFilters) XXX_DiscardUnknown() {
-	xxx_messageInfo_EventFilters.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_EventFilters proto.InternalMessageInfo
-
-func (m *EventFilters) GetFilters() []*EventFilter {
-	if m != nil {
-		return m.Filters
+func (x *EventFilters) GetFilters() []*EventFilter {
+	if x != nil {
+		return x.Filters
 	}
 	return nil
 }
 
 type ConfigEventType struct {
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *ConfigEventType) Reset()         { *m = ConfigEventType{} }
-func (m *ConfigEventType) String() string { return proto.CompactTextString(m) }
-func (*ConfigEventType) ProtoMessage()    {}
+func (x *ConfigEventType) Reset() {
+	*x = ConfigEventType{}
+	mi := &file_voltha_protos_events_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ConfigEventType) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ConfigEventType) ProtoMessage() {}
+
+func (x *ConfigEventType) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_events_proto_msgTypes[4]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ConfigEventType.ProtoReflect.Descriptor instead.
 func (*ConfigEventType) Descriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{4}
+	return file_voltha_protos_events_proto_rawDescGZIP(), []int{4}
 }
 
-func (m *ConfigEventType) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_ConfigEventType.Unmarshal(m, b)
-}
-func (m *ConfigEventType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_ConfigEventType.Marshal(b, m, deterministic)
-}
-func (m *ConfigEventType) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_ConfigEventType.Merge(m, src)
-}
-func (m *ConfigEventType) XXX_Size() int {
-	return xxx_messageInfo_ConfigEventType.Size(m)
-}
-func (m *ConfigEventType) XXX_DiscardUnknown() {
-	xxx_messageInfo_ConfigEventType.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_ConfigEventType proto.InternalMessageInfo
-
 type ConfigEvent struct {
-	Type                 ConfigEventType_Types `protobuf:"varint,1,opt,name=type,proto3,enum=event.ConfigEventType_Types" json:"type,omitempty"`
-	Hash                 string                `protobuf:"bytes,2,opt,name=hash,proto3" json:"hash,omitempty"`
-	Data                 string                `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
-	XXX_unrecognized     []byte                `json:"-"`
-	XXX_sizecache        int32                 `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Type          ConfigEventType_Types  `protobuf:"varint,1,opt,name=type,proto3,enum=event.ConfigEventType_Types" json:"type,omitempty"`
+	Hash          string                 `protobuf:"bytes,2,opt,name=hash,proto3" json:"hash,omitempty"` // hash for this change, can be used for quick lookup
+	Data          string                 `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` // the actual new data, in json format
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *ConfigEvent) Reset()         { *m = ConfigEvent{} }
-func (m *ConfigEvent) String() string { return proto.CompactTextString(m) }
-func (*ConfigEvent) ProtoMessage()    {}
+func (x *ConfigEvent) Reset() {
+	*x = ConfigEvent{}
+	mi := &file_voltha_protos_events_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *ConfigEvent) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ConfigEvent) ProtoMessage() {}
+
+func (x *ConfigEvent) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_events_proto_msgTypes[5]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ConfigEvent.ProtoReflect.Descriptor instead.
 func (*ConfigEvent) Descriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{5}
+	return file_voltha_protos_events_proto_rawDescGZIP(), []int{5}
 }
 
-func (m *ConfigEvent) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_ConfigEvent.Unmarshal(m, b)
-}
-func (m *ConfigEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_ConfigEvent.Marshal(b, m, deterministic)
-}
-func (m *ConfigEvent) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_ConfigEvent.Merge(m, src)
-}
-func (m *ConfigEvent) XXX_Size() int {
-	return xxx_messageInfo_ConfigEvent.Size(m)
-}
-func (m *ConfigEvent) XXX_DiscardUnknown() {
-	xxx_messageInfo_ConfigEvent.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_ConfigEvent proto.InternalMessageInfo
-
-func (m *ConfigEvent) GetType() ConfigEventType_Types {
-	if m != nil {
-		return m.Type
+func (x *ConfigEvent) GetType() ConfigEventType_Types {
+	if x != nil {
+		return x.Type
 	}
 	return ConfigEventType_add
 }
 
-func (m *ConfigEvent) GetHash() string {
-	if m != nil {
-		return m.Hash
+func (x *ConfigEvent) GetHash() string {
+	if x != nil {
+		return x.Hash
 	}
 	return ""
 }
 
-func (m *ConfigEvent) GetData() string {
-	if m != nil {
-		return m.Data
+func (x *ConfigEvent) GetData() string {
+	if x != nil {
+		return x.Data
 	}
 	return ""
 }
 
 type KpiEventType struct {
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *KpiEventType) Reset()         { *m = KpiEventType{} }
-func (m *KpiEventType) String() string { return proto.CompactTextString(m) }
-func (*KpiEventType) ProtoMessage()    {}
+func (x *KpiEventType) Reset() {
+	*x = KpiEventType{}
+	mi := &file_voltha_protos_events_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *KpiEventType) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*KpiEventType) ProtoMessage() {}
+
+func (x *KpiEventType) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_events_proto_msgTypes[6]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use KpiEventType.ProtoReflect.Descriptor instead.
 func (*KpiEventType) Descriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{6}
+	return file_voltha_protos_events_proto_rawDescGZIP(), []int{6}
 }
 
-func (m *KpiEventType) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_KpiEventType.Unmarshal(m, b)
-}
-func (m *KpiEventType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_KpiEventType.Marshal(b, m, deterministic)
-}
-func (m *KpiEventType) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_KpiEventType.Merge(m, src)
-}
-func (m *KpiEventType) XXX_Size() int {
-	return xxx_messageInfo_KpiEventType.Size(m)
-}
-func (m *KpiEventType) XXX_DiscardUnknown() {
-	xxx_messageInfo_KpiEventType.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_KpiEventType proto.InternalMessageInfo
-
-//
 // Struct to convey a dictionary of metric metadata.
 type MetricMetaData struct {
-	Title           string  `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"`
-	Ts              float64 `protobuf:"fixed64,2,opt,name=ts,proto3" json:"ts,omitempty"`
-	LogicalDeviceId string  `protobuf:"bytes,3,opt,name=logical_device_id,json=logicalDeviceId,proto3" json:"logical_device_id,omitempty"`
+	state           protoimpl.MessageState `protogen:"open.v1"`
+	Title           string                 `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"`                                              // Metric group or individual metric name
+	Ts              float64                `protobuf:"fixed64,2,opt,name=ts,proto3" json:"ts,omitempty"`                                                  // UTC time-stamp of data (seconds since epoch) of
+	LogicalDeviceId string                 `protobuf:"bytes,3,opt,name=logical_device_id,json=logicalDeviceId,proto3" json:"logical_device_id,omitempty"` // The logical device ID of the VOLTHA
 	// (equivalent to the DPID that ONOS has
 	// for the VOLTHA device without the
-	//  'of:' prefix
-	SerialNo             string            `protobuf:"bytes,4,opt,name=serial_no,json=serialNo,proto3" json:"serial_no,omitempty"`
-	DeviceId             string            `protobuf:"bytes,5,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
-	Context              map[string]string `protobuf:"bytes,6,rep,name=context,proto3" json:"context,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
-	Uuid                 string            `protobuf:"bytes,7,opt,name=uuid,proto3" json:"uuid,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
-	XXX_unrecognized     []byte            `json:"-"`
-	XXX_sizecache        int32             `json:"-"`
+	//
+	//	'of:' prefix
+	SerialNo      string            `protobuf:"bytes,4,opt,name=serial_no,json=serialNo,proto3" json:"serial_no,omitempty"`                                                         // The OLT, ONU, ... device serial number
+	DeviceId      string            `protobuf:"bytes,5,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`                                                         // The OLT, ONU, ... physical device ID
+	Context       map[string]string `protobuf:"bytes,6,rep,name=context,proto3" json:"context,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // Name value pairs that provide additional
+	Uuid          string            `protobuf:"bytes,7,opt,name=uuid,proto3" json:"uuid,omitempty"`                                                                                 // Transaction identifier used to match On
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *MetricMetaData) Reset()         { *m = MetricMetaData{} }
-func (m *MetricMetaData) String() string { return proto.CompactTextString(m) }
-func (*MetricMetaData) ProtoMessage()    {}
+func (x *MetricMetaData) Reset() {
+	*x = MetricMetaData{}
+	mi := &file_voltha_protos_events_proto_msgTypes[7]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *MetricMetaData) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*MetricMetaData) ProtoMessage() {}
+
+func (x *MetricMetaData) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_events_proto_msgTypes[7]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use MetricMetaData.ProtoReflect.Descriptor instead.
 func (*MetricMetaData) Descriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{7}
+	return file_voltha_protos_events_proto_rawDescGZIP(), []int{7}
 }
 
-func (m *MetricMetaData) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_MetricMetaData.Unmarshal(m, b)
-}
-func (m *MetricMetaData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_MetricMetaData.Marshal(b, m, deterministic)
-}
-func (m *MetricMetaData) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_MetricMetaData.Merge(m, src)
-}
-func (m *MetricMetaData) XXX_Size() int {
-	return xxx_messageInfo_MetricMetaData.Size(m)
-}
-func (m *MetricMetaData) XXX_DiscardUnknown() {
-	xxx_messageInfo_MetricMetaData.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_MetricMetaData proto.InternalMessageInfo
-
-func (m *MetricMetaData) GetTitle() string {
-	if m != nil {
-		return m.Title
+func (x *MetricMetaData) GetTitle() string {
+	if x != nil {
+		return x.Title
 	}
 	return ""
 }
 
-func (m *MetricMetaData) GetTs() float64 {
-	if m != nil {
-		return m.Ts
+func (x *MetricMetaData) GetTs() float64 {
+	if x != nil {
+		return x.Ts
 	}
 	return 0
 }
 
-func (m *MetricMetaData) GetLogicalDeviceId() string {
-	if m != nil {
-		return m.LogicalDeviceId
+func (x *MetricMetaData) GetLogicalDeviceId() string {
+	if x != nil {
+		return x.LogicalDeviceId
 	}
 	return ""
 }
 
-func (m *MetricMetaData) GetSerialNo() string {
-	if m != nil {
-		return m.SerialNo
+func (x *MetricMetaData) GetSerialNo() string {
+	if x != nil {
+		return x.SerialNo
 	}
 	return ""
 }
 
-func (m *MetricMetaData) GetDeviceId() string {
-	if m != nil {
-		return m.DeviceId
+func (x *MetricMetaData) GetDeviceId() string {
+	if x != nil {
+		return x.DeviceId
 	}
 	return ""
 }
 
-func (m *MetricMetaData) GetContext() map[string]string {
-	if m != nil {
-		return m.Context
+func (x *MetricMetaData) GetContext() map[string]string {
+	if x != nil {
+		return x.Context
 	}
 	return nil
 }
 
-func (m *MetricMetaData) GetUuid() string {
-	if m != nil {
-		return m.Uuid
+func (x *MetricMetaData) GetUuid() string {
+	if x != nil {
+		return x.Uuid
 	}
 	return ""
 }
 
-//
 // Struct to convey a dictionary of metric->value pairs. Typically used in
 // pure shared-timestamp or shared-timestamp + shared object prefix situations.
 type MetricValuePairs struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
 	// Metric / value pairs.
-	Metrics              map[string]float32 `protobuf:"bytes,1,rep,name=metrics,proto3" json:"metrics,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"`
-	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
-	XXX_unrecognized     []byte             `json:"-"`
-	XXX_sizecache        int32              `json:"-"`
+	Metrics       map[string]float32 `protobuf:"bytes,1,rep,name=metrics,proto3" json:"metrics,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *MetricValuePairs) Reset()         { *m = MetricValuePairs{} }
-func (m *MetricValuePairs) String() string { return proto.CompactTextString(m) }
-func (*MetricValuePairs) ProtoMessage()    {}
+func (x *MetricValuePairs) Reset() {
+	*x = MetricValuePairs{}
+	mi := &file_voltha_protos_events_proto_msgTypes[8]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *MetricValuePairs) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*MetricValuePairs) ProtoMessage() {}
+
+func (x *MetricValuePairs) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_events_proto_msgTypes[8]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use MetricValuePairs.ProtoReflect.Descriptor instead.
 func (*MetricValuePairs) Descriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{8}
+	return file_voltha_protos_events_proto_rawDescGZIP(), []int{8}
 }
 
-func (m *MetricValuePairs) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_MetricValuePairs.Unmarshal(m, b)
-}
-func (m *MetricValuePairs) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_MetricValuePairs.Marshal(b, m, deterministic)
-}
-func (m *MetricValuePairs) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_MetricValuePairs.Merge(m, src)
-}
-func (m *MetricValuePairs) XXX_Size() int {
-	return xxx_messageInfo_MetricValuePairs.Size(m)
-}
-func (m *MetricValuePairs) XXX_DiscardUnknown() {
-	xxx_messageInfo_MetricValuePairs.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_MetricValuePairs proto.InternalMessageInfo
-
-func (m *MetricValuePairs) GetMetrics() map[string]float32 {
-	if m != nil {
-		return m.Metrics
+func (x *MetricValuePairs) GetMetrics() map[string]float32 {
+	if x != nil {
+		return x.Metrics
 	}
 	return nil
 }
 
-//
 // Struct to group metadata for a metric (or group of metrics) with the key-value
 // pairs of collected metrics
 type MetricInformation struct {
-	Metadata             *MetricMetaData    `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"`
-	Metrics              map[string]float32 `protobuf:"bytes,2,rep,name=metrics,proto3" json:"metrics,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"`
-	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
-	XXX_unrecognized     []byte             `json:"-"`
-	XXX_sizecache        int32              `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Metadata      *MetricMetaData        `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"`
+	Metrics       map[string]float32     `protobuf:"bytes,2,rep,name=metrics,proto3" json:"metrics,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *MetricInformation) Reset()         { *m = MetricInformation{} }
-func (m *MetricInformation) String() string { return proto.CompactTextString(m) }
-func (*MetricInformation) ProtoMessage()    {}
+func (x *MetricInformation) Reset() {
+	*x = MetricInformation{}
+	mi := &file_voltha_protos_events_proto_msgTypes[9]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *MetricInformation) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*MetricInformation) ProtoMessage() {}
+
+func (x *MetricInformation) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_events_proto_msgTypes[9]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use MetricInformation.ProtoReflect.Descriptor instead.
 func (*MetricInformation) Descriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{9}
+	return file_voltha_protos_events_proto_rawDescGZIP(), []int{9}
 }
 
-func (m *MetricInformation) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_MetricInformation.Unmarshal(m, b)
-}
-func (m *MetricInformation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_MetricInformation.Marshal(b, m, deterministic)
-}
-func (m *MetricInformation) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_MetricInformation.Merge(m, src)
-}
-func (m *MetricInformation) XXX_Size() int {
-	return xxx_messageInfo_MetricInformation.Size(m)
-}
-func (m *MetricInformation) XXX_DiscardUnknown() {
-	xxx_messageInfo_MetricInformation.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_MetricInformation proto.InternalMessageInfo
-
-func (m *MetricInformation) GetMetadata() *MetricMetaData {
-	if m != nil {
-		return m.Metadata
+func (x *MetricInformation) GetMetadata() *MetricMetaData {
+	if x != nil {
+		return x.Metadata
 	}
 	return nil
 }
 
-func (m *MetricInformation) GetMetrics() map[string]float32 {
-	if m != nil {
-		return m.Metrics
+func (x *MetricInformation) GetMetrics() map[string]float32 {
+	if x != nil {
+		return x.Metrics
 	}
 	return nil
 }
 
-//
 // Struct to group metadata for a metric (or group of metrics) with the key-value
 // pairs of collected metrics using 64-bit double precision floating point.
 // This supports both floating-point metrics and large integer counters up to 2^53
 // (e.g., FEC counters, GEM counters, optical power levels).
 type MetricInformation64 struct {
-	Metadata             *MetricMetaData    `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"`
-	Metrics              map[string]float64 `protobuf:"bytes,2,rep,name=metrics,proto3" json:"metrics,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"`
-	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
-	XXX_unrecognized     []byte             `json:"-"`
-	XXX_sizecache        int32              `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Metadata      *MetricMetaData        `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"`
+	Metrics       map[string]float64     `protobuf:"bytes,2,rep,name=metrics,proto3" json:"metrics,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *MetricInformation64) Reset()         { *m = MetricInformation64{} }
-func (m *MetricInformation64) String() string { return proto.CompactTextString(m) }
-func (*MetricInformation64) ProtoMessage()    {}
+func (x *MetricInformation64) Reset() {
+	*x = MetricInformation64{}
+	mi := &file_voltha_protos_events_proto_msgTypes[10]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *MetricInformation64) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*MetricInformation64) ProtoMessage() {}
+
+func (x *MetricInformation64) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_events_proto_msgTypes[10]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use MetricInformation64.ProtoReflect.Descriptor instead.
 func (*MetricInformation64) Descriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{10}
+	return file_voltha_protos_events_proto_rawDescGZIP(), []int{10}
 }
 
-func (m *MetricInformation64) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_MetricInformation64.Unmarshal(m, b)
-}
-func (m *MetricInformation64) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_MetricInformation64.Marshal(b, m, deterministic)
-}
-func (m *MetricInformation64) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_MetricInformation64.Merge(m, src)
-}
-func (m *MetricInformation64) XXX_Size() int {
-	return xxx_messageInfo_MetricInformation64.Size(m)
-}
-func (m *MetricInformation64) XXX_DiscardUnknown() {
-	xxx_messageInfo_MetricInformation64.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_MetricInformation64 proto.InternalMessageInfo
-
-func (m *MetricInformation64) GetMetadata() *MetricMetaData {
-	if m != nil {
-		return m.Metadata
+func (x *MetricInformation64) GetMetadata() *MetricMetaData {
+	if x != nil {
+		return x.Metadata
 	}
 	return nil
 }
 
-func (m *MetricInformation64) GetMetrics() map[string]float64 {
-	if m != nil {
-		return m.Metrics
+func (x *MetricInformation64) GetMetrics() map[string]float64 {
+	if x != nil {
+		return x.Metrics
 	}
 	return nil
 }
 
-//
 // Legacy KPI Event structured.  In mid-August, the KPI event format was updated
-//                               to a more easily parsable format. See VOL-1140
-//                               for more information.
+//
+//	to a more easily parsable format. See VOL-1140
+//	for more information.
 type KpiEvent struct {
-	Type                 KpiEventType_Types           `protobuf:"varint,1,opt,name=type,proto3,enum=event.KpiEventType_Types" json:"type,omitempty"`
-	Ts                   float32                      `protobuf:"fixed32,2,opt,name=ts,proto3" json:"ts,omitempty"`
-	Prefixes             map[string]*MetricValuePairs `protobuf:"bytes,3,rep,name=prefixes,proto3" json:"prefixes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
-	XXX_NoUnkeyedLiteral struct{}                     `json:"-"`
-	XXX_unrecognized     []byte                       `json:"-"`
-	XXX_sizecache        int32                        `json:"-"`
+	state         protoimpl.MessageState       `protogen:"open.v1"`
+	Type          KpiEventType_Types           `protobuf:"varint,1,opt,name=type,proto3,enum=event.KpiEventType_Types" json:"type,omitempty"`
+	Ts            float32                      `protobuf:"fixed32,2,opt,name=ts,proto3" json:"ts,omitempty"` // UTC time-stamp of data in slice mode (seconds since epoc)
+	Prefixes      map[string]*MetricValuePairs `protobuf:"bytes,3,rep,name=prefixes,proto3" json:"prefixes,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *KpiEvent) Reset()         { *m = KpiEvent{} }
-func (m *KpiEvent) String() string { return proto.CompactTextString(m) }
-func (*KpiEvent) ProtoMessage()    {}
+func (x *KpiEvent) Reset() {
+	*x = KpiEvent{}
+	mi := &file_voltha_protos_events_proto_msgTypes[11]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *KpiEvent) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*KpiEvent) ProtoMessage() {}
+
+func (x *KpiEvent) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_events_proto_msgTypes[11]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use KpiEvent.ProtoReflect.Descriptor instead.
 func (*KpiEvent) Descriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{11}
+	return file_voltha_protos_events_proto_rawDescGZIP(), []int{11}
 }
 
-func (m *KpiEvent) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_KpiEvent.Unmarshal(m, b)
-}
-func (m *KpiEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_KpiEvent.Marshal(b, m, deterministic)
-}
-func (m *KpiEvent) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_KpiEvent.Merge(m, src)
-}
-func (m *KpiEvent) XXX_Size() int {
-	return xxx_messageInfo_KpiEvent.Size(m)
-}
-func (m *KpiEvent) XXX_DiscardUnknown() {
-	xxx_messageInfo_KpiEvent.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_KpiEvent proto.InternalMessageInfo
-
-func (m *KpiEvent) GetType() KpiEventType_Types {
-	if m != nil {
-		return m.Type
+func (x *KpiEvent) GetType() KpiEventType_Types {
+	if x != nil {
+		return x.Type
 	}
 	return KpiEventType_slice
 }
 
-func (m *KpiEvent) GetTs() float32 {
-	if m != nil {
-		return m.Ts
+func (x *KpiEvent) GetTs() float32 {
+	if x != nil {
+		return x.Ts
 	}
 	return 0
 }
 
-func (m *KpiEvent) GetPrefixes() map[string]*MetricValuePairs {
-	if m != nil {
-		return m.Prefixes
+func (x *KpiEvent) GetPrefixes() map[string]*MetricValuePairs {
+	if x != nil {
+		return x.Prefixes
 	}
 	return nil
 }
 
 type KpiEvent2 struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
 	// Type of KPI Event
 	Type KpiEventType_Types `protobuf:"varint,1,opt,name=type,proto3,enum=event.KpiEventType_Types" json:"type,omitempty"`
 	// Fields used when for slice:
-	Ts                   float64              `protobuf:"fixed64,2,opt,name=ts,proto3" json:"ts,omitempty"`
-	SliceData            []*MetricInformation `protobuf:"bytes,3,rep,name=slice_data,json=sliceData,proto3" json:"slice_data,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
-	XXX_unrecognized     []byte               `json:"-"`
-	XXX_sizecache        int32                `json:"-"`
+	Ts            float64              `protobuf:"fixed64,2,opt,name=ts,proto3" json:"ts,omitempty"` // UTC time-stamp of data in slice mode (seconds since epoch)
+	SliceData     []*MetricInformation `protobuf:"bytes,3,rep,name=slice_data,json=sliceData,proto3" json:"slice_data,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *KpiEvent2) Reset()         { *m = KpiEvent2{} }
-func (m *KpiEvent2) String() string { return proto.CompactTextString(m) }
-func (*KpiEvent2) ProtoMessage()    {}
+func (x *KpiEvent2) Reset() {
+	*x = KpiEvent2{}
+	mi := &file_voltha_protos_events_proto_msgTypes[12]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *KpiEvent2) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*KpiEvent2) ProtoMessage() {}
+
+func (x *KpiEvent2) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_events_proto_msgTypes[12]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use KpiEvent2.ProtoReflect.Descriptor instead.
 func (*KpiEvent2) Descriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{12}
+	return file_voltha_protos_events_proto_rawDescGZIP(), []int{12}
 }
 
-func (m *KpiEvent2) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_KpiEvent2.Unmarshal(m, b)
-}
-func (m *KpiEvent2) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_KpiEvent2.Marshal(b, m, deterministic)
-}
-func (m *KpiEvent2) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_KpiEvent2.Merge(m, src)
-}
-func (m *KpiEvent2) XXX_Size() int {
-	return xxx_messageInfo_KpiEvent2.Size(m)
-}
-func (m *KpiEvent2) XXX_DiscardUnknown() {
-	xxx_messageInfo_KpiEvent2.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_KpiEvent2 proto.InternalMessageInfo
-
-func (m *KpiEvent2) GetType() KpiEventType_Types {
-	if m != nil {
-		return m.Type
+func (x *KpiEvent2) GetType() KpiEventType_Types {
+	if x != nil {
+		return x.Type
 	}
 	return KpiEventType_slice
 }
 
-func (m *KpiEvent2) GetTs() float64 {
-	if m != nil {
-		return m.Ts
+func (x *KpiEvent2) GetTs() float64 {
+	if x != nil {
+		return x.Ts
 	}
 	return 0
 }
 
-func (m *KpiEvent2) GetSliceData() []*MetricInformation {
-	if m != nil {
-		return m.SliceData
+func (x *KpiEvent2) GetSliceData() []*MetricInformation {
+	if x != nil {
+		return x.SliceData
 	}
 	return nil
 }
 
-//
 // KpiEvent3 with support for 64-bit unsigned integer counters.
 // Use this for metrics that require full 64-bit precision (e.g., FEC counters, GEM counters).
 type KpiEvent3 struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
 	// Type of KPI Event
 	Type KpiEventType_Types `protobuf:"varint,1,opt,name=type,proto3,enum=event.KpiEventType_Types" json:"type,omitempty"`
 	// Fields used when for slice:
-	Ts                   float64                `protobuf:"fixed64,2,opt,name=ts,proto3" json:"ts,omitempty"`
-	SliceData            []*MetricInformation64 `protobuf:"bytes,3,rep,name=slice_data,json=sliceData,proto3" json:"slice_data,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}               `json:"-"`
-	XXX_unrecognized     []byte                 `json:"-"`
-	XXX_sizecache        int32                  `json:"-"`
+	Ts            float64                `protobuf:"fixed64,2,opt,name=ts,proto3" json:"ts,omitempty"` // UTC time-stamp of data in slice mode (seconds since epoch)
+	SliceData     []*MetricInformation64 `protobuf:"bytes,3,rep,name=slice_data,json=sliceData,proto3" json:"slice_data,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *KpiEvent3) Reset()         { *m = KpiEvent3{} }
-func (m *KpiEvent3) String() string { return proto.CompactTextString(m) }
-func (*KpiEvent3) ProtoMessage()    {}
+func (x *KpiEvent3) Reset() {
+	*x = KpiEvent3{}
+	mi := &file_voltha_protos_events_proto_msgTypes[13]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *KpiEvent3) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*KpiEvent3) ProtoMessage() {}
+
+func (x *KpiEvent3) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_events_proto_msgTypes[13]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use KpiEvent3.ProtoReflect.Descriptor instead.
 func (*KpiEvent3) Descriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{13}
+	return file_voltha_protos_events_proto_rawDescGZIP(), []int{13}
 }
 
-func (m *KpiEvent3) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_KpiEvent3.Unmarshal(m, b)
-}
-func (m *KpiEvent3) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_KpiEvent3.Marshal(b, m, deterministic)
-}
-func (m *KpiEvent3) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_KpiEvent3.Merge(m, src)
-}
-func (m *KpiEvent3) XXX_Size() int {
-	return xxx_messageInfo_KpiEvent3.Size(m)
-}
-func (m *KpiEvent3) XXX_DiscardUnknown() {
-	xxx_messageInfo_KpiEvent3.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_KpiEvent3 proto.InternalMessageInfo
-
-func (m *KpiEvent3) GetType() KpiEventType_Types {
-	if m != nil {
-		return m.Type
+func (x *KpiEvent3) GetType() KpiEventType_Types {
+	if x != nil {
+		return x.Type
 	}
 	return KpiEventType_slice
 }
 
-func (m *KpiEvent3) GetTs() float64 {
-	if m != nil {
-		return m.Ts
+func (x *KpiEvent3) GetTs() float64 {
+	if x != nil {
+		return x.Ts
 	}
 	return 0
 }
 
-func (m *KpiEvent3) GetSliceData() []*MetricInformation64 {
-	if m != nil {
-		return m.SliceData
+func (x *KpiEvent3) GetSliceData() []*MetricInformation64 {
+	if x != nil {
+		return x.SliceData
 	}
 	return nil
 }
 
-//
 // Describes the events specific to device
 type DeviceEvent struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
 	// Identifier of the originating resource of the event, for ex: device_id
 	ResourceId string `protobuf:"bytes,1,opt,name=resource_id,json=resourceId,proto3" json:"resource_id,omitempty"`
 	// device_event_name indicates clearly the name of the device event
@@ -952,68 +1145,72 @@
 	// Textual explanation of the device event
 	Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
 	// Key/Value storage for extra information that may give context to the event
-	Context              map[string]string `protobuf:"bytes,4,rep,name=context,proto3" json:"context,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
-	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
-	XXX_unrecognized     []byte            `json:"-"`
-	XXX_sizecache        int32             `json:"-"`
+	Context       map[string]string `protobuf:"bytes,4,rep,name=context,proto3" json:"context,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *DeviceEvent) Reset()         { *m = DeviceEvent{} }
-func (m *DeviceEvent) String() string { return proto.CompactTextString(m) }
-func (*DeviceEvent) ProtoMessage()    {}
+func (x *DeviceEvent) Reset() {
+	*x = DeviceEvent{}
+	mi := &file_voltha_protos_events_proto_msgTypes[14]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *DeviceEvent) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeviceEvent) ProtoMessage() {}
+
+func (x *DeviceEvent) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_events_proto_msgTypes[14]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeviceEvent.ProtoReflect.Descriptor instead.
 func (*DeviceEvent) Descriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{14}
+	return file_voltha_protos_events_proto_rawDescGZIP(), []int{14}
 }
 
-func (m *DeviceEvent) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_DeviceEvent.Unmarshal(m, b)
-}
-func (m *DeviceEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_DeviceEvent.Marshal(b, m, deterministic)
-}
-func (m *DeviceEvent) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_DeviceEvent.Merge(m, src)
-}
-func (m *DeviceEvent) XXX_Size() int {
-	return xxx_messageInfo_DeviceEvent.Size(m)
-}
-func (m *DeviceEvent) XXX_DiscardUnknown() {
-	xxx_messageInfo_DeviceEvent.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_DeviceEvent proto.InternalMessageInfo
-
-func (m *DeviceEvent) GetResourceId() string {
-	if m != nil {
-		return m.ResourceId
+func (x *DeviceEvent) GetResourceId() string {
+	if x != nil {
+		return x.ResourceId
 	}
 	return ""
 }
 
-func (m *DeviceEvent) GetDeviceEventName() string {
-	if m != nil {
-		return m.DeviceEventName
+func (x *DeviceEvent) GetDeviceEventName() string {
+	if x != nil {
+		return x.DeviceEventName
 	}
 	return ""
 }
 
-func (m *DeviceEvent) GetDescription() string {
-	if m != nil {
-		return m.Description
+func (x *DeviceEvent) GetDescription() string {
+	if x != nil {
+		return x.Description
 	}
 	return ""
 }
 
-func (m *DeviceEvent) GetContext() map[string]string {
-	if m != nil {
-		return m.Context
+func (x *DeviceEvent) GetContext() map[string]string {
+	if x != nil {
+		return x.Context
 	}
 	return nil
 }
 
-//
 // Describes the events specific to an RPC request
 type RPCEvent struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
 	// RPC name
 	Rpc string `protobuf:"bytes,1,opt,name=rpc,proto3" json:"rpc,omitempty"`
 	// The operation id of that request.  Can be a log correlation ID
@@ -1027,197 +1224,213 @@
 	// Textual explanation of the event
 	Description string `protobuf:"bytes,6,opt,name=description,proto3" json:"description,omitempty"`
 	// Key/Value storage for extra information that may give context to the event
-	Context map[string]string `protobuf:"bytes,7,rep,name=context,proto3" json:"context,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+	Context map[string]string `protobuf:"bytes,7,rep,name=context,proto3" json:"context,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
 	// Status of the RPC Event
-	Status               *common.OperationResp `protobuf:"bytes,8,opt,name=status,proto3" json:"status,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
-	XXX_unrecognized     []byte                `json:"-"`
-	XXX_sizecache        int32                 `json:"-"`
+	Status        *common.OperationResp `protobuf:"bytes,8,opt,name=status,proto3" json:"status,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *RPCEvent) Reset()         { *m = RPCEvent{} }
-func (m *RPCEvent) String() string { return proto.CompactTextString(m) }
-func (*RPCEvent) ProtoMessage()    {}
+func (x *RPCEvent) Reset() {
+	*x = RPCEvent{}
+	mi := &file_voltha_protos_events_proto_msgTypes[15]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *RPCEvent) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*RPCEvent) ProtoMessage() {}
+
+func (x *RPCEvent) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_events_proto_msgTypes[15]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use RPCEvent.ProtoReflect.Descriptor instead.
 func (*RPCEvent) Descriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{15}
+	return file_voltha_protos_events_proto_rawDescGZIP(), []int{15}
 }
 
-func (m *RPCEvent) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_RPCEvent.Unmarshal(m, b)
-}
-func (m *RPCEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_RPCEvent.Marshal(b, m, deterministic)
-}
-func (m *RPCEvent) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_RPCEvent.Merge(m, src)
-}
-func (m *RPCEvent) XXX_Size() int {
-	return xxx_messageInfo_RPCEvent.Size(m)
-}
-func (m *RPCEvent) XXX_DiscardUnknown() {
-	xxx_messageInfo_RPCEvent.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_RPCEvent proto.InternalMessageInfo
-
-func (m *RPCEvent) GetRpc() string {
-	if m != nil {
-		return m.Rpc
+func (x *RPCEvent) GetRpc() string {
+	if x != nil {
+		return x.Rpc
 	}
 	return ""
 }
 
-func (m *RPCEvent) GetOperationId() string {
-	if m != nil {
-		return m.OperationId
+func (x *RPCEvent) GetOperationId() string {
+	if x != nil {
+		return x.OperationId
 	}
 	return ""
 }
 
-func (m *RPCEvent) GetService() string {
-	if m != nil {
-		return m.Service
+func (x *RPCEvent) GetService() string {
+	if x != nil {
+		return x.Service
 	}
 	return ""
 }
 
-func (m *RPCEvent) GetStackId() string {
-	if m != nil {
-		return m.StackId
+func (x *RPCEvent) GetStackId() string {
+	if x != nil {
+		return x.StackId
 	}
 	return ""
 }
 
-func (m *RPCEvent) GetResourceId() string {
-	if m != nil {
-		return m.ResourceId
+func (x *RPCEvent) GetResourceId() string {
+	if x != nil {
+		return x.ResourceId
 	}
 	return ""
 }
 
-func (m *RPCEvent) GetDescription() string {
-	if m != nil {
-		return m.Description
+func (x *RPCEvent) GetDescription() string {
+	if x != nil {
+		return x.Description
 	}
 	return ""
 }
 
-func (m *RPCEvent) GetContext() map[string]string {
-	if m != nil {
-		return m.Context
+func (x *RPCEvent) GetContext() map[string]string {
+	if x != nil {
+		return x.Context
 	}
 	return nil
 }
 
-func (m *RPCEvent) GetStatus() *common.OperationResp {
-	if m != nil {
-		return m.Status
+func (x *RPCEvent) GetStatus() *common.OperationResp {
+	if x != nil {
+		return x.Status
 	}
 	return nil
 }
 
-//
 // Identify the area of the system impacted by the event.
 type EventCategory struct {
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *EventCategory) Reset()         { *m = EventCategory{} }
-func (m *EventCategory) String() string { return proto.CompactTextString(m) }
-func (*EventCategory) ProtoMessage()    {}
+func (x *EventCategory) Reset() {
+	*x = EventCategory{}
+	mi := &file_voltha_protos_events_proto_msgTypes[16]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *EventCategory) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*EventCategory) ProtoMessage() {}
+
+func (x *EventCategory) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_events_proto_msgTypes[16]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use EventCategory.ProtoReflect.Descriptor instead.
 func (*EventCategory) Descriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{16}
+	return file_voltha_protos_events_proto_rawDescGZIP(), []int{16}
 }
 
-func (m *EventCategory) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_EventCategory.Unmarshal(m, b)
-}
-func (m *EventCategory) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_EventCategory.Marshal(b, m, deterministic)
-}
-func (m *EventCategory) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_EventCategory.Merge(m, src)
-}
-func (m *EventCategory) XXX_Size() int {
-	return xxx_messageInfo_EventCategory.Size(m)
-}
-func (m *EventCategory) XXX_DiscardUnknown() {
-	xxx_messageInfo_EventCategory.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_EventCategory proto.InternalMessageInfo
-
-//
 // Identify the functional category originating the event
 type EventSubCategory struct {
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *EventSubCategory) Reset()         { *m = EventSubCategory{} }
-func (m *EventSubCategory) String() string { return proto.CompactTextString(m) }
-func (*EventSubCategory) ProtoMessage()    {}
+func (x *EventSubCategory) Reset() {
+	*x = EventSubCategory{}
+	mi := &file_voltha_protos_events_proto_msgTypes[17]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *EventSubCategory) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*EventSubCategory) ProtoMessage() {}
+
+func (x *EventSubCategory) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_events_proto_msgTypes[17]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use EventSubCategory.ProtoReflect.Descriptor instead.
 func (*EventSubCategory) Descriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{17}
+	return file_voltha_protos_events_proto_rawDescGZIP(), []int{17}
 }
 
-func (m *EventSubCategory) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_EventSubCategory.Unmarshal(m, b)
-}
-func (m *EventSubCategory) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_EventSubCategory.Marshal(b, m, deterministic)
-}
-func (m *EventSubCategory) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_EventSubCategory.Merge(m, src)
-}
-func (m *EventSubCategory) XXX_Size() int {
-	return xxx_messageInfo_EventSubCategory.Size(m)
-}
-func (m *EventSubCategory) XXX_DiscardUnknown() {
-	xxx_messageInfo_EventSubCategory.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_EventSubCategory proto.InternalMessageInfo
-
-//
 // Identify the type of event
 type EventType struct {
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *EventType) Reset()         { *m = EventType{} }
-func (m *EventType) String() string { return proto.CompactTextString(m) }
-func (*EventType) ProtoMessage()    {}
+func (x *EventType) Reset() {
+	*x = EventType{}
+	mi := &file_voltha_protos_events_proto_msgTypes[18]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *EventType) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*EventType) ProtoMessage() {}
+
+func (x *EventType) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_events_proto_msgTypes[18]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use EventType.ProtoReflect.Descriptor instead.
 func (*EventType) Descriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{18}
+	return file_voltha_protos_events_proto_rawDescGZIP(), []int{18}
 }
 
-func (m *EventType) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_EventType.Unmarshal(m, b)
-}
-func (m *EventType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_EventType.Marshal(b, m, deterministic)
-}
-func (m *EventType) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_EventType.Merge(m, src)
-}
-func (m *EventType) XXX_Size() int {
-	return xxx_messageInfo_EventType.Size(m)
-}
-func (m *EventType) XXX_DiscardUnknown() {
-	xxx_messageInfo_EventType.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_EventType proto.InternalMessageInfo
-
-//
 // Identify the functional category originating the event
 type EventHeader struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
 	// Unique ID for this event.  e.g. voltha.some_olt.1234
 	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
 	// Refers to the functional area affect by the event
@@ -1236,140 +1449,210 @@
 	// the event was first raised from the source entity.
 	// If the source entity doesn't send the raised_ts, this shall be set
 	// to timestamp when the event was received.
-	RaisedTs *timestamp.Timestamp `protobuf:"bytes,6,opt,name=raised_ts,json=raisedTs,proto3" json:"raised_ts,omitempty"`
+	RaisedTs *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=raised_ts,json=raisedTs,proto3" json:"raised_ts,omitempty"`
 	// Timestamp at which the event was reported.
 	// This represents the UTC time stamp since epoch (in seconds) when the
 	// the event was reported (this time stamp is >= raised_ts).
 	// If the source entity that reported this event doesn't send the
 	// reported_ts, this shall be set to the same value as raised_ts.
-	ReportedTs           *timestamp.Timestamp `protobuf:"bytes,7,opt,name=reported_ts,json=reportedTs,proto3" json:"reported_ts,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
-	XXX_unrecognized     []byte               `json:"-"`
-	XXX_sizecache        int32                `json:"-"`
+	ReportedTs    *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=reported_ts,json=reportedTs,proto3" json:"reported_ts,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *EventHeader) Reset()         { *m = EventHeader{} }
-func (m *EventHeader) String() string { return proto.CompactTextString(m) }
-func (*EventHeader) ProtoMessage()    {}
+func (x *EventHeader) Reset() {
+	*x = EventHeader{}
+	mi := &file_voltha_protos_events_proto_msgTypes[19]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *EventHeader) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*EventHeader) ProtoMessage() {}
+
+func (x *EventHeader) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_events_proto_msgTypes[19]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use EventHeader.ProtoReflect.Descriptor instead.
 func (*EventHeader) Descriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{19}
+	return file_voltha_protos_events_proto_rawDescGZIP(), []int{19}
 }
 
-func (m *EventHeader) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_EventHeader.Unmarshal(m, b)
-}
-func (m *EventHeader) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_EventHeader.Marshal(b, m, deterministic)
-}
-func (m *EventHeader) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_EventHeader.Merge(m, src)
-}
-func (m *EventHeader) XXX_Size() int {
-	return xxx_messageInfo_EventHeader.Size(m)
-}
-func (m *EventHeader) XXX_DiscardUnknown() {
-	xxx_messageInfo_EventHeader.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_EventHeader proto.InternalMessageInfo
-
-func (m *EventHeader) GetId() string {
-	if m != nil {
-		return m.Id
+func (x *EventHeader) GetId() string {
+	if x != nil {
+		return x.Id
 	}
 	return ""
 }
 
-func (m *EventHeader) GetCategory() EventCategory_Types {
-	if m != nil {
-		return m.Category
+func (x *EventHeader) GetCategory() EventCategory_Types {
+	if x != nil {
+		return x.Category
 	}
 	return EventCategory_COMMUNICATION
 }
 
-func (m *EventHeader) GetSubCategory() EventSubCategory_Types {
-	if m != nil {
-		return m.SubCategory
+func (x *EventHeader) GetSubCategory() EventSubCategory_Types {
+	if x != nil {
+		return x.SubCategory
 	}
 	return EventSubCategory_PON
 }
 
-func (m *EventHeader) GetType() EventType_Types {
-	if m != nil {
-		return m.Type
+func (x *EventHeader) GetType() EventType_Types {
+	if x != nil {
+		return x.Type
 	}
 	return EventType_CONFIG_EVENT
 }
 
-func (m *EventHeader) GetTypeVersion() string {
-	if m != nil {
-		return m.TypeVersion
+func (x *EventHeader) GetTypeVersion() string {
+	if x != nil {
+		return x.TypeVersion
 	}
 	return ""
 }
 
-func (m *EventHeader) GetRaisedTs() *timestamp.Timestamp {
-	if m != nil {
-		return m.RaisedTs
+func (x *EventHeader) GetRaisedTs() *timestamppb.Timestamp {
+	if x != nil {
+		return x.RaisedTs
 	}
 	return nil
 }
 
-func (m *EventHeader) GetReportedTs() *timestamp.Timestamp {
-	if m != nil {
-		return m.ReportedTs
+func (x *EventHeader) GetReportedTs() *timestamppb.Timestamp {
+	if x != nil {
+		return x.ReportedTs
 	}
 	return nil
 }
 
-//
 // Event Structure
 type Event struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
 	// event header
 	Header *EventHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"`
 	// oneof event types referred by EventType.
 	//
 	// Types that are valid to be assigned to EventType:
+	//
 	//	*Event_ConfigEvent
 	//	*Event_KpiEvent
 	//	*Event_KpiEvent2
 	//	*Event_DeviceEvent
 	//	*Event_RpcEvent
 	//	*Event_KpiEvent3
-	EventType            isEvent_EventType `protobuf_oneof:"event_type"`
-	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
-	XXX_unrecognized     []byte            `json:"-"`
-	XXX_sizecache        int32             `json:"-"`
+	EventType     isEvent_EventType `protobuf_oneof:"event_type"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *Event) Reset()         { *m = Event{} }
-func (m *Event) String() string { return proto.CompactTextString(m) }
-func (*Event) ProtoMessage()    {}
+func (x *Event) Reset() {
+	*x = Event{}
+	mi := &file_voltha_protos_events_proto_msgTypes[20]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *Event) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Event) ProtoMessage() {}
+
+func (x *Event) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_events_proto_msgTypes[20]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use Event.ProtoReflect.Descriptor instead.
 func (*Event) Descriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{20}
+	return file_voltha_protos_events_proto_rawDescGZIP(), []int{20}
 }
 
-func (m *Event) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_Event.Unmarshal(m, b)
-}
-func (m *Event) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_Event.Marshal(b, m, deterministic)
-}
-func (m *Event) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Event.Merge(m, src)
-}
-func (m *Event) XXX_Size() int {
-	return xxx_messageInfo_Event.Size(m)
-}
-func (m *Event) XXX_DiscardUnknown() {
-	xxx_messageInfo_Event.DiscardUnknown(m)
+func (x *Event) GetHeader() *EventHeader {
+	if x != nil {
+		return x.Header
+	}
+	return nil
 }
 
-var xxx_messageInfo_Event proto.InternalMessageInfo
+func (x *Event) GetEventType() isEvent_EventType {
+	if x != nil {
+		return x.EventType
+	}
+	return nil
+}
 
-func (m *Event) GetHeader() *EventHeader {
-	if m != nil {
-		return m.Header
+func (x *Event) GetConfigEvent() *ConfigEvent {
+	if x != nil {
+		if x, ok := x.EventType.(*Event_ConfigEvent); ok {
+			return x.ConfigEvent
+		}
+	}
+	return nil
+}
+
+func (x *Event) GetKpiEvent() *KpiEvent {
+	if x != nil {
+		if x, ok := x.EventType.(*Event_KpiEvent); ok {
+			return x.KpiEvent
+		}
+	}
+	return nil
+}
+
+func (x *Event) GetKpiEvent2() *KpiEvent2 {
+	if x != nil {
+		if x, ok := x.EventType.(*Event_KpiEvent2); ok {
+			return x.KpiEvent2
+		}
+	}
+	return nil
+}
+
+func (x *Event) GetDeviceEvent() *DeviceEvent {
+	if x != nil {
+		if x, ok := x.EventType.(*Event_DeviceEvent); ok {
+			return x.DeviceEvent
+		}
+	}
+	return nil
+}
+
+func (x *Event) GetRpcEvent() *RPCEvent {
+	if x != nil {
+		if x, ok := x.EventType.(*Event_RpcEvent); ok {
+			return x.RpcEvent
+		}
+	}
+	return nil
+}
+
+func (x *Event) GetKpiEvent3() *KpiEvent3 {
+	if x != nil {
+		if x, ok := x.EventType.(*Event_KpiEvent3); ok {
+			return x.KpiEvent3
+		}
 	}
 	return nil
 }
@@ -1379,26 +1662,32 @@
 }
 
 type Event_ConfigEvent struct {
+	// Refers to ConfigEvent
 	ConfigEvent *ConfigEvent `protobuf:"bytes,2,opt,name=config_event,json=configEvent,proto3,oneof"`
 }
 
 type Event_KpiEvent struct {
+	// Refers to KpiEvent
 	KpiEvent *KpiEvent `protobuf:"bytes,3,opt,name=kpi_event,json=kpiEvent,proto3,oneof"`
 }
 
 type Event_KpiEvent2 struct {
+	// Refers to KpiEvent2
 	KpiEvent2 *KpiEvent2 `protobuf:"bytes,4,opt,name=kpi_event2,json=kpiEvent2,proto3,oneof"`
 }
 
 type Event_DeviceEvent struct {
+	// Refers to DeviceEvent
 	DeviceEvent *DeviceEvent `protobuf:"bytes,5,opt,name=device_event,json=deviceEvent,proto3,oneof"`
 }
 
 type Event_RpcEvent struct {
+	// Refers to an RPC Event
 	RpcEvent *RPCEvent `protobuf:"bytes,6,opt,name=rpc_event,json=rpcEvent,proto3,oneof"`
 }
 
 type Event_KpiEvent3 struct {
+	// Refers to KpiEvent3 (64-bit counter support)
 	KpiEvent3 *KpiEvent3 `protobuf:"bytes,7,opt,name=kpi_event3,json=kpiEvent3,proto3,oneof"`
 }
 
@@ -1414,58 +1703,262 @@
 
 func (*Event_KpiEvent3) isEvent_EventType() {}
 
-func (m *Event) GetEventType() isEvent_EventType {
-	if m != nil {
-		return m.EventType
-	}
-	return nil
+var File_voltha_protos_events_proto protoreflect.FileDescriptor
+
+const file_voltha_protos_events_proto_rawDesc = "" +
+	"\n" +
+	"\x1avoltha_protos/events.proto\x12\x05event\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1avoltha_protos/common.proto\"\x9e\x01\n" +
+	"\x12EventFilterRuleKey\"\x87\x01\n" +
+	"\x13EventFilterRuleType\x12\x0e\n" +
+	"\n" +
+	"filter_all\x10\x00\x12\f\n" +
+	"\bcategory\x10\x01\x12\x10\n" +
+	"\fsub_category\x10\x02\x12\x12\n" +
+	"\x0ekpi_event_type\x10\x03\x12\x15\n" +
+	"\x11config_event_type\x10\x04\x12\x15\n" +
+	"\x11device_event_type\x10\x05\"h\n" +
+	"\x0fEventFilterRule\x12?\n" +
+	"\x03key\x18\x01 \x01(\x0e2-.event.EventFilterRuleKey.EventFilterRuleTypeR\x03key\x12\x14\n" +
+	"\x05value\x18\x02 \x01(\tR\x05value\"\x9f\x01\n" +
+	"\vEventFilter\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\tR\x02id\x12\x16\n" +
+	"\x06enable\x18\x02 \x01(\bR\x06enable\x12\x1b\n" +
+	"\tdevice_id\x18\x03 \x01(\tR\bdeviceId\x12\x1d\n" +
+	"\n" +
+	"event_type\x18\x04 \x01(\tR\teventType\x12,\n" +
+	"\x05rules\x18\x05 \x03(\v2\x16.event.EventFilterRuleR\x05rules\"<\n" +
+	"\fEventFilters\x12,\n" +
+	"\afilters\x18\x01 \x03(\v2\x12.event.EventFilterR\afilters\";\n" +
+	"\x0fConfigEventType\"(\n" +
+	"\x05Types\x12\a\n" +
+	"\x03add\x10\x00\x12\n" +
+	"\n" +
+	"\x06remove\x10\x01\x12\n" +
+	"\n" +
+	"\x06update\x10\x02\"g\n" +
+	"\vConfigEvent\x120\n" +
+	"\x04type\x18\x01 \x01(\x0e2\x1c.event.ConfigEventType.TypesR\x04type\x12\x12\n" +
+	"\x04hash\x18\x02 \x01(\tR\x04hash\x12\x12\n" +
+	"\x04data\x18\x03 \x01(\tR\x04data\"*\n" +
+	"\fKpiEventType\"\x1a\n" +
+	"\x05Types\x12\t\n" +
+	"\x05slice\x10\x00\x12\x06\n" +
+	"\x02ts\x10\x01\"\xaa\x02\n" +
+	"\x0eMetricMetaData\x12\x14\n" +
+	"\x05title\x18\x01 \x01(\tR\x05title\x12\x0e\n" +
+	"\x02ts\x18\x02 \x01(\x01R\x02ts\x12*\n" +
+	"\x11logical_device_id\x18\x03 \x01(\tR\x0flogicalDeviceId\x12\x1b\n" +
+	"\tserial_no\x18\x04 \x01(\tR\bserialNo\x12\x1b\n" +
+	"\tdevice_id\x18\x05 \x01(\tR\bdeviceId\x12<\n" +
+	"\acontext\x18\x06 \x03(\v2\".event.MetricMetaData.ContextEntryR\acontext\x12\x12\n" +
+	"\x04uuid\x18\a \x01(\tR\x04uuid\x1a:\n" +
+	"\fContextEntry\x12\x10\n" +
+	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
+	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\x8e\x01\n" +
+	"\x10MetricValuePairs\x12>\n" +
+	"\ametrics\x18\x01 \x03(\v2$.event.MetricValuePairs.MetricsEntryR\ametrics\x1a:\n" +
+	"\fMetricsEntry\x12\x10\n" +
+	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
+	"\x05value\x18\x02 \x01(\x02R\x05value:\x028\x01\"\xc3\x01\n" +
+	"\x11MetricInformation\x121\n" +
+	"\bmetadata\x18\x01 \x01(\v2\x15.event.MetricMetaDataR\bmetadata\x12?\n" +
+	"\ametrics\x18\x02 \x03(\v2%.event.MetricInformation.MetricsEntryR\ametrics\x1a:\n" +
+	"\fMetricsEntry\x12\x10\n" +
+	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
+	"\x05value\x18\x02 \x01(\x02R\x05value:\x028\x01\"\xc7\x01\n" +
+	"\x13MetricInformation64\x121\n" +
+	"\bmetadata\x18\x01 \x01(\v2\x15.event.MetricMetaDataR\bmetadata\x12A\n" +
+	"\ametrics\x18\x02 \x03(\v2'.event.MetricInformation64.MetricsEntryR\ametrics\x1a:\n" +
+	"\fMetricsEntry\x12\x10\n" +
+	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
+	"\x05value\x18\x02 \x01(\x01R\x05value:\x028\x01\"\xda\x01\n" +
+	"\bKpiEvent\x12-\n" +
+	"\x04type\x18\x01 \x01(\x0e2\x19.event.KpiEventType.TypesR\x04type\x12\x0e\n" +
+	"\x02ts\x18\x02 \x01(\x02R\x02ts\x129\n" +
+	"\bprefixes\x18\x03 \x03(\v2\x1d.event.KpiEvent.PrefixesEntryR\bprefixes\x1aT\n" +
+	"\rPrefixesEntry\x12\x10\n" +
+	"\x03key\x18\x01 \x01(\tR\x03key\x12-\n" +
+	"\x05value\x18\x02 \x01(\v2\x17.event.MetricValuePairsR\x05value:\x028\x01\"\x83\x01\n" +
+	"\tKpiEvent2\x12-\n" +
+	"\x04type\x18\x01 \x01(\x0e2\x19.event.KpiEventType.TypesR\x04type\x12\x0e\n" +
+	"\x02ts\x18\x02 \x01(\x01R\x02ts\x127\n" +
+	"\n" +
+	"slice_data\x18\x03 \x03(\v2\x18.event.MetricInformationR\tsliceData\"\x85\x01\n" +
+	"\tKpiEvent3\x12-\n" +
+	"\x04type\x18\x01 \x01(\x0e2\x19.event.KpiEventType.TypesR\x04type\x12\x0e\n" +
+	"\x02ts\x18\x02 \x01(\x01R\x02ts\x129\n" +
+	"\n" +
+	"slice_data\x18\x03 \x03(\v2\x1a.event.MetricInformation64R\tsliceData\"\xf3\x01\n" +
+	"\vDeviceEvent\x12\x1f\n" +
+	"\vresource_id\x18\x01 \x01(\tR\n" +
+	"resourceId\x12*\n" +
+	"\x11device_event_name\x18\x02 \x01(\tR\x0fdeviceEventName\x12 \n" +
+	"\vdescription\x18\x03 \x01(\tR\vdescription\x129\n" +
+	"\acontext\x18\x04 \x03(\v2\x1f.event.DeviceEvent.ContextEntryR\acontext\x1a:\n" +
+	"\fContextEntry\x12\x10\n" +
+	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
+	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xda\x02\n" +
+	"\bRPCEvent\x12\x10\n" +
+	"\x03rpc\x18\x01 \x01(\tR\x03rpc\x12!\n" +
+	"\foperation_id\x18\x02 \x01(\tR\voperationId\x12\x18\n" +
+	"\aservice\x18\x03 \x01(\tR\aservice\x12\x19\n" +
+	"\bstack_id\x18\x04 \x01(\tR\astackId\x12\x1f\n" +
+	"\vresource_id\x18\x05 \x01(\tR\n" +
+	"resourceId\x12 \n" +
+	"\vdescription\x18\x06 \x01(\tR\vdescription\x126\n" +
+	"\acontext\x18\a \x03(\v2\x1c.event.RPCEvent.ContextEntryR\acontext\x12-\n" +
+	"\x06status\x18\b \x01(\v2\x15.common.OperationRespR\x06status\x1a:\n" +
+	"\fContextEntry\x12\x10\n" +
+	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
+	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"v\n" +
+	"\rEventCategory\"e\n" +
+	"\x05Types\x12\x11\n" +
+	"\rCOMMUNICATION\x10\x00\x12\x0f\n" +
+	"\vENVIRONMENT\x10\x01\x12\r\n" +
+	"\tEQUIPMENT\x10\x02\x12\v\n" +
+	"\aSERVICE\x10\x03\x12\x0e\n" +
+	"\n" +
+	"PROCESSING\x10\x04\x12\f\n" +
+	"\bSECURITY\x10\x05\"R\n" +
+	"\x10EventSubCategory\">\n" +
+	"\x05Types\x12\a\n" +
+	"\x03PON\x10\x00\x12\a\n" +
+	"\x03OLT\x10\x01\x12\a\n" +
+	"\x03ONT\x10\x02\x12\a\n" +
+	"\x03ONU\x10\x03\x12\a\n" +
+	"\x03NNI\x10\x04\x12\b\n" +
+	"\x04NONE\x10\x05\"v\n" +
+	"\tEventType\"i\n" +
+	"\x05Types\x12\x10\n" +
+	"\fCONFIG_EVENT\x10\x00\x12\r\n" +
+	"\tKPI_EVENT\x10\x01\x12\x0e\n" +
+	"\n" +
+	"KPI_EVENT2\x10\x02\x12\x10\n" +
+	"\fDEVICE_EVENT\x10\x03\x12\r\n" +
+	"\tRPC_EVENT\x10\x04\x12\x0e\n" +
+	"\n" +
+	"KPI_EVENT3\x10\x05\"\xdc\x02\n" +
+	"\vEventHeader\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\tR\x02id\x126\n" +
+	"\bcategory\x18\x02 \x01(\x0e2\x1a.event.EventCategory.TypesR\bcategory\x12@\n" +
+	"\fsub_category\x18\x03 \x01(\x0e2\x1d.event.EventSubCategory.TypesR\vsubCategory\x12*\n" +
+	"\x04type\x18\x04 \x01(\x0e2\x16.event.EventType.TypesR\x04type\x12!\n" +
+	"\ftype_version\x18\x05 \x01(\tR\vtypeVersion\x127\n" +
+	"\traised_ts\x18\x06 \x01(\v2\x1a.google.protobuf.TimestampR\braisedTs\x12;\n" +
+	"\vreported_ts\x18\a \x01(\v2\x1a.google.protobuf.TimestampR\n" +
+	"reportedTs\"\xf9\x02\n" +
+	"\x05Event\x12*\n" +
+	"\x06header\x18\x01 \x01(\v2\x12.event.EventHeaderR\x06header\x127\n" +
+	"\fconfig_event\x18\x02 \x01(\v2\x12.event.ConfigEventH\x00R\vconfigEvent\x12.\n" +
+	"\tkpi_event\x18\x03 \x01(\v2\x0f.event.KpiEventH\x00R\bkpiEvent\x121\n" +
+	"\n" +
+	"kpi_event2\x18\x04 \x01(\v2\x10.event.KpiEvent2H\x00R\tkpiEvent2\x127\n" +
+	"\fdevice_event\x18\x05 \x01(\v2\x12.event.DeviceEventH\x00R\vdeviceEvent\x12.\n" +
+	"\trpc_event\x18\x06 \x01(\v2\x0f.event.RPCEventH\x00R\brpcEvent\x121\n" +
+	"\n" +
+	"kpi_event3\x18\a \x01(\v2\x10.event.KpiEvent3H\x00R\tkpiEvent3B\f\n" +
+	"\n" +
+	"event_typeBL\n" +
+	"\x1aorg.opencord.voltha.eventsZ.github.com/opencord/voltha-protos/v5/go/volthab\x06proto3"
+
+var (
+	file_voltha_protos_events_proto_rawDescOnce sync.Once
+	file_voltha_protos_events_proto_rawDescData []byte
+)
+
+func file_voltha_protos_events_proto_rawDescGZIP() []byte {
+	file_voltha_protos_events_proto_rawDescOnce.Do(func() {
+		file_voltha_protos_events_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_voltha_protos_events_proto_rawDesc), len(file_voltha_protos_events_proto_rawDesc)))
+	})
+	return file_voltha_protos_events_proto_rawDescData
 }
 
-func (m *Event) GetConfigEvent() *ConfigEvent {
-	if x, ok := m.GetEventType().(*Event_ConfigEvent); ok {
-		return x.ConfigEvent
-	}
-	return nil
+var file_voltha_protos_events_proto_enumTypes = make([]protoimpl.EnumInfo, 6)
+var file_voltha_protos_events_proto_msgTypes = make([]protoimpl.MessageInfo, 28)
+var file_voltha_protos_events_proto_goTypes = []any{
+	(EventFilterRuleKey_EventFilterRuleType)(0), // 0: event.EventFilterRuleKey.EventFilterRuleType
+	(ConfigEventType_Types)(0),                  // 1: event.ConfigEventType.Types
+	(KpiEventType_Types)(0),                     // 2: event.KpiEventType.Types
+	(EventCategory_Types)(0),                    // 3: event.EventCategory.Types
+	(EventSubCategory_Types)(0),                 // 4: event.EventSubCategory.Types
+	(EventType_Types)(0),                        // 5: event.EventType.Types
+	(*EventFilterRuleKey)(nil),                  // 6: event.EventFilterRuleKey
+	(*EventFilterRule)(nil),                     // 7: event.EventFilterRule
+	(*EventFilter)(nil),                         // 8: event.EventFilter
+	(*EventFilters)(nil),                        // 9: event.EventFilters
+	(*ConfigEventType)(nil),                     // 10: event.ConfigEventType
+	(*ConfigEvent)(nil),                         // 11: event.ConfigEvent
+	(*KpiEventType)(nil),                        // 12: event.KpiEventType
+	(*MetricMetaData)(nil),                      // 13: event.MetricMetaData
+	(*MetricValuePairs)(nil),                    // 14: event.MetricValuePairs
+	(*MetricInformation)(nil),                   // 15: event.MetricInformation
+	(*MetricInformation64)(nil),                 // 16: event.MetricInformation64
+	(*KpiEvent)(nil),                            // 17: event.KpiEvent
+	(*KpiEvent2)(nil),                           // 18: event.KpiEvent2
+	(*KpiEvent3)(nil),                           // 19: event.KpiEvent3
+	(*DeviceEvent)(nil),                         // 20: event.DeviceEvent
+	(*RPCEvent)(nil),                            // 21: event.RPCEvent
+	(*EventCategory)(nil),                       // 22: event.EventCategory
+	(*EventSubCategory)(nil),                    // 23: event.EventSubCategory
+	(*EventType)(nil),                           // 24: event.EventType
+	(*EventHeader)(nil),                         // 25: event.EventHeader
+	(*Event)(nil),                               // 26: event.Event
+	nil,                                         // 27: event.MetricMetaData.ContextEntry
+	nil,                                         // 28: event.MetricValuePairs.MetricsEntry
+	nil,                                         // 29: event.MetricInformation.MetricsEntry
+	nil,                                         // 30: event.MetricInformation64.MetricsEntry
+	nil,                                         // 31: event.KpiEvent.PrefixesEntry
+	nil,                                         // 32: event.DeviceEvent.ContextEntry
+	nil,                                         // 33: event.RPCEvent.ContextEntry
+	(*common.OperationResp)(nil),                // 34: common.OperationResp
+	(*timestamppb.Timestamp)(nil),               // 35: google.protobuf.Timestamp
+}
+var file_voltha_protos_events_proto_depIdxs = []int32{
+	0,  // 0: event.EventFilterRule.key:type_name -> event.EventFilterRuleKey.EventFilterRuleType
+	7,  // 1: event.EventFilter.rules:type_name -> event.EventFilterRule
+	8,  // 2: event.EventFilters.filters:type_name -> event.EventFilter
+	1,  // 3: event.ConfigEvent.type:type_name -> event.ConfigEventType.Types
+	27, // 4: event.MetricMetaData.context:type_name -> event.MetricMetaData.ContextEntry
+	28, // 5: event.MetricValuePairs.metrics:type_name -> event.MetricValuePairs.MetricsEntry
+	13, // 6: event.MetricInformation.metadata:type_name -> event.MetricMetaData
+	29, // 7: event.MetricInformation.metrics:type_name -> event.MetricInformation.MetricsEntry
+	13, // 8: event.MetricInformation64.metadata:type_name -> event.MetricMetaData
+	30, // 9: event.MetricInformation64.metrics:type_name -> event.MetricInformation64.MetricsEntry
+	2,  // 10: event.KpiEvent.type:type_name -> event.KpiEventType.Types
+	31, // 11: event.KpiEvent.prefixes:type_name -> event.KpiEvent.PrefixesEntry
+	2,  // 12: event.KpiEvent2.type:type_name -> event.KpiEventType.Types
+	15, // 13: event.KpiEvent2.slice_data:type_name -> event.MetricInformation
+	2,  // 14: event.KpiEvent3.type:type_name -> event.KpiEventType.Types
+	16, // 15: event.KpiEvent3.slice_data:type_name -> event.MetricInformation64
+	32, // 16: event.DeviceEvent.context:type_name -> event.DeviceEvent.ContextEntry
+	33, // 17: event.RPCEvent.context:type_name -> event.RPCEvent.ContextEntry
+	34, // 18: event.RPCEvent.status:type_name -> common.OperationResp
+	3,  // 19: event.EventHeader.category:type_name -> event.EventCategory.Types
+	4,  // 20: event.EventHeader.sub_category:type_name -> event.EventSubCategory.Types
+	5,  // 21: event.EventHeader.type:type_name -> event.EventType.Types
+	35, // 22: event.EventHeader.raised_ts:type_name -> google.protobuf.Timestamp
+	35, // 23: event.EventHeader.reported_ts:type_name -> google.protobuf.Timestamp
+	25, // 24: event.Event.header:type_name -> event.EventHeader
+	11, // 25: event.Event.config_event:type_name -> event.ConfigEvent
+	17, // 26: event.Event.kpi_event:type_name -> event.KpiEvent
+	18, // 27: event.Event.kpi_event2:type_name -> event.KpiEvent2
+	20, // 28: event.Event.device_event:type_name -> event.DeviceEvent
+	21, // 29: event.Event.rpc_event:type_name -> event.RPCEvent
+	19, // 30: event.Event.kpi_event3:type_name -> event.KpiEvent3
+	14, // 31: event.KpiEvent.PrefixesEntry.value:type_name -> event.MetricValuePairs
+	32, // [32:32] is the sub-list for method output_type
+	32, // [32:32] is the sub-list for method input_type
+	32, // [32:32] is the sub-list for extension type_name
+	32, // [32:32] is the sub-list for extension extendee
+	0,  // [0:32] is the sub-list for field type_name
 }
 
-func (m *Event) GetKpiEvent() *KpiEvent {
-	if x, ok := m.GetEventType().(*Event_KpiEvent); ok {
-		return x.KpiEvent
+func init() { file_voltha_protos_events_proto_init() }
+func file_voltha_protos_events_proto_init() {
+	if File_voltha_protos_events_proto != nil {
+		return
 	}
-	return nil
-}
-
-func (m *Event) GetKpiEvent2() *KpiEvent2 {
-	if x, ok := m.GetEventType().(*Event_KpiEvent2); ok {
-		return x.KpiEvent2
-	}
-	return nil
-}
-
-func (m *Event) GetDeviceEvent() *DeviceEvent {
-	if x, ok := m.GetEventType().(*Event_DeviceEvent); ok {
-		return x.DeviceEvent
-	}
-	return nil
-}
-
-func (m *Event) GetRpcEvent() *RPCEvent {
-	if x, ok := m.GetEventType().(*Event_RpcEvent); ok {
-		return x.RpcEvent
-	}
-	return nil
-}
-
-func (m *Event) GetKpiEvent3() *KpiEvent3 {
-	if x, ok := m.GetEventType().(*Event_KpiEvent3); ok {
-		return x.KpiEvent3
-	}
-	return nil
-}
-
-// XXX_OneofWrappers is for the internal use of the proto package.
-func (*Event) XXX_OneofWrappers() []interface{} {
-	return []interface{}{
+	file_voltha_protos_events_proto_msgTypes[20].OneofWrappers = []any{
 		(*Event_ConfigEvent)(nil),
 		(*Event_KpiEvent)(nil),
 		(*Event_KpiEvent2)(nil),
@@ -1473,141 +1966,22 @@
 		(*Event_RpcEvent)(nil),
 		(*Event_KpiEvent3)(nil),
 	}
-}
-
-func init() {
-	proto.RegisterEnum("event.EventFilterRuleKey_EventFilterRuleType", EventFilterRuleKey_EventFilterRuleType_name, EventFilterRuleKey_EventFilterRuleType_value)
-	proto.RegisterEnum("event.ConfigEventType_Types", ConfigEventType_Types_name, ConfigEventType_Types_value)
-	proto.RegisterEnum("event.KpiEventType_Types", KpiEventType_Types_name, KpiEventType_Types_value)
-	proto.RegisterEnum("event.EventCategory_Types", EventCategory_Types_name, EventCategory_Types_value)
-	proto.RegisterEnum("event.EventSubCategory_Types", EventSubCategory_Types_name, EventSubCategory_Types_value)
-	proto.RegisterEnum("event.EventType_Types", EventType_Types_name, EventType_Types_value)
-	proto.RegisterType((*EventFilterRuleKey)(nil), "event.EventFilterRuleKey")
-	proto.RegisterType((*EventFilterRule)(nil), "event.EventFilterRule")
-	proto.RegisterType((*EventFilter)(nil), "event.EventFilter")
-	proto.RegisterType((*EventFilters)(nil), "event.EventFilters")
-	proto.RegisterType((*ConfigEventType)(nil), "event.ConfigEventType")
-	proto.RegisterType((*ConfigEvent)(nil), "event.ConfigEvent")
-	proto.RegisterType((*KpiEventType)(nil), "event.KpiEventType")
-	proto.RegisterType((*MetricMetaData)(nil), "event.MetricMetaData")
-	proto.RegisterMapType((map[string]string)(nil), "event.MetricMetaData.ContextEntry")
-	proto.RegisterType((*MetricValuePairs)(nil), "event.MetricValuePairs")
-	proto.RegisterMapType((map[string]float32)(nil), "event.MetricValuePairs.MetricsEntry")
-	proto.RegisterType((*MetricInformation)(nil), "event.MetricInformation")
-	proto.RegisterMapType((map[string]float32)(nil), "event.MetricInformation.MetricsEntry")
-	proto.RegisterType((*MetricInformation64)(nil), "event.MetricInformation64")
-	proto.RegisterMapType((map[string]float64)(nil), "event.MetricInformation64.MetricsEntry")
-	proto.RegisterType((*KpiEvent)(nil), "event.KpiEvent")
-	proto.RegisterMapType((map[string]*MetricValuePairs)(nil), "event.KpiEvent.PrefixesEntry")
-	proto.RegisterType((*KpiEvent2)(nil), "event.KpiEvent2")
-	proto.RegisterType((*KpiEvent3)(nil), "event.KpiEvent3")
-	proto.RegisterType((*DeviceEvent)(nil), "event.DeviceEvent")
-	proto.RegisterMapType((map[string]string)(nil), "event.DeviceEvent.ContextEntry")
-	proto.RegisterType((*RPCEvent)(nil), "event.RPCEvent")
-	proto.RegisterMapType((map[string]string)(nil), "event.RPCEvent.ContextEntry")
-	proto.RegisterType((*EventCategory)(nil), "event.EventCategory")
-	proto.RegisterType((*EventSubCategory)(nil), "event.EventSubCategory")
-	proto.RegisterType((*EventType)(nil), "event.EventType")
-	proto.RegisterType((*EventHeader)(nil), "event.EventHeader")
-	proto.RegisterType((*Event)(nil), "event.Event")
-}
-
-func init() { proto.RegisterFile("voltha_protos/events.proto", fileDescriptor_e63e6c07044fd2c4) }
-
-var fileDescriptor_e63e6c07044fd2c4 = []byte{
-	// 1493 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x57, 0xcd, 0x6e, 0xdb, 0x46,
-	0x10, 0x16, 0xa9, 0xff, 0xa1, 0x6c, 0xd3, 0x9b, 0x26, 0x55, 0x94, 0x04, 0x71, 0x88, 0x16, 0x35,
-	0x8c, 0x58, 0x6e, 0xe4, 0xd4, 0x6e, 0x7e, 0x90, 0x34, 0x51, 0x94, 0x98, 0x48, 0x2c, 0xa9, 0xb4,
-	0x6c, 0xa0, 0xbd, 0x08, 0x34, 0xb9, 0x96, 0x09, 0x4b, 0x22, 0xc1, 0x5d, 0x09, 0xf1, 0xb9, 0x28,
-	0x7a, 0xeb, 0x23, 0xb4, 0xf7, 0xbe, 0x46, 0x0f, 0x7d, 0x87, 0xa0, 0x6f, 0xd1, 0x53, 0x6f, 0xc5,
-	0xfe, 0x50, 0x22, 0x69, 0xb9, 0x01, 0x92, 0xf6, 0x44, 0xee, 0xec, 0xcc, 0xce, 0x37, 0xdf, 0xec,
-	0xce, 0xce, 0x42, 0x6d, 0xea, 0x0f, 0xe9, 0xa9, 0xdd, 0x0f, 0x42, 0x9f, 0xfa, 0x64, 0x0b, 0x4f,
-	0xf1, 0x98, 0x92, 0x3a, 0x1f, 0xa1, 0x3c, 0x1f, 0xd5, 0x6e, 0x0e, 0x7c, 0x7f, 0x30, 0xc4, 0x5b,
-	0x76, 0xe0, 0x6d, 0xd9, 0xe3, 0xb1, 0x4f, 0x6d, 0xea, 0xf9, 0x63, 0xa9, 0x54, 0xbb, 0x2d, 0x67,
-	0xf9, 0xe8, 0x78, 0x72, 0xb2, 0x45, 0xbd, 0x11, 0x26, 0xd4, 0x1e, 0x05, 0x52, 0x21, 0xe5, 0xc1,
-	0xf1, 0x47, 0x23, 0x7f, 0x2c, 0xe6, 0x8c, 0x5f, 0x14, 0x40, 0x2d, 0xe6, 0xe4, 0xa5, 0x37, 0xa4,
-	0x38, 0xb4, 0x26, 0x43, 0xfc, 0x1a, 0x9f, 0x1b, 0x3f, 0x29, 0x70, 0x25, 0x25, 0xee, 0x9d, 0x07,
-	0x18, 0x2d, 0x03, 0x9c, 0x70, 0x49, 0xdf, 0x1e, 0x0e, 0xf5, 0x0c, 0xaa, 0x40, 0xc9, 0xb1, 0x29,
-	0x1e, 0xf8, 0xe1, 0xb9, 0xae, 0x20, 0x1d, 0x2a, 0x64, 0x72, 0xdc, 0x9f, 0x49, 0x54, 0x84, 0x60,
-	0xf9, 0x2c, 0xf0, 0xfa, 0x3c, 0x8c, 0x3e, 0x3d, 0x0f, 0xb0, 0x9e, 0x45, 0x57, 0x61, 0xd5, 0xf1,
-	0xc7, 0x27, 0xde, 0x20, 0x2e, 0xce, 0x31, 0xb1, 0x8b, 0xa7, 0x9e, 0x83, 0xe3, 0xe2, 0xbc, 0x71,
-	0x0a, 0x2b, 0x29, 0x20, 0xe8, 0x29, 0x64, 0xcf, 0xf0, 0x79, 0x55, 0x59, 0x53, 0xd6, 0x97, 0x1b,
-	0x9b, 0x75, 0xae, 0x5e, 0xbf, 0x18, 0x44, 0x7d, 0x41, 0x00, 0x16, 0xb3, 0x44, 0x9f, 0x40, 0x7e,
-	0x6a, 0x0f, 0x27, 0xb8, 0xaa, 0xae, 0x29, 0xeb, 0x65, 0x4b, 0x0c, 0x8c, 0x5f, 0x15, 0xd0, 0x62,
-	0x26, 0x68, 0x19, 0x54, 0xcf, 0xe5, 0x5e, 0xca, 0x96, 0xea, 0xb9, 0xe8, 0x1a, 0x14, 0xf0, 0xd8,
-	0x3e, 0x1e, 0x0a, 0xb3, 0x92, 0x25, 0x47, 0xe8, 0x06, 0x94, 0x25, 0x70, 0xcf, 0xad, 0x66, 0xb9,
-	0x7a, 0x49, 0x08, 0x4c, 0x17, 0xdd, 0x02, 0x98, 0x87, 0x53, 0xcd, 0xf1, 0xd9, 0x32, 0x97, 0x70,
-	0x3e, 0xef, 0x42, 0x3e, 0x9c, 0x0c, 0x31, 0xa9, 0xe6, 0xd7, 0xb2, 0xeb, 0x5a, 0xe3, 0xda, 0xe2,
-	0x60, 0x2c, 0xa1, 0x64, 0x3c, 0x86, 0x4a, 0x6c, 0x86, 0xa0, 0xbb, 0x50, 0x14, 0xd9, 0x20, 0x55,
-	0x85, 0xdb, 0xa3, 0x05, 0xf6, 0x91, 0x8a, 0xf1, 0x08, 0x56, 0x9a, 0x9c, 0xf7, 0x56, 0xe4, 0xde,
-	0x58, 0x87, 0x3c, 0xfb, 0x12, 0x54, 0x84, 0xac, 0xed, 0xba, 0x7a, 0x06, 0x01, 0x14, 0x42, 0x3c,
-	0xf2, 0xa7, 0x58, 0x57, 0xd8, 0xff, 0x24, 0x70, 0x6d, 0x8a, 0x75, 0xd5, 0x18, 0x80, 0x16, 0x33,
-	0x46, 0x5f, 0x42, 0x8e, 0x07, 0x24, 0x72, 0x70, 0x53, 0xba, 0x4d, 0x2d, 0x5f, 0xe7, 0x6b, 0x5b,
-	0x5c, 0x13, 0x21, 0xc8, 0x9d, 0xda, 0xe4, 0x54, 0x52, 0xce, 0xff, 0x99, 0xcc, 0xb5, 0xa9, 0x2d,
-	0x49, 0xe3, 0xff, 0xc6, 0x06, 0x54, 0x5e, 0x07, 0xde, 0x1c, 0x62, 0x2d, 0x82, 0x58, 0x86, 0x3c,
-	0x19, 0x7a, 0x0e, 0xd6, 0x33, 0xa8, 0x00, 0x2a, 0x25, 0xba, 0x62, 0xfc, 0xa6, 0xc2, 0xf2, 0x3e,
-	0xa6, 0xa1, 0xe7, 0xec, 0x63, 0x6a, 0xbf, 0xb0, 0xa9, 0xcd, 0x52, 0x4b, 0x3d, 0x3a, 0xc4, 0x32,
-	0x6f, 0x62, 0xc0, 0x52, 0x49, 0x09, 0x77, 0xad, 0x58, 0x2a, 0x25, 0x68, 0x03, 0x56, 0x87, 0xfe,
-	0xc0, 0x73, 0xec, 0x61, 0x3f, 0x9d, 0xba, 0x15, 0x39, 0xf1, 0x22, 0xca, 0xe0, 0x0d, 0x28, 0x13,
-	0x1c, 0x7a, 0xf6, 0xb0, 0x3f, 0xf6, 0x65, 0x02, 0x4b, 0x42, 0xd0, 0xf6, 0x93, 0xb9, 0xcf, 0xa7,
-	0x72, 0xff, 0x18, 0x8a, 0x8e, 0x3f, 0xa6, 0xf8, 0x2d, 0xad, 0x16, 0x78, 0x7a, 0x0c, 0xc9, 0x53,
-	0x12, 0x33, 0xa3, 0x8d, 0x29, 0xb5, 0xc6, 0x34, 0x3c, 0xb7, 0x22, 0x13, 0x46, 0xce, 0x64, 0xe2,
-	0xb9, 0xd5, 0xa2, 0x20, 0x87, 0xfd, 0xd7, 0x1e, 0x42, 0x25, 0xae, 0x8c, 0xf4, 0xf9, 0x49, 0x28,
-	0xff, 0xcb, 0xd6, 0x7e, 0xa8, 0x7e, 0xad, 0x18, 0x3f, 0x2b, 0xa0, 0x0b, 0xc7, 0x47, 0x4c, 0xd6,
-	0xb5, 0xbd, 0x90, 0xa0, 0x27, 0x50, 0x1c, 0x71, 0x59, 0xb4, 0x83, 0x3e, 0x4b, 0x40, 0x9c, 0x6b,
-	0x4a, 0x01, 0x91, 0x20, 0xa5, 0x11, 0x03, 0x14, 0x9f, 0x78, 0x1f, 0x20, 0x35, 0x0e, 0xe8, 0x77,
-	0x05, 0x56, 0x85, 0xb1, 0x39, 0x3e, 0xf1, 0xc3, 0x11, 0x2f, 0x6a, 0xe8, 0x1e, 0x94, 0x46, 0x98,
-	0xda, 0x7c, 0x5f, 0xb0, 0x65, 0xb4, 0xc6, 0xd5, 0x85, 0xac, 0x59, 0x33, 0x35, 0xf4, 0x74, 0x1e,
-	0x84, 0xca, 0x83, 0xf8, 0x3c, 0x61, 0x11, 0x5b, 0xfd, 0x7f, 0x88, 0xe2, 0x0f, 0x05, 0xae, 0x5c,
-	0xf0, 0xb3, 0x73, 0xff, 0x43, 0xe2, 0x78, 0x96, 0x8e, 0xe3, 0x8b, 0xcb, 0xe2, 0xd8, 0xb9, 0xff,
-	0xdf, 0x44, 0xa2, 0xc4, 0x23, 0x79, 0xa7, 0x40, 0x29, 0x3a, 0x7a, 0x68, 0x33, 0x71, 0xc0, 0xaf,
-	0x4b, 0x20, 0xf1, 0x93, 0x99, 0x38, 0xdd, 0xf3, 0x03, 0xa6, 0xf2, 0x03, 0xf6, 0x00, 0x4a, 0x41,
-	0x88, 0x4f, 0xbc, 0xb7, 0x98, 0x54, 0xb3, 0x3c, 0x96, 0x5b, 0xa9, 0x25, 0xea, 0x5d, 0x39, 0x2f,
-	0x22, 0x98, 0xa9, 0xd7, 0x7a, 0xb0, 0x94, 0x98, 0x5a, 0x10, 0xc3, 0x66, 0x3c, 0x06, 0xad, 0xf1,
-	0xe9, 0x25, 0x7b, 0x36, 0x1e, 0xdc, 0x0f, 0x0a, 0x94, 0x23, 0xd7, 0x8d, 0x0f, 0x8f, 0x4e, 0x94,
-	0x8f, 0x5d, 0x00, 0x5e, 0x8a, 0xfa, 0xb2, 0x7a, 0xb1, 0xf8, 0xaa, 0x97, 0xe5, 0xca, 0x2a, 0x73,
-	0x5d, 0x96, 0x6b, 0xe3, 0xc7, 0x18, 0x8a, 0xed, 0x8f, 0x45, 0xf1, 0x60, 0x01, 0x8a, 0xda, 0xe5,
-	0x3b, 0x26, 0x8e, 0xe3, 0x2f, 0x05, 0x34, 0x51, 0xe0, 0x44, 0xb6, 0x6f, 0x83, 0x16, 0x62, 0xe2,
-	0x4f, 0x42, 0x51, 0xc8, 0x04, 0xd5, 0x10, 0x89, 0x4c, 0x97, 0x15, 0xcc, 0xc4, 0xe5, 0x3c, 0xb6,
-	0x47, 0x51, 0x89, 0x59, 0x71, 0xe7, 0x0b, 0xb5, 0xed, 0x11, 0x46, 0x6b, 0xa0, 0xb9, 0x98, 0x38,
-	0xa1, 0x17, 0x30, 0xc7, 0xb2, 0xac, 0xc6, 0x45, 0xe8, 0xc1, 0xbc, 0x30, 0xe6, 0x38, 0xec, 0xdb,
-	0x12, 0x76, 0x0c, 0xd3, 0xe2, 0xaa, 0xf8, 0x51, 0x15, 0xf0, 0x9d, 0x0a, 0x25, 0xab, 0xdb, 0x14,
-	0x21, 0xeb, 0x90, 0x0d, 0x03, 0x27, 0x32, 0x0c, 0x03, 0x07, 0xdd, 0x81, 0x8a, 0x1f, 0xe0, 0x90,
-	0xd3, 0xc5, 0x58, 0x10, 0xf6, 0xda, 0x4c, 0x66, 0xba, 0xa8, 0x0a, 0x45, 0x82, 0x43, 0x86, 0x51,
-	0x86, 0x15, 0x0d, 0xd1, 0x75, 0x28, 0x11, 0x6a, 0x3b, 0x67, 0xcc, 0x30, 0x27, 0xa7, 0xd8, 0xd8,
-	0x74, 0xd3, 0xe4, 0xe6, 0x2f, 0x90, 0x9b, 0x22, 0xac, 0x70, 0x91, 0xb0, 0x9d, 0x39, 0x61, 0x45,
-	0x4e, 0x58, 0x74, 0xe3, 0x46, 0xe1, 0x5c, 0x72, 0x87, 0x6c, 0x42, 0x81, 0x50, 0x9b, 0x4e, 0x48,
-	0xb5, 0x24, 0x4b, 0x90, 0x6c, 0xfe, 0x3a, 0x51, 0x50, 0x16, 0x26, 0x81, 0x25, 0x95, 0x3e, 0x8a,
-	0xdc, 0x29, 0x2c, 0x71, 0x24, 0x4d, 0xd9, 0xfc, 0x19, 0x38, 0xba, 0xb8, 0x57, 0x61, 0xa9, 0xd9,
-	0xd9, 0xdf, 0x3f, 0x6c, 0x9b, 0xcd, 0x67, 0x3d, 0xb3, 0xd3, 0xd6, 0x33, 0x68, 0x05, 0xb4, 0x56,
-	0xfb, 0xc8, 0xb4, 0x3a, 0xed, 0xfd, 0x56, 0xbb, 0xa7, 0x2b, 0x68, 0x09, 0xca, 0xad, 0x6f, 0x0f,
-	0xcd, 0x2e, 0x1f, 0xaa, 0x48, 0x83, 0xe2, 0x41, 0xcb, 0x3a, 0x32, 0x9b, 0x2d, 0x3d, 0xcb, 0x7a,
-	0xce, 0xae, 0xd5, 0x69, 0xb6, 0x0e, 0x0e, 0xcc, 0xf6, 0x2b, 0x3d, 0xc7, 0x7a, 0xce, 0x83, 0x56,
-	0xf3, 0xd0, 0x32, 0x7b, 0xdf, 0xe9, 0x79, 0xc3, 0x02, 0x9d, 0xfb, 0x3d, 0x98, 0x1c, 0xcf, 0x5c,
-	0x3f, 0x89, 0xb5, 0x35, 0x5d, 0xee, 0xb0, 0x08, 0xd9, 0xce, 0x1b, 0xe6, 0x88, 0xfd, 0x70, 0x17,
-	0xfc, 0xe7, 0x50, 0xcf, 0xb2, 0x9f, 0x76, 0xdb, 0xd4, 0x73, 0xa8, 0x04, 0xb9, 0x76, 0xa7, 0xdd,
-	0xd2, 0xf3, 0xc6, 0x14, 0xca, 0xf3, 0x06, 0xc4, 0x8b, 0x16, 0xd3, 0xa1, 0xd2, 0xec, 0xb4, 0x5f,
-	0x9a, 0xaf, 0xfa, 0xad, 0x23, 0x06, 0x33, 0xc3, 0x50, 0xbf, 0xee, 0x9a, 0x72, 0xa8, 0x30, 0xa0,
-	0xb3, 0x61, 0x43, 0x57, 0x99, 0xc1, 0x8b, 0x16, 0x0b, 0x42, 0x6a, 0x64, 0x99, 0x81, 0xd5, 0x6d,
-	0xca, 0x61, 0x2e, 0x61, 0xb0, 0xad, 0xe7, 0x8d, 0x3f, 0x55, 0xd9, 0x81, 0xee, 0x61, 0xdb, 0x5d,
-	0xd0, 0x81, 0xee, 0xcc, 0xbb, 0x6d, 0x9e, 0x80, 0xe5, 0xd9, 0x79, 0x4f, 0x50, 0x2f, 0xab, 0xc6,
-	0x4c, 0x17, 0x7d, 0x93, 0xec, 0xcb, 0xf9, 0xde, 0x5d, 0x9e, 0x55, 0xe4, 0x34, 0x7d, 0xd2, 0x5c,
-	0x23, 0x73, 0x11, 0xda, 0x90, 0xa5, 0x2a, 0xc7, 0x2d, 0x13, 0x6d, 0xea, 0x85, 0x3a, 0x75, 0x07,
-	0x2a, 0xec, 0xdb, 0x9f, 0xe2, 0x90, 0xb0, 0xfd, 0x2c, 0x36, 0xbc, 0xc6, 0x64, 0x47, 0x42, 0x84,
-	0x76, 0xa1, 0x1c, 0xda, 0x1e, 0xc1, 0x6e, 0x9f, 0x12, 0xbe, 0xdf, 0x59, 0xe5, 0x12, 0xcf, 0x98,
-	0x7a, 0xf4, 0x8c, 0xa9, 0xf7, 0xa2, 0x67, 0x8c, 0x55, 0x12, 0xca, 0x3d, 0x82, 0x1e, 0xb1, 0xb3,
-	0x14, 0xf8, 0x21, 0x15, 0xa6, 0xc5, 0xf7, 0x9a, 0x42, 0xa4, 0xde, 0x23, 0xc6, 0xdf, 0x2a, 0xe4,
-	0xc5, 0xe1, 0xdf, 0x80, 0xc2, 0x29, 0xa7, 0x58, 0x5e, 0xcd, 0x89, 0xbe, 0x59, 0x90, 0x6f, 0x49,
-	0x0d, 0xb4, 0x0b, 0x95, 0xf8, 0x73, 0x45, 0xde, 0x39, 0xe8, 0x62, 0xcb, 0xbb, 0x97, 0xb1, 0x34,
-	0x27, 0xd6, 0x23, 0xd7, 0xa1, 0x3c, 0x7b, 0xfb, 0x70, 0xca, 0xb5, 0xc6, 0x4a, 0xaa, 0xc6, 0xef,
-	0x65, 0xac, 0xd2, 0x59, 0x74, 0xe5, 0xde, 0x03, 0x98, 0xe9, 0x37, 0x38, 0xd3, 0x5a, 0x43, 0x4f,
-	0x19, 0x34, 0xf6, 0x32, 0x56, 0xf9, 0x6c, 0x76, 0x8f, 0xed, 0x42, 0x25, 0x5e, 0x96, 0x39, 0xd5,
-	0x73, 0x6c, 0xb1, 0x6a, 0xca, 0xb0, 0xc5, 0xea, 0x34, 0xc3, 0x16, 0x06, 0x8e, 0xb4, 0x2a, 0x24,
-	0xb0, 0x45, 0x25, 0x85, 0x61, 0x0b, 0x03, 0xe7, 0x22, 0xb6, 0x6d, 0x49, 0x7b, 0x1a, 0xdb, 0x76,
-	0x1c, 0xdb, 0xf6, 0xf3, 0x4a, 0xfc, 0xe5, 0xf3, 0xfc, 0x0d, 0xd4, 0xfc, 0x70, 0x50, 0xf7, 0x03,
-	0x3c, 0x76, 0xfc, 0xd0, 0xad, 0x8b, 0x27, 0xa9, 0x58, 0x81, 0x7c, 0x5f, 0x1f, 0x78, 0xf4, 0x74,
-	0x72, 0xcc, 0xaa, 0xd3, 0x56, 0xa4, 0xb2, 0x25, 0x54, 0x36, 0xe5, 0xab, 0x75, 0xfa, 0xd5, 0xd6,
-	0xc0, 0x97, 0xb2, 0xe3, 0x02, 0x17, 0x6e, 0xff, 0x13, 0x00, 0x00, 0xff, 0xff, 0xf2, 0x61, 0x0b,
-	0xb2, 0x3c, 0x0f, 0x00, 0x00,
+	type x struct{}
+	out := protoimpl.TypeBuilder{
+		File: protoimpl.DescBuilder{
+			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+			RawDescriptor: unsafe.Slice(unsafe.StringData(file_voltha_protos_events_proto_rawDesc), len(file_voltha_protos_events_proto_rawDesc)),
+			NumEnums:      6,
+			NumMessages:   28,
+			NumExtensions: 0,
+			NumServices:   0,
+		},
+		GoTypes:           file_voltha_protos_events_proto_goTypes,
+		DependencyIndexes: file_voltha_protos_events_proto_depIdxs,
+		EnumInfos:         file_voltha_protos_events_proto_enumTypes,
+		MessageInfos:      file_voltha_protos_events_proto_msgTypes,
+	}.Build()
+	File_voltha_protos_events_proto = out.File
+	file_voltha_protos_events_proto_goTypes = nil
+	file_voltha_protos_events_proto_depIdxs = nil
 }
diff --git a/go/voltha/logical_device.pb.go b/go/voltha/logical_device.pb.go
index bd0e4c4..ba19ad1 100644
--- a/go/voltha/logical_device.pb.go
+++ b/go/voltha/logical_device.pb.go
@@ -1,195 +1,212 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// 	protoc-gen-go v1.36.11
+// 	protoc        v4.25.8
 // source: voltha_protos/logical_device.proto
 
 package voltha
 
 import (
-	fmt "fmt"
-	proto "github.com/golang/protobuf/proto"
 	openflow_13 "github.com/opencord/voltha-protos/v5/go/openflow_13"
 	_ "google.golang.org/genproto/googleapis/api/annotations"
-	math "math"
+	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+	reflect "reflect"
+	sync "sync"
+	unsafe "unsafe"
 )
 
-// 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
+const (
+	// Verify that this generated code is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+	// Verify that runtime/protoimpl is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
 
 type LogicalPortId struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
 	// unique id of logical device
 	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
 	// id of the port on the logical device
-	PortId               string   `protobuf:"bytes,2,opt,name=port_id,json=portId,proto3" json:"port_id,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	PortId        string `protobuf:"bytes,2,opt,name=port_id,json=portId,proto3" json:"port_id,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *LogicalPortId) Reset()         { *m = LogicalPortId{} }
-func (m *LogicalPortId) String() string { return proto.CompactTextString(m) }
-func (*LogicalPortId) ProtoMessage()    {}
+func (x *LogicalPortId) Reset() {
+	*x = LogicalPortId{}
+	mi := &file_voltha_protos_logical_device_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *LogicalPortId) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*LogicalPortId) ProtoMessage() {}
+
+func (x *LogicalPortId) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_logical_device_proto_msgTypes[0]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use LogicalPortId.ProtoReflect.Descriptor instead.
 func (*LogicalPortId) Descriptor() ([]byte, []int) {
-	return fileDescriptor_caf139ab3abc8240, []int{0}
+	return file_voltha_protos_logical_device_proto_rawDescGZIP(), []int{0}
 }
 
-func (m *LogicalPortId) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_LogicalPortId.Unmarshal(m, b)
-}
-func (m *LogicalPortId) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_LogicalPortId.Marshal(b, m, deterministic)
-}
-func (m *LogicalPortId) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_LogicalPortId.Merge(m, src)
-}
-func (m *LogicalPortId) XXX_Size() int {
-	return xxx_messageInfo_LogicalPortId.Size(m)
-}
-func (m *LogicalPortId) XXX_DiscardUnknown() {
-	xxx_messageInfo_LogicalPortId.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_LogicalPortId proto.InternalMessageInfo
-
-func (m *LogicalPortId) GetId() string {
-	if m != nil {
-		return m.Id
+func (x *LogicalPortId) GetId() string {
+	if x != nil {
+		return x.Id
 	}
 	return ""
 }
 
-func (m *LogicalPortId) GetPortId() string {
-	if m != nil {
-		return m.PortId
+func (x *LogicalPortId) GetPortId() string {
+	if x != nil {
+		return x.PortId
 	}
 	return ""
 }
 
 type LogicalPort struct {
-	Id                   string                    `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
-	OfpPort              *openflow_13.OfpPort      `protobuf:"bytes,2,opt,name=ofp_port,json=ofpPort,proto3" json:"ofp_port,omitempty"`
-	DeviceId             string                    `protobuf:"bytes,3,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
-	DevicePortNo         uint32                    `protobuf:"varint,4,opt,name=device_port_no,json=devicePortNo,proto3" json:"device_port_no,omitempty"`
-	RootPort             bool                      `protobuf:"varint,5,opt,name=root_port,json=rootPort,proto3" json:"root_port,omitempty"`
-	OfpPortStats         *openflow_13.OfpPortStats `protobuf:"bytes,6,opt,name=ofp_port_stats,json=ofpPortStats,proto3" json:"ofp_port_stats,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                  `json:"-"`
-	XXX_unrecognized     []byte                    `json:"-"`
-	XXX_sizecache        int32                     `json:"-"`
+	state         protoimpl.MessageState    `protogen:"open.v1"`
+	Id            string                    `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+	OfpPort       *openflow_13.OfpPort      `protobuf:"bytes,2,opt,name=ofp_port,json=ofpPort,proto3" json:"ofp_port,omitempty"`
+	DeviceId      string                    `protobuf:"bytes,3,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
+	DevicePortNo  uint32                    `protobuf:"varint,4,opt,name=device_port_no,json=devicePortNo,proto3" json:"device_port_no,omitempty"`
+	RootPort      bool                      `protobuf:"varint,5,opt,name=root_port,json=rootPort,proto3" json:"root_port,omitempty"`
+	OfpPortStats  *openflow_13.OfpPortStats `protobuf:"bytes,6,opt,name=ofp_port_stats,json=ofpPortStats,proto3" json:"ofp_port_stats,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *LogicalPort) Reset()         { *m = LogicalPort{} }
-func (m *LogicalPort) String() string { return proto.CompactTextString(m) }
-func (*LogicalPort) ProtoMessage()    {}
+func (x *LogicalPort) Reset() {
+	*x = LogicalPort{}
+	mi := &file_voltha_protos_logical_device_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *LogicalPort) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*LogicalPort) ProtoMessage() {}
+
+func (x *LogicalPort) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_logical_device_proto_msgTypes[1]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use LogicalPort.ProtoReflect.Descriptor instead.
 func (*LogicalPort) Descriptor() ([]byte, []int) {
-	return fileDescriptor_caf139ab3abc8240, []int{1}
+	return file_voltha_protos_logical_device_proto_rawDescGZIP(), []int{1}
 }
 
-func (m *LogicalPort) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_LogicalPort.Unmarshal(m, b)
-}
-func (m *LogicalPort) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_LogicalPort.Marshal(b, m, deterministic)
-}
-func (m *LogicalPort) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_LogicalPort.Merge(m, src)
-}
-func (m *LogicalPort) XXX_Size() int {
-	return xxx_messageInfo_LogicalPort.Size(m)
-}
-func (m *LogicalPort) XXX_DiscardUnknown() {
-	xxx_messageInfo_LogicalPort.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_LogicalPort proto.InternalMessageInfo
-
-func (m *LogicalPort) GetId() string {
-	if m != nil {
-		return m.Id
+func (x *LogicalPort) GetId() string {
+	if x != nil {
+		return x.Id
 	}
 	return ""
 }
 
-func (m *LogicalPort) GetOfpPort() *openflow_13.OfpPort {
-	if m != nil {
-		return m.OfpPort
+func (x *LogicalPort) GetOfpPort() *openflow_13.OfpPort {
+	if x != nil {
+		return x.OfpPort
 	}
 	return nil
 }
 
-func (m *LogicalPort) GetDeviceId() string {
-	if m != nil {
-		return m.DeviceId
+func (x *LogicalPort) GetDeviceId() string {
+	if x != nil {
+		return x.DeviceId
 	}
 	return ""
 }
 
-func (m *LogicalPort) GetDevicePortNo() uint32 {
-	if m != nil {
-		return m.DevicePortNo
+func (x *LogicalPort) GetDevicePortNo() uint32 {
+	if x != nil {
+		return x.DevicePortNo
 	}
 	return 0
 }
 
-func (m *LogicalPort) GetRootPort() bool {
-	if m != nil {
-		return m.RootPort
+func (x *LogicalPort) GetRootPort() bool {
+	if x != nil {
+		return x.RootPort
 	}
 	return false
 }
 
-func (m *LogicalPort) GetOfpPortStats() *openflow_13.OfpPortStats {
-	if m != nil {
-		return m.OfpPortStats
+func (x *LogicalPort) GetOfpPortStats() *openflow_13.OfpPortStats {
+	if x != nil {
+		return x.OfpPortStats
 	}
 	return nil
 }
 
 type LogicalPorts struct {
-	Items                []*LogicalPort `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
-	XXX_unrecognized     []byte         `json:"-"`
-	XXX_sizecache        int32          `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Items         []*LogicalPort         `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *LogicalPorts) Reset()         { *m = LogicalPorts{} }
-func (m *LogicalPorts) String() string { return proto.CompactTextString(m) }
-func (*LogicalPorts) ProtoMessage()    {}
+func (x *LogicalPorts) Reset() {
+	*x = LogicalPorts{}
+	mi := &file_voltha_protos_logical_device_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *LogicalPorts) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*LogicalPorts) ProtoMessage() {}
+
+func (x *LogicalPorts) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_logical_device_proto_msgTypes[2]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use LogicalPorts.ProtoReflect.Descriptor instead.
 func (*LogicalPorts) Descriptor() ([]byte, []int) {
-	return fileDescriptor_caf139ab3abc8240, []int{2}
+	return file_voltha_protos_logical_device_proto_rawDescGZIP(), []int{2}
 }
 
-func (m *LogicalPorts) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_LogicalPorts.Unmarshal(m, b)
-}
-func (m *LogicalPorts) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_LogicalPorts.Marshal(b, m, deterministic)
-}
-func (m *LogicalPorts) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_LogicalPorts.Merge(m, src)
-}
-func (m *LogicalPorts) XXX_Size() int {
-	return xxx_messageInfo_LogicalPorts.Size(m)
-}
-func (m *LogicalPorts) XXX_DiscardUnknown() {
-	xxx_messageInfo_LogicalPorts.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_LogicalPorts proto.InternalMessageInfo
-
-func (m *LogicalPorts) GetItems() []*LogicalPort {
-	if m != nil {
-		return m.Items
+func (x *LogicalPorts) GetItems() []*LogicalPort {
+	if x != nil {
+		return x.Items
 	}
 	return nil
 }
 
 type LogicalDevice struct {
+	state protoimpl.MessageState `protogen:"open.v1"`
 	// unique id of logical device
 	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
 	// unique datapath id for the logical device (used by the SDN controller)
@@ -199,151 +216,206 @@
 	// device features
 	SwitchFeatures *openflow_13.OfpSwitchFeatures `protobuf:"bytes,4,opt,name=switch_features,json=switchFeatures,proto3" json:"switch_features,omitempty"`
 	// name of the root device anchoring logical device
-	RootDeviceId         string   `protobuf:"bytes,5,opt,name=root_device_id,json=rootDeviceId,proto3" json:"root_device_id,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	RootDeviceId  string `protobuf:"bytes,5,opt,name=root_device_id,json=rootDeviceId,proto3" json:"root_device_id,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *LogicalDevice) Reset()         { *m = LogicalDevice{} }
-func (m *LogicalDevice) String() string { return proto.CompactTextString(m) }
-func (*LogicalDevice) ProtoMessage()    {}
+func (x *LogicalDevice) Reset() {
+	*x = LogicalDevice{}
+	mi := &file_voltha_protos_logical_device_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *LogicalDevice) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*LogicalDevice) ProtoMessage() {}
+
+func (x *LogicalDevice) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_logical_device_proto_msgTypes[3]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use LogicalDevice.ProtoReflect.Descriptor instead.
 func (*LogicalDevice) Descriptor() ([]byte, []int) {
-	return fileDescriptor_caf139ab3abc8240, []int{3}
+	return file_voltha_protos_logical_device_proto_rawDescGZIP(), []int{3}
 }
 
-func (m *LogicalDevice) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_LogicalDevice.Unmarshal(m, b)
-}
-func (m *LogicalDevice) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_LogicalDevice.Marshal(b, m, deterministic)
-}
-func (m *LogicalDevice) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_LogicalDevice.Merge(m, src)
-}
-func (m *LogicalDevice) XXX_Size() int {
-	return xxx_messageInfo_LogicalDevice.Size(m)
-}
-func (m *LogicalDevice) XXX_DiscardUnknown() {
-	xxx_messageInfo_LogicalDevice.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_LogicalDevice proto.InternalMessageInfo
-
-func (m *LogicalDevice) GetId() string {
-	if m != nil {
-		return m.Id
+func (x *LogicalDevice) GetId() string {
+	if x != nil {
+		return x.Id
 	}
 	return ""
 }
 
-func (m *LogicalDevice) GetDatapathId() uint64 {
-	if m != nil {
-		return m.DatapathId
+func (x *LogicalDevice) GetDatapathId() uint64 {
+	if x != nil {
+		return x.DatapathId
 	}
 	return 0
 }
 
-func (m *LogicalDevice) GetDesc() *openflow_13.OfpDesc {
-	if m != nil {
-		return m.Desc
+func (x *LogicalDevice) GetDesc() *openflow_13.OfpDesc {
+	if x != nil {
+		return x.Desc
 	}
 	return nil
 }
 
-func (m *LogicalDevice) GetSwitchFeatures() *openflow_13.OfpSwitchFeatures {
-	if m != nil {
-		return m.SwitchFeatures
+func (x *LogicalDevice) GetSwitchFeatures() *openflow_13.OfpSwitchFeatures {
+	if x != nil {
+		return x.SwitchFeatures
 	}
 	return nil
 }
 
-func (m *LogicalDevice) GetRootDeviceId() string {
-	if m != nil {
-		return m.RootDeviceId
+func (x *LogicalDevice) GetRootDeviceId() string {
+	if x != nil {
+		return x.RootDeviceId
 	}
 	return ""
 }
 
 type LogicalDevices struct {
-	Items                []*LogicalDevice `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
-	XXX_unrecognized     []byte           `json:"-"`
-	XXX_sizecache        int32            `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Items         []*LogicalDevice       `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *LogicalDevices) Reset()         { *m = LogicalDevices{} }
-func (m *LogicalDevices) String() string { return proto.CompactTextString(m) }
-func (*LogicalDevices) ProtoMessage()    {}
+func (x *LogicalDevices) Reset() {
+	*x = LogicalDevices{}
+	mi := &file_voltha_protos_logical_device_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *LogicalDevices) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*LogicalDevices) ProtoMessage() {}
+
+func (x *LogicalDevices) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_logical_device_proto_msgTypes[4]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use LogicalDevices.ProtoReflect.Descriptor instead.
 func (*LogicalDevices) Descriptor() ([]byte, []int) {
-	return fileDescriptor_caf139ab3abc8240, []int{4}
+	return file_voltha_protos_logical_device_proto_rawDescGZIP(), []int{4}
 }
 
-func (m *LogicalDevices) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_LogicalDevices.Unmarshal(m, b)
-}
-func (m *LogicalDevices) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_LogicalDevices.Marshal(b, m, deterministic)
-}
-func (m *LogicalDevices) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_LogicalDevices.Merge(m, src)
-}
-func (m *LogicalDevices) XXX_Size() int {
-	return xxx_messageInfo_LogicalDevices.Size(m)
-}
-func (m *LogicalDevices) XXX_DiscardUnknown() {
-	xxx_messageInfo_LogicalDevices.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_LogicalDevices proto.InternalMessageInfo
-
-func (m *LogicalDevices) GetItems() []*LogicalDevice {
-	if m != nil {
-		return m.Items
+func (x *LogicalDevices) GetItems() []*LogicalDevice {
+	if x != nil {
+		return x.Items
 	}
 	return nil
 }
 
-func init() {
-	proto.RegisterType((*LogicalPortId)(nil), "logical_device.LogicalPortId")
-	proto.RegisterType((*LogicalPort)(nil), "logical_device.LogicalPort")
-	proto.RegisterType((*LogicalPorts)(nil), "logical_device.LogicalPorts")
-	proto.RegisterType((*LogicalDevice)(nil), "logical_device.LogicalDevice")
-	proto.RegisterType((*LogicalDevices)(nil), "logical_device.LogicalDevices")
+var File_voltha_protos_logical_device_proto protoreflect.FileDescriptor
+
+const file_voltha_protos_logical_device_proto_rawDesc = "" +
+	"\n" +
+	"\"voltha_protos/logical_device.proto\x12\x0elogical_device\x1a\x1cgoogle/api/annotations.proto\x1a\x1fvoltha_protos/openflow_13.proto\"8\n" +
+	"\rLogicalPortId\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\tR\x02id\x12\x17\n" +
+	"\aport_id\x18\x02 \x01(\tR\x06portId\"\xf2\x01\n" +
+	"\vLogicalPort\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\tR\x02id\x120\n" +
+	"\bofp_port\x18\x02 \x01(\v2\x15.openflow_13.ofp_portR\aofpPort\x12\x1b\n" +
+	"\tdevice_id\x18\x03 \x01(\tR\bdeviceId\x12$\n" +
+	"\x0edevice_port_no\x18\x04 \x01(\rR\fdevicePortNo\x12\x1b\n" +
+	"\troot_port\x18\x05 \x01(\bR\brootPort\x12A\n" +
+	"\x0eofp_port_stats\x18\x06 \x01(\v2\x1b.openflow_13.ofp_port_statsR\fofpPortStats\"A\n" +
+	"\fLogicalPorts\x121\n" +
+	"\x05items\x18\x01 \x03(\v2\x1b.logical_device.LogicalPortR\x05items\"\xdc\x01\n" +
+	"\rLogicalDevice\x12\x0e\n" +
+	"\x02id\x18\x01 \x01(\tR\x02id\x12\x1f\n" +
+	"\vdatapath_id\x18\x02 \x01(\x04R\n" +
+	"datapathId\x12)\n" +
+	"\x04desc\x18\x03 \x01(\v2\x15.openflow_13.ofp_descR\x04desc\x12I\n" +
+	"\x0fswitch_features\x18\x04 \x01(\v2 .openflow_13.ofp_switch_featuresR\x0eswitchFeatures\x12$\n" +
+	"\x0eroot_device_id\x18\x05 \x01(\tR\frootDeviceId\"E\n" +
+	"\x0eLogicalDevices\x123\n" +
+	"\x05items\x18\x01 \x03(\v2\x1d.logical_device.LogicalDeviceR\x05itemsBe\n" +
+	"\"org.opencord.voltha.logical_deviceB\x0fOFLogicalDeviceZ.github.com/opencord/voltha-protos/v5/go/volthab\x06proto3"
+
+var (
+	file_voltha_protos_logical_device_proto_rawDescOnce sync.Once
+	file_voltha_protos_logical_device_proto_rawDescData []byte
+)
+
+func file_voltha_protos_logical_device_proto_rawDescGZIP() []byte {
+	file_voltha_protos_logical_device_proto_rawDescOnce.Do(func() {
+		file_voltha_protos_logical_device_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_voltha_protos_logical_device_proto_rawDesc), len(file_voltha_protos_logical_device_proto_rawDesc)))
+	})
+	return file_voltha_protos_logical_device_proto_rawDescData
 }
 
-func init() {
-	proto.RegisterFile("voltha_protos/logical_device.proto", fileDescriptor_caf139ab3abc8240)
+var file_voltha_protos_logical_device_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
+var file_voltha_protos_logical_device_proto_goTypes = []any{
+	(*LogicalPortId)(nil),                 // 0: logical_device.LogicalPortId
+	(*LogicalPort)(nil),                   // 1: logical_device.LogicalPort
+	(*LogicalPorts)(nil),                  // 2: logical_device.LogicalPorts
+	(*LogicalDevice)(nil),                 // 3: logical_device.LogicalDevice
+	(*LogicalDevices)(nil),                // 4: logical_device.LogicalDevices
+	(*openflow_13.OfpPort)(nil),           // 5: openflow_13.ofp_port
+	(*openflow_13.OfpPortStats)(nil),      // 6: openflow_13.ofp_port_stats
+	(*openflow_13.OfpDesc)(nil),           // 7: openflow_13.ofp_desc
+	(*openflow_13.OfpSwitchFeatures)(nil), // 8: openflow_13.ofp_switch_features
+}
+var file_voltha_protos_logical_device_proto_depIdxs = []int32{
+	5, // 0: logical_device.LogicalPort.ofp_port:type_name -> openflow_13.ofp_port
+	6, // 1: logical_device.LogicalPort.ofp_port_stats:type_name -> openflow_13.ofp_port_stats
+	1, // 2: logical_device.LogicalPorts.items:type_name -> logical_device.LogicalPort
+	7, // 3: logical_device.LogicalDevice.desc:type_name -> openflow_13.ofp_desc
+	8, // 4: logical_device.LogicalDevice.switch_features:type_name -> openflow_13.ofp_switch_features
+	3, // 5: logical_device.LogicalDevices.items:type_name -> logical_device.LogicalDevice
+	6, // [6:6] is the sub-list for method output_type
+	6, // [6:6] is the sub-list for method input_type
+	6, // [6:6] is the sub-list for extension type_name
+	6, // [6:6] is the sub-list for extension extendee
+	0, // [0:6] is the sub-list for field type_name
 }
 
-var fileDescriptor_caf139ab3abc8240 = []byte{
-	// 447 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x53, 0xd1, 0x6a, 0xdb, 0x30,
-	0x14, 0xc5, 0x69, 0x92, 0xa6, 0x37, 0xa9, 0x0b, 0x86, 0x31, 0xd3, 0x6e, 0xd4, 0x98, 0x3d, 0x64,
-	0x0f, 0xb3, 0xd7, 0x86, 0xc1, 0x5e, 0x5b, 0xba, 0x42, 0x60, 0x6c, 0x43, 0x7b, 0xdb, 0x8b, 0x51,
-	0x2d, 0xc5, 0x11, 0xb8, 0xbe, 0xc6, 0x52, 0xd3, 0x9f, 0xdd, 0x57, 0xec, 0x0b, 0x86, 0xae, 0xec,
-	0x2d, 0x4e, 0xd2, 0x47, 0x1d, 0x9d, 0x73, 0xee, 0xd1, 0xb9, 0x36, 0xc4, 0x1b, 0x2c, 0xcd, 0x9a,
-	0x67, 0x75, 0x83, 0x06, 0x75, 0x5a, 0x62, 0xa1, 0x72, 0x5e, 0x66, 0x42, 0x6e, 0x54, 0x2e, 0x13,
-	0x42, 0x03, 0xbf, 0x8f, 0x9e, 0xbf, 0x29, 0x10, 0x8b, 0x52, 0xa6, 0xbc, 0x56, 0x29, 0xaf, 0x2a,
-	0x34, 0xdc, 0x28, 0xac, 0xb4, 0x63, 0x9f, 0x5f, 0xf6, 0x1d, 0xb1, 0x96, 0xd5, 0xaa, 0xc4, 0xe7,
-	0xec, 0x6a, 0xe1, 0x08, 0xf1, 0x67, 0x38, 0xfd, 0xea, 0x0c, 0x7f, 0x60, 0x63, 0x96, 0x22, 0xf0,
-	0x61, 0xa0, 0x44, 0xe8, 0x45, 0xde, 0xfc, 0x84, 0x0d, 0x94, 0x08, 0x5e, 0xc3, 0x71, 0x8d, 0x8d,
-	0xc9, 0x94, 0x08, 0x07, 0x04, 0x8e, 0x6b, 0x22, 0xc6, 0x7f, 0x3c, 0x98, 0x6e, 0x49, 0xf7, 0x84,
-	0x1f, 0x61, 0x82, 0xab, 0x3a, 0xb3, 0x6c, 0x52, 0x4e, 0xaf, 0x5f, 0x25, 0xdb, 0xf3, 0xbb, 0x4b,
-	0x76, 0x8c, 0xab, 0x9a, 0x1c, 0x2e, 0xe0, 0xc4, 0x3d, 0xca, 0x0e, 0x3b, 0x22, 0xa3, 0x89, 0x03,
-	0x96, 0x22, 0x78, 0x07, 0x7e, 0x7b, 0x49, 0x71, 0x2a, 0x0c, 0x87, 0x91, 0x37, 0x3f, 0x65, 0x33,
-	0x87, 0x5a, 0x83, 0x6f, 0x68, 0x2d, 0x1a, 0x44, 0xe3, 0xa6, 0x8e, 0x22, 0x6f, 0x3e, 0x61, 0x13,
-	0x0b, 0x90, 0xff, 0x0d, 0xf8, 0xdd, 0xd0, 0x4c, 0x1b, 0x6e, 0x74, 0x38, 0xa6, 0x5c, 0x17, 0x07,
-	0x73, 0x39, 0x0a, 0x9b, 0xb5, 0xe9, 0x7e, 0xda, 0x53, 0x7c, 0x03, 0xb3, 0xad, 0x37, 0xeb, 0xe0,
-	0x0a, 0x46, 0xca, 0xc8, 0x47, 0x1d, 0x7a, 0xd1, 0x11, 0x39, 0xed, 0xec, 0x6c, 0x8b, 0xcc, 0x1c,
-	0x33, 0xfe, 0xed, 0xfd, 0xab, 0xfc, 0x8e, 0x48, 0x7b, 0xcd, 0x5d, 0xc2, 0x54, 0x70, 0xc3, 0x6b,
-	0x6e, 0xd6, 0x5d, 0xed, 0x43, 0x06, 0x1d, 0xb4, 0x14, 0xc1, 0x7b, 0x18, 0x0a, 0xa9, 0x73, 0xea,
-	0xe8, 0x50, 0xad, 0xf6, 0x92, 0x11, 0x25, 0x58, 0xc2, 0x99, 0x7e, 0x56, 0x26, 0x5f, 0x67, 0x2b,
-	0xc9, 0xcd, 0x53, 0x23, 0x35, 0xf5, 0x36, 0xbd, 0x8e, 0xf6, 0x54, 0x3b, 0x3c, 0xe6, 0x3b, 0xe0,
-	0xbe, 0x3d, 0xdb, 0x0d, 0x50, 0xb7, 0xff, 0x77, 0x34, 0xa2, 0xc8, 0x33, 0x8b, 0xde, 0xb5, 0x7b,
-	0x8a, 0xbf, 0x80, 0xdf, 0x7b, 0x9d, 0x0e, 0x16, 0xfd, 0x8e, 0xde, 0xbe, 0xd0, 0x91, 0xa3, 0xb7,
-	0x2d, 0xdd, 0x4a, 0x88, 0xb1, 0x29, 0x28, 0x63, 0x8e, 0x8d, 0x48, 0xdc, 0x77, 0xbc, 0x23, 0xbd,
-	0x3d, 0xfb, 0x7e, 0xdf, 0x53, 0xff, 0x4a, 0x0a, 0x65, 0xd6, 0x4f, 0x0f, 0x49, 0x8e, 0x8f, 0x69,
-	0xa7, 0x4d, 0x9d, 0xf6, 0x43, 0xfb, 0x0f, 0x6c, 0x3e, 0xa5, 0x05, 0xb6, 0xd8, 0xc3, 0x98, 0xc0,
-	0xc5, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x7f, 0xd8, 0xd6, 0x61, 0x7a, 0x03, 0x00, 0x00,
+func init() { file_voltha_protos_logical_device_proto_init() }
+func file_voltha_protos_logical_device_proto_init() {
+	if File_voltha_protos_logical_device_proto != nil {
+		return
+	}
+	type x struct{}
+	out := protoimpl.TypeBuilder{
+		File: protoimpl.DescBuilder{
+			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+			RawDescriptor: unsafe.Slice(unsafe.StringData(file_voltha_protos_logical_device_proto_rawDesc), len(file_voltha_protos_logical_device_proto_rawDesc)),
+			NumEnums:      0,
+			NumMessages:   5,
+			NumExtensions: 0,
+			NumServices:   0,
+		},
+		GoTypes:           file_voltha_protos_logical_device_proto_goTypes,
+		DependencyIndexes: file_voltha_protos_logical_device_proto_depIdxs,
+		MessageInfos:      file_voltha_protos_logical_device_proto_msgTypes,
+	}.Build()
+	File_voltha_protos_logical_device_proto = out.File
+	file_voltha_protos_logical_device_proto_goTypes = nil
+	file_voltha_protos_logical_device_proto_depIdxs = nil
 }
diff --git a/go/voltha/voltha.pb.go b/go/voltha/voltha.pb.go
index 9870cc4..9be170a 100644
--- a/go/voltha/voltha.pb.go
+++ b/go/voltha/voltha.pb.go
@@ -1,13 +1,17 @@
+//
+// Top-level Voltha API definition
+//
+// For details, see individual definition files.
+
 // Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// 	protoc-gen-go v1.36.11
+// 	protoc        v4.25.8
 // source: voltha_protos/voltha.proto
 
 package voltha
 
 import (
-	context "context"
-	fmt "fmt"
-	proto "github.com/golang/protobuf/proto"
-	empty "github.com/golang/protobuf/ptypes/empty"
 	common "github.com/opencord/voltha-protos/v5/go/common"
 	extension "github.com/opencord/voltha-protos/v5/go/extension"
 	health "github.com/opencord/voltha-protos/v5/go/health"
@@ -16,191 +20,179 @@
 	voip_system_profile "github.com/opencord/voltha-protos/v5/go/voip_system_profile"
 	voip_user_profile "github.com/opencord/voltha-protos/v5/go/voip_user_profile"
 	_ "google.golang.org/genproto/googleapis/api/annotations"
-	grpc "google.golang.org/grpc"
-	codes "google.golang.org/grpc/codes"
-	status "google.golang.org/grpc/status"
-	math "math"
+	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+	emptypb "google.golang.org/protobuf/types/known/emptypb"
+	reflect "reflect"
+	sync "sync"
+	unsafe "unsafe"
 )
 
-// Reference imports to suppress errors if they are not otherwise used.
-var _ = proto.Marshal
-var _ = fmt.Errorf
-var _ = math.Inf
+const (
+	// Verify that this generated code is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+	// Verify that runtime/protoimpl is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
 
-// 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
+// Symbols defined in public import of voltha_protos/common.proto.
 
-// Key from public import voltha_protos/common.proto
-type Key = common.Key
-
-// ID from public import voltha_protos/common.proto
-type ID = common.ID
-
-// IDs from public import voltha_protos/common.proto
-type IDs = common.IDs
-
-// Connection from public import voltha_protos/common.proto
-type Connection = common.Connection
-
-// AdminState from public import voltha_protos/common.proto
-type AdminState = common.AdminState
-
-// OperStatus from public import voltha_protos/common.proto
-type OperStatus = common.OperStatus
-
-// ConnectStatus from public import voltha_protos/common.proto
-type ConnectStatus = common.ConnectStatus
-
-// OperationResp from public import voltha_protos/common.proto
-type OperationResp = common.OperationResp
-
-// PortStatistics from public import voltha_protos/common.proto
-type PortStatistics = common.PortStatistics
-
-// TestModeKeys from public import voltha_protos/common.proto
 type TestModeKeys = common.TestModeKeys
 
+const TestModeKeys_api_test = common.TestModeKeys_api_test
+
 var TestModeKeys_name = common.TestModeKeys_name
 var TestModeKeys_value = common.TestModeKeys_value
 
-const TestModeKeys_api_test = TestModeKeys(common.TestModeKeys_api_test)
-
-// AdminState_Types from public import voltha_protos/common.proto
 type AdminState_Types = common.AdminState_Types
 
+const AdminState_UNKNOWN = common.AdminState_UNKNOWN
+const AdminState_PREPROVISIONED = common.AdminState_PREPROVISIONED
+const AdminState_ENABLED = common.AdminState_ENABLED
+const AdminState_DISABLED = common.AdminState_DISABLED
+const AdminState_DOWNLOADING_IMAGE = common.AdminState_DOWNLOADING_IMAGE
+
 var AdminState_Types_name = common.AdminState_Types_name
 var AdminState_Types_value = common.AdminState_Types_value
 
-const AdminState_UNKNOWN = AdminState_Types(common.AdminState_UNKNOWN)
-const AdminState_PREPROVISIONED = AdminState_Types(common.AdminState_PREPROVISIONED)
-const AdminState_ENABLED = AdminState_Types(common.AdminState_ENABLED)
-const AdminState_DISABLED = AdminState_Types(common.AdminState_DISABLED)
-const AdminState_DOWNLOADING_IMAGE = AdminState_Types(common.AdminState_DOWNLOADING_IMAGE)
-
-// OperStatus_Types from public import voltha_protos/common.proto
 type OperStatus_Types = common.OperStatus_Types
 
+const OperStatus_UNKNOWN = common.OperStatus_UNKNOWN
+const OperStatus_DISCOVERED = common.OperStatus_DISCOVERED
+const OperStatus_ACTIVATING = common.OperStatus_ACTIVATING
+const OperStatus_TESTING = common.OperStatus_TESTING
+const OperStatus_ACTIVE = common.OperStatus_ACTIVE
+const OperStatus_FAILED = common.OperStatus_FAILED
+const OperStatus_RECONCILING = common.OperStatus_RECONCILING
+const OperStatus_RECONCILING_FAILED = common.OperStatus_RECONCILING_FAILED
+const OperStatus_REBOOTED = common.OperStatus_REBOOTED
+
 var OperStatus_Types_name = common.OperStatus_Types_name
 var OperStatus_Types_value = common.OperStatus_Types_value
 
-const OperStatus_UNKNOWN = OperStatus_Types(common.OperStatus_UNKNOWN)
-const OperStatus_DISCOVERED = OperStatus_Types(common.OperStatus_DISCOVERED)
-const OperStatus_ACTIVATING = OperStatus_Types(common.OperStatus_ACTIVATING)
-const OperStatus_TESTING = OperStatus_Types(common.OperStatus_TESTING)
-const OperStatus_ACTIVE = OperStatus_Types(common.OperStatus_ACTIVE)
-const OperStatus_FAILED = OperStatus_Types(common.OperStatus_FAILED)
-const OperStatus_RECONCILING = OperStatus_Types(common.OperStatus_RECONCILING)
-const OperStatus_RECONCILING_FAILED = OperStatus_Types(common.OperStatus_RECONCILING_FAILED)
-const OperStatus_REBOOTED = OperStatus_Types(common.OperStatus_REBOOTED)
-
-// ConnectStatus_Types from public import voltha_protos/common.proto
 type ConnectStatus_Types = common.ConnectStatus_Types
 
+const ConnectStatus_UNKNOWN = common.ConnectStatus_UNKNOWN
+const ConnectStatus_UNREACHABLE = common.ConnectStatus_UNREACHABLE
+const ConnectStatus_REACHABLE = common.ConnectStatus_REACHABLE
+
 var ConnectStatus_Types_name = common.ConnectStatus_Types_name
 var ConnectStatus_Types_value = common.ConnectStatus_Types_value
 
-const ConnectStatus_UNKNOWN = ConnectStatus_Types(common.ConnectStatus_UNKNOWN)
-const ConnectStatus_UNREACHABLE = ConnectStatus_Types(common.ConnectStatus_UNREACHABLE)
-const ConnectStatus_REACHABLE = ConnectStatus_Types(common.ConnectStatus_REACHABLE)
-
-// OperationResp_OperationReturnCode from public import voltha_protos/common.proto
 type OperationResp_OperationReturnCode = common.OperationResp_OperationReturnCode
 
+const OperationResp_OPERATION_SUCCESS = common.OperationResp_OPERATION_SUCCESS
+const OperationResp_OPERATION_FAILURE = common.OperationResp_OPERATION_FAILURE
+const OperationResp_OPERATION_UNSUPPORTED = common.OperationResp_OPERATION_UNSUPPORTED
+const OperationResp_OPERATION_IN_PROGRESS = common.OperationResp_OPERATION_IN_PROGRESS
+
 var OperationResp_OperationReturnCode_name = common.OperationResp_OperationReturnCode_name
 var OperationResp_OperationReturnCode_value = common.OperationResp_OperationReturnCode_value
 
-const OperationResp_OPERATION_SUCCESS = OperationResp_OperationReturnCode(common.OperationResp_OPERATION_SUCCESS)
-const OperationResp_OPERATION_FAILURE = OperationResp_OperationReturnCode(common.OperationResp_OPERATION_FAILURE)
-const OperationResp_OPERATION_UNSUPPORTED = OperationResp_OperationReturnCode(common.OperationResp_OPERATION_UNSUPPORTED)
-const OperationResp_OPERATION_IN_PROGRESS = OperationResp_OperationReturnCode(common.OperationResp_OPERATION_IN_PROGRESS)
+type Key = common.Key
+type ID = common.ID
+type IDs = common.IDs
+type Connection = common.Connection
+type AdminState = common.AdminState
+type OperStatus = common.OperStatus
+type ConnectStatus = common.ConnectStatus
+type OperationResp = common.OperationResp
+type PortStatistics = common.PortStatistics
 
 // CoreInstance represents a core instance.  It is data held in memory when a core
 // is running.  This data is not persistent.
 type CoreInstance struct {
-	InstanceId           string               `protobuf:"bytes,1,opt,name=instance_id,json=instanceId,proto3" json:"instance_id,omitempty"`
-	Health               *health.HealthStatus `protobuf:"bytes,2,opt,name=health,proto3" json:"health,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
-	XXX_unrecognized     []byte               `json:"-"`
-	XXX_sizecache        int32                `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	InstanceId    string                 `protobuf:"bytes,1,opt,name=instance_id,json=instanceId,proto3" json:"instance_id,omitempty"`
+	Health        *health.HealthStatus   `protobuf:"bytes,2,opt,name=health,proto3" json:"health,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *CoreInstance) Reset()         { *m = CoreInstance{} }
-func (m *CoreInstance) String() string { return proto.CompactTextString(m) }
-func (*CoreInstance) ProtoMessage()    {}
+func (x *CoreInstance) Reset() {
+	*x = CoreInstance{}
+	mi := &file_voltha_protos_voltha_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *CoreInstance) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CoreInstance) ProtoMessage() {}
+
+func (x *CoreInstance) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_voltha_proto_msgTypes[0]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use CoreInstance.ProtoReflect.Descriptor instead.
 func (*CoreInstance) Descriptor() ([]byte, []int) {
-	return fileDescriptor_e084f1a60ce7016c, []int{0}
+	return file_voltha_protos_voltha_proto_rawDescGZIP(), []int{0}
 }
 
-func (m *CoreInstance) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_CoreInstance.Unmarshal(m, b)
-}
-func (m *CoreInstance) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_CoreInstance.Marshal(b, m, deterministic)
-}
-func (m *CoreInstance) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_CoreInstance.Merge(m, src)
-}
-func (m *CoreInstance) XXX_Size() int {
-	return xxx_messageInfo_CoreInstance.Size(m)
-}
-func (m *CoreInstance) XXX_DiscardUnknown() {
-	xxx_messageInfo_CoreInstance.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_CoreInstance proto.InternalMessageInfo
-
-func (m *CoreInstance) GetInstanceId() string {
-	if m != nil {
-		return m.InstanceId
+func (x *CoreInstance) GetInstanceId() string {
+	if x != nil {
+		return x.InstanceId
 	}
 	return ""
 }
 
-func (m *CoreInstance) GetHealth() *health.HealthStatus {
-	if m != nil {
-		return m.Health
+func (x *CoreInstance) GetHealth() *health.HealthStatus {
+	if x != nil {
+		return x.Health
 	}
 	return nil
 }
 
 type CoreInstances struct {
-	Items                []*CoreInstance `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
-	XXX_unrecognized     []byte          `json:"-"`
-	XXX_sizecache        int32           `json:"-"`
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Items         []*CoreInstance        `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
-func (m *CoreInstances) Reset()         { *m = CoreInstances{} }
-func (m *CoreInstances) String() string { return proto.CompactTextString(m) }
-func (*CoreInstances) ProtoMessage()    {}
+func (x *CoreInstances) Reset() {
+	*x = CoreInstances{}
+	mi := &file_voltha_protos_voltha_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *CoreInstances) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CoreInstances) ProtoMessage() {}
+
+func (x *CoreInstances) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_voltha_proto_msgTypes[1]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use CoreInstances.ProtoReflect.Descriptor instead.
 func (*CoreInstances) Descriptor() ([]byte, []int) {
-	return fileDescriptor_e084f1a60ce7016c, []int{1}
+	return file_voltha_protos_voltha_proto_rawDescGZIP(), []int{1}
 }
 
-func (m *CoreInstances) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_CoreInstances.Unmarshal(m, b)
-}
-func (m *CoreInstances) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_CoreInstances.Marshal(b, m, deterministic)
-}
-func (m *CoreInstances) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_CoreInstances.Merge(m, src)
-}
-func (m *CoreInstances) XXX_Size() int {
-	return xxx_messageInfo_CoreInstances.Size(m)
-}
-func (m *CoreInstances) XXX_DiscardUnknown() {
-	xxx_messageInfo_CoreInstances.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_CoreInstances proto.InternalMessageInfo
-
-func (m *CoreInstances) GetItems() []*CoreInstance {
-	if m != nil {
-		return m.Items
+func (x *CoreInstances) GetItems() []*CoreInstance {
+	if x != nil {
+		return x.Items
 	}
 	return nil
 }
@@ -209,3230 +201,484 @@
 // the entire cluster. However, some items (e.g. adapters) will be held by all cores
 // for better performance
 type Voltha struct {
-	Version              string                  `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
-	Adapters             []*Adapter              `protobuf:"bytes,2,rep,name=adapters,proto3" json:"adapters,omitempty"`
-	LogicalDevices       []*LogicalDevice        `protobuf:"bytes,3,rep,name=logical_devices,json=logicalDevices,proto3" json:"logical_devices,omitempty"`
-	Devices              []*Device               `protobuf:"bytes,4,rep,name=devices,proto3" json:"devices,omitempty"`
-	DeviceTypes          []*DeviceType           `protobuf:"bytes,5,rep,name=device_types,json=deviceTypes,proto3" json:"device_types,omitempty"`
-	EventFilters         []*EventFilter          `protobuf:"bytes,7,rep,name=event_filters,json=eventFilters,proto3" json:"event_filters,omitempty"`
-	OmciMibDatabase      []*omci.MibDeviceData   `protobuf:"bytes,28,rep,name=omci_mib_database,json=omciMibDatabase,proto3" json:"omci_mib_database,omitempty"`
-	OmciAlarmDatabase    []*omci.AlarmDeviceData `protobuf:"bytes,29,rep,name=omci_alarm_database,json=omciAlarmDatabase,proto3" json:"omci_alarm_database,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
-	XXX_unrecognized     []byte                  `json:"-"`
-	XXX_sizecache        int32                   `json:"-"`
+	state             protoimpl.MessageState  `protogen:"open.v1"`
+	Version           string                  `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
+	Adapters          []*Adapter              `protobuf:"bytes,2,rep,name=adapters,proto3" json:"adapters,omitempty"`
+	LogicalDevices    []*LogicalDevice        `protobuf:"bytes,3,rep,name=logical_devices,json=logicalDevices,proto3" json:"logical_devices,omitempty"`
+	Devices           []*Device               `protobuf:"bytes,4,rep,name=devices,proto3" json:"devices,omitempty"`
+	DeviceTypes       []*DeviceType           `protobuf:"bytes,5,rep,name=device_types,json=deviceTypes,proto3" json:"device_types,omitempty"`
+	EventFilters      []*EventFilter          `protobuf:"bytes,7,rep,name=event_filters,json=eventFilters,proto3" json:"event_filters,omitempty"`
+	OmciMibDatabase   []*omci.MibDeviceData   `protobuf:"bytes,28,rep,name=omci_mib_database,json=omciMibDatabase,proto3" json:"omci_mib_database,omitempty"`
+	OmciAlarmDatabase []*omci.AlarmDeviceData `protobuf:"bytes,29,rep,name=omci_alarm_database,json=omciAlarmDatabase,proto3" json:"omci_alarm_database,omitempty"`
+	unknownFields     protoimpl.UnknownFields
+	sizeCache         protoimpl.SizeCache
 }
 
-func (m *Voltha) Reset()         { *m = Voltha{} }
-func (m *Voltha) String() string { return proto.CompactTextString(m) }
-func (*Voltha) ProtoMessage()    {}
+func (x *Voltha) Reset() {
+	*x = Voltha{}
+	mi := &file_voltha_protos_voltha_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
+}
+
+func (x *Voltha) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Voltha) ProtoMessage() {}
+
+func (x *Voltha) ProtoReflect() protoreflect.Message {
+	mi := &file_voltha_protos_voltha_proto_msgTypes[2]
+	if x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use Voltha.ProtoReflect.Descriptor instead.
 func (*Voltha) Descriptor() ([]byte, []int) {
-	return fileDescriptor_e084f1a60ce7016c, []int{2}
+	return file_voltha_protos_voltha_proto_rawDescGZIP(), []int{2}
 }
 
-func (m *Voltha) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_Voltha.Unmarshal(m, b)
-}
-func (m *Voltha) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_Voltha.Marshal(b, m, deterministic)
-}
-func (m *Voltha) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Voltha.Merge(m, src)
-}
-func (m *Voltha) XXX_Size() int {
-	return xxx_messageInfo_Voltha.Size(m)
-}
-func (m *Voltha) XXX_DiscardUnknown() {
-	xxx_messageInfo_Voltha.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_Voltha proto.InternalMessageInfo
-
-func (m *Voltha) GetVersion() string {
-	if m != nil {
-		return m.Version
+func (x *Voltha) GetVersion() string {
+	if x != nil {
+		return x.Version
 	}
 	return ""
 }
 
-func (m *Voltha) GetAdapters() []*Adapter {
-	if m != nil {
-		return m.Adapters
+func (x *Voltha) GetAdapters() []*Adapter {
+	if x != nil {
+		return x.Adapters
 	}
 	return nil
 }
 
-func (m *Voltha) GetLogicalDevices() []*LogicalDevice {
-	if m != nil {
-		return m.LogicalDevices
+func (x *Voltha) GetLogicalDevices() []*LogicalDevice {
+	if x != nil {
+		return x.LogicalDevices
 	}
 	return nil
 }
 
-func (m *Voltha) GetDevices() []*Device {
-	if m != nil {
-		return m.Devices
+func (x *Voltha) GetDevices() []*Device {
+	if x != nil {
+		return x.Devices
 	}
 	return nil
 }
 
-func (m *Voltha) GetDeviceTypes() []*DeviceType {
-	if m != nil {
-		return m.DeviceTypes
+func (x *Voltha) GetDeviceTypes() []*DeviceType {
+	if x != nil {
+		return x.DeviceTypes
 	}
 	return nil
 }
 
-func (m *Voltha) GetEventFilters() []*EventFilter {
-	if m != nil {
-		return m.EventFilters
+func (x *Voltha) GetEventFilters() []*EventFilter {
+	if x != nil {
+		return x.EventFilters
 	}
 	return nil
 }
 
-func (m *Voltha) GetOmciMibDatabase() []*omci.MibDeviceData {
-	if m != nil {
-		return m.OmciMibDatabase
+func (x *Voltha) GetOmciMibDatabase() []*omci.MibDeviceData {
+	if x != nil {
+		return x.OmciMibDatabase
 	}
 	return nil
 }
 
-func (m *Voltha) GetOmciAlarmDatabase() []*omci.AlarmDeviceData {
-	if m != nil {
-		return m.OmciAlarmDatabase
+func (x *Voltha) GetOmciAlarmDatabase() []*omci.AlarmDeviceData {
+	if x != nil {
+		return x.OmciAlarmDatabase
 	}
 	return nil
 }
 
-func init() {
-	proto.RegisterType((*CoreInstance)(nil), "voltha.CoreInstance")
-	proto.RegisterType((*CoreInstances)(nil), "voltha.CoreInstances")
-	proto.RegisterType((*Voltha)(nil), "voltha.Voltha")
-}
+var File_voltha_protos_voltha_proto protoreflect.FileDescriptor
 
-func init() { proto.RegisterFile("voltha_protos/voltha.proto", fileDescriptor_e084f1a60ce7016c) }
+const file_voltha_protos_voltha_proto_rawDesc = "" +
+	"\n" +
+	"\x1avoltha_protos/voltha.proto\x12\x06voltha\x1a\x1cgoogle/api/annotations.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1avoltha_protos/common.proto\x1a\x1avoltha_protos/health.proto\x1a\"voltha_protos/logical_device.proto\x1a\x1avoltha_protos/device.proto\x1a\x1bvoltha_protos/adapter.proto\x1a\x1fvoltha_protos/openflow_13.proto\x1a\x1avoltha_protos/events.proto\x1a\x1evoltha_protos/extensions.proto\x1a'voltha_protos/voip_system_profile.proto\x1a%voltha_protos/voip_user_profile.proto\x1a\x1fvoltha_protos/omci_mib_db.proto\x1a!voltha_protos/omci_alarm_db.proto\x1a\x1dvoltha_protos/omci_test.proto\"]\n" +
+	"\fCoreInstance\x12\x1f\n" +
+	"\vinstance_id\x18\x01 \x01(\tR\n" +
+	"instanceId\x12,\n" +
+	"\x06health\x18\x02 \x01(\v2\x14.health.HealthStatusR\x06health\";\n" +
+	"\rCoreInstances\x12*\n" +
+	"\x05items\x18\x01 \x03(\v2\x14.voltha.CoreInstanceR\x05items\"\xc0\x03\n" +
+	"\x06Voltha\x12\x18\n" +
+	"\aversion\x18\x01 \x01(\tR\aversion\x12,\n" +
+	"\badapters\x18\x02 \x03(\v2\x10.adapter.AdapterR\badapters\x12F\n" +
+	"\x0flogical_devices\x18\x03 \x03(\v2\x1d.logical_device.LogicalDeviceR\x0elogicalDevices\x12(\n" +
+	"\adevices\x18\x04 \x03(\v2\x0e.device.DeviceR\adevices\x125\n" +
+	"\fdevice_types\x18\x05 \x03(\v2\x12.device.DeviceTypeR\vdeviceTypes\x127\n" +
+	"\revent_filters\x18\a \x03(\v2\x12.event.EventFilterR\feventFilters\x12?\n" +
+	"\x11omci_mib_database\x18\x1c \x03(\v2\x13.omci.MibDeviceDataR\x0fomciMibDatabase\x12E\n" +
+	"\x13omci_alarm_database\x18\x1d \x03(\v2\x15.omci.AlarmDeviceDataR\x11omciAlarmDatabaseJ\x04\b\x06\x10\a2\xbb;\n" +
+	"\rVolthaService\x12D\n" +
+	"\tGetVoltha\x12\x16.google.protobuf.Empty\x1a\x0e.voltha.Voltha\"\x0f\x82\xd3\xe4\x93\x02\t\x12\a/api/v1\x12]\n" +
+	"\x11ListCoreInstances\x12\x16.google.protobuf.Empty\x1a\x15.voltha.CoreInstances\"\x19\x82\xd3\xe4\x93\x02\x13\x12\x11/api/v1/instances\x12S\n" +
+	"\x0fGetCoreInstance\x12\n" +
+	".common.ID\x1a\x14.voltha.CoreInstance\"\x1e\x82\xd3\xe4\x93\x02\x18\x12\x16/api/v1/instances/{id}\x12S\n" +
+	"\fListAdapters\x12\x16.google.protobuf.Empty\x1a\x11.adapter.Adapters\"\x18\x82\xd3\xe4\x93\x02\x12\x12\x10/api/v1/adapters\x12m\n" +
+	"\x12ListLogicalDevices\x12\x16.google.protobuf.Empty\x1a\x1e.logical_device.LogicalDevices\"\x1f\x82\xd3\xe4\x93\x02\x19\x12\x17/api/v1/logical_devices\x12c\n" +
+	"\x10GetLogicalDevice\x12\n" +
+	".common.ID\x1a\x1d.logical_device.LogicalDevice\"$\x82\xd3\xe4\x93\x02\x1e\x12\x1c/api/v1/logical_devices/{id}\x12n\n" +
+	"\x16ListLogicalDevicePorts\x12\n" +
+	".common.ID\x1a\x1c.logical_device.LogicalPorts\"*\x82\xd3\xe4\x93\x02$\x12\"/api/v1/logical_devices/{id}/ports\x12\x88\x01\n" +
+	"\x14GetLogicalDevicePort\x12\x1d.logical_device.LogicalPortId\x1a\x1b.logical_device.LogicalPort\"4\x82\xd3\xe4\x93\x02.\x12,/api/v1/logical_devices/{id}/ports/{port_id}\x12\x8d\x01\n" +
+	"\x17EnableLogicalDevicePort\x12\x1d.logical_device.LogicalPortId\x1a\x16.google.protobuf.Empty\";\x82\xd3\xe4\x93\x025\"3/api/v1/logical_devices/{id}/ports/{port_id}/enable\x12\x8f\x01\n" +
+	"\x18DisableLogicalDevicePort\x12\x1d.logical_device.LogicalPortId\x1a\x16.google.protobuf.Empty\"<\x82\xd3\xe4\x93\x026\"4/api/v1/logical_devices/{id}/ports/{port_id}/disable\x12d\n" +
+	"\x16ListLogicalDeviceFlows\x12\n" +
+	".common.ID\x1a\x12.openflow_13.Flows\"*\x82\xd3\xe4\x93\x02$\x12\"/api/v1/logical_devices/{id}/flows\x12\x83\x01\n" +
+	"\x1cUpdateLogicalDeviceFlowTable\x12\x1c.openflow_13.FlowTableUpdate\x1a\x16.google.protobuf.Empty\"-\x82\xd3\xe4\x93\x02':\x01*\"\"/api/v1/logical_devices/{id}/flows\x12\x84\x01\n" +
+	"\x1dUpdateLogicalDeviceMeterTable\x12\x1b.openflow_13.MeterModUpdate\x1a\x16.google.protobuf.Empty\".\x82\xd3\xe4\x93\x02(:\x01*\"#/api/v1/logical_devices/{id}/meters\x12g\n" +
+	"\x17ListLogicalDeviceMeters\x12\n" +
+	".common.ID\x1a\x13.openflow_13.Meters\"+\x82\xd3\xe4\x93\x02%\x12#/api/v1/logical_devices/{id}/meters\x12t\n" +
+	"\x1bListLogicalDeviceFlowGroups\x12\n" +
+	".common.ID\x1a\x17.openflow_13.FlowGroups\"0\x82\xd3\xe4\x93\x02*\x12(/api/v1/logical_devices/{id}/flow_groups\x12\x93\x01\n" +
+	"!UpdateLogicalDeviceFlowGroupTable\x12!.openflow_13.FlowGroupTableUpdate\x1a\x16.google.protobuf.Empty\"3\x82\xd3\xe4\x93\x02-:\x01*\"(/api/v1/logical_devices/{id}/flow_groups\x12O\n" +
+	"\vListDevices\x12\x16.google.protobuf.Empty\x1a\x0f.device.Devices\"\x17\x82\xd3\xe4\x93\x02\x11\x12\x0f/api/v1/devices\x12O\n" +
+	"\rListDeviceIds\x12\x16.google.protobuf.Empty\x1a\v.common.IDs\"\x19\x82\xd3\xe4\x93\x02\x13\x12\x11/api/v1/deviceids\x12U\n" +
+	"\x10ReconcileDevices\x12\v.common.IDs\x1a\x16.google.protobuf.Empty\"\x1c\x82\xd3\xe4\x93\x02\x16:\x01*\"\x11/api/v1/deviceids\x12E\n" +
+	"\tGetDevice\x12\n" +
+	".common.ID\x1a\x0e.device.Device\"\x1c\x82\xd3\xe4\x93\x02\x16\x12\x14/api/v1/devices/{id}\x12J\n" +
+	"\fCreateDevice\x12\x0e.device.Device\x1a\x0e.device.Device\"\x1a\x82\xd3\xe4\x93\x02\x14:\x01*\"\x0f/api/v1/devices\x12W\n" +
+	"\fEnableDevice\x12\n" +
+	".common.ID\x1a\x16.google.protobuf.Empty\"#\x82\xd3\xe4\x93\x02\x1d\"\x1b/api/v1/devices/{id}/enable\x12Y\n" +
+	"\rDisableDevice\x12\n" +
+	".common.ID\x1a\x16.google.protobuf.Empty\"$\x82\xd3\xe4\x93\x02\x1e\"\x1c/api/v1/devices/{id}/disable\x12W\n" +
+	"\fRebootDevice\x12\n" +
+	".common.ID\x1a\x16.google.protobuf.Empty\"#\x82\xd3\xe4\x93\x02\x1d\"\x1b/api/v1/devices/{id}/reboot\x12W\n" +
+	"\fDeleteDevice\x12\n" +
+	".common.ID\x1a\x16.google.protobuf.Empty\"#\x82\xd3\xe4\x93\x02\x1d*\x1b/api/v1/devices/{id}/delete\x12b\n" +
+	"\x11ForceDeleteDevice\x12\n" +
+	".common.ID\x1a\x16.google.protobuf.Empty\")\x82\xd3\xe4\x93\x02#*!/api/v1/devices/{id}/force_delete\x12x\n" +
+	"\rDownloadImage\x12\x15.device.ImageDownload\x1a\x15.common.OperationResp\"9\x82\xd3\xe4\x93\x020:\x01*\"+/api/v1/devices/{id}/image_downloads/{name}\x88\x02\x01\x12\x85\x01\n" +
+	"\x16GetImageDownloadStatus\x12\x15.device.ImageDownload\x1a\x15.device.ImageDownload\"=\x82\xd3\xe4\x93\x024\x122/api/v1/devices/{id}/image_downloads/{name}/status\x88\x02\x01\x12x\n" +
+	"\x10GetImageDownload\x12\x15.device.ImageDownload\x1a\x15.device.ImageDownload\"6\x82\xd3\xe4\x93\x02-\x12+/api/v1/devices/{id}/image_downloads/{name}\x88\x02\x01\x12i\n" +
+	"\x12ListImageDownloads\x12\n" +
+	".common.ID\x1a\x16.device.ImageDownloads\"/\x82\xd3\xe4\x93\x02&\x12$/api/v1/devices/{id}/image_downloads\x88\x02\x01\x12{\n" +
+	"\x13CancelImageDownload\x12\x15.device.ImageDownload\x1a\x15.common.OperationResp\"6\x82\xd3\xe4\x93\x02-*+/api/v1/devices/{id}/image_downloads/{name}\x88\x02\x01\x12\x8b\x01\n" +
+	"\x13ActivateImageUpdate\x12\x15.device.ImageDownload\x1a\x15.common.OperationResp\"F\x82\xd3\xe4\x93\x02=:\x01*\"8/api/v1/devices/{id}/image_downloads/{name}/image_update\x88\x02\x01\x12\x89\x01\n" +
+	"\x11RevertImageUpdate\x12\x15.device.ImageDownload\x1a\x15.common.OperationResp\"F\x82\xd3\xe4\x93\x02=:\x01*\"8/api/v1/devices/{id}/image_downloads/{name}/image_revert\x88\x02\x01\x12\x88\x01\n" +
+	"\x15DownloadImageToDevice\x12\".device.DeviceImageDownloadRequest\x1a\x1b.device.DeviceImageResponse\".\x82\xd3\xe4\x93\x02(\x12&/api/v1/devices/images/download_images\x12w\n" +
+	"\x0eGetImageStatus\x12\x1a.device.DeviceImageRequest\x1a\x1b.device.DeviceImageResponse\",\x82\xd3\xe4\x93\x02&\x12$/api/v1/devices/images/images_status\x12\x89\x01\n" +
+	"\x19AbortImageUpgradeToDevice\x12\x1a.device.DeviceImageRequest\x1a\x1b.device.DeviceImageResponse\"3\x82\xd3\xe4\x93\x02-\x12+/api/v1/devices/images/abort_upgrade_images\x12V\n" +
+	"\fGetOnuImages\x12\n" +
+	".common.ID\x1a\x11.device.OnuImages\"'\x82\xd3\xe4\x93\x02!\x12\x1f/api/v1/devices/{id}/onu_images\x12{\n" +
+	"\rActivateImage\x12\x1a.device.DeviceImageRequest\x1a\x1b.device.DeviceImageResponse\"1\x82\xd3\xe4\x93\x02+:\x01*\"&/api/v1/devices/images/activate_images\x12w\n" +
+	"\vCommitImage\x12\x1a.device.DeviceImageRequest\x1a\x1b.device.DeviceImageResponse\"/\x82\xd3\xe4\x93\x02):\x01*\"$/api/v1/devices/images/commit_images\x12P\n" +
+	"\x0fListDevicePorts\x12\n" +
+	".common.ID\x1a\r.device.Ports\"\"\x82\xd3\xe4\x93\x02\x1c\x12\x1a/api/v1/devices/{id}/ports\x12]\n" +
+	"\x13ListDevicePmConfigs\x12\n" +
+	".common.ID\x1a\x11.device.PmConfigs\"'\x82\xd3\xe4\x93\x02!\x12\x1f/api/v1/devices/{id}/pm_configs\x12n\n" +
+	"\x15UpdateDevicePmConfigs\x12\x11.device.PmConfigs\x1a\x16.google.protobuf.Empty\"*\x82\xd3\xe4\x93\x02$:\x01*\"\x1f/api/v1/devices/{id}/pm_configs\x12U\n" +
+	"\x0fListDeviceFlows\x12\n" +
+	".common.ID\x1a\x12.openflow_13.Flows\"\"\x82\xd3\xe4\x93\x02\x1c\x12\x1a/api/v1/devices/{id}/flows\x12e\n" +
+	"\x14ListDeviceFlowGroups\x12\n" +
+	".common.ID\x1a\x17.openflow_13.FlowGroups\"(\x82\xd3\xe4\x93\x02\"\x12 /api/v1/devices/{id}/flow_groups\x12\\\n" +
+	"\x0fListDeviceTypes\x12\x16.google.protobuf.Empty\x1a\x13.device.DeviceTypes\"\x1c\x82\xd3\xe4\x93\x02\x16\x12\x14/api/v1/device_types\x12R\n" +
+	"\rGetDeviceType\x12\n" +
+	".common.ID\x1a\x12.device.DeviceType\"!\x82\xd3\xe4\x93\x02\x1b\x12\x19/api/v1/device_types/{id}\x12F\n" +
+	"\x10StreamPacketsOut\x12\x16.openflow_13.PacketOut\x1a\x16.google.protobuf.Empty\"\x00(\x01\x12E\n" +
+	"\x10ReceivePacketsIn\x12\x16.google.protobuf.Empty\x1a\x15.openflow_13.PacketIn\"\x000\x01\x12K\n" +
+	"\x13ReceiveChangeEvents\x12\x16.google.protobuf.Empty\x1a\x18.openflow_13.ChangeEvent\"\x000\x01\x12]\n" +
+	"\x11CreateEventFilter\x12\x12.event.EventFilter\x1a\x12.event.EventFilter\" \x82\xd3\xe4\x93\x02\x1a:\x01*\"\x15/api/v1/event_filters\x12U\n" +
+	"\x0eGetEventFilter\x12\n" +
+	".common.ID\x1a\x13.event.EventFilters\"\"\x82\xd3\xe4\x93\x02\x1c\x12\x1a/api/v1/event_filters/{id}\x12b\n" +
+	"\x11UpdateEventFilter\x12\x12.event.EventFilter\x1a\x12.event.EventFilter\"%\x82\xd3\xe4\x93\x02\x1f:\x01*\x1a\x1a/api/v1/event_filters/{id}\x12c\n" +
+	"\x11DeleteEventFilter\x12\x12.event.EventFilter\x1a\x16.google.protobuf.Empty\"\"\x82\xd3\xe4\x93\x02\x1c*\x1a/api/v1/event_filters/{id}\x12^\n" +
+	"\x10ListEventFilters\x12\x16.google.protobuf.Empty\x1a\x13.event.EventFilters\"\x1d\x82\xd3\xe4\x93\x02\x17\x12\x15/api/v1/event_filters\x12L\n" +
+	"\tGetImages\x12\n" +
+	".common.ID\x1a\x0e.device.Images\"#\x82\xd3\xe4\x93\x02\x1d\x12\x1b/api/v1/devices/{id}/images\x12X\n" +
+	"\bSelfTest\x12\n" +
+	".common.ID\x1a\x18.device.SelfTestResponse\"&\x82\xd3\xe4\x93\x02 \"\x1e/api/v1/devices/{id}/self_test\x12V\n" +
+	"\x10GetMibDeviceData\x12\n" +
+	".common.ID\x1a\x13.omci.MibDeviceData\"!\x82\xd3\xe4\x93\x02\x1b\x12\x19/api/v1/openomci/{id}/mib\x12\\\n" +
+	"\x12GetAlarmDeviceData\x12\n" +
+	".common.ID\x1a\x15.omci.AlarmDeviceData\"#\x82\xd3\xe4\x93\x02\x1d\x12\x1b/api/v1/openomci/{id}/alarm\x12s\n" +
+	"\rSimulateAlarm\x12\x1c.device.SimulateAlarmRequest\x1a\x15.common.OperationResp\"-\x82\xd3\xe4\x93\x02':\x01*\"\"/api/v1/devices/{id}/simulate_larm\x12M\n" +
+	"\n" +
+	"EnablePort\x12\f.device.Port\x1a\x16.google.protobuf.Empty\"\x19\x82\xd3\xe4\x93\x02\x13:\x01*\"\x0e/v1/EnablePort\x12O\n" +
+	"\vDisablePort\x12\f.device.Port\x1a\x16.google.protobuf.Empty\"\x1a\x82\xd3\xe4\x93\x02\x14:\x01*\"\x0f/v1/DisablePort\x12^\n" +
+	"\vGetExtValue\x12\x19.extension.ValueSpecifier\x1a\x17.extension.ReturnValues\"\x1b\x82\xd3\xe4\x93\x02\x15\x12\x13/api/v1/GetExtValue\x12W\n" +
+	"\vSetExtValue\x12\x13.extension.ValueSet\x1a\x16.google.protobuf.Empty\"\x1b\x82\xd3\xe4\x93\x02\x15\x12\x13/api/v1/SetExtValue\x12d\n" +
+	"\x13StartOmciTestAction\x12\x15.omci.OmciTestRequest\x1a\x12.omci.TestResponse\"\"\x82\xd3\xe4\x93\x02\x1c:\x01*\"\x17/api/v1/start_omci_test\x12\x85\x01\n" +
+	"\x14PutVoipSystemProfile\x12-.voip_system_profile.VoipSystemProfileRequest\x1a\x16.google.protobuf.Empty\"&\x82\xd3\xe4\x93\x02 :\x01*\"\x1b/api/v1/voip_system_profile\x12p\n" +
+	"\x17DeleteVoipSystemProfile\x12\v.common.Key\x1a\x16.google.protobuf.Empty\"0\x82\xd3\xe4\x93\x02**(/api/v1/voip_system_profile/{key}/delete\x12}\n" +
+	"\x12PutVoipUserProfile\x12).voip_user_profile.VoipUserProfileRequest\x1a\x16.google.protobuf.Empty\"$\x82\xd3\xe4\x93\x02\x1e:\x01*\"\x19/api/v1/voip_user_profile\x12l\n" +
+	"\x15DeleteVoipUserProfile\x12\v.common.Key\x1a\x16.google.protobuf.Empty\".\x82\xd3\xe4\x93\x02(*&/api/v1/voip_user_profile/{key}/delete\x12Z\n" +
+	"\x10DisableOnuDevice\x12\n" +
+	".common.ID\x1a\x16.google.protobuf.Empty\"\"\x82\xd3\xe4\x93\x02\x1c\"\x1a/api/v1/disable_onu_device\x12X\n" +
+	"\x0fEnableOnuDevice\x12\n" +
+	".common.ID\x1a\x16.google.protobuf.Empty\"!\x82\xd3\xe4\x93\x02\x1b\"\x19/api/v1/enable_onu_device\x12|\n" +
+	"\x16DisableOnuSerialNumber\x12\x1f.device.OnuSerialNumberOnOLTPon\x1a\x16.google.protobuf.Empty\")\x82\xd3\xe4\x93\x02#\"!/api/v1/disable_onu_serial_number\x12z\n" +
+	"\x15EnableOnuSerialNumber\x12\x1f.device.OnuSerialNumberOnOLTPon\x1a\x16.google.protobuf.Empty\"(\x82\xd3\xe4\x93\x02\"\" /api/v1/enable_onu_serial_number\x12[\n" +
+	"\fUpdateDevice\x12\x14.device.UpdateDevice\x1a\x16.google.protobuf.Empty\"\x1d\x82\xd3\xe4\x93\x02\x17\"\x15/api/v1/update_deviceBl\n" +
+	"\x13org.opencord.volthaB\fVolthaProtosZ.github.com/opencord/voltha-protos/v5/go/voltha\xaa\x02\x16Opencord.Voltha.VolthaP\x02b\x06proto3"
 
-var fileDescriptor_e084f1a60ce7016c = []byte{
-	// 2389 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0xeb, 0x72, 0x1b, 0xb7,
-	0x15, 0x0e, 0xe5, 0xc4, 0x17, 0x88, 0xba, 0x10, 0xd4, 0x85, 0xa2, 0x24, 0x4b, 0x82, 0x6f, 0x32,
-	0x6d, 0x93, 0xbe, 0xa6, 0x6d, 0xdc, 0x4c, 0xc7, 0xd1, 0xad, 0x4a, 0xec, 0x52, 0x43, 0xda, 0x72,
-	0x9a, 0xc6, 0xd9, 0x59, 0x92, 0x10, 0xbd, 0x93, 0xe5, 0x2e, 0xbb, 0x00, 0x25, 0xab, 0xaa, 0xff,
-	0xb4, 0xcd, 0x8c, 0x3b, 0x9d, 0x4e, 0x7f, 0xe4, 0x2d, 0xfa, 0x0a, 0xfd, 0xd3, 0x77, 0xe8, 0x2b,
-	0xf4, 0x41, 0x3a, 0x38, 0x00, 0xc8, 0xbd, 0x60, 0x29, 0xd1, 0xf5, 0x4c, 0xfe, 0x98, 0x5e, 0x9c,
-	0x83, 0xef, 0xfb, 0x70, 0x70, 0x80, 0x05, 0xce, 0x0a, 0x15, 0x0f, 0x7d, 0x97, 0xbf, 0xb6, 0xad,
-	0x6e, 0xe0, 0x73, 0x9f, 0x55, 0xe4, 0x53, 0x19, 0x9e, 0xf0, 0x79, 0xf9, 0x54, 0x5c, 0x6a, 0xfb,
-	0x7e, 0xdb, 0xa5, 0x15, 0xbb, 0xeb, 0x54, 0x6c, 0xcf, 0xf3, 0xb9, 0xcd, 0x1d, 0xdf, 0x63, 0xd2,
-	0xab, 0xb8, 0xa8, 0xac, 0xf0, 0xd4, 0xe8, 0x1d, 0x54, 0x68, 0xa7, 0xcb, 0x8f, 0x95, 0x31, 0x06,
-	0xdf, 0xf4, 0x3b, 0x1d, 0xdf, 0x33, 0xdb, 0x5e, 0x53, 0xdb, 0xe5, 0xaf, 0x95, 0x8d, 0x44, 0x6d,
-	0xae, 0xdf, 0x76, 0x9a, 0xb6, 0x6b, 0xb5, 0xe8, 0xa1, 0xd3, 0xa4, 0xe6, 0xfe, 0x11, 0xdb, 0x62,
-	0xd4, 0x66, 0xb7, 0xec, 0x2e, 0xa7, 0x81, 0x32, 0xae, 0x44, 0x8d, 0x7e, 0x97, 0x7a, 0x07, 0xae,
-	0x7f, 0x64, 0xdd, 0x7b, 0x60, 0x46, 0xa6, 0x87, 0xd4, 0xe3, 0x7a, 0xb8, 0x97, 0x63, 0xb6, 0x37,
-	0x9c, 0x7a, 0x2c, 0x14, 0x8e, 0x1b, 0xf1, 0x80, 0x3a, 0x5d, 0x8b, 0x1d, 0x33, 0x4e, 0x3b, 0xa2,
-	0xe9, 0xc0, 0x71, 0xb5, 0xc4, 0x6b, 0x06, 0xc7, 0x1e, 0xa3, 0x41, 0xcc, 0x2d, 0x2e, 0xb6, 0xd3,
-	0x74, 0xac, 0x8e, 0xd3, 0xb0, 0x5a, 0x0d, 0xe5, 0xb0, 0x66, 0x70, 0xb0, 0x5d, 0x3b, 0xe8, 0x0c,
-	0x5c, 0x96, 0x0d, 0x2e, 0x9c, 0x32, 0x2e, 0xcd, 0xe4, 0x15, 0xca, 0x6e, 0xf8, 0x01, 0xdd, 0xf5,
-	0x18, 0xb7, 0xbd, 0x26, 0xc5, 0x2b, 0x68, 0xdc, 0x51, 0xff, 0xb7, 0x9c, 0x56, 0x21, 0xb3, 0x9a,
-	0x59, 0xbf, 0x54, 0x43, 0xba, 0x69, 0xb7, 0x85, 0x6f, 0xa3, 0xf3, 0x72, 0xb6, 0x0a, 0x63, 0xab,
-	0x99, 0xf5, 0xf1, 0xfb, 0x33, 0x65, 0x35, 0x79, 0xbf, 0x86, 0x9f, 0x3a, 0xb7, 0x79, 0x8f, 0xd5,
-	0x94, 0x0f, 0x79, 0x8c, 0x26, 0xc2, 0xf0, 0x0c, 0x97, 0xd0, 0x27, 0x0e, 0xa7, 0x1d, 0x56, 0xc8,
-	0xac, 0x9e, 0x83, 0xde, 0x2a, 0xeb, 0xc2, 0x5e, 0x35, 0xe9, 0x42, 0xfe, 0x7d, 0x0e, 0x9d, 0xdf,
-	0x07, 0x33, 0x2e, 0xa0, 0x0b, 0x87, 0x34, 0x10, 0xb1, 0x56, 0x92, 0xf4, 0x23, 0xbe, 0x8d, 0x2e,
-	0xaa, 0x19, 0x66, 0x85, 0x31, 0xc0, 0x9c, 0x2e, 0xeb, 0x29, 0x7f, 0x22, 0x7f, 0x6b, 0x7d, 0x0f,
-	0xbc, 0x8d, 0xa6, 0xa2, 0xf9, 0xc4, 0x0a, 0xe7, 0xa0, 0xd3, 0x72, 0x39, 0x96, 0x67, 0x4f, 0xe5,
-	0xe3, 0x26, 0x3c, 0xd5, 0x26, 0xdd, 0xf0, 0x23, 0xc3, 0xeb, 0xe8, 0x82, 0xee, 0xff, 0x31, 0xf4,
-	0x9f, 0x2c, 0xab, 0x7e, 0xaa, 0x83, 0x36, 0xe3, 0x47, 0x28, 0x2b, 0xff, 0x6b, 0xf1, 0xe3, 0x2e,
-	0x65, 0x85, 0x4f, 0xc0, 0x1d, 0x47, 0xdd, 0x9f, 0x1f, 0x77, 0x69, 0x6d, 0xbc, 0xd5, 0xff, 0x3f,
-	0xc3, 0x3f, 0x43, 0x13, 0x90, 0x7a, 0xd6, 0x81, 0xe3, 0xc2, 0xd8, 0x2e, 0xa8, 0x7e, 0xd0, 0x5a,
-	0xde, 0x12, 0xff, 0x6e, 0x83, 0xa9, 0x96, 0xa5, 0x83, 0x07, 0x86, 0x7f, 0x85, 0x72, 0x83, 0x3c,
-	0xb1, 0xb9, 0xdd, 0xb0, 0x19, 0x2d, 0x2c, 0x41, 0xe7, 0x7c, 0x59, 0x58, 0xca, 0xcf, 0x9c, 0x86,
-	0x64, 0xdd, 0xb4, 0xb9, 0x5d, 0x9b, 0x12, 0x6d, 0xa2, 0x49, 0xf9, 0xe2, 0x2d, 0x94, 0x0f, 0xe7,
-	0x91, 0x86, 0x58, 0x06, 0x88, 0x59, 0x09, 0xf1, 0x44, 0xd8, 0x42, 0x20, 0x40, 0x29, 0x1b, 0x95,
-	0xff, 0x97, 0x1f, 0x5f, 0x3c, 0x3f, 0x7d, 0xe1, 0xfe, 0xbf, 0x1e, 0xa3, 0x09, 0x39, 0x85, 0x75,
-	0x1a, 0x08, 0x77, 0xbc, 0x89, 0x2e, 0xed, 0x50, 0xae, 0xa6, 0x75, 0xae, 0x2c, 0x37, 0x90, 0xb2,
-	0xde, 0x40, 0xca, 0x5b, 0x62, 0x03, 0x29, 0x4e, 0xea, 0xb4, 0x90, 0x7e, 0x64, 0xea, 0x4f, 0xff,
-	0xf9, 0xef, 0x8f, 0x63, 0x97, 0xf0, 0x05, 0xd8, 0x87, 0x0e, 0xef, 0xe1, 0x57, 0x28, 0xf7, 0xd4,
-	0x61, 0x3c, 0x9a, 0x5b, 0x69, 0x68, 0xb3, 0xa6, 0x24, 0x63, 0x64, 0x01, 0x40, 0xf3, 0x38, 0xa7,
-	0x40, 0x2b, 0x4e, 0x1f, 0xa9, 0x8e, 0xa6, 0x76, 0x68, 0x04, 0x1d, 0xa3, 0xb2, 0xda, 0xc0, 0x76,
-	0x37, 0x8b, 0xc6, 0xac, 0x25, 0x97, 0x01, 0xaf, 0x80, 0xe7, 0x12, 0x78, 0x95, 0x13, 0xa7, 0xf5,
-	0x16, 0xd7, 0x51, 0x56, 0x68, 0x7e, 0xa2, 0x73, 0x31, 0x4d, 0x6e, 0x2e, 0x9e, 0xbf, 0x8c, 0x14,
-	0x00, 0x1a, 0xe3, 0x69, 0x0d, 0xdd, 0x4f, 0xe8, 0x0e, 0xc2, 0x02, 0xf4, 0x69, 0x34, 0x3d, 0xd3,
-	0xa0, 0x2f, 0x0f, 0xcd, 0x72, 0x46, 0x56, 0x80, 0x67, 0x01, 0xcf, 0x6b, 0x9e, 0xd8, 0x62, 0xc1,
-	0x4d, 0x34, 0xbd, 0x43, 0xa3, 0x6c, 0x91, 0xc8, 0x0c, 0x5f, 0x46, 0xe4, 0x2a, 0xe0, 0x5f, 0xc6,
-	0x4b, 0x29, 0xf8, 0x32, 0x50, 0x1e, 0x9a, 0x4b, 0x8c, 0x69, 0xcf, 0x0f, 0x38, 0x8b, 0x50, 0x2d,
-	0xa5, 0x50, 0x81, 0x27, 0x29, 0x01, 0xd3, 0x55, 0x4c, 0x86, 0x31, 0x55, 0xba, 0x80, 0xfa, 0x2e,
-	0x83, 0x66, 0xe2, 0xa3, 0x12, 0x28, 0x78, 0x79, 0x08, 0xc5, 0x6e, 0xab, 0xb8, 0x38, 0xc4, 0x4c,
-	0x1e, 0x82, 0x80, 0x32, 0xbe, 0x7d, 0xba, 0x80, 0xca, 0x89, 0xf8, 0xb1, 0xc4, 0xd0, 0xff, 0x9e,
-	0x41, 0xf3, 0x5b, 0x9e, 0xdd, 0x70, 0xe9, 0xc8, 0x6a, 0x52, 0xe6, 0x9c, 0x3c, 0x06, 0x21, 0x8f,
-	0xc8, 0x83, 0x51, 0x84, 0x54, 0x28, 0x88, 0xc0, 0xff, 0xc8, 0xa0, 0xc2, 0xa6, 0xc3, 0x3e, 0xa8,
-	0xa0, 0x5f, 0x82, 0xa0, 0x4f, 0xc9, 0xc3, 0x91, 0x04, 0xb5, 0xa4, 0x0a, 0xdc, 0x32, 0x24, 0xc7,
-	0xb6, 0xeb, 0x1f, 0x45, 0x93, 0x03, 0x97, 0xc3, 0x6f, 0x76, 0xb0, 0x9f, 0x31, 0x25, 0x0e, 0x00,
-	0xeb, 0xcf, 0x19, 0xb4, 0xf4, 0xa2, 0xdb, 0xb2, 0x39, 0x4d, 0x10, 0x3d, 0x07, 0x19, 0x4b, 0x09,
-	0x02, 0x68, 0x97, 0x7d, 0x52, 0x87, 0x7e, 0x07, 0x24, 0xdc, 0x20, 0x67, 0x90, 0xf0, 0x59, 0xa6,
-	0x84, 0xff, 0x92, 0x41, 0xcb, 0x06, 0x15, 0xcf, 0x28, 0xa7, 0x81, 0x94, 0xb1, 0x18, 0x91, 0x01,
-	0x86, 0x67, 0x7e, 0xeb, 0x14, 0x15, 0x65, 0x50, 0xb1, 0x4e, 0xae, 0x0c, 0x55, 0xd1, 0x11, 0x60,
-	0x20, 0xa3, 0x8d, 0xe6, 0x13, 0x21, 0x07, 0xaa, 0x68, 0xcc, 0xf3, 0x49, 0x2d, 0x8c, 0xdc, 0x02,
-	0xae, 0x6b, 0xf8, 0x2c, 0x5c, 0x98, 0xa3, 0x45, 0xe3, 0xdc, 0xee, 0x04, 0x7e, 0xaf, 0x1b, 0x25,
-	0x9b, 0x4f, 0xc4, 0x5f, 0x3a, 0x91, 0xbb, 0x40, 0x58, 0xc2, 0xeb, 0xa7, 0x86, 0xd8, 0x6a, 0x4b,
-	0xd8, 0x1f, 0x33, 0x68, 0x2d, 0x65, 0xae, 0x01, 0x53, 0x46, 0x7a, 0xcd, 0x4c, 0x78, 0x96, 0x59,
-	0x7f, 0x00, 0x92, 0xee, 0x90, 0x33, 0x4b, 0x12, 0x41, 0xaf, 0xa2, 0x71, 0x11, 0x8b, 0xd3, 0x76,
-	0xf4, 0xa9, 0xe8, 0x41, 0x82, 0x91, 0x79, 0x20, 0xcb, 0xe1, 0x29, 0x4d, 0xa6, 0xb7, 0xee, 0x2a,
-	0x9a, 0x18, 0x00, 0xee, 0xb6, 0xd2, 0x21, 0xc7, 0x07, 0x61, 0x36, 0xbc, 0x24, 0x25, 0x9c, 0xd3,
-	0x62, 0xf8, 0x05, 0x9a, 0xae, 0xd1, 0xa6, 0xef, 0x35, 0x1d, 0x97, 0x6a, 0x99, 0xe1, 0xbe, 0xa9,
-	0xf1, 0x58, 0x02, 0xcc, 0x39, 0x92, 0xc4, 0x14, 0x03, 0xdf, 0x82, 0x03, 0x82, 0xe1, 0xdd, 0x12,
-	0x3b, 0x62, 0x69, 0x18, 0x3c, 0x13, 0x1b, 0xa9, 0x7c, 0x89, 0x7c, 0x89, 0xb2, 0x1b, 0x01, 0xb5,
-	0xb9, 0x92, 0x86, 0x63, 0xbd, 0x13, 0x68, 0x45, 0x40, 0x9b, 0x21, 0xf1, 0xb8, 0x09, 0x49, 0x2f,
-	0x51, 0x56, 0x6e, 0xca, 0x06, 0x55, 0x69, 0x83, 0xbc, 0x02, 0x78, 0xcb, 0x64, 0xd1, 0xa4, 0x4e,
-	0x6f, 0xaf, 0xbf, 0x45, 0x13, 0x6a, 0x77, 0x1d, 0x01, 0x59, 0xbd, 0x44, 0xc9, 0x92, 0x11, 0x59,
-	0xef, 0x93, 0x2f, 0x51, 0xb6, 0x46, 0x1b, 0xbe, 0xcf, 0x3f, 0x98, 0xe6, 0x00, 0xe0, 0x04, 0xf0,
-	0x26, 0x75, 0x29, 0x7f, 0x8f, 0x60, 0x94, 0xcc, 0xc0, 0x2d, 0x80, 0xc3, 0x0d, 0x94, 0xdb, 0xf6,
-	0x83, 0x26, 0x1d, 0x19, 0xfd, 0x26, 0xa0, 0x5f, 0x29, 0xad, 0x19, 0xd1, 0x0f, 0x04, 0xa6, 0xa5,
-	0x38, 0xde, 0xa0, 0x89, 0x4d, 0xff, 0xc8, 0x73, 0x7d, 0xbb, 0xb5, 0xdb, 0xb1, 0xdb, 0x14, 0xcf,
-	0xea, 0x34, 0x80, 0x47, 0x6d, 0x2b, 0xce, 0x6a, 0xda, 0x6a, 0x97, 0x06, 0x70, 0xe5, 0xad, 0x51,
-	0xd6, 0x25, 0xbf, 0x00, 0xa6, 0xbb, 0xe4, 0x96, 0x91, 0xc9, 0x11, 0x10, 0x56, 0x4b, 0x61, 0xb0,
-	0xca, 0x89, 0x67, 0x77, 0xe8, 0xdb, 0xcf, 0x32, 0xa5, 0x77, 0x63, 0x19, 0xfc, 0x43, 0x06, 0xcd,
-	0xed, 0x50, 0x1e, 0xa1, 0x91, 0x97, 0xa5, 0x74, 0x0d, 0xa6, 0x66, 0xf2, 0x39, 0x68, 0x78, 0x88,
-	0xef, 0x8f, 0xa0, 0xa1, 0xc2, 0x80, 0x49, 0xe8, 0x78, 0x03, 0x27, 0xb8, 0x08, 0xe4, 0x88, 0x02,
-	0x3e, 0x95, 0xdb, 0x19, 0x1e, 0x25, 0x08, 0x82, 0xd9, 0x91, 0x47, 0xd5, 0x08, 0x18, 0x8b, 0x4d,
-	0xb0, 0x89, 0x90, 0x91, 0x0a, 0x30, 0x5e, 0xc7, 0x57, 0xcf, 0xc2, 0x28, 0xa8, 0x4e, 0x50, 0x7e,
-	0x43, 0x9c, 0xbc, 0xdd, 0x33, 0x8e, 0xd3, 0x38, 0xd9, 0x6a, 0x9c, 0xa5, 0x51, 0xc7, 0xf9, 0xb7,
-	0x0c, 0xca, 0x3f, 0x69, 0x72, 0xe7, 0xd0, 0xe6, 0x14, 0x88, 0xe4, 0xeb, 0x61, 0x44, 0xf6, 0x6d,
-	0x60, 0xff, 0x9c, 0xfc, 0x7c, 0x94, 0x69, 0x96, 0xcd, 0x3d, 0xe0, 0x53, 0x79, 0xf7, 0xd7, 0x0c,
-	0xca, 0xd5, 0xe8, 0x21, 0x0d, 0xf8, 0x4f, 0xa2, 0x25, 0x00, 0x6a, 0xa5, 0xe5, 0x5d, 0x06, 0xcd,
-	0x46, 0x96, 0xdf, 0x73, 0x5f, 0x2d, 0x73, 0x12, 0xdd, 0x8d, 0x23, 0xaa, 0x6a, 0xf4, 0xf7, 0x3d,
-	0xca, 0x78, 0x71, 0xd1, 0xe0, 0x23, 0xe4, 0xf9, 0x1e, 0xa3, 0xfa, 0x4c, 0x83, 0xaf, 0xc7, 0x25,
-	0x82, 0x0c, 0x56, 0xd1, 0xf2, 0x2c, 0xf9, 0x8c, 0x8f, 0xd0, 0xa4, 0x5e, 0x06, 0x6a, 0x15, 0x16,
-	0x8d, 0xf0, 0x67, 0xa0, 0xbe, 0x9d, 0x96, 0x9d, 0x8a, 0x5a, 0xfe, 0x58, 0x72, 0x09, 0x8a, 0xf9,
-	0x58, 0x78, 0xd2, 0xf0, 0xfb, 0xd3, 0xd1, 0x0e, 0xec, 0xd6, 0x20, 0x0e, 0xef, 0x2d, 0xe2, 0x41,
-	0xda, 0xa2, 0x54, 0x22, 0x6c, 0x41, 0x69, 0xf5, 0x24, 0x9d, 0x0e, 0xc2, 0x3e, 0xca, 0xee, 0x50,
-	0x5e, 0xf5, 0x7a, 0xbb, 0xf2, 0x39, 0xbc, 0x16, 0x73, 0x9a, 0xad, 0x6f, 0x26, 0x37, 0x80, 0x63,
-	0x0d, 0xaf, 0x18, 0xd3, 0xc0, 0xf7, 0x7a, 0x1a, 0xf7, 0x04, 0x4d, 0x44, 0x16, 0xc0, 0xfb, 0x0f,
-	0xeb, 0x1e, 0x50, 0xde, 0x22, 0x69, 0xd3, 0x6a, 0x2b, 0x1a, 0xc5, 0x2c, 0x5e, 0xd6, 0x47, 0x68,
-	0x7c, 0xc3, 0xef, 0x74, 0x1c, 0xfe, 0x7f, 0x52, 0xcb, 0x4d, 0xe7, 0x26, 0x49, 0x9b, 0xd6, 0x26,
-	0x90, 0x84, 0x88, 0xf7, 0xd0, 0xd4, 0xe0, 0x80, 0x95, 0xbc, 0xaf, 0x4e, 0x68, 0x32, 0x79, 0x41,
-	0x25, 0x00, 0xbf, 0x84, 0x8b, 0xc6, 0x60, 0xca, 0x8b, 0xe9, 0x2b, 0x94, 0x0f, 0x21, 0x76, 0x36,
-	0x7c, 0xef, 0xc0, 0x69, 0xa7, 0x4c, 0x53, 0xdf, 0x7c, 0xca, 0x34, 0x75, 0x3b, 0x56, 0x53, 0xe1,
-	0x78, 0x68, 0x56, 0x6e, 0x07, 0x71, 0x82, 0x24, 0x68, 0xea, 0xbb, 0x57, 0x5d, 0xaa, 0xc8, 0x69,
-	0x64, 0x22, 0x40, 0x2f, 0xc2, 0x01, 0x3a, 0xdb, 0x9d, 0x6d, 0x78, 0x94, 0xe4, 0x5d, 0x8d, 0xa2,
-	0x99, 0x28, 0xec, 0x28, 0xd7, 0x85, 0x75, 0x20, 0x20, 0x78, 0x35, 0x95, 0x40, 0x5f, 0x13, 0xbe,
-	0x0d, 0xab, 0x97, 0x45, 0xba, 0xb4, 0x13, 0x74, 0x3e, 0x59, 0xdd, 0x63, 0x69, 0xc7, 0x55, 0x59,
-	0x16, 0xc4, 0x35, 0x34, 0xd1, 0x3f, 0xf5, 0x0a, 0xff, 0x58, 0x64, 0x12, 0x78, 0x64, 0x0d, 0xe0,
-	0x16, 0xf1, 0x82, 0x09, 0x4e, 0x1e, 0x81, 0xb7, 0xd1, 0x74, 0x9d, 0x07, 0xd4, 0xee, 0xec, 0xd9,
-	0xcd, 0xef, 0x29, 0x67, 0xd5, 0x1e, 0xc7, 0x73, 0x91, 0x40, 0x48, 0x43, 0xb5, 0xc7, 0x53, 0xe7,
-	0xf7, 0xa3, 0xf5, 0x0c, 0xde, 0x82, 0x83, 0x3e, 0x75, 0x0e, 0xa9, 0x02, 0xda, 0xf5, 0x86, 0xd4,
-	0xda, 0x92, 0xf8, 0xbb, 0x1e, 0xf9, 0xe8, 0x6e, 0x06, 0x7f, 0x85, 0xf2, 0x0a, 0x66, 0xe3, 0xb5,
-	0xed, 0xb5, 0x29, 0xd4, 0x30, 0xd3, 0x83, 0x58, 0x88, 0x20, 0x85, 0xba, 0x00, 0xd8, 0x2b, 0x94,
-	0x93, 0xc7, 0xfb, 0x50, 0x25, 0x14, 0x1b, 0xaa, 0xa3, 0x45, 0x43, 0x1b, 0x59, 0x85, 0xd8, 0x15,
-	0xc9, 0xac, 0x8e, 0x5d, 0xa4, 0xd4, 0x2a, 0x53, 0x55, 0xbc, 0x1e, 0xc2, 0xd8, 0xd1, 0x9b, 0x6e,
-	0x02, 0xd3, 0x90, 0xaa, 0x11, 0x50, 0x39, 0x23, 0x0d, 0x94, 0x93, 0x2b, 0xee, 0x7d, 0x54, 0x5f,
-	0x03, 0x82, 0x95, 0xe2, 0x10, 0x02, 0x21, 0xbd, 0x89, 0x72, 0xf2, 0x04, 0x7d, 0x1a, 0x47, 0xda,
-	0x94, 0xab, 0x81, 0x94, 0x86, 0x0d, 0xe4, 0x3b, 0x34, 0x2d, 0x16, 0x43, 0x38, 0x00, 0x43, 0x56,
-	0x83, 0x21, 0x5a, 0xcb, 0x40, 0x32, 0x8f, 0xcd, 0x53, 0x80, 0x9f, 0xc2, 0x25, 0xd0, 0xf0, 0x5a,
-	0x9a, 0x8c, 0x1c, 0x5c, 0x98, 0xbe, 0x59, 0xe0, 0xc5, 0xf4, 0xa3, 0x09, 0xc3, 0x5f, 0xa3, 0x8b,
-	0x75, 0xea, 0x1e, 0x3c, 0xa7, 0x8c, 0x47, 0xc0, 0x0a, 0x1a, 0x4c, 0x5b, 0xfb, 0x9b, 0xff, 0x75,
-	0x80, 0x5d, 0x25, 0x97, 0x8d, 0xb0, 0x8c, 0xba, 0x07, 0xf0, 0x11, 0x05, 0xef, 0xc3, 0x69, 0x3a,
-	0x52, 0x51, 0x8f, 0xd7, 0x44, 0x12, 0x25, 0xf7, 0xe4, 0xd2, 0x15, 0x89, 0x2e, 0xfc, 0x54, 0x31,
-	0xc4, 0x69, 0xe0, 0x6f, 0x11, 0xde, 0xa1, 0x3c, 0x56, 0x66, 0x8f, 0x20, 0x9b, 0x2b, 0xf1, 0xc9,
-	0x78, 0x44, 0xb1, 0xa1, 0xa8, 0x8f, 0x19, 0x9a, 0xa8, 0x3b, 0x9d, 0x9e, 0x6b, 0x73, 0x0a, 0xfd,
-	0xf1, 0x52, 0x3f, 0x10, 0xe1, 0x66, 0xfd, 0x9a, 0x4c, 0x39, 0x15, 0x26, 0x8a, 0x59, 0xd1, 0x18,
-	0x29, 0x24, 0x4b, 0x20, 0x89, 0xbc, 0x7c, 0x86, 0x90, 0xbc, 0x44, 0x43, 0xed, 0x30, 0x1b, 0x7e,
-	0x1b, 0xa6, 0xa6, 0xa2, 0xaa, 0x3e, 0x90, 0x49, 0x01, 0x3f, 0xe8, 0xad, 0xea, 0x23, 0xea, 0xea,
-	0x3c, 0x02, 0xde, 0xe0, 0x92, 0x7f, 0x78, 0xaf, 0x12, 0xea, 0x2e, 0x00, 0xbf, 0x43, 0xe3, 0x62,
-	0xc9, 0xbf, 0xe1, 0xfb, 0xb6, 0xdb, 0xa3, 0x78, 0xa1, 0xdc, 0xff, 0xbc, 0x57, 0x86, 0x96, 0x7a,
-	0x97, 0x36, 0x9d, 0x03, 0x87, 0x06, 0xc5, 0xf9, 0x90, 0xa9, 0x46, 0x79, 0x2f, 0xf0, 0xc0, 0x81,
-	0x91, 0x45, 0x80, 0x9f, 0xc5, 0x79, 0x1d, 0x91, 0x30, 0xe0, 0x4b, 0x34, 0x5e, 0x0f, 0x3d, 0xe6,
-	0x13, 0xf8, 0x34, 0x5d, 0x77, 0x02, 0x38, 0x8c, 0xd4, 0x42, 0xf9, 0x3a, 0xb7, 0x03, 0x5e, 0xed,
-	0x34, 0x1d, 0x91, 0xc4, 0xe2, 0xe8, 0xe5, 0x7b, 0x58, 0x25, 0x88, 0x6e, 0xd5, 0x93, 0x89, 0x65,
-	0x73, 0x24, 0xdb, 0xd5, 0x8a, 0x27, 0xfd, 0xb2, 0x3f, 0x13, 0x78, 0x56, 0xff, 0x5b, 0xa1, 0x08,
-	0xcf, 0x0f, 0x19, 0x34, 0xb3, 0xd7, 0xe3, 0xfb, 0xbe, 0xd3, 0xad, 0xc3, 0x27, 0xcd, 0x3d, 0xf9,
-	0xa9, 0x12, 0xdf, 0x29, 0x9b, 0xbe, 0x73, 0x26, 0xfc, 0x34, 0x7f, 0xda, 0x10, 0xf5, 0x8a, 0xeb,
-	0x27, 0xae, 0x01, 0x55, 0xe8, 0xe8, 0xa2, 0x79, 0xb9, 0xbd, 0x25, 0x95, 0xf4, 0x8b, 0x4f, 0x5f,
-	0xd1, 0xe3, 0x54, 0x1e, 0x55, 0x1f, 0x2c, 0xad, 0x0f, 0xe1, 0xa9, 0x9c, 0x7c, 0x4f, 0x8f, 0xfb,
-	0x75, 0x89, 0xb7, 0x08, 0xab, 0x81, 0xbf, 0x60, 0x34, 0xd0, 0x64, 0x37, 0xcb, 0xc9, 0xaf, 0xb6,
-	0x31, 0x9f, 0xd3, 0x86, 0xac, 0x0b, 0x39, 0x0b, 0x11, 0x29, 0x61, 0x44, 0x31, 0x60, 0x17, 0xcd,
-	0x0e, 0x06, 0x1c, 0x56, 0x70, 0xa6, 0xe1, 0xaa, 0x7b, 0x51, 0xe9, 0x7a, 0x2a, 0x47, 0x74, 0xb0,
-	0xdf, 0xa0, 0x69, 0xb5, 0x2e, 0xaa, 0x5e, 0x6f, 0x84, 0x1a, 0x8c, 0x4e, 0xa1, 0xc1, 0x41, 0x4d,
-	0xa2, 0x58, 0xe2, 0x5a, 0x20, 0x97, 0x26, 0xfe, 0x1a, 0x4d, 0xc9, 0x35, 0x3c, 0x1a, 0xb4, 0xda,
-	0x2e, 0x07, 0x61, 0x92, 0xc5, 0xb3, 0x30, 0xf2, 0x1f, 0xd1, 0xdc, 0x40, 0x75, 0x9d, 0x06, 0x8e,
-	0xed, 0xfe, 0xa6, 0xd7, 0x69, 0xd0, 0x00, 0xaf, 0x84, 0xae, 0x31, 0x61, 0x43, 0xd5, 0xab, 0x3e,
-	0x7d, 0xbe, 0xe7, 0x7b, 0xa7, 0x15, 0x95, 0xc8, 0x9a, 0x69, 0x40, 0x0c, 0x90, 0x2c, 0x4f, 0x72,
-	0xfc, 0x01, 0xcd, 0xf6, 0xc7, 0xf5, 0x61, 0xc8, 0xd5, 0xa9, 0x94, 0xac, 0x1a, 0x86, 0x1c, 0xe5,
-	0xfe, 0x1d, 0xca, 0x86, 0xcf, 0xf0, 0x78, 0x46, 0x53, 0x86, 0x5b, 0x53, 0x79, 0xd4, 0x5b, 0x78,
-	0x70, 0x10, 0x92, 0xa5, 0x03, 0x15, 0xd6, 0x2f, 0x5c, 0x94, 0xf7, 0x83, 0x36, 0x9c, 0xc3, 0x9a,
-	0x7e, 0xd0, 0x52, 0x5f, 0x3d, 0xbf, 0xc8, 0xca, 0xaf, 0xb2, 0x7b, 0xf0, 0x17, 0x05, 0xdf, 0x94,
-	0xdb, 0x0e, 0x7f, 0xdd, 0x6b, 0x88, 0x89, 0xac, 0x68, 0x4f, 0xf5, 0xb7, 0x24, 0x77, 0xf4, 0xdf,
-	0x37, 0x3c, 0xaa, 0xb4, 0x7d, 0xd5, 0xf6, 0xcf, 0xb1, 0xb9, 0xaa, 0xc6, 0xdb, 0x0f, 0x7f, 0xe4,
-	0xdd, 0x1b, 0x6b, 0x9c, 0x07, 0xff, 0x07, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, 0x88, 0xec, 0xd4,
-	0x9c, 0x99, 0x22, 0x00, 0x00,
-}
+var (
+	file_voltha_protos_voltha_proto_rawDescOnce sync.Once
+	file_voltha_protos_voltha_proto_rawDescData []byte
+)
 
-// Reference imports to suppress errors if they are not otherwise used.
-var _ context.Context
-var _ grpc.ClientConn
-
-// This is a compile-time assertion to ensure that this generated file
-// is compatible with the grpc package it is being compiled against.
-const _ = grpc.SupportPackageIsVersion4
-
-// VolthaServiceClient is the client API for VolthaService service.
-//
-// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
-type VolthaServiceClient interface {
-	// Get high level information on the Voltha cluster
-	GetVoltha(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*Voltha, error)
-	// List all Voltha cluster core instances
-	ListCoreInstances(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*CoreInstances, error)
-	// Get details on a Voltha cluster instance
-	GetCoreInstance(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*CoreInstance, error)
-	// List all active adapters (plugins) in the Voltha cluster
-	ListAdapters(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*Adapters, error)
-	// List all logical devices managed by the Voltha cluster
-	ListLogicalDevices(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*LogicalDevices, error)
-	// Get additional information on a given logical device
-	GetLogicalDevice(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*LogicalDevice, error)
-	// List ports of a logical device
-	ListLogicalDevicePorts(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*LogicalPorts, error)
-	// Gets a logical device port
-	GetLogicalDevicePort(ctx context.Context, in *LogicalPortId, opts ...grpc.CallOption) (*LogicalPort, error)
-	// Enables a logical device port
-	EnableLogicalDevicePort(ctx context.Context, in *LogicalPortId, opts ...grpc.CallOption) (*empty.Empty, error)
-	// Disables a logical device port
-	DisableLogicalDevicePort(ctx context.Context, in *LogicalPortId, opts ...grpc.CallOption) (*empty.Empty, error)
-	// List all flows of a logical device
-	ListLogicalDeviceFlows(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*openflow_13.Flows, error)
-	// Update flow table for logical device
-	UpdateLogicalDeviceFlowTable(ctx context.Context, in *openflow_13.FlowTableUpdate, opts ...grpc.CallOption) (*empty.Empty, error)
-	// Update meter table for logical device
-	UpdateLogicalDeviceMeterTable(ctx context.Context, in *openflow_13.MeterModUpdate, opts ...grpc.CallOption) (*empty.Empty, error)
-	// List all meters of a logical device
-	ListLogicalDeviceMeters(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*openflow_13.Meters, error)
-	// List all flow groups of a logical device
-	ListLogicalDeviceFlowGroups(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*openflow_13.FlowGroups, error)
-	// Update group table for device
-	UpdateLogicalDeviceFlowGroupTable(ctx context.Context, in *openflow_13.FlowGroupTableUpdate, opts ...grpc.CallOption) (*empty.Empty, error)
-	// List all physical devices controlled by the Voltha cluster
-	ListDevices(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*Devices, error)
-	// List all physical devices IDs controlled by the Voltha cluster
-	ListDeviceIds(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*common.IDs, error)
-	// Request to a voltha Core to reconcile a set of devices based on their IDs
-	ReconcileDevices(ctx context.Context, in *common.IDs, opts ...grpc.CallOption) (*empty.Empty, error)
-	// Get more information on a given physical device
-	GetDevice(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*Device, error)
-	// Pre-provision a new physical device
-	CreateDevice(ctx context.Context, in *Device, opts ...grpc.CallOption) (*Device, error)
-	// Enable a device.  If the device was in pre-provisioned state then it
-	// will transition to ENABLED state.  If it was is DISABLED state then it
-	// will transition to ENABLED state as well.
-	EnableDevice(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*empty.Empty, error)
-	// Disable a device
-	DisableDevice(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*empty.Empty, error)
-	// Reboot a device
-	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.
-	DownloadImage(ctx context.Context, in *ImageDownload, opts ...grpc.CallOption) (*common.OperationResp, error)
-	// Get image download status on a device
-	// The request retrieves progress on device and updates db record
-	// Deprecated in voltha 2.8, will be removed
-	GetImageDownloadStatus(ctx context.Context, in *ImageDownload, opts ...grpc.CallOption) (*ImageDownload, error)
-	// Get image download db record
-	// Deprecated in voltha 2.8, will be removed
-	GetImageDownload(ctx context.Context, in *ImageDownload, opts ...grpc.CallOption) (*ImageDownload, error)
-	// List image download db records for a given device
-	// Deprecated in voltha 2.8, will be removed
-	ListImageDownloads(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*ImageDownloads, error)
-	// Cancel an existing image download process on a device
-	// Deprecated in voltha 2.8, will be removed
-	CancelImageDownload(ctx context.Context, in *ImageDownload, opts ...grpc.CallOption) (*common.OperationResp, error)
-	// Activate the specified image at a standby partition
-	// to active partition.
-	// Depending on the device implementation, this call
-	// may or may not cause device reboot.
-	// If no reboot, then a reboot is required to make the
-	// activated image running on device
-	// Note that the call is expected to be non-blocking.
-	// Deprecated in voltha 2.8, will be removed
-	ActivateImageUpdate(ctx context.Context, in *ImageDownload, opts ...grpc.CallOption) (*common.OperationResp, error)
-	// Revert the specified image at standby partition
-	// to active partition, and revert to previous image
-	// Depending on the device implementation, this call
-	// may or may not cause device reboot.
-	// If no reboot, then a reboot is required to make the
-	// previous image running on device
-	// Note that the call is expected to be non-blocking.
-	// Deprecated in voltha 2.8, will be removed
-	RevertImageUpdate(ctx context.Context, in *ImageDownload, opts ...grpc.CallOption) (*common.OperationResp, error)
-	// Downloads a certain image to the standby partition of the devices
-	// Note that the call is expected to be non-blocking.
-	DownloadImageToDevice(ctx context.Context, in *DeviceImageDownloadRequest, opts ...grpc.CallOption) (*DeviceImageResponse, error)
-	// Get image status on a number of devices devices
-	// Polled from northbound systems to get state of download/activate/commit
-	GetImageStatus(ctx context.Context, in *DeviceImageRequest, opts ...grpc.CallOption) (*DeviceImageResponse, error)
-	// Aborts the upgrade of an image on a device
-	// To be used carefully, stops any further operations for the Image on the given devices
-	// Might also stop if possible existing work, but no guarantees are given,
-	// depends on implementation and procedure status.
-	AbortImageUpgradeToDevice(ctx context.Context, in *DeviceImageRequest, opts ...grpc.CallOption) (*DeviceImageResponse, error)
-	// Get Both Active and Standby image for a given device
-	GetOnuImages(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*OnuImages, error)
-	// Activate the specified image from a standby partition
-	// to active partition.
-	// Depending on the device implementation, this call
-	// may or may not cause device reboot.
-	// If no reboot, then a reboot is required to make the
-	// activated image running on device
-	// Note that the call is expected to be non-blocking.
-	ActivateImage(ctx context.Context, in *DeviceImageRequest, opts ...grpc.CallOption) (*DeviceImageResponse, error)
-	// Commit the specified image to be default.
-	// Depending on the device implementation, this call
-	// may or may not cause device reboot.
-	// If no reboot, then a reboot is required to make the
-	// activated image running on device upon next reboot
-	// Note that the call is expected to be non-blocking.
-	CommitImage(ctx context.Context, in *DeviceImageRequest, opts ...grpc.CallOption) (*DeviceImageResponse, error)
-	// List ports of a device
-	ListDevicePorts(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*Ports, error)
-	// List pm config of a device
-	ListDevicePmConfigs(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*PmConfigs, error)
-	// Update the pm config of a device
-	UpdateDevicePmConfigs(ctx context.Context, in *PmConfigs, opts ...grpc.CallOption) (*empty.Empty, error)
-	// List all flows of a device
-	ListDeviceFlows(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*openflow_13.Flows, error)
-	// List all flow groups of a device
-	ListDeviceFlowGroups(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*openflow_13.FlowGroups, error)
-	// List device types known to Voltha
-	ListDeviceTypes(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*DeviceTypes, error)
-	// Get additional information on a device type
-	GetDeviceType(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*DeviceType, error)
-	// Stream control packets to the dataplane
-	StreamPacketsOut(ctx context.Context, opts ...grpc.CallOption) (VolthaService_StreamPacketsOutClient, error)
-	// Receive control packet stream
-	ReceivePacketsIn(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (VolthaService_ReceivePacketsInClient, error)
-	ReceiveChangeEvents(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (VolthaService_ReceiveChangeEventsClient, error)
-	CreateEventFilter(ctx context.Context, in *EventFilter, opts ...grpc.CallOption) (*EventFilter, error)
-	// Get all filters present for a device
-	GetEventFilter(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*EventFilters, error)
-	UpdateEventFilter(ctx context.Context, in *EventFilter, opts ...grpc.CallOption) (*EventFilter, error)
-	DeleteEventFilter(ctx context.Context, in *EventFilter, opts ...grpc.CallOption) (*empty.Empty, error)
-	// Get all the filters present
-	ListEventFilters(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*EventFilters, error)
-	GetImages(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*Images, error)
-	SelfTest(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*SelfTestResponse, error)
-	// OpenOMCI MIB information
-	GetMibDeviceData(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*omci.MibDeviceData, error)
-	// OpenOMCI ALARM information
-	GetAlarmDeviceData(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*omci.AlarmDeviceData, error)
-	// Simulate an Alarm
-	SimulateAlarm(ctx context.Context, in *SimulateAlarmRequest, opts ...grpc.CallOption) (*common.OperationResp, error)
-	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 *extension.ValueSpecifier, opts ...grpc.CallOption) (*extension.ReturnValues, error)
-	SetExtValue(ctx context.Context, in *extension.ValueSet, opts ...grpc.CallOption) (*empty.Empty, error)
-	// omci start and stop cli implementation
-	StartOmciTestAction(ctx context.Context, in *omci.OmciTestRequest, opts ...grpc.CallOption) (*omci.TestResponse, error)
-	// Saves or updates system wide configuration into voltha KV
-	PutVoipSystemProfile(ctx context.Context, in *voip_system_profile.VoipSystemProfileRequest, opts ...grpc.CallOption) (*empty.Empty, error)
-	// Deletes the given profile from voltha KV
-	DeleteVoipSystemProfile(ctx context.Context, in *common.Key, opts ...grpc.CallOption) (*empty.Empty, error)
-	// Saves or updates a profile (VOIP) into voltha KV
-	PutVoipUserProfile(ctx context.Context, in *voip_user_profile.VoipUserProfileRequest, opts ...grpc.CallOption) (*empty.Empty, error)
-	// Deletes the given profile from voltha KV
-	DeleteVoipUserProfile(ctx context.Context, in *common.Key, opts ...grpc.CallOption) (*empty.Empty, error)
-	// Disables the ONU, stops it from participating in the ranging process. different from DisableDevice
-	DisableOnuDevice(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*empty.Empty, error)
-	// Enables the ONU at the PLOAM , enables the ONU to participate in the ranging process. different from EnableDevice
-	EnableOnuDevice(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*empty.Empty, error)
-	// Disables the ONU at the PLOAM , different from DisableDevice. This would be used if the Device is not present in the VOLTHA
-	DisableOnuSerialNumber(ctx context.Context, in *OnuSerialNumberOnOLTPon, opts ...grpc.CallOption) (*empty.Empty, error)
-	// Disables the ONU at the PLOAM , different from EnableDevice. This would be used if the Device is not present in the VOLTHA
-	EnableOnuSerialNumber(ctx context.Context, in *OnuSerialNumberOnOLTPon, opts ...grpc.CallOption) (*empty.Empty, error)
-	// Update the Device configuration, for now only ip address updation is supported
-	UpdateDevice(ctx context.Context, in *UpdateDevice, opts ...grpc.CallOption) (*empty.Empty, error)
+func file_voltha_protos_voltha_proto_rawDescGZIP() []byte {
+	file_voltha_protos_voltha_proto_rawDescOnce.Do(func() {
+		file_voltha_protos_voltha_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_voltha_protos_voltha_proto_rawDesc), len(file_voltha_protos_voltha_proto_rawDesc)))
+	})
+	return file_voltha_protos_voltha_proto_rawDescData
 }
 
-type volthaServiceClient struct {
-	cc *grpc.ClientConn
+var file_voltha_protos_voltha_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
+var file_voltha_protos_voltha_proto_goTypes = []any{
+	(*CoreInstance)(nil),                                 // 0: voltha.CoreInstance
+	(*CoreInstances)(nil),                                // 1: voltha.CoreInstances
+	(*Voltha)(nil),                                       // 2: voltha.Voltha
+	(*health.HealthStatus)(nil),                          // 3: health.HealthStatus
+	(*Adapter)(nil),                                      // 4: adapter.Adapter
+	(*LogicalDevice)(nil),                                // 5: logical_device.LogicalDevice
+	(*Device)(nil),                                       // 6: device.Device
+	(*DeviceType)(nil),                                   // 7: device.DeviceType
+	(*EventFilter)(nil),                                  // 8: event.EventFilter
+	(*omci.MibDeviceData)(nil),                           // 9: omci.MibDeviceData
+	(*omci.AlarmDeviceData)(nil),                         // 10: omci.AlarmDeviceData
+	(*emptypb.Empty)(nil),                                // 11: google.protobuf.Empty
+	(*common.ID)(nil),                                    // 12: common.ID
+	(*LogicalPortId)(nil),                                // 13: logical_device.LogicalPortId
+	(*openflow_13.FlowTableUpdate)(nil),                  // 14: openflow_13.FlowTableUpdate
+	(*openflow_13.MeterModUpdate)(nil),                   // 15: openflow_13.MeterModUpdate
+	(*openflow_13.FlowGroupTableUpdate)(nil),             // 16: openflow_13.FlowGroupTableUpdate
+	(*common.IDs)(nil),                                   // 17: common.IDs
+	(*ImageDownload)(nil),                                // 18: device.ImageDownload
+	(*DeviceImageDownloadRequest)(nil),                   // 19: device.DeviceImageDownloadRequest
+	(*DeviceImageRequest)(nil),                           // 20: device.DeviceImageRequest
+	(*PmConfigs)(nil),                                    // 21: device.PmConfigs
+	(*openflow_13.PacketOut)(nil),                        // 22: openflow_13.PacketOut
+	(*SimulateAlarmRequest)(nil),                         // 23: device.SimulateAlarmRequest
+	(*Port)(nil),                                         // 24: device.Port
+	(*extension.ValueSpecifier)(nil),                     // 25: extension.ValueSpecifier
+	(*extension.ValueSet)(nil),                           // 26: extension.ValueSet
+	(*omci.OmciTestRequest)(nil),                         // 27: omci.OmciTestRequest
+	(*voip_system_profile.VoipSystemProfileRequest)(nil), // 28: voip_system_profile.VoipSystemProfileRequest
+	(*common.Key)(nil),                                   // 29: common.Key
+	(*voip_user_profile.VoipUserProfileRequest)(nil),     // 30: voip_user_profile.VoipUserProfileRequest
+	(*OnuSerialNumberOnOLTPon)(nil),                      // 31: device.OnuSerialNumberOnOLTPon
+	(*UpdateDevice)(nil),                                 // 32: device.UpdateDevice
+	(*Adapters)(nil),                                     // 33: adapter.Adapters
+	(*LogicalDevices)(nil),                               // 34: logical_device.LogicalDevices
+	(*LogicalPorts)(nil),                                 // 35: logical_device.LogicalPorts
+	(*LogicalPort)(nil),                                  // 36: logical_device.LogicalPort
+	(*openflow_13.Flows)(nil),                            // 37: openflow_13.Flows
+	(*openflow_13.Meters)(nil),                           // 38: openflow_13.Meters
+	(*openflow_13.FlowGroups)(nil),                       // 39: openflow_13.FlowGroups
+	(*Devices)(nil),                                      // 40: device.Devices
+	(*common.OperationResp)(nil),                         // 41: common.OperationResp
+	(*ImageDownloads)(nil),                               // 42: device.ImageDownloads
+	(*DeviceImageResponse)(nil),                          // 43: device.DeviceImageResponse
+	(*OnuImages)(nil),                                    // 44: device.OnuImages
+	(*Ports)(nil),                                        // 45: device.Ports
+	(*DeviceTypes)(nil),                                  // 46: device.DeviceTypes
+	(*openflow_13.PacketIn)(nil),                         // 47: openflow_13.PacketIn
+	(*openflow_13.ChangeEvent)(nil),                      // 48: openflow_13.ChangeEvent
+	(*EventFilters)(nil),                                 // 49: event.EventFilters
+	(*Images)(nil),                                       // 50: device.Images
+	(*SelfTestResponse)(nil),                             // 51: device.SelfTestResponse
+	(*extension.ReturnValues)(nil),                       // 52: extension.ReturnValues
+	(*omci.TestResponse)(nil),                            // 53: omci.TestResponse
 }
-
-func NewVolthaServiceClient(cc *grpc.ClientConn) VolthaServiceClient {
-	return &volthaServiceClient{cc}
+var file_voltha_protos_voltha_proto_depIdxs = []int32{
+	3,  // 0: voltha.CoreInstance.health:type_name -> health.HealthStatus
+	0,  // 1: voltha.CoreInstances.items:type_name -> voltha.CoreInstance
+	4,  // 2: voltha.Voltha.adapters:type_name -> adapter.Adapter
+	5,  // 3: voltha.Voltha.logical_devices:type_name -> logical_device.LogicalDevice
+	6,  // 4: voltha.Voltha.devices:type_name -> device.Device
+	7,  // 5: voltha.Voltha.device_types:type_name -> device.DeviceType
+	8,  // 6: voltha.Voltha.event_filters:type_name -> event.EventFilter
+	9,  // 7: voltha.Voltha.omci_mib_database:type_name -> omci.MibDeviceData
+	10, // 8: voltha.Voltha.omci_alarm_database:type_name -> omci.AlarmDeviceData
+	11, // 9: voltha.VolthaService.GetVoltha:input_type -> google.protobuf.Empty
+	11, // 10: voltha.VolthaService.ListCoreInstances:input_type -> google.protobuf.Empty
+	12, // 11: voltha.VolthaService.GetCoreInstance:input_type -> common.ID
+	11, // 12: voltha.VolthaService.ListAdapters:input_type -> google.protobuf.Empty
+	11, // 13: voltha.VolthaService.ListLogicalDevices:input_type -> google.protobuf.Empty
+	12, // 14: voltha.VolthaService.GetLogicalDevice:input_type -> common.ID
+	12, // 15: voltha.VolthaService.ListLogicalDevicePorts:input_type -> common.ID
+	13, // 16: voltha.VolthaService.GetLogicalDevicePort:input_type -> logical_device.LogicalPortId
+	13, // 17: voltha.VolthaService.EnableLogicalDevicePort:input_type -> logical_device.LogicalPortId
+	13, // 18: voltha.VolthaService.DisableLogicalDevicePort:input_type -> logical_device.LogicalPortId
+	12, // 19: voltha.VolthaService.ListLogicalDeviceFlows:input_type -> common.ID
+	14, // 20: voltha.VolthaService.UpdateLogicalDeviceFlowTable:input_type -> openflow_13.FlowTableUpdate
+	15, // 21: voltha.VolthaService.UpdateLogicalDeviceMeterTable:input_type -> openflow_13.MeterModUpdate
+	12, // 22: voltha.VolthaService.ListLogicalDeviceMeters:input_type -> common.ID
+	12, // 23: voltha.VolthaService.ListLogicalDeviceFlowGroups:input_type -> common.ID
+	16, // 24: voltha.VolthaService.UpdateLogicalDeviceFlowGroupTable:input_type -> openflow_13.FlowGroupTableUpdate
+	11, // 25: voltha.VolthaService.ListDevices:input_type -> google.protobuf.Empty
+	11, // 26: voltha.VolthaService.ListDeviceIds:input_type -> google.protobuf.Empty
+	17, // 27: voltha.VolthaService.ReconcileDevices:input_type -> common.IDs
+	12, // 28: voltha.VolthaService.GetDevice:input_type -> common.ID
+	6,  // 29: voltha.VolthaService.CreateDevice:input_type -> device.Device
+	12, // 30: voltha.VolthaService.EnableDevice:input_type -> common.ID
+	12, // 31: voltha.VolthaService.DisableDevice:input_type -> common.ID
+	12, // 32: voltha.VolthaService.RebootDevice:input_type -> common.ID
+	12, // 33: voltha.VolthaService.DeleteDevice:input_type -> common.ID
+	12, // 34: voltha.VolthaService.ForceDeleteDevice:input_type -> common.ID
+	18, // 35: voltha.VolthaService.DownloadImage:input_type -> device.ImageDownload
+	18, // 36: voltha.VolthaService.GetImageDownloadStatus:input_type -> device.ImageDownload
+	18, // 37: voltha.VolthaService.GetImageDownload:input_type -> device.ImageDownload
+	12, // 38: voltha.VolthaService.ListImageDownloads:input_type -> common.ID
+	18, // 39: voltha.VolthaService.CancelImageDownload:input_type -> device.ImageDownload
+	18, // 40: voltha.VolthaService.ActivateImageUpdate:input_type -> device.ImageDownload
+	18, // 41: voltha.VolthaService.RevertImageUpdate:input_type -> device.ImageDownload
+	19, // 42: voltha.VolthaService.DownloadImageToDevice:input_type -> device.DeviceImageDownloadRequest
+	20, // 43: voltha.VolthaService.GetImageStatus:input_type -> device.DeviceImageRequest
+	20, // 44: voltha.VolthaService.AbortImageUpgradeToDevice:input_type -> device.DeviceImageRequest
+	12, // 45: voltha.VolthaService.GetOnuImages:input_type -> common.ID
+	20, // 46: voltha.VolthaService.ActivateImage:input_type -> device.DeviceImageRequest
+	20, // 47: voltha.VolthaService.CommitImage:input_type -> device.DeviceImageRequest
+	12, // 48: voltha.VolthaService.ListDevicePorts:input_type -> common.ID
+	12, // 49: voltha.VolthaService.ListDevicePmConfigs:input_type -> common.ID
+	21, // 50: voltha.VolthaService.UpdateDevicePmConfigs:input_type -> device.PmConfigs
+	12, // 51: voltha.VolthaService.ListDeviceFlows:input_type -> common.ID
+	12, // 52: voltha.VolthaService.ListDeviceFlowGroups:input_type -> common.ID
+	11, // 53: voltha.VolthaService.ListDeviceTypes:input_type -> google.protobuf.Empty
+	12, // 54: voltha.VolthaService.GetDeviceType:input_type -> common.ID
+	22, // 55: voltha.VolthaService.StreamPacketsOut:input_type -> openflow_13.PacketOut
+	11, // 56: voltha.VolthaService.ReceivePacketsIn:input_type -> google.protobuf.Empty
+	11, // 57: voltha.VolthaService.ReceiveChangeEvents:input_type -> google.protobuf.Empty
+	8,  // 58: voltha.VolthaService.CreateEventFilter:input_type -> event.EventFilter
+	12, // 59: voltha.VolthaService.GetEventFilter:input_type -> common.ID
+	8,  // 60: voltha.VolthaService.UpdateEventFilter:input_type -> event.EventFilter
+	8,  // 61: voltha.VolthaService.DeleteEventFilter:input_type -> event.EventFilter
+	11, // 62: voltha.VolthaService.ListEventFilters:input_type -> google.protobuf.Empty
+	12, // 63: voltha.VolthaService.GetImages:input_type -> common.ID
+	12, // 64: voltha.VolthaService.SelfTest:input_type -> common.ID
+	12, // 65: voltha.VolthaService.GetMibDeviceData:input_type -> common.ID
+	12, // 66: voltha.VolthaService.GetAlarmDeviceData:input_type -> common.ID
+	23, // 67: voltha.VolthaService.SimulateAlarm:input_type -> device.SimulateAlarmRequest
+	24, // 68: voltha.VolthaService.EnablePort:input_type -> device.Port
+	24, // 69: voltha.VolthaService.DisablePort:input_type -> device.Port
+	25, // 70: voltha.VolthaService.GetExtValue:input_type -> extension.ValueSpecifier
+	26, // 71: voltha.VolthaService.SetExtValue:input_type -> extension.ValueSet
+	27, // 72: voltha.VolthaService.StartOmciTestAction:input_type -> omci.OmciTestRequest
+	28, // 73: voltha.VolthaService.PutVoipSystemProfile:input_type -> voip_system_profile.VoipSystemProfileRequest
+	29, // 74: voltha.VolthaService.DeleteVoipSystemProfile:input_type -> common.Key
+	30, // 75: voltha.VolthaService.PutVoipUserProfile:input_type -> voip_user_profile.VoipUserProfileRequest
+	29, // 76: voltha.VolthaService.DeleteVoipUserProfile:input_type -> common.Key
+	12, // 77: voltha.VolthaService.DisableOnuDevice:input_type -> common.ID
+	12, // 78: voltha.VolthaService.EnableOnuDevice:input_type -> common.ID
+	31, // 79: voltha.VolthaService.DisableOnuSerialNumber:input_type -> device.OnuSerialNumberOnOLTPon
+	31, // 80: voltha.VolthaService.EnableOnuSerialNumber:input_type -> device.OnuSerialNumberOnOLTPon
+	32, // 81: voltha.VolthaService.UpdateDevice:input_type -> device.UpdateDevice
+	2,  // 82: voltha.VolthaService.GetVoltha:output_type -> voltha.Voltha
+	1,  // 83: voltha.VolthaService.ListCoreInstances:output_type -> voltha.CoreInstances
+	0,  // 84: voltha.VolthaService.GetCoreInstance:output_type -> voltha.CoreInstance
+	33, // 85: voltha.VolthaService.ListAdapters:output_type -> adapter.Adapters
+	34, // 86: voltha.VolthaService.ListLogicalDevices:output_type -> logical_device.LogicalDevices
+	5,  // 87: voltha.VolthaService.GetLogicalDevice:output_type -> logical_device.LogicalDevice
+	35, // 88: voltha.VolthaService.ListLogicalDevicePorts:output_type -> logical_device.LogicalPorts
+	36, // 89: voltha.VolthaService.GetLogicalDevicePort:output_type -> logical_device.LogicalPort
+	11, // 90: voltha.VolthaService.EnableLogicalDevicePort:output_type -> google.protobuf.Empty
+	11, // 91: voltha.VolthaService.DisableLogicalDevicePort:output_type -> google.protobuf.Empty
+	37, // 92: voltha.VolthaService.ListLogicalDeviceFlows:output_type -> openflow_13.Flows
+	11, // 93: voltha.VolthaService.UpdateLogicalDeviceFlowTable:output_type -> google.protobuf.Empty
+	11, // 94: voltha.VolthaService.UpdateLogicalDeviceMeterTable:output_type -> google.protobuf.Empty
+	38, // 95: voltha.VolthaService.ListLogicalDeviceMeters:output_type -> openflow_13.Meters
+	39, // 96: voltha.VolthaService.ListLogicalDeviceFlowGroups:output_type -> openflow_13.FlowGroups
+	11, // 97: voltha.VolthaService.UpdateLogicalDeviceFlowGroupTable:output_type -> google.protobuf.Empty
+	40, // 98: voltha.VolthaService.ListDevices:output_type -> device.Devices
+	17, // 99: voltha.VolthaService.ListDeviceIds:output_type -> common.IDs
+	11, // 100: voltha.VolthaService.ReconcileDevices:output_type -> google.protobuf.Empty
+	6,  // 101: voltha.VolthaService.GetDevice:output_type -> device.Device
+	6,  // 102: voltha.VolthaService.CreateDevice:output_type -> device.Device
+	11, // 103: voltha.VolthaService.EnableDevice:output_type -> google.protobuf.Empty
+	11, // 104: voltha.VolthaService.DisableDevice:output_type -> google.protobuf.Empty
+	11, // 105: voltha.VolthaService.RebootDevice:output_type -> google.protobuf.Empty
+	11, // 106: voltha.VolthaService.DeleteDevice:output_type -> google.protobuf.Empty
+	11, // 107: voltha.VolthaService.ForceDeleteDevice:output_type -> google.protobuf.Empty
+	41, // 108: voltha.VolthaService.DownloadImage:output_type -> common.OperationResp
+	18, // 109: voltha.VolthaService.GetImageDownloadStatus:output_type -> device.ImageDownload
+	18, // 110: voltha.VolthaService.GetImageDownload:output_type -> device.ImageDownload
+	42, // 111: voltha.VolthaService.ListImageDownloads:output_type -> device.ImageDownloads
+	41, // 112: voltha.VolthaService.CancelImageDownload:output_type -> common.OperationResp
+	41, // 113: voltha.VolthaService.ActivateImageUpdate:output_type -> common.OperationResp
+	41, // 114: voltha.VolthaService.RevertImageUpdate:output_type -> common.OperationResp
+	43, // 115: voltha.VolthaService.DownloadImageToDevice:output_type -> device.DeviceImageResponse
+	43, // 116: voltha.VolthaService.GetImageStatus:output_type -> device.DeviceImageResponse
+	43, // 117: voltha.VolthaService.AbortImageUpgradeToDevice:output_type -> device.DeviceImageResponse
+	44, // 118: voltha.VolthaService.GetOnuImages:output_type -> device.OnuImages
+	43, // 119: voltha.VolthaService.ActivateImage:output_type -> device.DeviceImageResponse
+	43, // 120: voltha.VolthaService.CommitImage:output_type -> device.DeviceImageResponse
+	45, // 121: voltha.VolthaService.ListDevicePorts:output_type -> device.Ports
+	21, // 122: voltha.VolthaService.ListDevicePmConfigs:output_type -> device.PmConfigs
+	11, // 123: voltha.VolthaService.UpdateDevicePmConfigs:output_type -> google.protobuf.Empty
+	37, // 124: voltha.VolthaService.ListDeviceFlows:output_type -> openflow_13.Flows
+	39, // 125: voltha.VolthaService.ListDeviceFlowGroups:output_type -> openflow_13.FlowGroups
+	46, // 126: voltha.VolthaService.ListDeviceTypes:output_type -> device.DeviceTypes
+	7,  // 127: voltha.VolthaService.GetDeviceType:output_type -> device.DeviceType
+	11, // 128: voltha.VolthaService.StreamPacketsOut:output_type -> google.protobuf.Empty
+	47, // 129: voltha.VolthaService.ReceivePacketsIn:output_type -> openflow_13.PacketIn
+	48, // 130: voltha.VolthaService.ReceiveChangeEvents:output_type -> openflow_13.ChangeEvent
+	8,  // 131: voltha.VolthaService.CreateEventFilter:output_type -> event.EventFilter
+	49, // 132: voltha.VolthaService.GetEventFilter:output_type -> event.EventFilters
+	8,  // 133: voltha.VolthaService.UpdateEventFilter:output_type -> event.EventFilter
+	11, // 134: voltha.VolthaService.DeleteEventFilter:output_type -> google.protobuf.Empty
+	49, // 135: voltha.VolthaService.ListEventFilters:output_type -> event.EventFilters
+	50, // 136: voltha.VolthaService.GetImages:output_type -> device.Images
+	51, // 137: voltha.VolthaService.SelfTest:output_type -> device.SelfTestResponse
+	9,  // 138: voltha.VolthaService.GetMibDeviceData:output_type -> omci.MibDeviceData
+	10, // 139: voltha.VolthaService.GetAlarmDeviceData:output_type -> omci.AlarmDeviceData
+	41, // 140: voltha.VolthaService.SimulateAlarm:output_type -> common.OperationResp
+	11, // 141: voltha.VolthaService.EnablePort:output_type -> google.protobuf.Empty
+	11, // 142: voltha.VolthaService.DisablePort:output_type -> google.protobuf.Empty
+	52, // 143: voltha.VolthaService.GetExtValue:output_type -> extension.ReturnValues
+	11, // 144: voltha.VolthaService.SetExtValue:output_type -> google.protobuf.Empty
+	53, // 145: voltha.VolthaService.StartOmciTestAction:output_type -> omci.TestResponse
+	11, // 146: voltha.VolthaService.PutVoipSystemProfile:output_type -> google.protobuf.Empty
+	11, // 147: voltha.VolthaService.DeleteVoipSystemProfile:output_type -> google.protobuf.Empty
+	11, // 148: voltha.VolthaService.PutVoipUserProfile:output_type -> google.protobuf.Empty
+	11, // 149: voltha.VolthaService.DeleteVoipUserProfile:output_type -> google.protobuf.Empty
+	11, // 150: voltha.VolthaService.DisableOnuDevice:output_type -> google.protobuf.Empty
+	11, // 151: voltha.VolthaService.EnableOnuDevice:output_type -> google.protobuf.Empty
+	11, // 152: voltha.VolthaService.DisableOnuSerialNumber:output_type -> google.protobuf.Empty
+	11, // 153: voltha.VolthaService.EnableOnuSerialNumber:output_type -> google.protobuf.Empty
+	11, // 154: voltha.VolthaService.UpdateDevice:output_type -> google.protobuf.Empty
+	82, // [82:155] is the sub-list for method output_type
+	9,  // [9:82] is the sub-list for method input_type
+	9,  // [9:9] is the sub-list for extension type_name
+	9,  // [9:9] is the sub-list for extension extendee
+	0,  // [0:9] is the sub-list for field type_name
 }
 
-func (c *volthaServiceClient) GetVoltha(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*Voltha, error) {
-	out := new(Voltha)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/GetVoltha", in, out, opts...)
-	if err != nil {
-		return nil, err
+func init() { file_voltha_protos_voltha_proto_init() }
+func file_voltha_protos_voltha_proto_init() {
+	if File_voltha_protos_voltha_proto != nil {
+		return
 	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) ListCoreInstances(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*CoreInstances, error) {
-	out := new(CoreInstances)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/ListCoreInstances", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) GetCoreInstance(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*CoreInstance, error) {
-	out := new(CoreInstance)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/GetCoreInstance", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) ListAdapters(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*Adapters, error) {
-	out := new(Adapters)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/ListAdapters", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) ListLogicalDevices(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*LogicalDevices, error) {
-	out := new(LogicalDevices)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/ListLogicalDevices", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) GetLogicalDevice(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*LogicalDevice, error) {
-	out := new(LogicalDevice)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/GetLogicalDevice", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) ListLogicalDevicePorts(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*LogicalPorts, error) {
-	out := new(LogicalPorts)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/ListLogicalDevicePorts", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) GetLogicalDevicePort(ctx context.Context, in *LogicalPortId, opts ...grpc.CallOption) (*LogicalPort, error) {
-	out := new(LogicalPort)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/GetLogicalDevicePort", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) EnableLogicalDevicePort(ctx context.Context, in *LogicalPortId, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/EnableLogicalDevicePort", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) DisableLogicalDevicePort(ctx context.Context, in *LogicalPortId, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/DisableLogicalDevicePort", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) ListLogicalDeviceFlows(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*openflow_13.Flows, error) {
-	out := new(openflow_13.Flows)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/ListLogicalDeviceFlows", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) UpdateLogicalDeviceFlowTable(ctx context.Context, in *openflow_13.FlowTableUpdate, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/UpdateLogicalDeviceFlowTable", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) UpdateLogicalDeviceMeterTable(ctx context.Context, in *openflow_13.MeterModUpdate, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/UpdateLogicalDeviceMeterTable", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) ListLogicalDeviceMeters(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*openflow_13.Meters, error) {
-	out := new(openflow_13.Meters)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/ListLogicalDeviceMeters", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) ListLogicalDeviceFlowGroups(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*openflow_13.FlowGroups, error) {
-	out := new(openflow_13.FlowGroups)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/ListLogicalDeviceFlowGroups", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) UpdateLogicalDeviceFlowGroupTable(ctx context.Context, in *openflow_13.FlowGroupTableUpdate, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/UpdateLogicalDeviceFlowGroupTable", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) ListDevices(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*Devices, error) {
-	out := new(Devices)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/ListDevices", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) ListDeviceIds(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*common.IDs, error) {
-	out := new(common.IDs)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/ListDeviceIds", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) ReconcileDevices(ctx context.Context, in *common.IDs, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/ReconcileDevices", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) GetDevice(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*Device, error) {
-	out := new(Device)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/GetDevice", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) CreateDevice(ctx context.Context, in *Device, opts ...grpc.CallOption) (*Device, error) {
-	out := new(Device)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/CreateDevice", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) EnableDevice(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/EnableDevice", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) DisableDevice(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/DisableDevice", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) RebootDevice(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/RebootDevice", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) DeleteDevice(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/DeleteDevice", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	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
-}
-
-// Deprecated: Do not use.
-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...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-// Deprecated: Do not use.
-func (c *volthaServiceClient) GetImageDownloadStatus(ctx context.Context, in *ImageDownload, opts ...grpc.CallOption) (*ImageDownload, error) {
-	out := new(ImageDownload)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/GetImageDownloadStatus", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-// Deprecated: Do not use.
-func (c *volthaServiceClient) GetImageDownload(ctx context.Context, in *ImageDownload, opts ...grpc.CallOption) (*ImageDownload, error) {
-	out := new(ImageDownload)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/GetImageDownload", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-// Deprecated: Do not use.
-func (c *volthaServiceClient) ListImageDownloads(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*ImageDownloads, error) {
-	out := new(ImageDownloads)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/ListImageDownloads", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-// Deprecated: Do not use.
-func (c *volthaServiceClient) CancelImageDownload(ctx context.Context, in *ImageDownload, opts ...grpc.CallOption) (*common.OperationResp, error) {
-	out := new(common.OperationResp)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/CancelImageDownload", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-// Deprecated: Do not use.
-func (c *volthaServiceClient) ActivateImageUpdate(ctx context.Context, in *ImageDownload, opts ...grpc.CallOption) (*common.OperationResp, error) {
-	out := new(common.OperationResp)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/ActivateImageUpdate", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-// Deprecated: Do not use.
-func (c *volthaServiceClient) RevertImageUpdate(ctx context.Context, in *ImageDownload, opts ...grpc.CallOption) (*common.OperationResp, error) {
-	out := new(common.OperationResp)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/RevertImageUpdate", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) DownloadImageToDevice(ctx context.Context, in *DeviceImageDownloadRequest, opts ...grpc.CallOption) (*DeviceImageResponse, error) {
-	out := new(DeviceImageResponse)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/DownloadImageToDevice", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) GetImageStatus(ctx context.Context, in *DeviceImageRequest, opts ...grpc.CallOption) (*DeviceImageResponse, error) {
-	out := new(DeviceImageResponse)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/GetImageStatus", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) AbortImageUpgradeToDevice(ctx context.Context, in *DeviceImageRequest, opts ...grpc.CallOption) (*DeviceImageResponse, error) {
-	out := new(DeviceImageResponse)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/AbortImageUpgradeToDevice", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) GetOnuImages(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*OnuImages, error) {
-	out := new(OnuImages)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/GetOnuImages", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) ActivateImage(ctx context.Context, in *DeviceImageRequest, opts ...grpc.CallOption) (*DeviceImageResponse, error) {
-	out := new(DeviceImageResponse)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/ActivateImage", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) CommitImage(ctx context.Context, in *DeviceImageRequest, opts ...grpc.CallOption) (*DeviceImageResponse, error) {
-	out := new(DeviceImageResponse)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/CommitImage", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) ListDevicePorts(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*Ports, error) {
-	out := new(Ports)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/ListDevicePorts", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) ListDevicePmConfigs(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*PmConfigs, error) {
-	out := new(PmConfigs)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/ListDevicePmConfigs", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) UpdateDevicePmConfigs(ctx context.Context, in *PmConfigs, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/UpdateDevicePmConfigs", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) ListDeviceFlows(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*openflow_13.Flows, error) {
-	out := new(openflow_13.Flows)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/ListDeviceFlows", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) ListDeviceFlowGroups(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*openflow_13.FlowGroups, error) {
-	out := new(openflow_13.FlowGroups)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/ListDeviceFlowGroups", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) ListDeviceTypes(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*DeviceTypes, error) {
-	out := new(DeviceTypes)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/ListDeviceTypes", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) GetDeviceType(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*DeviceType, error) {
-	out := new(DeviceType)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/GetDeviceType", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) StreamPacketsOut(ctx context.Context, opts ...grpc.CallOption) (VolthaService_StreamPacketsOutClient, error) {
-	stream, err := c.cc.NewStream(ctx, &_VolthaService_serviceDesc.Streams[0], "/voltha.VolthaService/StreamPacketsOut", opts...)
-	if err != nil {
-		return nil, err
-	}
-	x := &volthaServiceStreamPacketsOutClient{stream}
-	return x, nil
-}
-
-type VolthaService_StreamPacketsOutClient interface {
-	Send(*openflow_13.PacketOut) error
-	CloseAndRecv() (*empty.Empty, error)
-	grpc.ClientStream
-}
-
-type volthaServiceStreamPacketsOutClient struct {
-	grpc.ClientStream
-}
-
-func (x *volthaServiceStreamPacketsOutClient) Send(m *openflow_13.PacketOut) error {
-	return x.ClientStream.SendMsg(m)
-}
-
-func (x *volthaServiceStreamPacketsOutClient) CloseAndRecv() (*empty.Empty, error) {
-	if err := x.ClientStream.CloseSend(); err != nil {
-		return nil, err
-	}
-	m := new(empty.Empty)
-	if err := x.ClientStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
-
-func (c *volthaServiceClient) ReceivePacketsIn(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (VolthaService_ReceivePacketsInClient, error) {
-	stream, err := c.cc.NewStream(ctx, &_VolthaService_serviceDesc.Streams[1], "/voltha.VolthaService/ReceivePacketsIn", opts...)
-	if err != nil {
-		return nil, err
-	}
-	x := &volthaServiceReceivePacketsInClient{stream}
-	if err := x.ClientStream.SendMsg(in); err != nil {
-		return nil, err
-	}
-	if err := x.ClientStream.CloseSend(); err != nil {
-		return nil, err
-	}
-	return x, nil
-}
-
-type VolthaService_ReceivePacketsInClient interface {
-	Recv() (*openflow_13.PacketIn, error)
-	grpc.ClientStream
-}
-
-type volthaServiceReceivePacketsInClient struct {
-	grpc.ClientStream
-}
-
-func (x *volthaServiceReceivePacketsInClient) Recv() (*openflow_13.PacketIn, error) {
-	m := new(openflow_13.PacketIn)
-	if err := x.ClientStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
-
-func (c *volthaServiceClient) ReceiveChangeEvents(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (VolthaService_ReceiveChangeEventsClient, error) {
-	stream, err := c.cc.NewStream(ctx, &_VolthaService_serviceDesc.Streams[2], "/voltha.VolthaService/ReceiveChangeEvents", opts...)
-	if err != nil {
-		return nil, err
-	}
-	x := &volthaServiceReceiveChangeEventsClient{stream}
-	if err := x.ClientStream.SendMsg(in); err != nil {
-		return nil, err
-	}
-	if err := x.ClientStream.CloseSend(); err != nil {
-		return nil, err
-	}
-	return x, nil
-}
-
-type VolthaService_ReceiveChangeEventsClient interface {
-	Recv() (*openflow_13.ChangeEvent, error)
-	grpc.ClientStream
-}
-
-type volthaServiceReceiveChangeEventsClient struct {
-	grpc.ClientStream
-}
-
-func (x *volthaServiceReceiveChangeEventsClient) Recv() (*openflow_13.ChangeEvent, error) {
-	m := new(openflow_13.ChangeEvent)
-	if err := x.ClientStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
-
-func (c *volthaServiceClient) CreateEventFilter(ctx context.Context, in *EventFilter, opts ...grpc.CallOption) (*EventFilter, error) {
-	out := new(EventFilter)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/CreateEventFilter", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) GetEventFilter(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*EventFilters, error) {
-	out := new(EventFilters)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/GetEventFilter", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) UpdateEventFilter(ctx context.Context, in *EventFilter, opts ...grpc.CallOption) (*EventFilter, error) {
-	out := new(EventFilter)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/UpdateEventFilter", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) DeleteEventFilter(ctx context.Context, in *EventFilter, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/DeleteEventFilter", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) ListEventFilters(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*EventFilters, error) {
-	out := new(EventFilters)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/ListEventFilters", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) GetImages(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*Images, error) {
-	out := new(Images)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/GetImages", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) SelfTest(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*SelfTestResponse, error) {
-	out := new(SelfTestResponse)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/SelfTest", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) GetMibDeviceData(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*omci.MibDeviceData, error) {
-	out := new(omci.MibDeviceData)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/GetMibDeviceData", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) GetAlarmDeviceData(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*omci.AlarmDeviceData, error) {
-	out := new(omci.AlarmDeviceData)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/GetAlarmDeviceData", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) SimulateAlarm(ctx context.Context, in *SimulateAlarmRequest, opts ...grpc.CallOption) (*common.OperationResp, error) {
-	out := new(common.OperationResp)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/SimulateAlarm", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) EnablePort(ctx context.Context, in *Port, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/EnablePort", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) DisablePort(ctx context.Context, in *Port, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/DisablePort", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) GetExtValue(ctx context.Context, in *extension.ValueSpecifier, opts ...grpc.CallOption) (*extension.ReturnValues, error) {
-	out := new(extension.ReturnValues)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/GetExtValue", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) SetExtValue(ctx context.Context, in *extension.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 *omci.OmciTestRequest, opts ...grpc.CallOption) (*omci.TestResponse, error) {
-	out := new(omci.TestResponse)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/StartOmciTestAction", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) PutVoipSystemProfile(ctx context.Context, in *voip_system_profile.VoipSystemProfileRequest, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/PutVoipSystemProfile", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) DeleteVoipSystemProfile(ctx context.Context, in *common.Key, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/DeleteVoipSystemProfile", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) PutVoipUserProfile(ctx context.Context, in *voip_user_profile.VoipUserProfileRequest, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/PutVoipUserProfile", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) DeleteVoipUserProfile(ctx context.Context, in *common.Key, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/DeleteVoipUserProfile", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) DisableOnuDevice(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/DisableOnuDevice", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) EnableOnuDevice(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/EnableOnuDevice", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) DisableOnuSerialNumber(ctx context.Context, in *OnuSerialNumberOnOLTPon, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/DisableOnuSerialNumber", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) EnableOnuSerialNumber(ctx context.Context, in *OnuSerialNumberOnOLTPon, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/EnableOnuSerialNumber", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *volthaServiceClient) UpdateDevice(ctx context.Context, in *UpdateDevice, opts ...grpc.CallOption) (*empty.Empty, error) {
-	out := new(empty.Empty)
-	err := c.cc.Invoke(ctx, "/voltha.VolthaService/UpdateDevice", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-// VolthaServiceServer is the server API for VolthaService service.
-type VolthaServiceServer interface {
-	// Get high level information on the Voltha cluster
-	GetVoltha(context.Context, *empty.Empty) (*Voltha, error)
-	// List all Voltha cluster core instances
-	ListCoreInstances(context.Context, *empty.Empty) (*CoreInstances, error)
-	// Get details on a Voltha cluster instance
-	GetCoreInstance(context.Context, *common.ID) (*CoreInstance, error)
-	// List all active adapters (plugins) in the Voltha cluster
-	ListAdapters(context.Context, *empty.Empty) (*Adapters, error)
-	// List all logical devices managed by the Voltha cluster
-	ListLogicalDevices(context.Context, *empty.Empty) (*LogicalDevices, error)
-	// Get additional information on a given logical device
-	GetLogicalDevice(context.Context, *common.ID) (*LogicalDevice, error)
-	// List ports of a logical device
-	ListLogicalDevicePorts(context.Context, *common.ID) (*LogicalPorts, error)
-	// Gets a logical device port
-	GetLogicalDevicePort(context.Context, *LogicalPortId) (*LogicalPort, error)
-	// Enables a logical device port
-	EnableLogicalDevicePort(context.Context, *LogicalPortId) (*empty.Empty, error)
-	// Disables a logical device port
-	DisableLogicalDevicePort(context.Context, *LogicalPortId) (*empty.Empty, error)
-	// List all flows of a logical device
-	ListLogicalDeviceFlows(context.Context, *common.ID) (*openflow_13.Flows, error)
-	// Update flow table for logical device
-	UpdateLogicalDeviceFlowTable(context.Context, *openflow_13.FlowTableUpdate) (*empty.Empty, error)
-	// Update meter table for logical device
-	UpdateLogicalDeviceMeterTable(context.Context, *openflow_13.MeterModUpdate) (*empty.Empty, error)
-	// List all meters of a logical device
-	ListLogicalDeviceMeters(context.Context, *common.ID) (*openflow_13.Meters, error)
-	// List all flow groups of a logical device
-	ListLogicalDeviceFlowGroups(context.Context, *common.ID) (*openflow_13.FlowGroups, error)
-	// Update group table for device
-	UpdateLogicalDeviceFlowGroupTable(context.Context, *openflow_13.FlowGroupTableUpdate) (*empty.Empty, error)
-	// List all physical devices controlled by the Voltha cluster
-	ListDevices(context.Context, *empty.Empty) (*Devices, error)
-	// List all physical devices IDs controlled by the Voltha cluster
-	ListDeviceIds(context.Context, *empty.Empty) (*common.IDs, error)
-	// Request to a voltha Core to reconcile a set of devices based on their IDs
-	ReconcileDevices(context.Context, *common.IDs) (*empty.Empty, error)
-	// Get more information on a given physical device
-	GetDevice(context.Context, *common.ID) (*Device, error)
-	// Pre-provision a new physical device
-	CreateDevice(context.Context, *Device) (*Device, error)
-	// Enable a device.  If the device was in pre-provisioned state then it
-	// will transition to ENABLED state.  If it was is DISABLED state then it
-	// will transition to ENABLED state as well.
-	EnableDevice(context.Context, *common.ID) (*empty.Empty, error)
-	// Disable a device
-	DisableDevice(context.Context, *common.ID) (*empty.Empty, error)
-	// Reboot a device
-	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.
-	DownloadImage(context.Context, *ImageDownload) (*common.OperationResp, error)
-	// Get image download status on a device
-	// The request retrieves progress on device and updates db record
-	// Deprecated in voltha 2.8, will be removed
-	GetImageDownloadStatus(context.Context, *ImageDownload) (*ImageDownload, error)
-	// Get image download db record
-	// Deprecated in voltha 2.8, will be removed
-	GetImageDownload(context.Context, *ImageDownload) (*ImageDownload, error)
-	// List image download db records for a given device
-	// Deprecated in voltha 2.8, will be removed
-	ListImageDownloads(context.Context, *common.ID) (*ImageDownloads, error)
-	// Cancel an existing image download process on a device
-	// Deprecated in voltha 2.8, will be removed
-	CancelImageDownload(context.Context, *ImageDownload) (*common.OperationResp, error)
-	// Activate the specified image at a standby partition
-	// to active partition.
-	// Depending on the device implementation, this call
-	// may or may not cause device reboot.
-	// If no reboot, then a reboot is required to make the
-	// activated image running on device
-	// Note that the call is expected to be non-blocking.
-	// Deprecated in voltha 2.8, will be removed
-	ActivateImageUpdate(context.Context, *ImageDownload) (*common.OperationResp, error)
-	// Revert the specified image at standby partition
-	// to active partition, and revert to previous image
-	// Depending on the device implementation, this call
-	// may or may not cause device reboot.
-	// If no reboot, then a reboot is required to make the
-	// previous image running on device
-	// Note that the call is expected to be non-blocking.
-	// Deprecated in voltha 2.8, will be removed
-	RevertImageUpdate(context.Context, *ImageDownload) (*common.OperationResp, error)
-	// Downloads a certain image to the standby partition of the devices
-	// Note that the call is expected to be non-blocking.
-	DownloadImageToDevice(context.Context, *DeviceImageDownloadRequest) (*DeviceImageResponse, error)
-	// Get image status on a number of devices devices
-	// Polled from northbound systems to get state of download/activate/commit
-	GetImageStatus(context.Context, *DeviceImageRequest) (*DeviceImageResponse, error)
-	// Aborts the upgrade of an image on a device
-	// To be used carefully, stops any further operations for the Image on the given devices
-	// Might also stop if possible existing work, but no guarantees are given,
-	// depends on implementation and procedure status.
-	AbortImageUpgradeToDevice(context.Context, *DeviceImageRequest) (*DeviceImageResponse, error)
-	// Get Both Active and Standby image for a given device
-	GetOnuImages(context.Context, *common.ID) (*OnuImages, error)
-	// Activate the specified image from a standby partition
-	// to active partition.
-	// Depending on the device implementation, this call
-	// may or may not cause device reboot.
-	// If no reboot, then a reboot is required to make the
-	// activated image running on device
-	// Note that the call is expected to be non-blocking.
-	ActivateImage(context.Context, *DeviceImageRequest) (*DeviceImageResponse, error)
-	// Commit the specified image to be default.
-	// Depending on the device implementation, this call
-	// may or may not cause device reboot.
-	// If no reboot, then a reboot is required to make the
-	// activated image running on device upon next reboot
-	// Note that the call is expected to be non-blocking.
-	CommitImage(context.Context, *DeviceImageRequest) (*DeviceImageResponse, error)
-	// List ports of a device
-	ListDevicePorts(context.Context, *common.ID) (*Ports, error)
-	// List pm config of a device
-	ListDevicePmConfigs(context.Context, *common.ID) (*PmConfigs, error)
-	// Update the pm config of a device
-	UpdateDevicePmConfigs(context.Context, *PmConfigs) (*empty.Empty, error)
-	// List all flows of a device
-	ListDeviceFlows(context.Context, *common.ID) (*openflow_13.Flows, error)
-	// List all flow groups of a device
-	ListDeviceFlowGroups(context.Context, *common.ID) (*openflow_13.FlowGroups, error)
-	// List device types known to Voltha
-	ListDeviceTypes(context.Context, *empty.Empty) (*DeviceTypes, error)
-	// Get additional information on a device type
-	GetDeviceType(context.Context, *common.ID) (*DeviceType, error)
-	// Stream control packets to the dataplane
-	StreamPacketsOut(VolthaService_StreamPacketsOutServer) error
-	// Receive control packet stream
-	ReceivePacketsIn(*empty.Empty, VolthaService_ReceivePacketsInServer) error
-	ReceiveChangeEvents(*empty.Empty, VolthaService_ReceiveChangeEventsServer) error
-	CreateEventFilter(context.Context, *EventFilter) (*EventFilter, error)
-	// Get all filters present for a device
-	GetEventFilter(context.Context, *common.ID) (*EventFilters, error)
-	UpdateEventFilter(context.Context, *EventFilter) (*EventFilter, error)
-	DeleteEventFilter(context.Context, *EventFilter) (*empty.Empty, error)
-	// Get all the filters present
-	ListEventFilters(context.Context, *empty.Empty) (*EventFilters, error)
-	GetImages(context.Context, *common.ID) (*Images, error)
-	SelfTest(context.Context, *common.ID) (*SelfTestResponse, error)
-	// OpenOMCI MIB information
-	GetMibDeviceData(context.Context, *common.ID) (*omci.MibDeviceData, error)
-	// OpenOMCI ALARM information
-	GetAlarmDeviceData(context.Context, *common.ID) (*omci.AlarmDeviceData, error)
-	// Simulate an Alarm
-	SimulateAlarm(context.Context, *SimulateAlarmRequest) (*common.OperationResp, error)
-	EnablePort(context.Context, *Port) (*empty.Empty, error)
-	DisablePort(context.Context, *Port) (*empty.Empty, error)
-	GetExtValue(context.Context, *extension.ValueSpecifier) (*extension.ReturnValues, error)
-	SetExtValue(context.Context, *extension.ValueSet) (*empty.Empty, error)
-	// omci start and stop cli implementation
-	StartOmciTestAction(context.Context, *omci.OmciTestRequest) (*omci.TestResponse, error)
-	// Saves or updates system wide configuration into voltha KV
-	PutVoipSystemProfile(context.Context, *voip_system_profile.VoipSystemProfileRequest) (*empty.Empty, error)
-	// Deletes the given profile from voltha KV
-	DeleteVoipSystemProfile(context.Context, *common.Key) (*empty.Empty, error)
-	// Saves or updates a profile (VOIP) into voltha KV
-	PutVoipUserProfile(context.Context, *voip_user_profile.VoipUserProfileRequest) (*empty.Empty, error)
-	// Deletes the given profile from voltha KV
-	DeleteVoipUserProfile(context.Context, *common.Key) (*empty.Empty, error)
-	// Disables the ONU, stops it from participating in the ranging process. different from DisableDevice
-	DisableOnuDevice(context.Context, *common.ID) (*empty.Empty, error)
-	// Enables the ONU at the PLOAM , enables the ONU to participate in the ranging process. different from EnableDevice
-	EnableOnuDevice(context.Context, *common.ID) (*empty.Empty, error)
-	// Disables the ONU at the PLOAM , different from DisableDevice. This would be used if the Device is not present in the VOLTHA
-	DisableOnuSerialNumber(context.Context, *OnuSerialNumberOnOLTPon) (*empty.Empty, error)
-	// Disables the ONU at the PLOAM , different from EnableDevice. This would be used if the Device is not present in the VOLTHA
-	EnableOnuSerialNumber(context.Context, *OnuSerialNumberOnOLTPon) (*empty.Empty, error)
-	// Update the Device configuration, for now only ip address updation is supported
-	UpdateDevice(context.Context, *UpdateDevice) (*empty.Empty, error)
-}
-
-// UnimplementedVolthaServiceServer can be embedded to have forward compatible implementations.
-type UnimplementedVolthaServiceServer struct {
-}
-
-func (*UnimplementedVolthaServiceServer) GetVoltha(ctx context.Context, req *empty.Empty) (*Voltha, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetVoltha not implemented")
-}
-func (*UnimplementedVolthaServiceServer) ListCoreInstances(ctx context.Context, req *empty.Empty) (*CoreInstances, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method ListCoreInstances not implemented")
-}
-func (*UnimplementedVolthaServiceServer) GetCoreInstance(ctx context.Context, req *common.ID) (*CoreInstance, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetCoreInstance not implemented")
-}
-func (*UnimplementedVolthaServiceServer) ListAdapters(ctx context.Context, req *empty.Empty) (*Adapters, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method ListAdapters not implemented")
-}
-func (*UnimplementedVolthaServiceServer) ListLogicalDevices(ctx context.Context, req *empty.Empty) (*LogicalDevices, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method ListLogicalDevices not implemented")
-}
-func (*UnimplementedVolthaServiceServer) GetLogicalDevice(ctx context.Context, req *common.ID) (*LogicalDevice, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetLogicalDevice not implemented")
-}
-func (*UnimplementedVolthaServiceServer) ListLogicalDevicePorts(ctx context.Context, req *common.ID) (*LogicalPorts, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method ListLogicalDevicePorts not implemented")
-}
-func (*UnimplementedVolthaServiceServer) GetLogicalDevicePort(ctx context.Context, req *LogicalPortId) (*LogicalPort, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetLogicalDevicePort not implemented")
-}
-func (*UnimplementedVolthaServiceServer) EnableLogicalDevicePort(ctx context.Context, req *LogicalPortId) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method EnableLogicalDevicePort not implemented")
-}
-func (*UnimplementedVolthaServiceServer) DisableLogicalDevicePort(ctx context.Context, req *LogicalPortId) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method DisableLogicalDevicePort not implemented")
-}
-func (*UnimplementedVolthaServiceServer) ListLogicalDeviceFlows(ctx context.Context, req *common.ID) (*openflow_13.Flows, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method ListLogicalDeviceFlows not implemented")
-}
-func (*UnimplementedVolthaServiceServer) UpdateLogicalDeviceFlowTable(ctx context.Context, req *openflow_13.FlowTableUpdate) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method UpdateLogicalDeviceFlowTable not implemented")
-}
-func (*UnimplementedVolthaServiceServer) UpdateLogicalDeviceMeterTable(ctx context.Context, req *openflow_13.MeterModUpdate) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method UpdateLogicalDeviceMeterTable not implemented")
-}
-func (*UnimplementedVolthaServiceServer) ListLogicalDeviceMeters(ctx context.Context, req *common.ID) (*openflow_13.Meters, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method ListLogicalDeviceMeters not implemented")
-}
-func (*UnimplementedVolthaServiceServer) ListLogicalDeviceFlowGroups(ctx context.Context, req *common.ID) (*openflow_13.FlowGroups, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method ListLogicalDeviceFlowGroups not implemented")
-}
-func (*UnimplementedVolthaServiceServer) UpdateLogicalDeviceFlowGroupTable(ctx context.Context, req *openflow_13.FlowGroupTableUpdate) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method UpdateLogicalDeviceFlowGroupTable not implemented")
-}
-func (*UnimplementedVolthaServiceServer) ListDevices(ctx context.Context, req *empty.Empty) (*Devices, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method ListDevices not implemented")
-}
-func (*UnimplementedVolthaServiceServer) ListDeviceIds(ctx context.Context, req *empty.Empty) (*common.IDs, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method ListDeviceIds not implemented")
-}
-func (*UnimplementedVolthaServiceServer) ReconcileDevices(ctx context.Context, req *common.IDs) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method ReconcileDevices not implemented")
-}
-func (*UnimplementedVolthaServiceServer) GetDevice(ctx context.Context, req *common.ID) (*Device, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetDevice not implemented")
-}
-func (*UnimplementedVolthaServiceServer) CreateDevice(ctx context.Context, req *Device) (*Device, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method CreateDevice not implemented")
-}
-func (*UnimplementedVolthaServiceServer) EnableDevice(ctx context.Context, req *common.ID) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method EnableDevice not implemented")
-}
-func (*UnimplementedVolthaServiceServer) DisableDevice(ctx context.Context, req *common.ID) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method DisableDevice not implemented")
-}
-func (*UnimplementedVolthaServiceServer) RebootDevice(ctx context.Context, req *common.ID) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method RebootDevice not implemented")
-}
-func (*UnimplementedVolthaServiceServer) DeleteDevice(ctx context.Context, req *common.ID) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method DeleteDevice not implemented")
-}
-func (*UnimplementedVolthaServiceServer) ForceDeleteDevice(ctx context.Context, req *common.ID) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method ForceDeleteDevice not implemented")
-}
-func (*UnimplementedVolthaServiceServer) DownloadImage(ctx context.Context, req *ImageDownload) (*common.OperationResp, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method DownloadImage not implemented")
-}
-func (*UnimplementedVolthaServiceServer) GetImageDownloadStatus(ctx context.Context, req *ImageDownload) (*ImageDownload, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetImageDownloadStatus not implemented")
-}
-func (*UnimplementedVolthaServiceServer) GetImageDownload(ctx context.Context, req *ImageDownload) (*ImageDownload, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetImageDownload not implemented")
-}
-func (*UnimplementedVolthaServiceServer) ListImageDownloads(ctx context.Context, req *common.ID) (*ImageDownloads, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method ListImageDownloads not implemented")
-}
-func (*UnimplementedVolthaServiceServer) CancelImageDownload(ctx context.Context, req *ImageDownload) (*common.OperationResp, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method CancelImageDownload not implemented")
-}
-func (*UnimplementedVolthaServiceServer) ActivateImageUpdate(ctx context.Context, req *ImageDownload) (*common.OperationResp, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method ActivateImageUpdate not implemented")
-}
-func (*UnimplementedVolthaServiceServer) RevertImageUpdate(ctx context.Context, req *ImageDownload) (*common.OperationResp, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method RevertImageUpdate not implemented")
-}
-func (*UnimplementedVolthaServiceServer) DownloadImageToDevice(ctx context.Context, req *DeviceImageDownloadRequest) (*DeviceImageResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method DownloadImageToDevice not implemented")
-}
-func (*UnimplementedVolthaServiceServer) GetImageStatus(ctx context.Context, req *DeviceImageRequest) (*DeviceImageResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetImageStatus not implemented")
-}
-func (*UnimplementedVolthaServiceServer) AbortImageUpgradeToDevice(ctx context.Context, req *DeviceImageRequest) (*DeviceImageResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method AbortImageUpgradeToDevice not implemented")
-}
-func (*UnimplementedVolthaServiceServer) GetOnuImages(ctx context.Context, req *common.ID) (*OnuImages, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetOnuImages not implemented")
-}
-func (*UnimplementedVolthaServiceServer) ActivateImage(ctx context.Context, req *DeviceImageRequest) (*DeviceImageResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method ActivateImage not implemented")
-}
-func (*UnimplementedVolthaServiceServer) CommitImage(ctx context.Context, req *DeviceImageRequest) (*DeviceImageResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method CommitImage not implemented")
-}
-func (*UnimplementedVolthaServiceServer) ListDevicePorts(ctx context.Context, req *common.ID) (*Ports, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method ListDevicePorts not implemented")
-}
-func (*UnimplementedVolthaServiceServer) ListDevicePmConfigs(ctx context.Context, req *common.ID) (*PmConfigs, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method ListDevicePmConfigs not implemented")
-}
-func (*UnimplementedVolthaServiceServer) UpdateDevicePmConfigs(ctx context.Context, req *PmConfigs) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method UpdateDevicePmConfigs not implemented")
-}
-func (*UnimplementedVolthaServiceServer) ListDeviceFlows(ctx context.Context, req *common.ID) (*openflow_13.Flows, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method ListDeviceFlows not implemented")
-}
-func (*UnimplementedVolthaServiceServer) ListDeviceFlowGroups(ctx context.Context, req *common.ID) (*openflow_13.FlowGroups, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method ListDeviceFlowGroups not implemented")
-}
-func (*UnimplementedVolthaServiceServer) ListDeviceTypes(ctx context.Context, req *empty.Empty) (*DeviceTypes, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method ListDeviceTypes not implemented")
-}
-func (*UnimplementedVolthaServiceServer) GetDeviceType(ctx context.Context, req *common.ID) (*DeviceType, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetDeviceType not implemented")
-}
-func (*UnimplementedVolthaServiceServer) StreamPacketsOut(srv VolthaService_StreamPacketsOutServer) error {
-	return status.Errorf(codes.Unimplemented, "method StreamPacketsOut not implemented")
-}
-func (*UnimplementedVolthaServiceServer) ReceivePacketsIn(req *empty.Empty, srv VolthaService_ReceivePacketsInServer) error {
-	return status.Errorf(codes.Unimplemented, "method ReceivePacketsIn not implemented")
-}
-func (*UnimplementedVolthaServiceServer) ReceiveChangeEvents(req *empty.Empty, srv VolthaService_ReceiveChangeEventsServer) error {
-	return status.Errorf(codes.Unimplemented, "method ReceiveChangeEvents not implemented")
-}
-func (*UnimplementedVolthaServiceServer) CreateEventFilter(ctx context.Context, req *EventFilter) (*EventFilter, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method CreateEventFilter not implemented")
-}
-func (*UnimplementedVolthaServiceServer) GetEventFilter(ctx context.Context, req *common.ID) (*EventFilters, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetEventFilter not implemented")
-}
-func (*UnimplementedVolthaServiceServer) UpdateEventFilter(ctx context.Context, req *EventFilter) (*EventFilter, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method UpdateEventFilter not implemented")
-}
-func (*UnimplementedVolthaServiceServer) DeleteEventFilter(ctx context.Context, req *EventFilter) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method DeleteEventFilter not implemented")
-}
-func (*UnimplementedVolthaServiceServer) ListEventFilters(ctx context.Context, req *empty.Empty) (*EventFilters, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method ListEventFilters not implemented")
-}
-func (*UnimplementedVolthaServiceServer) GetImages(ctx context.Context, req *common.ID) (*Images, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetImages not implemented")
-}
-func (*UnimplementedVolthaServiceServer) SelfTest(ctx context.Context, req *common.ID) (*SelfTestResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method SelfTest not implemented")
-}
-func (*UnimplementedVolthaServiceServer) GetMibDeviceData(ctx context.Context, req *common.ID) (*omci.MibDeviceData, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetMibDeviceData not implemented")
-}
-func (*UnimplementedVolthaServiceServer) GetAlarmDeviceData(ctx context.Context, req *common.ID) (*omci.AlarmDeviceData, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetAlarmDeviceData not implemented")
-}
-func (*UnimplementedVolthaServiceServer) SimulateAlarm(ctx context.Context, req *SimulateAlarmRequest) (*common.OperationResp, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method SimulateAlarm not implemented")
-}
-func (*UnimplementedVolthaServiceServer) EnablePort(ctx context.Context, req *Port) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method EnablePort not implemented")
-}
-func (*UnimplementedVolthaServiceServer) DisablePort(ctx context.Context, req *Port) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method DisablePort not implemented")
-}
-func (*UnimplementedVolthaServiceServer) GetExtValue(ctx context.Context, req *extension.ValueSpecifier) (*extension.ReturnValues, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method GetExtValue not implemented")
-}
-func (*UnimplementedVolthaServiceServer) SetExtValue(ctx context.Context, req *extension.ValueSet) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method SetExtValue not implemented")
-}
-func (*UnimplementedVolthaServiceServer) StartOmciTestAction(ctx context.Context, req *omci.OmciTestRequest) (*omci.TestResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method StartOmciTestAction not implemented")
-}
-func (*UnimplementedVolthaServiceServer) PutVoipSystemProfile(ctx context.Context, req *voip_system_profile.VoipSystemProfileRequest) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method PutVoipSystemProfile not implemented")
-}
-func (*UnimplementedVolthaServiceServer) DeleteVoipSystemProfile(ctx context.Context, req *common.Key) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method DeleteVoipSystemProfile not implemented")
-}
-func (*UnimplementedVolthaServiceServer) PutVoipUserProfile(ctx context.Context, req *voip_user_profile.VoipUserProfileRequest) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method PutVoipUserProfile not implemented")
-}
-func (*UnimplementedVolthaServiceServer) DeleteVoipUserProfile(ctx context.Context, req *common.Key) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method DeleteVoipUserProfile not implemented")
-}
-func (*UnimplementedVolthaServiceServer) DisableOnuDevice(ctx context.Context, req *common.ID) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method DisableOnuDevice not implemented")
-}
-func (*UnimplementedVolthaServiceServer) EnableOnuDevice(ctx context.Context, req *common.ID) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method EnableOnuDevice not implemented")
-}
-func (*UnimplementedVolthaServiceServer) DisableOnuSerialNumber(ctx context.Context, req *OnuSerialNumberOnOLTPon) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method DisableOnuSerialNumber not implemented")
-}
-func (*UnimplementedVolthaServiceServer) EnableOnuSerialNumber(ctx context.Context, req *OnuSerialNumberOnOLTPon) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method EnableOnuSerialNumber not implemented")
-}
-func (*UnimplementedVolthaServiceServer) UpdateDevice(ctx context.Context, req *UpdateDevice) (*empty.Empty, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method UpdateDevice not implemented")
-}
-
-func RegisterVolthaServiceServer(s *grpc.Server, srv VolthaServiceServer) {
-	s.RegisterService(&_VolthaService_serviceDesc, srv)
-}
-
-func _VolthaService_GetVoltha_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(empty.Empty)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(VolthaServiceServer).GetVoltha(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/GetVoltha",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).GetVoltha(ctx, req.(*empty.Empty))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_ListCoreInstances_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(empty.Empty)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(VolthaServiceServer).ListCoreInstances(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/ListCoreInstances",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).ListCoreInstances(ctx, req.(*empty.Empty))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_GetCoreInstance_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).GetCoreInstance(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/GetCoreInstance",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).GetCoreInstance(ctx, req.(*common.ID))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_ListAdapters_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(empty.Empty)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(VolthaServiceServer).ListAdapters(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/ListAdapters",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).ListAdapters(ctx, req.(*empty.Empty))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_ListLogicalDevices_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(empty.Empty)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(VolthaServiceServer).ListLogicalDevices(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/ListLogicalDevices",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).ListLogicalDevices(ctx, req.(*empty.Empty))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_GetLogicalDevice_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).GetLogicalDevice(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/GetLogicalDevice",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).GetLogicalDevice(ctx, req.(*common.ID))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_ListLogicalDevicePorts_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).ListLogicalDevicePorts(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/ListLogicalDevicePorts",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).ListLogicalDevicePorts(ctx, req.(*common.ID))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_GetLogicalDevicePort_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(LogicalPortId)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(VolthaServiceServer).GetLogicalDevicePort(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/GetLogicalDevicePort",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).GetLogicalDevicePort(ctx, req.(*LogicalPortId))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_EnableLogicalDevicePort_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(LogicalPortId)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(VolthaServiceServer).EnableLogicalDevicePort(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/EnableLogicalDevicePort",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).EnableLogicalDevicePort(ctx, req.(*LogicalPortId))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_DisableLogicalDevicePort_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(LogicalPortId)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(VolthaServiceServer).DisableLogicalDevicePort(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/DisableLogicalDevicePort",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).DisableLogicalDevicePort(ctx, req.(*LogicalPortId))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_ListLogicalDeviceFlows_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).ListLogicalDeviceFlows(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/ListLogicalDeviceFlows",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).ListLogicalDeviceFlows(ctx, req.(*common.ID))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_UpdateLogicalDeviceFlowTable_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(openflow_13.FlowTableUpdate)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(VolthaServiceServer).UpdateLogicalDeviceFlowTable(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/UpdateLogicalDeviceFlowTable",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).UpdateLogicalDeviceFlowTable(ctx, req.(*openflow_13.FlowTableUpdate))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_UpdateLogicalDeviceMeterTable_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(openflow_13.MeterModUpdate)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(VolthaServiceServer).UpdateLogicalDeviceMeterTable(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/UpdateLogicalDeviceMeterTable",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).UpdateLogicalDeviceMeterTable(ctx, req.(*openflow_13.MeterModUpdate))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_ListLogicalDeviceMeters_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).ListLogicalDeviceMeters(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/ListLogicalDeviceMeters",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).ListLogicalDeviceMeters(ctx, req.(*common.ID))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_ListLogicalDeviceFlowGroups_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).ListLogicalDeviceFlowGroups(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/ListLogicalDeviceFlowGroups",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).ListLogicalDeviceFlowGroups(ctx, req.(*common.ID))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_UpdateLogicalDeviceFlowGroupTable_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(openflow_13.FlowGroupTableUpdate)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(VolthaServiceServer).UpdateLogicalDeviceFlowGroupTable(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/UpdateLogicalDeviceFlowGroupTable",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).UpdateLogicalDeviceFlowGroupTable(ctx, req.(*openflow_13.FlowGroupTableUpdate))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_ListDevices_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(empty.Empty)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(VolthaServiceServer).ListDevices(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/ListDevices",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).ListDevices(ctx, req.(*empty.Empty))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_ListDeviceIds_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(empty.Empty)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(VolthaServiceServer).ListDeviceIds(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/ListDeviceIds",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).ListDeviceIds(ctx, req.(*empty.Empty))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_ReconcileDevices_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(common.IDs)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(VolthaServiceServer).ReconcileDevices(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/ReconcileDevices",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).ReconcileDevices(ctx, req.(*common.IDs))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_GetDevice_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).GetDevice(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/GetDevice",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).GetDevice(ctx, req.(*common.ID))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_CreateDevice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(Device)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(VolthaServiceServer).CreateDevice(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/CreateDevice",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).CreateDevice(ctx, req.(*Device))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_EnableDevice_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).EnableDevice(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/EnableDevice",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).EnableDevice(ctx, req.(*common.ID))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_DisableDevice_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).DisableDevice(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/DisableDevice",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).DisableDevice(ctx, req.(*common.ID))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_RebootDevice_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).RebootDevice(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/RebootDevice",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).RebootDevice(ctx, req.(*common.ID))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_DeleteDevice_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).DeleteDevice(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/DeleteDevice",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).DeleteDevice(ctx, req.(*common.ID))
-	}
-	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 {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(VolthaServiceServer).DownloadImage(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/DownloadImage",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).DownloadImage(ctx, req.(*ImageDownload))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_GetImageDownloadStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(ImageDownload)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(VolthaServiceServer).GetImageDownloadStatus(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/GetImageDownloadStatus",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).GetImageDownloadStatus(ctx, req.(*ImageDownload))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_GetImageDownload_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(ImageDownload)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(VolthaServiceServer).GetImageDownload(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/GetImageDownload",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).GetImageDownload(ctx, req.(*ImageDownload))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_ListImageDownloads_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).ListImageDownloads(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/ListImageDownloads",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).ListImageDownloads(ctx, req.(*common.ID))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_CancelImageDownload_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(ImageDownload)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(VolthaServiceServer).CancelImageDownload(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/CancelImageDownload",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).CancelImageDownload(ctx, req.(*ImageDownload))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_ActivateImageUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(ImageDownload)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(VolthaServiceServer).ActivateImageUpdate(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/ActivateImageUpdate",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).ActivateImageUpdate(ctx, req.(*ImageDownload))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_RevertImageUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(ImageDownload)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(VolthaServiceServer).RevertImageUpdate(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/RevertImageUpdate",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).RevertImageUpdate(ctx, req.(*ImageDownload))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_DownloadImageToDevice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(DeviceImageDownloadRequest)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(VolthaServiceServer).DownloadImageToDevice(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/DownloadImageToDevice",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).DownloadImageToDevice(ctx, req.(*DeviceImageDownloadRequest))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_GetImageStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(DeviceImageRequest)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(VolthaServiceServer).GetImageStatus(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/GetImageStatus",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).GetImageStatus(ctx, req.(*DeviceImageRequest))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_AbortImageUpgradeToDevice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(DeviceImageRequest)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(VolthaServiceServer).AbortImageUpgradeToDevice(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/AbortImageUpgradeToDevice",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).AbortImageUpgradeToDevice(ctx, req.(*DeviceImageRequest))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_GetOnuImages_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).GetOnuImages(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/GetOnuImages",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).GetOnuImages(ctx, req.(*common.ID))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_ActivateImage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(DeviceImageRequest)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(VolthaServiceServer).ActivateImage(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/ActivateImage",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).ActivateImage(ctx, req.(*DeviceImageRequest))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_CommitImage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(DeviceImageRequest)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(VolthaServiceServer).CommitImage(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/CommitImage",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).CommitImage(ctx, req.(*DeviceImageRequest))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_ListDevicePorts_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).ListDevicePorts(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/ListDevicePorts",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).ListDevicePorts(ctx, req.(*common.ID))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_ListDevicePmConfigs_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).ListDevicePmConfigs(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/ListDevicePmConfigs",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).ListDevicePmConfigs(ctx, req.(*common.ID))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_UpdateDevicePmConfigs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(PmConfigs)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(VolthaServiceServer).UpdateDevicePmConfigs(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/UpdateDevicePmConfigs",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).UpdateDevicePmConfigs(ctx, req.(*PmConfigs))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_ListDeviceFlows_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).ListDeviceFlows(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/ListDeviceFlows",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).ListDeviceFlows(ctx, req.(*common.ID))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_ListDeviceFlowGroups_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).ListDeviceFlowGroups(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/ListDeviceFlowGroups",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).ListDeviceFlowGroups(ctx, req.(*common.ID))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_ListDeviceTypes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(empty.Empty)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(VolthaServiceServer).ListDeviceTypes(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/ListDeviceTypes",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).ListDeviceTypes(ctx, req.(*empty.Empty))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_GetDeviceType_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).GetDeviceType(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/GetDeviceType",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).GetDeviceType(ctx, req.(*common.ID))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_StreamPacketsOut_Handler(srv interface{}, stream grpc.ServerStream) error {
-	return srv.(VolthaServiceServer).StreamPacketsOut(&volthaServiceStreamPacketsOutServer{stream})
-}
-
-type VolthaService_StreamPacketsOutServer interface {
-	SendAndClose(*empty.Empty) error
-	Recv() (*openflow_13.PacketOut, error)
-	grpc.ServerStream
-}
-
-type volthaServiceStreamPacketsOutServer struct {
-	grpc.ServerStream
-}
-
-func (x *volthaServiceStreamPacketsOutServer) SendAndClose(m *empty.Empty) error {
-	return x.ServerStream.SendMsg(m)
-}
-
-func (x *volthaServiceStreamPacketsOutServer) Recv() (*openflow_13.PacketOut, error) {
-	m := new(openflow_13.PacketOut)
-	if err := x.ServerStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
-
-func _VolthaService_ReceivePacketsIn_Handler(srv interface{}, stream grpc.ServerStream) error {
-	m := new(empty.Empty)
-	if err := stream.RecvMsg(m); err != nil {
-		return err
-	}
-	return srv.(VolthaServiceServer).ReceivePacketsIn(m, &volthaServiceReceivePacketsInServer{stream})
-}
-
-type VolthaService_ReceivePacketsInServer interface {
-	Send(*openflow_13.PacketIn) error
-	grpc.ServerStream
-}
-
-type volthaServiceReceivePacketsInServer struct {
-	grpc.ServerStream
-}
-
-func (x *volthaServiceReceivePacketsInServer) Send(m *openflow_13.PacketIn) error {
-	return x.ServerStream.SendMsg(m)
-}
-
-func _VolthaService_ReceiveChangeEvents_Handler(srv interface{}, stream grpc.ServerStream) error {
-	m := new(empty.Empty)
-	if err := stream.RecvMsg(m); err != nil {
-		return err
-	}
-	return srv.(VolthaServiceServer).ReceiveChangeEvents(m, &volthaServiceReceiveChangeEventsServer{stream})
-}
-
-type VolthaService_ReceiveChangeEventsServer interface {
-	Send(*openflow_13.ChangeEvent) error
-	grpc.ServerStream
-}
-
-type volthaServiceReceiveChangeEventsServer struct {
-	grpc.ServerStream
-}
-
-func (x *volthaServiceReceiveChangeEventsServer) Send(m *openflow_13.ChangeEvent) error {
-	return x.ServerStream.SendMsg(m)
-}
-
-func _VolthaService_CreateEventFilter_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(EventFilter)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(VolthaServiceServer).CreateEventFilter(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/CreateEventFilter",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).CreateEventFilter(ctx, req.(*EventFilter))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_GetEventFilter_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).GetEventFilter(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/GetEventFilter",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).GetEventFilter(ctx, req.(*common.ID))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_UpdateEventFilter_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(EventFilter)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(VolthaServiceServer).UpdateEventFilter(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/UpdateEventFilter",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).UpdateEventFilter(ctx, req.(*EventFilter))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_DeleteEventFilter_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(EventFilter)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(VolthaServiceServer).DeleteEventFilter(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/DeleteEventFilter",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).DeleteEventFilter(ctx, req.(*EventFilter))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_ListEventFilters_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(empty.Empty)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(VolthaServiceServer).ListEventFilters(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/ListEventFilters",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).ListEventFilters(ctx, req.(*empty.Empty))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_GetImages_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).GetImages(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/GetImages",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).GetImages(ctx, req.(*common.ID))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_SelfTest_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).SelfTest(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/SelfTest",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).SelfTest(ctx, req.(*common.ID))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_GetMibDeviceData_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).GetMibDeviceData(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/GetMibDeviceData",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).GetMibDeviceData(ctx, req.(*common.ID))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_GetAlarmDeviceData_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).GetAlarmDeviceData(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/GetAlarmDeviceData",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).GetAlarmDeviceData(ctx, req.(*common.ID))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_SimulateAlarm_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(SimulateAlarmRequest)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(VolthaServiceServer).SimulateAlarm(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/SimulateAlarm",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).SimulateAlarm(ctx, req.(*SimulateAlarmRequest))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_EnablePort_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(Port)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(VolthaServiceServer).EnablePort(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/EnablePort",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).EnablePort(ctx, req.(*Port))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_DisablePort_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(Port)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(VolthaServiceServer).DisablePort(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/DisablePort",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).DisablePort(ctx, req.(*Port))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_GetExtValue_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(extension.ValueSpecifier)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(VolthaServiceServer).GetExtValue(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/GetExtValue",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).GetExtValue(ctx, req.(*extension.ValueSpecifier))
-	}
-	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(extension.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.(*extension.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(omci.OmciTestRequest)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(VolthaServiceServer).StartOmciTestAction(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/StartOmciTestAction",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).StartOmciTestAction(ctx, req.(*omci.OmciTestRequest))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_PutVoipSystemProfile_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(voip_system_profile.VoipSystemProfileRequest)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(VolthaServiceServer).PutVoipSystemProfile(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/PutVoipSystemProfile",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).PutVoipSystemProfile(ctx, req.(*voip_system_profile.VoipSystemProfileRequest))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_DeleteVoipSystemProfile_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(common.Key)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(VolthaServiceServer).DeleteVoipSystemProfile(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/DeleteVoipSystemProfile",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).DeleteVoipSystemProfile(ctx, req.(*common.Key))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_PutVoipUserProfile_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(voip_user_profile.VoipUserProfileRequest)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(VolthaServiceServer).PutVoipUserProfile(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/PutVoipUserProfile",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).PutVoipUserProfile(ctx, req.(*voip_user_profile.VoipUserProfileRequest))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_DeleteVoipUserProfile_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(common.Key)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(VolthaServiceServer).DeleteVoipUserProfile(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/DeleteVoipUserProfile",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).DeleteVoipUserProfile(ctx, req.(*common.Key))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_DisableOnuDevice_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).DisableOnuDevice(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/DisableOnuDevice",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).DisableOnuDevice(ctx, req.(*common.ID))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_EnableOnuDevice_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).EnableOnuDevice(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/EnableOnuDevice",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).EnableOnuDevice(ctx, req.(*common.ID))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_DisableOnuSerialNumber_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(OnuSerialNumberOnOLTPon)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(VolthaServiceServer).DisableOnuSerialNumber(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/DisableOnuSerialNumber",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).DisableOnuSerialNumber(ctx, req.(*OnuSerialNumberOnOLTPon))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_EnableOnuSerialNumber_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(OnuSerialNumberOnOLTPon)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(VolthaServiceServer).EnableOnuSerialNumber(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/EnableOnuSerialNumber",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).EnableOnuSerialNumber(ctx, req.(*OnuSerialNumberOnOLTPon))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _VolthaService_UpdateDevice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(UpdateDevice)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(VolthaServiceServer).UpdateDevice(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/voltha.VolthaService/UpdateDevice",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(VolthaServiceServer).UpdateDevice(ctx, req.(*UpdateDevice))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-var _VolthaService_serviceDesc = grpc.ServiceDesc{
-	ServiceName: "voltha.VolthaService",
-	HandlerType: (*VolthaServiceServer)(nil),
-	Methods: []grpc.MethodDesc{
-		{
-			MethodName: "GetVoltha",
-			Handler:    _VolthaService_GetVoltha_Handler,
-		},
-		{
-			MethodName: "ListCoreInstances",
-			Handler:    _VolthaService_ListCoreInstances_Handler,
-		},
-		{
-			MethodName: "GetCoreInstance",
-			Handler:    _VolthaService_GetCoreInstance_Handler,
-		},
-		{
-			MethodName: "ListAdapters",
-			Handler:    _VolthaService_ListAdapters_Handler,
-		},
-		{
-			MethodName: "ListLogicalDevices",
-			Handler:    _VolthaService_ListLogicalDevices_Handler,
-		},
-		{
-			MethodName: "GetLogicalDevice",
-			Handler:    _VolthaService_GetLogicalDevice_Handler,
-		},
-		{
-			MethodName: "ListLogicalDevicePorts",
-			Handler:    _VolthaService_ListLogicalDevicePorts_Handler,
-		},
-		{
-			MethodName: "GetLogicalDevicePort",
-			Handler:    _VolthaService_GetLogicalDevicePort_Handler,
-		},
-		{
-			MethodName: "EnableLogicalDevicePort",
-			Handler:    _VolthaService_EnableLogicalDevicePort_Handler,
-		},
-		{
-			MethodName: "DisableLogicalDevicePort",
-			Handler:    _VolthaService_DisableLogicalDevicePort_Handler,
-		},
-		{
-			MethodName: "ListLogicalDeviceFlows",
-			Handler:    _VolthaService_ListLogicalDeviceFlows_Handler,
-		},
-		{
-			MethodName: "UpdateLogicalDeviceFlowTable",
-			Handler:    _VolthaService_UpdateLogicalDeviceFlowTable_Handler,
-		},
-		{
-			MethodName: "UpdateLogicalDeviceMeterTable",
-			Handler:    _VolthaService_UpdateLogicalDeviceMeterTable_Handler,
-		},
-		{
-			MethodName: "ListLogicalDeviceMeters",
-			Handler:    _VolthaService_ListLogicalDeviceMeters_Handler,
-		},
-		{
-			MethodName: "ListLogicalDeviceFlowGroups",
-			Handler:    _VolthaService_ListLogicalDeviceFlowGroups_Handler,
-		},
-		{
-			MethodName: "UpdateLogicalDeviceFlowGroupTable",
-			Handler:    _VolthaService_UpdateLogicalDeviceFlowGroupTable_Handler,
-		},
-		{
-			MethodName: "ListDevices",
-			Handler:    _VolthaService_ListDevices_Handler,
-		},
-		{
-			MethodName: "ListDeviceIds",
-			Handler:    _VolthaService_ListDeviceIds_Handler,
-		},
-		{
-			MethodName: "ReconcileDevices",
-			Handler:    _VolthaService_ReconcileDevices_Handler,
-		},
-		{
-			MethodName: "GetDevice",
-			Handler:    _VolthaService_GetDevice_Handler,
-		},
-		{
-			MethodName: "CreateDevice",
-			Handler:    _VolthaService_CreateDevice_Handler,
-		},
-		{
-			MethodName: "EnableDevice",
-			Handler:    _VolthaService_EnableDevice_Handler,
-		},
-		{
-			MethodName: "DisableDevice",
-			Handler:    _VolthaService_DisableDevice_Handler,
-		},
-		{
-			MethodName: "RebootDevice",
-			Handler:    _VolthaService_RebootDevice_Handler,
-		},
-		{
-			MethodName: "DeleteDevice",
-			Handler:    _VolthaService_DeleteDevice_Handler,
-		},
-		{
-			MethodName: "ForceDeleteDevice",
-			Handler:    _VolthaService_ForceDeleteDevice_Handler,
-		},
-		{
-			MethodName: "DownloadImage",
-			Handler:    _VolthaService_DownloadImage_Handler,
-		},
-		{
-			MethodName: "GetImageDownloadStatus",
-			Handler:    _VolthaService_GetImageDownloadStatus_Handler,
-		},
-		{
-			MethodName: "GetImageDownload",
-			Handler:    _VolthaService_GetImageDownload_Handler,
-		},
-		{
-			MethodName: "ListImageDownloads",
-			Handler:    _VolthaService_ListImageDownloads_Handler,
-		},
-		{
-			MethodName: "CancelImageDownload",
-			Handler:    _VolthaService_CancelImageDownload_Handler,
-		},
-		{
-			MethodName: "ActivateImageUpdate",
-			Handler:    _VolthaService_ActivateImageUpdate_Handler,
-		},
-		{
-			MethodName: "RevertImageUpdate",
-			Handler:    _VolthaService_RevertImageUpdate_Handler,
-		},
-		{
-			MethodName: "DownloadImageToDevice",
-			Handler:    _VolthaService_DownloadImageToDevice_Handler,
-		},
-		{
-			MethodName: "GetImageStatus",
-			Handler:    _VolthaService_GetImageStatus_Handler,
-		},
-		{
-			MethodName: "AbortImageUpgradeToDevice",
-			Handler:    _VolthaService_AbortImageUpgradeToDevice_Handler,
-		},
-		{
-			MethodName: "GetOnuImages",
-			Handler:    _VolthaService_GetOnuImages_Handler,
-		},
-		{
-			MethodName: "ActivateImage",
-			Handler:    _VolthaService_ActivateImage_Handler,
-		},
-		{
-			MethodName: "CommitImage",
-			Handler:    _VolthaService_CommitImage_Handler,
-		},
-		{
-			MethodName: "ListDevicePorts",
-			Handler:    _VolthaService_ListDevicePorts_Handler,
-		},
-		{
-			MethodName: "ListDevicePmConfigs",
-			Handler:    _VolthaService_ListDevicePmConfigs_Handler,
-		},
-		{
-			MethodName: "UpdateDevicePmConfigs",
-			Handler:    _VolthaService_UpdateDevicePmConfigs_Handler,
-		},
-		{
-			MethodName: "ListDeviceFlows",
-			Handler:    _VolthaService_ListDeviceFlows_Handler,
-		},
-		{
-			MethodName: "ListDeviceFlowGroups",
-			Handler:    _VolthaService_ListDeviceFlowGroups_Handler,
-		},
-		{
-			MethodName: "ListDeviceTypes",
-			Handler:    _VolthaService_ListDeviceTypes_Handler,
-		},
-		{
-			MethodName: "GetDeviceType",
-			Handler:    _VolthaService_GetDeviceType_Handler,
-		},
-		{
-			MethodName: "CreateEventFilter",
-			Handler:    _VolthaService_CreateEventFilter_Handler,
-		},
-		{
-			MethodName: "GetEventFilter",
-			Handler:    _VolthaService_GetEventFilter_Handler,
-		},
-		{
-			MethodName: "UpdateEventFilter",
-			Handler:    _VolthaService_UpdateEventFilter_Handler,
-		},
-		{
-			MethodName: "DeleteEventFilter",
-			Handler:    _VolthaService_DeleteEventFilter_Handler,
-		},
-		{
-			MethodName: "ListEventFilters",
-			Handler:    _VolthaService_ListEventFilters_Handler,
-		},
-		{
-			MethodName: "GetImages",
-			Handler:    _VolthaService_GetImages_Handler,
-		},
-		{
-			MethodName: "SelfTest",
-			Handler:    _VolthaService_SelfTest_Handler,
-		},
-		{
-			MethodName: "GetMibDeviceData",
-			Handler:    _VolthaService_GetMibDeviceData_Handler,
-		},
-		{
-			MethodName: "GetAlarmDeviceData",
-			Handler:    _VolthaService_GetAlarmDeviceData_Handler,
-		},
-		{
-			MethodName: "SimulateAlarm",
-			Handler:    _VolthaService_SimulateAlarm_Handler,
-		},
-		{
-			MethodName: "EnablePort",
-			Handler:    _VolthaService_EnablePort_Handler,
-		},
-		{
-			MethodName: "DisablePort",
-			Handler:    _VolthaService_DisablePort_Handler,
-		},
-		{
-			MethodName: "GetExtValue",
-			Handler:    _VolthaService_GetExtValue_Handler,
-		},
-		{
-			MethodName: "SetExtValue",
-			Handler:    _VolthaService_SetExtValue_Handler,
-		},
-		{
-			MethodName: "StartOmciTestAction",
-			Handler:    _VolthaService_StartOmciTestAction_Handler,
-		},
-		{
-			MethodName: "PutVoipSystemProfile",
-			Handler:    _VolthaService_PutVoipSystemProfile_Handler,
-		},
-		{
-			MethodName: "DeleteVoipSystemProfile",
-			Handler:    _VolthaService_DeleteVoipSystemProfile_Handler,
-		},
-		{
-			MethodName: "PutVoipUserProfile",
-			Handler:    _VolthaService_PutVoipUserProfile_Handler,
-		},
-		{
-			MethodName: "DeleteVoipUserProfile",
-			Handler:    _VolthaService_DeleteVoipUserProfile_Handler,
-		},
-		{
-			MethodName: "DisableOnuDevice",
-			Handler:    _VolthaService_DisableOnuDevice_Handler,
-		},
-		{
-			MethodName: "EnableOnuDevice",
-			Handler:    _VolthaService_EnableOnuDevice_Handler,
-		},
-		{
-			MethodName: "DisableOnuSerialNumber",
-			Handler:    _VolthaService_DisableOnuSerialNumber_Handler,
-		},
-		{
-			MethodName: "EnableOnuSerialNumber",
-			Handler:    _VolthaService_EnableOnuSerialNumber_Handler,
-		},
-		{
-			MethodName: "UpdateDevice",
-			Handler:    _VolthaService_UpdateDevice_Handler,
-		},
-	},
-	Streams: []grpc.StreamDesc{
-		{
-			StreamName:    "StreamPacketsOut",
-			Handler:       _VolthaService_StreamPacketsOut_Handler,
-			ClientStreams: true,
-		},
-		{
-			StreamName:    "ReceivePacketsIn",
-			Handler:       _VolthaService_ReceivePacketsIn_Handler,
-			ServerStreams: true,
-		},
-		{
-			StreamName:    "ReceiveChangeEvents",
-			Handler:       _VolthaService_ReceiveChangeEvents_Handler,
-			ServerStreams: true,
+	file_voltha_protos_logical_device_proto_init()
+	file_voltha_protos_device_proto_init()
+	file_voltha_protos_adapter_proto_init()
+	file_voltha_protos_events_proto_init()
+	type x struct{}
+	out := protoimpl.TypeBuilder{
+		File: protoimpl.DescBuilder{
+			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+			RawDescriptor: unsafe.Slice(unsafe.StringData(file_voltha_protos_voltha_proto_rawDesc), len(file_voltha_protos_voltha_proto_rawDesc)),
+			NumEnums:      0,
+			NumMessages:   3,
+			NumExtensions: 0,
+			NumServices:   1,
 		},
-	},
-	Metadata: "voltha_protos/voltha.proto",
+		GoTypes:           file_voltha_protos_voltha_proto_goTypes,
+		DependencyIndexes: file_voltha_protos_voltha_proto_depIdxs,
+		MessageInfos:      file_voltha_protos_voltha_proto_msgTypes,
+	}.Build()
+	File_voltha_protos_voltha_proto = out.File
+	file_voltha_protos_voltha_proto_goTypes = nil
+	file_voltha_protos_voltha_proto_depIdxs = nil
 }
diff --git a/go/voltha/voltha_grpc.pb.go b/go/voltha/voltha_grpc.pb.go
new file mode 100644
index 0000000..3f944a6
--- /dev/null
+++ b/go/voltha/voltha_grpc.pb.go
@@ -0,0 +1,3098 @@
+//
+// Top-level Voltha API definition
+//
+// For details, see individual definition files.
+
+// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
+// versions:
+// - protoc-gen-go-grpc v1.6.0
+// - protoc             v4.25.8
+// source: voltha_protos/voltha.proto
+
+package voltha
+
+import (
+	context "context"
+	common "github.com/opencord/voltha-protos/v5/go/common"
+	extension "github.com/opencord/voltha-protos/v5/go/extension"
+	omci "github.com/opencord/voltha-protos/v5/go/omci"
+	openflow_13 "github.com/opencord/voltha-protos/v5/go/openflow_13"
+	voip_system_profile "github.com/opencord/voltha-protos/v5/go/voip_system_profile"
+	voip_user_profile "github.com/opencord/voltha-protos/v5/go/voip_user_profile"
+	grpc "google.golang.org/grpc"
+	codes "google.golang.org/grpc/codes"
+	status "google.golang.org/grpc/status"
+	emptypb "google.golang.org/protobuf/types/known/emptypb"
+)
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+// Requires gRPC-Go v1.64.0 or later.
+const _ = grpc.SupportPackageIsVersion9
+
+const (
+	VolthaService_GetVoltha_FullMethodName                         = "/voltha.VolthaService/GetVoltha"
+	VolthaService_ListCoreInstances_FullMethodName                 = "/voltha.VolthaService/ListCoreInstances"
+	VolthaService_GetCoreInstance_FullMethodName                   = "/voltha.VolthaService/GetCoreInstance"
+	VolthaService_ListAdapters_FullMethodName                      = "/voltha.VolthaService/ListAdapters"
+	VolthaService_ListLogicalDevices_FullMethodName                = "/voltha.VolthaService/ListLogicalDevices"
+	VolthaService_GetLogicalDevice_FullMethodName                  = "/voltha.VolthaService/GetLogicalDevice"
+	VolthaService_ListLogicalDevicePorts_FullMethodName            = "/voltha.VolthaService/ListLogicalDevicePorts"
+	VolthaService_GetLogicalDevicePort_FullMethodName              = "/voltha.VolthaService/GetLogicalDevicePort"
+	VolthaService_EnableLogicalDevicePort_FullMethodName           = "/voltha.VolthaService/EnableLogicalDevicePort"
+	VolthaService_DisableLogicalDevicePort_FullMethodName          = "/voltha.VolthaService/DisableLogicalDevicePort"
+	VolthaService_ListLogicalDeviceFlows_FullMethodName            = "/voltha.VolthaService/ListLogicalDeviceFlows"
+	VolthaService_UpdateLogicalDeviceFlowTable_FullMethodName      = "/voltha.VolthaService/UpdateLogicalDeviceFlowTable"
+	VolthaService_UpdateLogicalDeviceMeterTable_FullMethodName     = "/voltha.VolthaService/UpdateLogicalDeviceMeterTable"
+	VolthaService_ListLogicalDeviceMeters_FullMethodName           = "/voltha.VolthaService/ListLogicalDeviceMeters"
+	VolthaService_ListLogicalDeviceFlowGroups_FullMethodName       = "/voltha.VolthaService/ListLogicalDeviceFlowGroups"
+	VolthaService_UpdateLogicalDeviceFlowGroupTable_FullMethodName = "/voltha.VolthaService/UpdateLogicalDeviceFlowGroupTable"
+	VolthaService_ListDevices_FullMethodName                       = "/voltha.VolthaService/ListDevices"
+	VolthaService_ListDeviceIds_FullMethodName                     = "/voltha.VolthaService/ListDeviceIds"
+	VolthaService_ReconcileDevices_FullMethodName                  = "/voltha.VolthaService/ReconcileDevices"
+	VolthaService_GetDevice_FullMethodName                         = "/voltha.VolthaService/GetDevice"
+	VolthaService_CreateDevice_FullMethodName                      = "/voltha.VolthaService/CreateDevice"
+	VolthaService_EnableDevice_FullMethodName                      = "/voltha.VolthaService/EnableDevice"
+	VolthaService_DisableDevice_FullMethodName                     = "/voltha.VolthaService/DisableDevice"
+	VolthaService_RebootDevice_FullMethodName                      = "/voltha.VolthaService/RebootDevice"
+	VolthaService_DeleteDevice_FullMethodName                      = "/voltha.VolthaService/DeleteDevice"
+	VolthaService_ForceDeleteDevice_FullMethodName                 = "/voltha.VolthaService/ForceDeleteDevice"
+	VolthaService_DownloadImage_FullMethodName                     = "/voltha.VolthaService/DownloadImage"
+	VolthaService_GetImageDownloadStatus_FullMethodName            = "/voltha.VolthaService/GetImageDownloadStatus"
+	VolthaService_GetImageDownload_FullMethodName                  = "/voltha.VolthaService/GetImageDownload"
+	VolthaService_ListImageDownloads_FullMethodName                = "/voltha.VolthaService/ListImageDownloads"
+	VolthaService_CancelImageDownload_FullMethodName               = "/voltha.VolthaService/CancelImageDownload"
+	VolthaService_ActivateImageUpdate_FullMethodName               = "/voltha.VolthaService/ActivateImageUpdate"
+	VolthaService_RevertImageUpdate_FullMethodName                 = "/voltha.VolthaService/RevertImageUpdate"
+	VolthaService_DownloadImageToDevice_FullMethodName             = "/voltha.VolthaService/DownloadImageToDevice"
+	VolthaService_GetImageStatus_FullMethodName                    = "/voltha.VolthaService/GetImageStatus"
+	VolthaService_AbortImageUpgradeToDevice_FullMethodName         = "/voltha.VolthaService/AbortImageUpgradeToDevice"
+	VolthaService_GetOnuImages_FullMethodName                      = "/voltha.VolthaService/GetOnuImages"
+	VolthaService_ActivateImage_FullMethodName                     = "/voltha.VolthaService/ActivateImage"
+	VolthaService_CommitImage_FullMethodName                       = "/voltha.VolthaService/CommitImage"
+	VolthaService_ListDevicePorts_FullMethodName                   = "/voltha.VolthaService/ListDevicePorts"
+	VolthaService_ListDevicePmConfigs_FullMethodName               = "/voltha.VolthaService/ListDevicePmConfigs"
+	VolthaService_UpdateDevicePmConfigs_FullMethodName             = "/voltha.VolthaService/UpdateDevicePmConfigs"
+	VolthaService_ListDeviceFlows_FullMethodName                   = "/voltha.VolthaService/ListDeviceFlows"
+	VolthaService_ListDeviceFlowGroups_FullMethodName              = "/voltha.VolthaService/ListDeviceFlowGroups"
+	VolthaService_ListDeviceTypes_FullMethodName                   = "/voltha.VolthaService/ListDeviceTypes"
+	VolthaService_GetDeviceType_FullMethodName                     = "/voltha.VolthaService/GetDeviceType"
+	VolthaService_StreamPacketsOut_FullMethodName                  = "/voltha.VolthaService/StreamPacketsOut"
+	VolthaService_ReceivePacketsIn_FullMethodName                  = "/voltha.VolthaService/ReceivePacketsIn"
+	VolthaService_ReceiveChangeEvents_FullMethodName               = "/voltha.VolthaService/ReceiveChangeEvents"
+	VolthaService_CreateEventFilter_FullMethodName                 = "/voltha.VolthaService/CreateEventFilter"
+	VolthaService_GetEventFilter_FullMethodName                    = "/voltha.VolthaService/GetEventFilter"
+	VolthaService_UpdateEventFilter_FullMethodName                 = "/voltha.VolthaService/UpdateEventFilter"
+	VolthaService_DeleteEventFilter_FullMethodName                 = "/voltha.VolthaService/DeleteEventFilter"
+	VolthaService_ListEventFilters_FullMethodName                  = "/voltha.VolthaService/ListEventFilters"
+	VolthaService_GetImages_FullMethodName                         = "/voltha.VolthaService/GetImages"
+	VolthaService_SelfTest_FullMethodName                          = "/voltha.VolthaService/SelfTest"
+	VolthaService_GetMibDeviceData_FullMethodName                  = "/voltha.VolthaService/GetMibDeviceData"
+	VolthaService_GetAlarmDeviceData_FullMethodName                = "/voltha.VolthaService/GetAlarmDeviceData"
+	VolthaService_SimulateAlarm_FullMethodName                     = "/voltha.VolthaService/SimulateAlarm"
+	VolthaService_EnablePort_FullMethodName                        = "/voltha.VolthaService/EnablePort"
+	VolthaService_DisablePort_FullMethodName                       = "/voltha.VolthaService/DisablePort"
+	VolthaService_GetExtValue_FullMethodName                       = "/voltha.VolthaService/GetExtValue"
+	VolthaService_SetExtValue_FullMethodName                       = "/voltha.VolthaService/SetExtValue"
+	VolthaService_StartOmciTestAction_FullMethodName               = "/voltha.VolthaService/StartOmciTestAction"
+	VolthaService_PutVoipSystemProfile_FullMethodName              = "/voltha.VolthaService/PutVoipSystemProfile"
+	VolthaService_DeleteVoipSystemProfile_FullMethodName           = "/voltha.VolthaService/DeleteVoipSystemProfile"
+	VolthaService_PutVoipUserProfile_FullMethodName                = "/voltha.VolthaService/PutVoipUserProfile"
+	VolthaService_DeleteVoipUserProfile_FullMethodName             = "/voltha.VolthaService/DeleteVoipUserProfile"
+	VolthaService_DisableOnuDevice_FullMethodName                  = "/voltha.VolthaService/DisableOnuDevice"
+	VolthaService_EnableOnuDevice_FullMethodName                   = "/voltha.VolthaService/EnableOnuDevice"
+	VolthaService_DisableOnuSerialNumber_FullMethodName            = "/voltha.VolthaService/DisableOnuSerialNumber"
+	VolthaService_EnableOnuSerialNumber_FullMethodName             = "/voltha.VolthaService/EnableOnuSerialNumber"
+	VolthaService_UpdateDevice_FullMethodName                      = "/voltha.VolthaService/UpdateDevice"
+)
+
+// VolthaServiceClient is the client API for VolthaService service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
+//
+// Voltha APIs
+type VolthaServiceClient interface {
+	// Get high level information on the Voltha cluster
+	GetVoltha(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*Voltha, error)
+	// List all Voltha cluster core instances
+	ListCoreInstances(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*CoreInstances, error)
+	// Get details on a Voltha cluster instance
+	GetCoreInstance(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*CoreInstance, error)
+	// List all active adapters (plugins) in the Voltha cluster
+	ListAdapters(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*Adapters, error)
+	// List all logical devices managed by the Voltha cluster
+	ListLogicalDevices(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*LogicalDevices, error)
+	// Get additional information on a given logical device
+	GetLogicalDevice(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*LogicalDevice, error)
+	// List ports of a logical device
+	ListLogicalDevicePorts(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*LogicalPorts, error)
+	// Gets a logical device port
+	GetLogicalDevicePort(ctx context.Context, in *LogicalPortId, opts ...grpc.CallOption) (*LogicalPort, error)
+	// Enables a logical device port
+	EnableLogicalDevicePort(ctx context.Context, in *LogicalPortId, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	// Disables a logical device port
+	DisableLogicalDevicePort(ctx context.Context, in *LogicalPortId, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	// List all flows of a logical device
+	ListLogicalDeviceFlows(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*openflow_13.Flows, error)
+	// Update flow table for logical device
+	UpdateLogicalDeviceFlowTable(ctx context.Context, in *openflow_13.FlowTableUpdate, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	// Update meter table for logical device
+	UpdateLogicalDeviceMeterTable(ctx context.Context, in *openflow_13.MeterModUpdate, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	// List all meters of a logical device
+	ListLogicalDeviceMeters(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*openflow_13.Meters, error)
+	// List all flow groups of a logical device
+	ListLogicalDeviceFlowGroups(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*openflow_13.FlowGroups, error)
+	// Update group table for device
+	UpdateLogicalDeviceFlowGroupTable(ctx context.Context, in *openflow_13.FlowGroupTableUpdate, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	// List all physical devices controlled by the Voltha cluster
+	ListDevices(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*Devices, error)
+	// List all physical devices IDs controlled by the Voltha cluster
+	ListDeviceIds(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*common.IDs, error)
+	// Request to a voltha Core to reconcile a set of devices based on their IDs
+	ReconcileDevices(ctx context.Context, in *common.IDs, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	// Get more information on a given physical device
+	GetDevice(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*Device, error)
+	// Pre-provision a new physical device
+	CreateDevice(ctx context.Context, in *Device, opts ...grpc.CallOption) (*Device, error)
+	// Enable a device.  If the device was in pre-provisioned state then it
+	// will transition to ENABLED state.  If it was is DISABLED state then it
+	// will transition to ENABLED state as well.
+	EnableDevice(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	// Disable a device
+	DisableDevice(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	// Reboot a device
+	RebootDevice(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	// Delete a device
+	DeleteDevice(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	// Forcefully delete a device
+	ForceDeleteDevice(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	// Deprecated: Do not use.
+	// Request an image download to the standby partition
+	// of a device.
+	// Note that the call is expected to be non-blocking.
+	DownloadImage(ctx context.Context, in *ImageDownload, opts ...grpc.CallOption) (*common.OperationResp, error)
+	// Deprecated: Do not use.
+	// Get image download status on a device
+	// The request retrieves progress on device and updates db record
+	// Deprecated in voltha 2.8, will be removed
+	GetImageDownloadStatus(ctx context.Context, in *ImageDownload, opts ...grpc.CallOption) (*ImageDownload, error)
+	// Deprecated: Do not use.
+	// Get image download db record
+	// Deprecated in voltha 2.8, will be removed
+	GetImageDownload(ctx context.Context, in *ImageDownload, opts ...grpc.CallOption) (*ImageDownload, error)
+	// Deprecated: Do not use.
+	// List image download db records for a given device
+	// Deprecated in voltha 2.8, will be removed
+	ListImageDownloads(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*ImageDownloads, error)
+	// Deprecated: Do not use.
+	// Cancel an existing image download process on a device
+	// Deprecated in voltha 2.8, will be removed
+	CancelImageDownload(ctx context.Context, in *ImageDownload, opts ...grpc.CallOption) (*common.OperationResp, error)
+	// Deprecated: Do not use.
+	// Activate the specified image at a standby partition
+	// to active partition.
+	// Depending on the device implementation, this call
+	// may or may not cause device reboot.
+	// If no reboot, then a reboot is required to make the
+	// activated image running on device
+	// Note that the call is expected to be non-blocking.
+	// Deprecated in voltha 2.8, will be removed
+	ActivateImageUpdate(ctx context.Context, in *ImageDownload, opts ...grpc.CallOption) (*common.OperationResp, error)
+	// Deprecated: Do not use.
+	// Revert the specified image at standby partition
+	// to active partition, and revert to previous image
+	// Depending on the device implementation, this call
+	// may or may not cause device reboot.
+	// If no reboot, then a reboot is required to make the
+	// previous image running on device
+	// Note that the call is expected to be non-blocking.
+	// Deprecated in voltha 2.8, will be removed
+	RevertImageUpdate(ctx context.Context, in *ImageDownload, opts ...grpc.CallOption) (*common.OperationResp, error)
+	// Downloads a certain image to the standby partition of the devices
+	// Note that the call is expected to be non-blocking.
+	DownloadImageToDevice(ctx context.Context, in *DeviceImageDownloadRequest, opts ...grpc.CallOption) (*DeviceImageResponse, error)
+	// Get image status on a number of devices devices
+	// Polled from northbound systems to get state of download/activate/commit
+	GetImageStatus(ctx context.Context, in *DeviceImageRequest, opts ...grpc.CallOption) (*DeviceImageResponse, error)
+	// Aborts the upgrade of an image on a device
+	// To be used carefully, stops any further operations for the Image on the given devices
+	// Might also stop if possible existing work, but no guarantees are given,
+	// depends on implementation and procedure status.
+	AbortImageUpgradeToDevice(ctx context.Context, in *DeviceImageRequest, opts ...grpc.CallOption) (*DeviceImageResponse, error)
+	// Get Both Active and Standby image for a given device
+	GetOnuImages(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*OnuImages, error)
+	// Activate the specified image from a standby partition
+	// to active partition.
+	// Depending on the device implementation, this call
+	// may or may not cause device reboot.
+	// If no reboot, then a reboot is required to make the
+	// activated image running on device
+	// Note that the call is expected to be non-blocking.
+	ActivateImage(ctx context.Context, in *DeviceImageRequest, opts ...grpc.CallOption) (*DeviceImageResponse, error)
+	// Commit the specified image to be default.
+	// Depending on the device implementation, this call
+	// may or may not cause device reboot.
+	// If no reboot, then a reboot is required to make the
+	// activated image running on device upon next reboot
+	// Note that the call is expected to be non-blocking.
+	CommitImage(ctx context.Context, in *DeviceImageRequest, opts ...grpc.CallOption) (*DeviceImageResponse, error)
+	// List ports of a device
+	ListDevicePorts(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*Ports, error)
+	// List pm config of a device
+	ListDevicePmConfigs(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*PmConfigs, error)
+	// Update the pm config of a device
+	UpdateDevicePmConfigs(ctx context.Context, in *PmConfigs, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	// List all flows of a device
+	ListDeviceFlows(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*openflow_13.Flows, error)
+	// List all flow groups of a device
+	ListDeviceFlowGroups(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*openflow_13.FlowGroups, error)
+	// List device types known to Voltha
+	ListDeviceTypes(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*DeviceTypes, error)
+	// Get additional information on a device type
+	GetDeviceType(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*DeviceType, error)
+	// Stream control packets to the dataplane
+	StreamPacketsOut(ctx context.Context, opts ...grpc.CallOption) (grpc.ClientStreamingClient[openflow_13.PacketOut, emptypb.Empty], error)
+	// Receive control packet stream
+	ReceivePacketsIn(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (grpc.ServerStreamingClient[openflow_13.PacketIn], error)
+	ReceiveChangeEvents(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (grpc.ServerStreamingClient[openflow_13.ChangeEvent], error)
+	CreateEventFilter(ctx context.Context, in *EventFilter, opts ...grpc.CallOption) (*EventFilter, error)
+	// Get all filters present for a device
+	GetEventFilter(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*EventFilters, error)
+	UpdateEventFilter(ctx context.Context, in *EventFilter, opts ...grpc.CallOption) (*EventFilter, error)
+	DeleteEventFilter(ctx context.Context, in *EventFilter, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	// Get all the filters present
+	ListEventFilters(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*EventFilters, error)
+	GetImages(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*Images, error)
+	SelfTest(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*SelfTestResponse, error)
+	// OpenOMCI MIB information
+	GetMibDeviceData(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*omci.MibDeviceData, error)
+	// OpenOMCI ALARM information
+	GetAlarmDeviceData(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*omci.AlarmDeviceData, error)
+	// Simulate an Alarm
+	SimulateAlarm(ctx context.Context, in *SimulateAlarmRequest, opts ...grpc.CallOption) (*common.OperationResp, error)
+	EnablePort(ctx context.Context, in *Port, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	DisablePort(ctx context.Context, in *Port, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	GetExtValue(ctx context.Context, in *extension.ValueSpecifier, opts ...grpc.CallOption) (*extension.ReturnValues, error)
+	SetExtValue(ctx context.Context, in *extension.ValueSet, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	// omci start and stop cli implementation
+	StartOmciTestAction(ctx context.Context, in *omci.OmciTestRequest, opts ...grpc.CallOption) (*omci.TestResponse, error)
+	// Saves or updates system wide configuration into voltha KV
+	PutVoipSystemProfile(ctx context.Context, in *voip_system_profile.VoipSystemProfileRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	// Deletes the given profile from voltha KV
+	DeleteVoipSystemProfile(ctx context.Context, in *common.Key, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	// Saves or updates a profile (VOIP) into voltha KV
+	PutVoipUserProfile(ctx context.Context, in *voip_user_profile.VoipUserProfileRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	// Deletes the given profile from voltha KV
+	DeleteVoipUserProfile(ctx context.Context, in *common.Key, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	// Disables the ONU, stops it from participating in the ranging process. different from DisableDevice
+	DisableOnuDevice(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	// Enables the ONU at the PLOAM , enables the ONU to participate in the ranging process. different from EnableDevice
+	EnableOnuDevice(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	// Disables the ONU at the PLOAM , different from DisableDevice. This would be used if the Device is not present in the VOLTHA
+	DisableOnuSerialNumber(ctx context.Context, in *OnuSerialNumberOnOLTPon, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	// Disables the ONU at the PLOAM , different from EnableDevice. This would be used if the Device is not present in the VOLTHA
+	EnableOnuSerialNumber(ctx context.Context, in *OnuSerialNumberOnOLTPon, opts ...grpc.CallOption) (*emptypb.Empty, error)
+	// Update the Device configuration, for now only ip address updation is supported
+	UpdateDevice(ctx context.Context, in *UpdateDevice, opts ...grpc.CallOption) (*emptypb.Empty, error)
+}
+
+type volthaServiceClient struct {
+	cc grpc.ClientConnInterface
+}
+
+func NewVolthaServiceClient(cc grpc.ClientConnInterface) VolthaServiceClient {
+	return &volthaServiceClient{cc}
+}
+
+func (c *volthaServiceClient) GetVoltha(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*Voltha, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Voltha)
+	err := c.cc.Invoke(ctx, VolthaService_GetVoltha_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) ListCoreInstances(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*CoreInstances, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(CoreInstances)
+	err := c.cc.Invoke(ctx, VolthaService_ListCoreInstances_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) GetCoreInstance(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*CoreInstance, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(CoreInstance)
+	err := c.cc.Invoke(ctx, VolthaService_GetCoreInstance_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) ListAdapters(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*Adapters, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Adapters)
+	err := c.cc.Invoke(ctx, VolthaService_ListAdapters_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) ListLogicalDevices(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*LogicalDevices, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(LogicalDevices)
+	err := c.cc.Invoke(ctx, VolthaService_ListLogicalDevices_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) GetLogicalDevice(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*LogicalDevice, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(LogicalDevice)
+	err := c.cc.Invoke(ctx, VolthaService_GetLogicalDevice_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) ListLogicalDevicePorts(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*LogicalPorts, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(LogicalPorts)
+	err := c.cc.Invoke(ctx, VolthaService_ListLogicalDevicePorts_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) GetLogicalDevicePort(ctx context.Context, in *LogicalPortId, opts ...grpc.CallOption) (*LogicalPort, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(LogicalPort)
+	err := c.cc.Invoke(ctx, VolthaService_GetLogicalDevicePort_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) EnableLogicalDevicePort(ctx context.Context, in *LogicalPortId, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, VolthaService_EnableLogicalDevicePort_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) DisableLogicalDevicePort(ctx context.Context, in *LogicalPortId, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, VolthaService_DisableLogicalDevicePort_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) ListLogicalDeviceFlows(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*openflow_13.Flows, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(openflow_13.Flows)
+	err := c.cc.Invoke(ctx, VolthaService_ListLogicalDeviceFlows_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) UpdateLogicalDeviceFlowTable(ctx context.Context, in *openflow_13.FlowTableUpdate, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, VolthaService_UpdateLogicalDeviceFlowTable_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) UpdateLogicalDeviceMeterTable(ctx context.Context, in *openflow_13.MeterModUpdate, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, VolthaService_UpdateLogicalDeviceMeterTable_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) ListLogicalDeviceMeters(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*openflow_13.Meters, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(openflow_13.Meters)
+	err := c.cc.Invoke(ctx, VolthaService_ListLogicalDeviceMeters_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) ListLogicalDeviceFlowGroups(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*openflow_13.FlowGroups, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(openflow_13.FlowGroups)
+	err := c.cc.Invoke(ctx, VolthaService_ListLogicalDeviceFlowGroups_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) UpdateLogicalDeviceFlowGroupTable(ctx context.Context, in *openflow_13.FlowGroupTableUpdate, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, VolthaService_UpdateLogicalDeviceFlowGroupTable_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) ListDevices(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*Devices, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Devices)
+	err := c.cc.Invoke(ctx, VolthaService_ListDevices_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) ListDeviceIds(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*common.IDs, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(common.IDs)
+	err := c.cc.Invoke(ctx, VolthaService_ListDeviceIds_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) ReconcileDevices(ctx context.Context, in *common.IDs, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, VolthaService_ReconcileDevices_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) GetDevice(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*Device, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Device)
+	err := c.cc.Invoke(ctx, VolthaService_GetDevice_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) CreateDevice(ctx context.Context, in *Device, opts ...grpc.CallOption) (*Device, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Device)
+	err := c.cc.Invoke(ctx, VolthaService_CreateDevice_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) EnableDevice(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, VolthaService_EnableDevice_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) DisableDevice(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, VolthaService_DisableDevice_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) RebootDevice(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, VolthaService_RebootDevice_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) DeleteDevice(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, VolthaService_DeleteDevice_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) ForceDeleteDevice(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, VolthaService_ForceDeleteDevice_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+// Deprecated: Do not use.
+func (c *volthaServiceClient) DownloadImage(ctx context.Context, in *ImageDownload, opts ...grpc.CallOption) (*common.OperationResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(common.OperationResp)
+	err := c.cc.Invoke(ctx, VolthaService_DownloadImage_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+// Deprecated: Do not use.
+func (c *volthaServiceClient) GetImageDownloadStatus(ctx context.Context, in *ImageDownload, opts ...grpc.CallOption) (*ImageDownload, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(ImageDownload)
+	err := c.cc.Invoke(ctx, VolthaService_GetImageDownloadStatus_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+// Deprecated: Do not use.
+func (c *volthaServiceClient) GetImageDownload(ctx context.Context, in *ImageDownload, opts ...grpc.CallOption) (*ImageDownload, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(ImageDownload)
+	err := c.cc.Invoke(ctx, VolthaService_GetImageDownload_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+// Deprecated: Do not use.
+func (c *volthaServiceClient) ListImageDownloads(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*ImageDownloads, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(ImageDownloads)
+	err := c.cc.Invoke(ctx, VolthaService_ListImageDownloads_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+// Deprecated: Do not use.
+func (c *volthaServiceClient) CancelImageDownload(ctx context.Context, in *ImageDownload, opts ...grpc.CallOption) (*common.OperationResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(common.OperationResp)
+	err := c.cc.Invoke(ctx, VolthaService_CancelImageDownload_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+// Deprecated: Do not use.
+func (c *volthaServiceClient) ActivateImageUpdate(ctx context.Context, in *ImageDownload, opts ...grpc.CallOption) (*common.OperationResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(common.OperationResp)
+	err := c.cc.Invoke(ctx, VolthaService_ActivateImageUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+// Deprecated: Do not use.
+func (c *volthaServiceClient) RevertImageUpdate(ctx context.Context, in *ImageDownload, opts ...grpc.CallOption) (*common.OperationResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(common.OperationResp)
+	err := c.cc.Invoke(ctx, VolthaService_RevertImageUpdate_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) DownloadImageToDevice(ctx context.Context, in *DeviceImageDownloadRequest, opts ...grpc.CallOption) (*DeviceImageResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(DeviceImageResponse)
+	err := c.cc.Invoke(ctx, VolthaService_DownloadImageToDevice_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) GetImageStatus(ctx context.Context, in *DeviceImageRequest, opts ...grpc.CallOption) (*DeviceImageResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(DeviceImageResponse)
+	err := c.cc.Invoke(ctx, VolthaService_GetImageStatus_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) AbortImageUpgradeToDevice(ctx context.Context, in *DeviceImageRequest, opts ...grpc.CallOption) (*DeviceImageResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(DeviceImageResponse)
+	err := c.cc.Invoke(ctx, VolthaService_AbortImageUpgradeToDevice_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) GetOnuImages(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*OnuImages, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(OnuImages)
+	err := c.cc.Invoke(ctx, VolthaService_GetOnuImages_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) ActivateImage(ctx context.Context, in *DeviceImageRequest, opts ...grpc.CallOption) (*DeviceImageResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(DeviceImageResponse)
+	err := c.cc.Invoke(ctx, VolthaService_ActivateImage_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) CommitImage(ctx context.Context, in *DeviceImageRequest, opts ...grpc.CallOption) (*DeviceImageResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(DeviceImageResponse)
+	err := c.cc.Invoke(ctx, VolthaService_CommitImage_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) ListDevicePorts(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*Ports, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Ports)
+	err := c.cc.Invoke(ctx, VolthaService_ListDevicePorts_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) ListDevicePmConfigs(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*PmConfigs, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(PmConfigs)
+	err := c.cc.Invoke(ctx, VolthaService_ListDevicePmConfigs_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) UpdateDevicePmConfigs(ctx context.Context, in *PmConfigs, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, VolthaService_UpdateDevicePmConfigs_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) ListDeviceFlows(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*openflow_13.Flows, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(openflow_13.Flows)
+	err := c.cc.Invoke(ctx, VolthaService_ListDeviceFlows_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) ListDeviceFlowGroups(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*openflow_13.FlowGroups, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(openflow_13.FlowGroups)
+	err := c.cc.Invoke(ctx, VolthaService_ListDeviceFlowGroups_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) ListDeviceTypes(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*DeviceTypes, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(DeviceTypes)
+	err := c.cc.Invoke(ctx, VolthaService_ListDeviceTypes_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) GetDeviceType(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*DeviceType, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(DeviceType)
+	err := c.cc.Invoke(ctx, VolthaService_GetDeviceType_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) StreamPacketsOut(ctx context.Context, opts ...grpc.CallOption) (grpc.ClientStreamingClient[openflow_13.PacketOut, emptypb.Empty], error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	stream, err := c.cc.NewStream(ctx, &VolthaService_ServiceDesc.Streams[0], VolthaService_StreamPacketsOut_FullMethodName, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	x := &grpc.GenericClientStream[openflow_13.PacketOut, emptypb.Empty]{ClientStream: stream}
+	return x, nil
+}
+
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type VolthaService_StreamPacketsOutClient = grpc.ClientStreamingClient[openflow_13.PacketOut, emptypb.Empty]
+
+func (c *volthaServiceClient) ReceivePacketsIn(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (grpc.ServerStreamingClient[openflow_13.PacketIn], error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	stream, err := c.cc.NewStream(ctx, &VolthaService_ServiceDesc.Streams[1], VolthaService_ReceivePacketsIn_FullMethodName, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	x := &grpc.GenericClientStream[emptypb.Empty, openflow_13.PacketIn]{ClientStream: stream}
+	if err := x.ClientStream.SendMsg(in); err != nil {
+		return nil, err
+	}
+	if err := x.ClientStream.CloseSend(); err != nil {
+		return nil, err
+	}
+	return x, nil
+}
+
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type VolthaService_ReceivePacketsInClient = grpc.ServerStreamingClient[openflow_13.PacketIn]
+
+func (c *volthaServiceClient) ReceiveChangeEvents(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (grpc.ServerStreamingClient[openflow_13.ChangeEvent], error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	stream, err := c.cc.NewStream(ctx, &VolthaService_ServiceDesc.Streams[2], VolthaService_ReceiveChangeEvents_FullMethodName, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	x := &grpc.GenericClientStream[emptypb.Empty, openflow_13.ChangeEvent]{ClientStream: stream}
+	if err := x.ClientStream.SendMsg(in); err != nil {
+		return nil, err
+	}
+	if err := x.ClientStream.CloseSend(); err != nil {
+		return nil, err
+	}
+	return x, nil
+}
+
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type VolthaService_ReceiveChangeEventsClient = grpc.ServerStreamingClient[openflow_13.ChangeEvent]
+
+func (c *volthaServiceClient) CreateEventFilter(ctx context.Context, in *EventFilter, opts ...grpc.CallOption) (*EventFilter, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(EventFilter)
+	err := c.cc.Invoke(ctx, VolthaService_CreateEventFilter_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) GetEventFilter(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*EventFilters, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(EventFilters)
+	err := c.cc.Invoke(ctx, VolthaService_GetEventFilter_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) UpdateEventFilter(ctx context.Context, in *EventFilter, opts ...grpc.CallOption) (*EventFilter, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(EventFilter)
+	err := c.cc.Invoke(ctx, VolthaService_UpdateEventFilter_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) DeleteEventFilter(ctx context.Context, in *EventFilter, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, VolthaService_DeleteEventFilter_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) ListEventFilters(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*EventFilters, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(EventFilters)
+	err := c.cc.Invoke(ctx, VolthaService_ListEventFilters_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) GetImages(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*Images, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(Images)
+	err := c.cc.Invoke(ctx, VolthaService_GetImages_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) SelfTest(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*SelfTestResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(SelfTestResponse)
+	err := c.cc.Invoke(ctx, VolthaService_SelfTest_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) GetMibDeviceData(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*omci.MibDeviceData, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(omci.MibDeviceData)
+	err := c.cc.Invoke(ctx, VolthaService_GetMibDeviceData_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) GetAlarmDeviceData(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*omci.AlarmDeviceData, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(omci.AlarmDeviceData)
+	err := c.cc.Invoke(ctx, VolthaService_GetAlarmDeviceData_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) SimulateAlarm(ctx context.Context, in *SimulateAlarmRequest, opts ...grpc.CallOption) (*common.OperationResp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(common.OperationResp)
+	err := c.cc.Invoke(ctx, VolthaService_SimulateAlarm_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) EnablePort(ctx context.Context, in *Port, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, VolthaService_EnablePort_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) DisablePort(ctx context.Context, in *Port, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, VolthaService_DisablePort_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) GetExtValue(ctx context.Context, in *extension.ValueSpecifier, opts ...grpc.CallOption) (*extension.ReturnValues, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(extension.ReturnValues)
+	err := c.cc.Invoke(ctx, VolthaService_GetExtValue_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) SetExtValue(ctx context.Context, in *extension.ValueSet, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, VolthaService_SetExtValue_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) StartOmciTestAction(ctx context.Context, in *omci.OmciTestRequest, opts ...grpc.CallOption) (*omci.TestResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(omci.TestResponse)
+	err := c.cc.Invoke(ctx, VolthaService_StartOmciTestAction_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) PutVoipSystemProfile(ctx context.Context, in *voip_system_profile.VoipSystemProfileRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, VolthaService_PutVoipSystemProfile_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) DeleteVoipSystemProfile(ctx context.Context, in *common.Key, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, VolthaService_DeleteVoipSystemProfile_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) PutVoipUserProfile(ctx context.Context, in *voip_user_profile.VoipUserProfileRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, VolthaService_PutVoipUserProfile_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) DeleteVoipUserProfile(ctx context.Context, in *common.Key, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, VolthaService_DeleteVoipUserProfile_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) DisableOnuDevice(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, VolthaService_DisableOnuDevice_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) EnableOnuDevice(ctx context.Context, in *common.ID, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, VolthaService_EnableOnuDevice_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) DisableOnuSerialNumber(ctx context.Context, in *OnuSerialNumberOnOLTPon, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, VolthaService_DisableOnuSerialNumber_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) EnableOnuSerialNumber(ctx context.Context, in *OnuSerialNumberOnOLTPon, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, VolthaService_EnableOnuSerialNumber_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *volthaServiceClient) UpdateDevice(ctx context.Context, in *UpdateDevice, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(emptypb.Empty)
+	err := c.cc.Invoke(ctx, VolthaService_UpdateDevice_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+// VolthaServiceServer is the server API for VolthaService service.
+// All implementations must embed UnimplementedVolthaServiceServer
+// for forward compatibility.
+//
+// Voltha APIs
+type VolthaServiceServer interface {
+	// Get high level information on the Voltha cluster
+	GetVoltha(context.Context, *emptypb.Empty) (*Voltha, error)
+	// List all Voltha cluster core instances
+	ListCoreInstances(context.Context, *emptypb.Empty) (*CoreInstances, error)
+	// Get details on a Voltha cluster instance
+	GetCoreInstance(context.Context, *common.ID) (*CoreInstance, error)
+	// List all active adapters (plugins) in the Voltha cluster
+	ListAdapters(context.Context, *emptypb.Empty) (*Adapters, error)
+	// List all logical devices managed by the Voltha cluster
+	ListLogicalDevices(context.Context, *emptypb.Empty) (*LogicalDevices, error)
+	// Get additional information on a given logical device
+	GetLogicalDevice(context.Context, *common.ID) (*LogicalDevice, error)
+	// List ports of a logical device
+	ListLogicalDevicePorts(context.Context, *common.ID) (*LogicalPorts, error)
+	// Gets a logical device port
+	GetLogicalDevicePort(context.Context, *LogicalPortId) (*LogicalPort, error)
+	// Enables a logical device port
+	EnableLogicalDevicePort(context.Context, *LogicalPortId) (*emptypb.Empty, error)
+	// Disables a logical device port
+	DisableLogicalDevicePort(context.Context, *LogicalPortId) (*emptypb.Empty, error)
+	// List all flows of a logical device
+	ListLogicalDeviceFlows(context.Context, *common.ID) (*openflow_13.Flows, error)
+	// Update flow table for logical device
+	UpdateLogicalDeviceFlowTable(context.Context, *openflow_13.FlowTableUpdate) (*emptypb.Empty, error)
+	// Update meter table for logical device
+	UpdateLogicalDeviceMeterTable(context.Context, *openflow_13.MeterModUpdate) (*emptypb.Empty, error)
+	// List all meters of a logical device
+	ListLogicalDeviceMeters(context.Context, *common.ID) (*openflow_13.Meters, error)
+	// List all flow groups of a logical device
+	ListLogicalDeviceFlowGroups(context.Context, *common.ID) (*openflow_13.FlowGroups, error)
+	// Update group table for device
+	UpdateLogicalDeviceFlowGroupTable(context.Context, *openflow_13.FlowGroupTableUpdate) (*emptypb.Empty, error)
+	// List all physical devices controlled by the Voltha cluster
+	ListDevices(context.Context, *emptypb.Empty) (*Devices, error)
+	// List all physical devices IDs controlled by the Voltha cluster
+	ListDeviceIds(context.Context, *emptypb.Empty) (*common.IDs, error)
+	// Request to a voltha Core to reconcile a set of devices based on their IDs
+	ReconcileDevices(context.Context, *common.IDs) (*emptypb.Empty, error)
+	// Get more information on a given physical device
+	GetDevice(context.Context, *common.ID) (*Device, error)
+	// Pre-provision a new physical device
+	CreateDevice(context.Context, *Device) (*Device, error)
+	// Enable a device.  If the device was in pre-provisioned state then it
+	// will transition to ENABLED state.  If it was is DISABLED state then it
+	// will transition to ENABLED state as well.
+	EnableDevice(context.Context, *common.ID) (*emptypb.Empty, error)
+	// Disable a device
+	DisableDevice(context.Context, *common.ID) (*emptypb.Empty, error)
+	// Reboot a device
+	RebootDevice(context.Context, *common.ID) (*emptypb.Empty, error)
+	// Delete a device
+	DeleteDevice(context.Context, *common.ID) (*emptypb.Empty, error)
+	// Forcefully delete a device
+	ForceDeleteDevice(context.Context, *common.ID) (*emptypb.Empty, error)
+	// Deprecated: Do not use.
+	// Request an image download to the standby partition
+	// of a device.
+	// Note that the call is expected to be non-blocking.
+	DownloadImage(context.Context, *ImageDownload) (*common.OperationResp, error)
+	// Deprecated: Do not use.
+	// Get image download status on a device
+	// The request retrieves progress on device and updates db record
+	// Deprecated in voltha 2.8, will be removed
+	GetImageDownloadStatus(context.Context, *ImageDownload) (*ImageDownload, error)
+	// Deprecated: Do not use.
+	// Get image download db record
+	// Deprecated in voltha 2.8, will be removed
+	GetImageDownload(context.Context, *ImageDownload) (*ImageDownload, error)
+	// Deprecated: Do not use.
+	// List image download db records for a given device
+	// Deprecated in voltha 2.8, will be removed
+	ListImageDownloads(context.Context, *common.ID) (*ImageDownloads, error)
+	// Deprecated: Do not use.
+	// Cancel an existing image download process on a device
+	// Deprecated in voltha 2.8, will be removed
+	CancelImageDownload(context.Context, *ImageDownload) (*common.OperationResp, error)
+	// Deprecated: Do not use.
+	// Activate the specified image at a standby partition
+	// to active partition.
+	// Depending on the device implementation, this call
+	// may or may not cause device reboot.
+	// If no reboot, then a reboot is required to make the
+	// activated image running on device
+	// Note that the call is expected to be non-blocking.
+	// Deprecated in voltha 2.8, will be removed
+	ActivateImageUpdate(context.Context, *ImageDownload) (*common.OperationResp, error)
+	// Deprecated: Do not use.
+	// Revert the specified image at standby partition
+	// to active partition, and revert to previous image
+	// Depending on the device implementation, this call
+	// may or may not cause device reboot.
+	// If no reboot, then a reboot is required to make the
+	// previous image running on device
+	// Note that the call is expected to be non-blocking.
+	// Deprecated in voltha 2.8, will be removed
+	RevertImageUpdate(context.Context, *ImageDownload) (*common.OperationResp, error)
+	// Downloads a certain image to the standby partition of the devices
+	// Note that the call is expected to be non-blocking.
+	DownloadImageToDevice(context.Context, *DeviceImageDownloadRequest) (*DeviceImageResponse, error)
+	// Get image status on a number of devices devices
+	// Polled from northbound systems to get state of download/activate/commit
+	GetImageStatus(context.Context, *DeviceImageRequest) (*DeviceImageResponse, error)
+	// Aborts the upgrade of an image on a device
+	// To be used carefully, stops any further operations for the Image on the given devices
+	// Might also stop if possible existing work, but no guarantees are given,
+	// depends on implementation and procedure status.
+	AbortImageUpgradeToDevice(context.Context, *DeviceImageRequest) (*DeviceImageResponse, error)
+	// Get Both Active and Standby image for a given device
+	GetOnuImages(context.Context, *common.ID) (*OnuImages, error)
+	// Activate the specified image from a standby partition
+	// to active partition.
+	// Depending on the device implementation, this call
+	// may or may not cause device reboot.
+	// If no reboot, then a reboot is required to make the
+	// activated image running on device
+	// Note that the call is expected to be non-blocking.
+	ActivateImage(context.Context, *DeviceImageRequest) (*DeviceImageResponse, error)
+	// Commit the specified image to be default.
+	// Depending on the device implementation, this call
+	// may or may not cause device reboot.
+	// If no reboot, then a reboot is required to make the
+	// activated image running on device upon next reboot
+	// Note that the call is expected to be non-blocking.
+	CommitImage(context.Context, *DeviceImageRequest) (*DeviceImageResponse, error)
+	// List ports of a device
+	ListDevicePorts(context.Context, *common.ID) (*Ports, error)
+	// List pm config of a device
+	ListDevicePmConfigs(context.Context, *common.ID) (*PmConfigs, error)
+	// Update the pm config of a device
+	UpdateDevicePmConfigs(context.Context, *PmConfigs) (*emptypb.Empty, error)
+	// List all flows of a device
+	ListDeviceFlows(context.Context, *common.ID) (*openflow_13.Flows, error)
+	// List all flow groups of a device
+	ListDeviceFlowGroups(context.Context, *common.ID) (*openflow_13.FlowGroups, error)
+	// List device types known to Voltha
+	ListDeviceTypes(context.Context, *emptypb.Empty) (*DeviceTypes, error)
+	// Get additional information on a device type
+	GetDeviceType(context.Context, *common.ID) (*DeviceType, error)
+	// Stream control packets to the dataplane
+	StreamPacketsOut(grpc.ClientStreamingServer[openflow_13.PacketOut, emptypb.Empty]) error
+	// Receive control packet stream
+	ReceivePacketsIn(*emptypb.Empty, grpc.ServerStreamingServer[openflow_13.PacketIn]) error
+	ReceiveChangeEvents(*emptypb.Empty, grpc.ServerStreamingServer[openflow_13.ChangeEvent]) error
+	CreateEventFilter(context.Context, *EventFilter) (*EventFilter, error)
+	// Get all filters present for a device
+	GetEventFilter(context.Context, *common.ID) (*EventFilters, error)
+	UpdateEventFilter(context.Context, *EventFilter) (*EventFilter, error)
+	DeleteEventFilter(context.Context, *EventFilter) (*emptypb.Empty, error)
+	// Get all the filters present
+	ListEventFilters(context.Context, *emptypb.Empty) (*EventFilters, error)
+	GetImages(context.Context, *common.ID) (*Images, error)
+	SelfTest(context.Context, *common.ID) (*SelfTestResponse, error)
+	// OpenOMCI MIB information
+	GetMibDeviceData(context.Context, *common.ID) (*omci.MibDeviceData, error)
+	// OpenOMCI ALARM information
+	GetAlarmDeviceData(context.Context, *common.ID) (*omci.AlarmDeviceData, error)
+	// Simulate an Alarm
+	SimulateAlarm(context.Context, *SimulateAlarmRequest) (*common.OperationResp, error)
+	EnablePort(context.Context, *Port) (*emptypb.Empty, error)
+	DisablePort(context.Context, *Port) (*emptypb.Empty, error)
+	GetExtValue(context.Context, *extension.ValueSpecifier) (*extension.ReturnValues, error)
+	SetExtValue(context.Context, *extension.ValueSet) (*emptypb.Empty, error)
+	// omci start and stop cli implementation
+	StartOmciTestAction(context.Context, *omci.OmciTestRequest) (*omci.TestResponse, error)
+	// Saves or updates system wide configuration into voltha KV
+	PutVoipSystemProfile(context.Context, *voip_system_profile.VoipSystemProfileRequest) (*emptypb.Empty, error)
+	// Deletes the given profile from voltha KV
+	DeleteVoipSystemProfile(context.Context, *common.Key) (*emptypb.Empty, error)
+	// Saves or updates a profile (VOIP) into voltha KV
+	PutVoipUserProfile(context.Context, *voip_user_profile.VoipUserProfileRequest) (*emptypb.Empty, error)
+	// Deletes the given profile from voltha KV
+	DeleteVoipUserProfile(context.Context, *common.Key) (*emptypb.Empty, error)
+	// Disables the ONU, stops it from participating in the ranging process. different from DisableDevice
+	DisableOnuDevice(context.Context, *common.ID) (*emptypb.Empty, error)
+	// Enables the ONU at the PLOAM , enables the ONU to participate in the ranging process. different from EnableDevice
+	EnableOnuDevice(context.Context, *common.ID) (*emptypb.Empty, error)
+	// Disables the ONU at the PLOAM , different from DisableDevice. This would be used if the Device is not present in the VOLTHA
+	DisableOnuSerialNumber(context.Context, *OnuSerialNumberOnOLTPon) (*emptypb.Empty, error)
+	// Disables the ONU at the PLOAM , different from EnableDevice. This would be used if the Device is not present in the VOLTHA
+	EnableOnuSerialNumber(context.Context, *OnuSerialNumberOnOLTPon) (*emptypb.Empty, error)
+	// Update the Device configuration, for now only ip address updation is supported
+	UpdateDevice(context.Context, *UpdateDevice) (*emptypb.Empty, error)
+	mustEmbedUnimplementedVolthaServiceServer()
+}
+
+// UnimplementedVolthaServiceServer must be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedVolthaServiceServer struct{}
+
+func (UnimplementedVolthaServiceServer) GetVoltha(context.Context, *emptypb.Empty) (*Voltha, error) {
+	return nil, status.Error(codes.Unimplemented, "method GetVoltha not implemented")
+}
+func (UnimplementedVolthaServiceServer) ListCoreInstances(context.Context, *emptypb.Empty) (*CoreInstances, error) {
+	return nil, status.Error(codes.Unimplemented, "method ListCoreInstances not implemented")
+}
+func (UnimplementedVolthaServiceServer) GetCoreInstance(context.Context, *common.ID) (*CoreInstance, error) {
+	return nil, status.Error(codes.Unimplemented, "method GetCoreInstance not implemented")
+}
+func (UnimplementedVolthaServiceServer) ListAdapters(context.Context, *emptypb.Empty) (*Adapters, error) {
+	return nil, status.Error(codes.Unimplemented, "method ListAdapters not implemented")
+}
+func (UnimplementedVolthaServiceServer) ListLogicalDevices(context.Context, *emptypb.Empty) (*LogicalDevices, error) {
+	return nil, status.Error(codes.Unimplemented, "method ListLogicalDevices not implemented")
+}
+func (UnimplementedVolthaServiceServer) GetLogicalDevice(context.Context, *common.ID) (*LogicalDevice, error) {
+	return nil, status.Error(codes.Unimplemented, "method GetLogicalDevice not implemented")
+}
+func (UnimplementedVolthaServiceServer) ListLogicalDevicePorts(context.Context, *common.ID) (*LogicalPorts, error) {
+	return nil, status.Error(codes.Unimplemented, "method ListLogicalDevicePorts not implemented")
+}
+func (UnimplementedVolthaServiceServer) GetLogicalDevicePort(context.Context, *LogicalPortId) (*LogicalPort, error) {
+	return nil, status.Error(codes.Unimplemented, "method GetLogicalDevicePort not implemented")
+}
+func (UnimplementedVolthaServiceServer) EnableLogicalDevicePort(context.Context, *LogicalPortId) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method EnableLogicalDevicePort not implemented")
+}
+func (UnimplementedVolthaServiceServer) DisableLogicalDevicePort(context.Context, *LogicalPortId) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method DisableLogicalDevicePort not implemented")
+}
+func (UnimplementedVolthaServiceServer) ListLogicalDeviceFlows(context.Context, *common.ID) (*openflow_13.Flows, error) {
+	return nil, status.Error(codes.Unimplemented, "method ListLogicalDeviceFlows not implemented")
+}
+func (UnimplementedVolthaServiceServer) UpdateLogicalDeviceFlowTable(context.Context, *openflow_13.FlowTableUpdate) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method UpdateLogicalDeviceFlowTable not implemented")
+}
+func (UnimplementedVolthaServiceServer) UpdateLogicalDeviceMeterTable(context.Context, *openflow_13.MeterModUpdate) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method UpdateLogicalDeviceMeterTable not implemented")
+}
+func (UnimplementedVolthaServiceServer) ListLogicalDeviceMeters(context.Context, *common.ID) (*openflow_13.Meters, error) {
+	return nil, status.Error(codes.Unimplemented, "method ListLogicalDeviceMeters not implemented")
+}
+func (UnimplementedVolthaServiceServer) ListLogicalDeviceFlowGroups(context.Context, *common.ID) (*openflow_13.FlowGroups, error) {
+	return nil, status.Error(codes.Unimplemented, "method ListLogicalDeviceFlowGroups not implemented")
+}
+func (UnimplementedVolthaServiceServer) UpdateLogicalDeviceFlowGroupTable(context.Context, *openflow_13.FlowGroupTableUpdate) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method UpdateLogicalDeviceFlowGroupTable not implemented")
+}
+func (UnimplementedVolthaServiceServer) ListDevices(context.Context, *emptypb.Empty) (*Devices, error) {
+	return nil, status.Error(codes.Unimplemented, "method ListDevices not implemented")
+}
+func (UnimplementedVolthaServiceServer) ListDeviceIds(context.Context, *emptypb.Empty) (*common.IDs, error) {
+	return nil, status.Error(codes.Unimplemented, "method ListDeviceIds not implemented")
+}
+func (UnimplementedVolthaServiceServer) ReconcileDevices(context.Context, *common.IDs) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method ReconcileDevices not implemented")
+}
+func (UnimplementedVolthaServiceServer) GetDevice(context.Context, *common.ID) (*Device, error) {
+	return nil, status.Error(codes.Unimplemented, "method GetDevice not implemented")
+}
+func (UnimplementedVolthaServiceServer) CreateDevice(context.Context, *Device) (*Device, error) {
+	return nil, status.Error(codes.Unimplemented, "method CreateDevice not implemented")
+}
+func (UnimplementedVolthaServiceServer) EnableDevice(context.Context, *common.ID) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method EnableDevice not implemented")
+}
+func (UnimplementedVolthaServiceServer) DisableDevice(context.Context, *common.ID) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method DisableDevice not implemented")
+}
+func (UnimplementedVolthaServiceServer) RebootDevice(context.Context, *common.ID) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method RebootDevice not implemented")
+}
+func (UnimplementedVolthaServiceServer) DeleteDevice(context.Context, *common.ID) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method DeleteDevice not implemented")
+}
+func (UnimplementedVolthaServiceServer) ForceDeleteDevice(context.Context, *common.ID) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method ForceDeleteDevice not implemented")
+}
+func (UnimplementedVolthaServiceServer) DownloadImage(context.Context, *ImageDownload) (*common.OperationResp, error) {
+	return nil, status.Error(codes.Unimplemented, "method DownloadImage not implemented")
+}
+func (UnimplementedVolthaServiceServer) GetImageDownloadStatus(context.Context, *ImageDownload) (*ImageDownload, error) {
+	return nil, status.Error(codes.Unimplemented, "method GetImageDownloadStatus not implemented")
+}
+func (UnimplementedVolthaServiceServer) GetImageDownload(context.Context, *ImageDownload) (*ImageDownload, error) {
+	return nil, status.Error(codes.Unimplemented, "method GetImageDownload not implemented")
+}
+func (UnimplementedVolthaServiceServer) ListImageDownloads(context.Context, *common.ID) (*ImageDownloads, error) {
+	return nil, status.Error(codes.Unimplemented, "method ListImageDownloads not implemented")
+}
+func (UnimplementedVolthaServiceServer) CancelImageDownload(context.Context, *ImageDownload) (*common.OperationResp, error) {
+	return nil, status.Error(codes.Unimplemented, "method CancelImageDownload not implemented")
+}
+func (UnimplementedVolthaServiceServer) ActivateImageUpdate(context.Context, *ImageDownload) (*common.OperationResp, error) {
+	return nil, status.Error(codes.Unimplemented, "method ActivateImageUpdate not implemented")
+}
+func (UnimplementedVolthaServiceServer) RevertImageUpdate(context.Context, *ImageDownload) (*common.OperationResp, error) {
+	return nil, status.Error(codes.Unimplemented, "method RevertImageUpdate not implemented")
+}
+func (UnimplementedVolthaServiceServer) DownloadImageToDevice(context.Context, *DeviceImageDownloadRequest) (*DeviceImageResponse, error) {
+	return nil, status.Error(codes.Unimplemented, "method DownloadImageToDevice not implemented")
+}
+func (UnimplementedVolthaServiceServer) GetImageStatus(context.Context, *DeviceImageRequest) (*DeviceImageResponse, error) {
+	return nil, status.Error(codes.Unimplemented, "method GetImageStatus not implemented")
+}
+func (UnimplementedVolthaServiceServer) AbortImageUpgradeToDevice(context.Context, *DeviceImageRequest) (*DeviceImageResponse, error) {
+	return nil, status.Error(codes.Unimplemented, "method AbortImageUpgradeToDevice not implemented")
+}
+func (UnimplementedVolthaServiceServer) GetOnuImages(context.Context, *common.ID) (*OnuImages, error) {
+	return nil, status.Error(codes.Unimplemented, "method GetOnuImages not implemented")
+}
+func (UnimplementedVolthaServiceServer) ActivateImage(context.Context, *DeviceImageRequest) (*DeviceImageResponse, error) {
+	return nil, status.Error(codes.Unimplemented, "method ActivateImage not implemented")
+}
+func (UnimplementedVolthaServiceServer) CommitImage(context.Context, *DeviceImageRequest) (*DeviceImageResponse, error) {
+	return nil, status.Error(codes.Unimplemented, "method CommitImage not implemented")
+}
+func (UnimplementedVolthaServiceServer) ListDevicePorts(context.Context, *common.ID) (*Ports, error) {
+	return nil, status.Error(codes.Unimplemented, "method ListDevicePorts not implemented")
+}
+func (UnimplementedVolthaServiceServer) ListDevicePmConfigs(context.Context, *common.ID) (*PmConfigs, error) {
+	return nil, status.Error(codes.Unimplemented, "method ListDevicePmConfigs not implemented")
+}
+func (UnimplementedVolthaServiceServer) UpdateDevicePmConfigs(context.Context, *PmConfigs) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method UpdateDevicePmConfigs not implemented")
+}
+func (UnimplementedVolthaServiceServer) ListDeviceFlows(context.Context, *common.ID) (*openflow_13.Flows, error) {
+	return nil, status.Error(codes.Unimplemented, "method ListDeviceFlows not implemented")
+}
+func (UnimplementedVolthaServiceServer) ListDeviceFlowGroups(context.Context, *common.ID) (*openflow_13.FlowGroups, error) {
+	return nil, status.Error(codes.Unimplemented, "method ListDeviceFlowGroups not implemented")
+}
+func (UnimplementedVolthaServiceServer) ListDeviceTypes(context.Context, *emptypb.Empty) (*DeviceTypes, error) {
+	return nil, status.Error(codes.Unimplemented, "method ListDeviceTypes not implemented")
+}
+func (UnimplementedVolthaServiceServer) GetDeviceType(context.Context, *common.ID) (*DeviceType, error) {
+	return nil, status.Error(codes.Unimplemented, "method GetDeviceType not implemented")
+}
+func (UnimplementedVolthaServiceServer) StreamPacketsOut(grpc.ClientStreamingServer[openflow_13.PacketOut, emptypb.Empty]) error {
+	return status.Error(codes.Unimplemented, "method StreamPacketsOut not implemented")
+}
+func (UnimplementedVolthaServiceServer) ReceivePacketsIn(*emptypb.Empty, grpc.ServerStreamingServer[openflow_13.PacketIn]) error {
+	return status.Error(codes.Unimplemented, "method ReceivePacketsIn not implemented")
+}
+func (UnimplementedVolthaServiceServer) ReceiveChangeEvents(*emptypb.Empty, grpc.ServerStreamingServer[openflow_13.ChangeEvent]) error {
+	return status.Error(codes.Unimplemented, "method ReceiveChangeEvents not implemented")
+}
+func (UnimplementedVolthaServiceServer) CreateEventFilter(context.Context, *EventFilter) (*EventFilter, error) {
+	return nil, status.Error(codes.Unimplemented, "method CreateEventFilter not implemented")
+}
+func (UnimplementedVolthaServiceServer) GetEventFilter(context.Context, *common.ID) (*EventFilters, error) {
+	return nil, status.Error(codes.Unimplemented, "method GetEventFilter not implemented")
+}
+func (UnimplementedVolthaServiceServer) UpdateEventFilter(context.Context, *EventFilter) (*EventFilter, error) {
+	return nil, status.Error(codes.Unimplemented, "method UpdateEventFilter not implemented")
+}
+func (UnimplementedVolthaServiceServer) DeleteEventFilter(context.Context, *EventFilter) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method DeleteEventFilter not implemented")
+}
+func (UnimplementedVolthaServiceServer) ListEventFilters(context.Context, *emptypb.Empty) (*EventFilters, error) {
+	return nil, status.Error(codes.Unimplemented, "method ListEventFilters not implemented")
+}
+func (UnimplementedVolthaServiceServer) GetImages(context.Context, *common.ID) (*Images, error) {
+	return nil, status.Error(codes.Unimplemented, "method GetImages not implemented")
+}
+func (UnimplementedVolthaServiceServer) SelfTest(context.Context, *common.ID) (*SelfTestResponse, error) {
+	return nil, status.Error(codes.Unimplemented, "method SelfTest not implemented")
+}
+func (UnimplementedVolthaServiceServer) GetMibDeviceData(context.Context, *common.ID) (*omci.MibDeviceData, error) {
+	return nil, status.Error(codes.Unimplemented, "method GetMibDeviceData not implemented")
+}
+func (UnimplementedVolthaServiceServer) GetAlarmDeviceData(context.Context, *common.ID) (*omci.AlarmDeviceData, error) {
+	return nil, status.Error(codes.Unimplemented, "method GetAlarmDeviceData not implemented")
+}
+func (UnimplementedVolthaServiceServer) SimulateAlarm(context.Context, *SimulateAlarmRequest) (*common.OperationResp, error) {
+	return nil, status.Error(codes.Unimplemented, "method SimulateAlarm not implemented")
+}
+func (UnimplementedVolthaServiceServer) EnablePort(context.Context, *Port) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method EnablePort not implemented")
+}
+func (UnimplementedVolthaServiceServer) DisablePort(context.Context, *Port) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method DisablePort not implemented")
+}
+func (UnimplementedVolthaServiceServer) GetExtValue(context.Context, *extension.ValueSpecifier) (*extension.ReturnValues, error) {
+	return nil, status.Error(codes.Unimplemented, "method GetExtValue not implemented")
+}
+func (UnimplementedVolthaServiceServer) SetExtValue(context.Context, *extension.ValueSet) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method SetExtValue not implemented")
+}
+func (UnimplementedVolthaServiceServer) StartOmciTestAction(context.Context, *omci.OmciTestRequest) (*omci.TestResponse, error) {
+	return nil, status.Error(codes.Unimplemented, "method StartOmciTestAction not implemented")
+}
+func (UnimplementedVolthaServiceServer) PutVoipSystemProfile(context.Context, *voip_system_profile.VoipSystemProfileRequest) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method PutVoipSystemProfile not implemented")
+}
+func (UnimplementedVolthaServiceServer) DeleteVoipSystemProfile(context.Context, *common.Key) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method DeleteVoipSystemProfile not implemented")
+}
+func (UnimplementedVolthaServiceServer) PutVoipUserProfile(context.Context, *voip_user_profile.VoipUserProfileRequest) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method PutVoipUserProfile not implemented")
+}
+func (UnimplementedVolthaServiceServer) DeleteVoipUserProfile(context.Context, *common.Key) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method DeleteVoipUserProfile not implemented")
+}
+func (UnimplementedVolthaServiceServer) DisableOnuDevice(context.Context, *common.ID) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method DisableOnuDevice not implemented")
+}
+func (UnimplementedVolthaServiceServer) EnableOnuDevice(context.Context, *common.ID) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method EnableOnuDevice not implemented")
+}
+func (UnimplementedVolthaServiceServer) DisableOnuSerialNumber(context.Context, *OnuSerialNumberOnOLTPon) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method DisableOnuSerialNumber not implemented")
+}
+func (UnimplementedVolthaServiceServer) EnableOnuSerialNumber(context.Context, *OnuSerialNumberOnOLTPon) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method EnableOnuSerialNumber not implemented")
+}
+func (UnimplementedVolthaServiceServer) UpdateDevice(context.Context, *UpdateDevice) (*emptypb.Empty, error) {
+	return nil, status.Error(codes.Unimplemented, "method UpdateDevice not implemented")
+}
+func (UnimplementedVolthaServiceServer) mustEmbedUnimplementedVolthaServiceServer() {}
+func (UnimplementedVolthaServiceServer) testEmbeddedByValue()                       {}
+
+// UnsafeVolthaServiceServer may be embedded to opt out of forward compatibility for this service.
+// Use of this interface is not recommended, as added methods to VolthaServiceServer will
+// result in compilation errors.
+type UnsafeVolthaServiceServer interface {
+	mustEmbedUnimplementedVolthaServiceServer()
+}
+
+func RegisterVolthaServiceServer(s grpc.ServiceRegistrar, srv VolthaServiceServer) {
+	// If the following call panics, it indicates UnimplementedVolthaServiceServer was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
+	s.RegisterService(&VolthaService_ServiceDesc, srv)
+}
+
+func _VolthaService_GetVoltha_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(emptypb.Empty)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(VolthaServiceServer).GetVoltha(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_GetVoltha_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).GetVoltha(ctx, req.(*emptypb.Empty))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_ListCoreInstances_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(emptypb.Empty)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(VolthaServiceServer).ListCoreInstances(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_ListCoreInstances_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).ListCoreInstances(ctx, req.(*emptypb.Empty))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_GetCoreInstance_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).GetCoreInstance(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_GetCoreInstance_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).GetCoreInstance(ctx, req.(*common.ID))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_ListAdapters_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(emptypb.Empty)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(VolthaServiceServer).ListAdapters(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_ListAdapters_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).ListAdapters(ctx, req.(*emptypb.Empty))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_ListLogicalDevices_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(emptypb.Empty)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(VolthaServiceServer).ListLogicalDevices(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_ListLogicalDevices_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).ListLogicalDevices(ctx, req.(*emptypb.Empty))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_GetLogicalDevice_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).GetLogicalDevice(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_GetLogicalDevice_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).GetLogicalDevice(ctx, req.(*common.ID))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_ListLogicalDevicePorts_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).ListLogicalDevicePorts(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_ListLogicalDevicePorts_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).ListLogicalDevicePorts(ctx, req.(*common.ID))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_GetLogicalDevicePort_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(LogicalPortId)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(VolthaServiceServer).GetLogicalDevicePort(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_GetLogicalDevicePort_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).GetLogicalDevicePort(ctx, req.(*LogicalPortId))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_EnableLogicalDevicePort_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(LogicalPortId)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(VolthaServiceServer).EnableLogicalDevicePort(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_EnableLogicalDevicePort_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).EnableLogicalDevicePort(ctx, req.(*LogicalPortId))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_DisableLogicalDevicePort_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(LogicalPortId)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(VolthaServiceServer).DisableLogicalDevicePort(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_DisableLogicalDevicePort_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).DisableLogicalDevicePort(ctx, req.(*LogicalPortId))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_ListLogicalDeviceFlows_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).ListLogicalDeviceFlows(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_ListLogicalDeviceFlows_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).ListLogicalDeviceFlows(ctx, req.(*common.ID))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_UpdateLogicalDeviceFlowTable_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(openflow_13.FlowTableUpdate)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(VolthaServiceServer).UpdateLogicalDeviceFlowTable(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_UpdateLogicalDeviceFlowTable_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).UpdateLogicalDeviceFlowTable(ctx, req.(*openflow_13.FlowTableUpdate))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_UpdateLogicalDeviceMeterTable_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(openflow_13.MeterModUpdate)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(VolthaServiceServer).UpdateLogicalDeviceMeterTable(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_UpdateLogicalDeviceMeterTable_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).UpdateLogicalDeviceMeterTable(ctx, req.(*openflow_13.MeterModUpdate))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_ListLogicalDeviceMeters_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).ListLogicalDeviceMeters(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_ListLogicalDeviceMeters_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).ListLogicalDeviceMeters(ctx, req.(*common.ID))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_ListLogicalDeviceFlowGroups_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).ListLogicalDeviceFlowGroups(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_ListLogicalDeviceFlowGroups_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).ListLogicalDeviceFlowGroups(ctx, req.(*common.ID))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_UpdateLogicalDeviceFlowGroupTable_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(openflow_13.FlowGroupTableUpdate)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(VolthaServiceServer).UpdateLogicalDeviceFlowGroupTable(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_UpdateLogicalDeviceFlowGroupTable_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).UpdateLogicalDeviceFlowGroupTable(ctx, req.(*openflow_13.FlowGroupTableUpdate))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_ListDevices_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(emptypb.Empty)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(VolthaServiceServer).ListDevices(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_ListDevices_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).ListDevices(ctx, req.(*emptypb.Empty))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_ListDeviceIds_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(emptypb.Empty)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(VolthaServiceServer).ListDeviceIds(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_ListDeviceIds_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).ListDeviceIds(ctx, req.(*emptypb.Empty))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_ReconcileDevices_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(common.IDs)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(VolthaServiceServer).ReconcileDevices(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_ReconcileDevices_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).ReconcileDevices(ctx, req.(*common.IDs))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_GetDevice_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).GetDevice(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_GetDevice_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).GetDevice(ctx, req.(*common.ID))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_CreateDevice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Device)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(VolthaServiceServer).CreateDevice(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_CreateDevice_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).CreateDevice(ctx, req.(*Device))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_EnableDevice_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).EnableDevice(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_EnableDevice_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).EnableDevice(ctx, req.(*common.ID))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_DisableDevice_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).DisableDevice(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_DisableDevice_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).DisableDevice(ctx, req.(*common.ID))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_RebootDevice_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).RebootDevice(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_RebootDevice_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).RebootDevice(ctx, req.(*common.ID))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_DeleteDevice_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).DeleteDevice(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_DeleteDevice_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).DeleteDevice(ctx, req.(*common.ID))
+	}
+	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: VolthaService_ForceDeleteDevice_FullMethodName,
+	}
+	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 {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(VolthaServiceServer).DownloadImage(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_DownloadImage_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).DownloadImage(ctx, req.(*ImageDownload))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_GetImageDownloadStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ImageDownload)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(VolthaServiceServer).GetImageDownloadStatus(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_GetImageDownloadStatus_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).GetImageDownloadStatus(ctx, req.(*ImageDownload))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_GetImageDownload_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ImageDownload)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(VolthaServiceServer).GetImageDownload(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_GetImageDownload_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).GetImageDownload(ctx, req.(*ImageDownload))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_ListImageDownloads_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).ListImageDownloads(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_ListImageDownloads_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).ListImageDownloads(ctx, req.(*common.ID))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_CancelImageDownload_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ImageDownload)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(VolthaServiceServer).CancelImageDownload(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_CancelImageDownload_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).CancelImageDownload(ctx, req.(*ImageDownload))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_ActivateImageUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ImageDownload)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(VolthaServiceServer).ActivateImageUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_ActivateImageUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).ActivateImageUpdate(ctx, req.(*ImageDownload))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_RevertImageUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ImageDownload)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(VolthaServiceServer).RevertImageUpdate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_RevertImageUpdate_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).RevertImageUpdate(ctx, req.(*ImageDownload))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_DownloadImageToDevice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(DeviceImageDownloadRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(VolthaServiceServer).DownloadImageToDevice(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_DownloadImageToDevice_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).DownloadImageToDevice(ctx, req.(*DeviceImageDownloadRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_GetImageStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(DeviceImageRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(VolthaServiceServer).GetImageStatus(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_GetImageStatus_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).GetImageStatus(ctx, req.(*DeviceImageRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_AbortImageUpgradeToDevice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(DeviceImageRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(VolthaServiceServer).AbortImageUpgradeToDevice(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_AbortImageUpgradeToDevice_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).AbortImageUpgradeToDevice(ctx, req.(*DeviceImageRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_GetOnuImages_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).GetOnuImages(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_GetOnuImages_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).GetOnuImages(ctx, req.(*common.ID))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_ActivateImage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(DeviceImageRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(VolthaServiceServer).ActivateImage(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_ActivateImage_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).ActivateImage(ctx, req.(*DeviceImageRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_CommitImage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(DeviceImageRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(VolthaServiceServer).CommitImage(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_CommitImage_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).CommitImage(ctx, req.(*DeviceImageRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_ListDevicePorts_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).ListDevicePorts(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_ListDevicePorts_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).ListDevicePorts(ctx, req.(*common.ID))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_ListDevicePmConfigs_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).ListDevicePmConfigs(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_ListDevicePmConfigs_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).ListDevicePmConfigs(ctx, req.(*common.ID))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_UpdateDevicePmConfigs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(PmConfigs)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(VolthaServiceServer).UpdateDevicePmConfigs(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_UpdateDevicePmConfigs_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).UpdateDevicePmConfigs(ctx, req.(*PmConfigs))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_ListDeviceFlows_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).ListDeviceFlows(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_ListDeviceFlows_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).ListDeviceFlows(ctx, req.(*common.ID))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_ListDeviceFlowGroups_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).ListDeviceFlowGroups(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_ListDeviceFlowGroups_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).ListDeviceFlowGroups(ctx, req.(*common.ID))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_ListDeviceTypes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(emptypb.Empty)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(VolthaServiceServer).ListDeviceTypes(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_ListDeviceTypes_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).ListDeviceTypes(ctx, req.(*emptypb.Empty))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_GetDeviceType_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).GetDeviceType(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_GetDeviceType_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).GetDeviceType(ctx, req.(*common.ID))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_StreamPacketsOut_Handler(srv interface{}, stream grpc.ServerStream) error {
+	return srv.(VolthaServiceServer).StreamPacketsOut(&grpc.GenericServerStream[openflow_13.PacketOut, emptypb.Empty]{ServerStream: stream})
+}
+
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type VolthaService_StreamPacketsOutServer = grpc.ClientStreamingServer[openflow_13.PacketOut, emptypb.Empty]
+
+func _VolthaService_ReceivePacketsIn_Handler(srv interface{}, stream grpc.ServerStream) error {
+	m := new(emptypb.Empty)
+	if err := stream.RecvMsg(m); err != nil {
+		return err
+	}
+	return srv.(VolthaServiceServer).ReceivePacketsIn(m, &grpc.GenericServerStream[emptypb.Empty, openflow_13.PacketIn]{ServerStream: stream})
+}
+
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type VolthaService_ReceivePacketsInServer = grpc.ServerStreamingServer[openflow_13.PacketIn]
+
+func _VolthaService_ReceiveChangeEvents_Handler(srv interface{}, stream grpc.ServerStream) error {
+	m := new(emptypb.Empty)
+	if err := stream.RecvMsg(m); err != nil {
+		return err
+	}
+	return srv.(VolthaServiceServer).ReceiveChangeEvents(m, &grpc.GenericServerStream[emptypb.Empty, openflow_13.ChangeEvent]{ServerStream: stream})
+}
+
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type VolthaService_ReceiveChangeEventsServer = grpc.ServerStreamingServer[openflow_13.ChangeEvent]
+
+func _VolthaService_CreateEventFilter_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(EventFilter)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(VolthaServiceServer).CreateEventFilter(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_CreateEventFilter_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).CreateEventFilter(ctx, req.(*EventFilter))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_GetEventFilter_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).GetEventFilter(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_GetEventFilter_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).GetEventFilter(ctx, req.(*common.ID))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_UpdateEventFilter_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(EventFilter)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(VolthaServiceServer).UpdateEventFilter(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_UpdateEventFilter_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).UpdateEventFilter(ctx, req.(*EventFilter))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_DeleteEventFilter_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(EventFilter)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(VolthaServiceServer).DeleteEventFilter(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_DeleteEventFilter_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).DeleteEventFilter(ctx, req.(*EventFilter))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_ListEventFilters_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(emptypb.Empty)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(VolthaServiceServer).ListEventFilters(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_ListEventFilters_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).ListEventFilters(ctx, req.(*emptypb.Empty))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_GetImages_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).GetImages(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_GetImages_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).GetImages(ctx, req.(*common.ID))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_SelfTest_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).SelfTest(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_SelfTest_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).SelfTest(ctx, req.(*common.ID))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_GetMibDeviceData_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).GetMibDeviceData(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_GetMibDeviceData_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).GetMibDeviceData(ctx, req.(*common.ID))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_GetAlarmDeviceData_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).GetAlarmDeviceData(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_GetAlarmDeviceData_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).GetAlarmDeviceData(ctx, req.(*common.ID))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_SimulateAlarm_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(SimulateAlarmRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(VolthaServiceServer).SimulateAlarm(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_SimulateAlarm_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).SimulateAlarm(ctx, req.(*SimulateAlarmRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_EnablePort_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Port)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(VolthaServiceServer).EnablePort(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_EnablePort_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).EnablePort(ctx, req.(*Port))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_DisablePort_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Port)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(VolthaServiceServer).DisablePort(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_DisablePort_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).DisablePort(ctx, req.(*Port))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_GetExtValue_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(extension.ValueSpecifier)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(VolthaServiceServer).GetExtValue(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_GetExtValue_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).GetExtValue(ctx, req.(*extension.ValueSpecifier))
+	}
+	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(extension.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: VolthaService_SetExtValue_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).SetExtValue(ctx, req.(*extension.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(omci.OmciTestRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(VolthaServiceServer).StartOmciTestAction(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_StartOmciTestAction_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).StartOmciTestAction(ctx, req.(*omci.OmciTestRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_PutVoipSystemProfile_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(voip_system_profile.VoipSystemProfileRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(VolthaServiceServer).PutVoipSystemProfile(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_PutVoipSystemProfile_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).PutVoipSystemProfile(ctx, req.(*voip_system_profile.VoipSystemProfileRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_DeleteVoipSystemProfile_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(common.Key)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(VolthaServiceServer).DeleteVoipSystemProfile(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_DeleteVoipSystemProfile_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).DeleteVoipSystemProfile(ctx, req.(*common.Key))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_PutVoipUserProfile_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(voip_user_profile.VoipUserProfileRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(VolthaServiceServer).PutVoipUserProfile(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_PutVoipUserProfile_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).PutVoipUserProfile(ctx, req.(*voip_user_profile.VoipUserProfileRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_DeleteVoipUserProfile_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(common.Key)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(VolthaServiceServer).DeleteVoipUserProfile(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_DeleteVoipUserProfile_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).DeleteVoipUserProfile(ctx, req.(*common.Key))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_DisableOnuDevice_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).DisableOnuDevice(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_DisableOnuDevice_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).DisableOnuDevice(ctx, req.(*common.ID))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_EnableOnuDevice_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).EnableOnuDevice(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_EnableOnuDevice_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).EnableOnuDevice(ctx, req.(*common.ID))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_DisableOnuSerialNumber_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(OnuSerialNumberOnOLTPon)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(VolthaServiceServer).DisableOnuSerialNumber(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_DisableOnuSerialNumber_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).DisableOnuSerialNumber(ctx, req.(*OnuSerialNumberOnOLTPon))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_EnableOnuSerialNumber_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(OnuSerialNumberOnOLTPon)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(VolthaServiceServer).EnableOnuSerialNumber(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_EnableOnuSerialNumber_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).EnableOnuSerialNumber(ctx, req.(*OnuSerialNumberOnOLTPon))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _VolthaService_UpdateDevice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(UpdateDevice)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(VolthaServiceServer).UpdateDevice(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: VolthaService_UpdateDevice_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(VolthaServiceServer).UpdateDevice(ctx, req.(*UpdateDevice))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+// VolthaService_ServiceDesc is the grpc.ServiceDesc for VolthaService service.
+// It's only intended for direct use with grpc.RegisterService,
+// and not to be introspected or modified (even as a copy)
+var VolthaService_ServiceDesc = grpc.ServiceDesc{
+	ServiceName: "voltha.VolthaService",
+	HandlerType: (*VolthaServiceServer)(nil),
+	Methods: []grpc.MethodDesc{
+		{
+			MethodName: "GetVoltha",
+			Handler:    _VolthaService_GetVoltha_Handler,
+		},
+		{
+			MethodName: "ListCoreInstances",
+			Handler:    _VolthaService_ListCoreInstances_Handler,
+		},
+		{
+			MethodName: "GetCoreInstance",
+			Handler:    _VolthaService_GetCoreInstance_Handler,
+		},
+		{
+			MethodName: "ListAdapters",
+			Handler:    _VolthaService_ListAdapters_Handler,
+		},
+		{
+			MethodName: "ListLogicalDevices",
+			Handler:    _VolthaService_ListLogicalDevices_Handler,
+		},
+		{
+			MethodName: "GetLogicalDevice",
+			Handler:    _VolthaService_GetLogicalDevice_Handler,
+		},
+		{
+			MethodName: "ListLogicalDevicePorts",
+			Handler:    _VolthaService_ListLogicalDevicePorts_Handler,
+		},
+		{
+			MethodName: "GetLogicalDevicePort",
+			Handler:    _VolthaService_GetLogicalDevicePort_Handler,
+		},
+		{
+			MethodName: "EnableLogicalDevicePort",
+			Handler:    _VolthaService_EnableLogicalDevicePort_Handler,
+		},
+		{
+			MethodName: "DisableLogicalDevicePort",
+			Handler:    _VolthaService_DisableLogicalDevicePort_Handler,
+		},
+		{
+			MethodName: "ListLogicalDeviceFlows",
+			Handler:    _VolthaService_ListLogicalDeviceFlows_Handler,
+		},
+		{
+			MethodName: "UpdateLogicalDeviceFlowTable",
+			Handler:    _VolthaService_UpdateLogicalDeviceFlowTable_Handler,
+		},
+		{
+			MethodName: "UpdateLogicalDeviceMeterTable",
+			Handler:    _VolthaService_UpdateLogicalDeviceMeterTable_Handler,
+		},
+		{
+			MethodName: "ListLogicalDeviceMeters",
+			Handler:    _VolthaService_ListLogicalDeviceMeters_Handler,
+		},
+		{
+			MethodName: "ListLogicalDeviceFlowGroups",
+			Handler:    _VolthaService_ListLogicalDeviceFlowGroups_Handler,
+		},
+		{
+			MethodName: "UpdateLogicalDeviceFlowGroupTable",
+			Handler:    _VolthaService_UpdateLogicalDeviceFlowGroupTable_Handler,
+		},
+		{
+			MethodName: "ListDevices",
+			Handler:    _VolthaService_ListDevices_Handler,
+		},
+		{
+			MethodName: "ListDeviceIds",
+			Handler:    _VolthaService_ListDeviceIds_Handler,
+		},
+		{
+			MethodName: "ReconcileDevices",
+			Handler:    _VolthaService_ReconcileDevices_Handler,
+		},
+		{
+			MethodName: "GetDevice",
+			Handler:    _VolthaService_GetDevice_Handler,
+		},
+		{
+			MethodName: "CreateDevice",
+			Handler:    _VolthaService_CreateDevice_Handler,
+		},
+		{
+			MethodName: "EnableDevice",
+			Handler:    _VolthaService_EnableDevice_Handler,
+		},
+		{
+			MethodName: "DisableDevice",
+			Handler:    _VolthaService_DisableDevice_Handler,
+		},
+		{
+			MethodName: "RebootDevice",
+			Handler:    _VolthaService_RebootDevice_Handler,
+		},
+		{
+			MethodName: "DeleteDevice",
+			Handler:    _VolthaService_DeleteDevice_Handler,
+		},
+		{
+			MethodName: "ForceDeleteDevice",
+			Handler:    _VolthaService_ForceDeleteDevice_Handler,
+		},
+		{
+			MethodName: "DownloadImage",
+			Handler:    _VolthaService_DownloadImage_Handler,
+		},
+		{
+			MethodName: "GetImageDownloadStatus",
+			Handler:    _VolthaService_GetImageDownloadStatus_Handler,
+		},
+		{
+			MethodName: "GetImageDownload",
+			Handler:    _VolthaService_GetImageDownload_Handler,
+		},
+		{
+			MethodName: "ListImageDownloads",
+			Handler:    _VolthaService_ListImageDownloads_Handler,
+		},
+		{
+			MethodName: "CancelImageDownload",
+			Handler:    _VolthaService_CancelImageDownload_Handler,
+		},
+		{
+			MethodName: "ActivateImageUpdate",
+			Handler:    _VolthaService_ActivateImageUpdate_Handler,
+		},
+		{
+			MethodName: "RevertImageUpdate",
+			Handler:    _VolthaService_RevertImageUpdate_Handler,
+		},
+		{
+			MethodName: "DownloadImageToDevice",
+			Handler:    _VolthaService_DownloadImageToDevice_Handler,
+		},
+		{
+			MethodName: "GetImageStatus",
+			Handler:    _VolthaService_GetImageStatus_Handler,
+		},
+		{
+			MethodName: "AbortImageUpgradeToDevice",
+			Handler:    _VolthaService_AbortImageUpgradeToDevice_Handler,
+		},
+		{
+			MethodName: "GetOnuImages",
+			Handler:    _VolthaService_GetOnuImages_Handler,
+		},
+		{
+			MethodName: "ActivateImage",
+			Handler:    _VolthaService_ActivateImage_Handler,
+		},
+		{
+			MethodName: "CommitImage",
+			Handler:    _VolthaService_CommitImage_Handler,
+		},
+		{
+			MethodName: "ListDevicePorts",
+			Handler:    _VolthaService_ListDevicePorts_Handler,
+		},
+		{
+			MethodName: "ListDevicePmConfigs",
+			Handler:    _VolthaService_ListDevicePmConfigs_Handler,
+		},
+		{
+			MethodName: "UpdateDevicePmConfigs",
+			Handler:    _VolthaService_UpdateDevicePmConfigs_Handler,
+		},
+		{
+			MethodName: "ListDeviceFlows",
+			Handler:    _VolthaService_ListDeviceFlows_Handler,
+		},
+		{
+			MethodName: "ListDeviceFlowGroups",
+			Handler:    _VolthaService_ListDeviceFlowGroups_Handler,
+		},
+		{
+			MethodName: "ListDeviceTypes",
+			Handler:    _VolthaService_ListDeviceTypes_Handler,
+		},
+		{
+			MethodName: "GetDeviceType",
+			Handler:    _VolthaService_GetDeviceType_Handler,
+		},
+		{
+			MethodName: "CreateEventFilter",
+			Handler:    _VolthaService_CreateEventFilter_Handler,
+		},
+		{
+			MethodName: "GetEventFilter",
+			Handler:    _VolthaService_GetEventFilter_Handler,
+		},
+		{
+			MethodName: "UpdateEventFilter",
+			Handler:    _VolthaService_UpdateEventFilter_Handler,
+		},
+		{
+			MethodName: "DeleteEventFilter",
+			Handler:    _VolthaService_DeleteEventFilter_Handler,
+		},
+		{
+			MethodName: "ListEventFilters",
+			Handler:    _VolthaService_ListEventFilters_Handler,
+		},
+		{
+			MethodName: "GetImages",
+			Handler:    _VolthaService_GetImages_Handler,
+		},
+		{
+			MethodName: "SelfTest",
+			Handler:    _VolthaService_SelfTest_Handler,
+		},
+		{
+			MethodName: "GetMibDeviceData",
+			Handler:    _VolthaService_GetMibDeviceData_Handler,
+		},
+		{
+			MethodName: "GetAlarmDeviceData",
+			Handler:    _VolthaService_GetAlarmDeviceData_Handler,
+		},
+		{
+			MethodName: "SimulateAlarm",
+			Handler:    _VolthaService_SimulateAlarm_Handler,
+		},
+		{
+			MethodName: "EnablePort",
+			Handler:    _VolthaService_EnablePort_Handler,
+		},
+		{
+			MethodName: "DisablePort",
+			Handler:    _VolthaService_DisablePort_Handler,
+		},
+		{
+			MethodName: "GetExtValue",
+			Handler:    _VolthaService_GetExtValue_Handler,
+		},
+		{
+			MethodName: "SetExtValue",
+			Handler:    _VolthaService_SetExtValue_Handler,
+		},
+		{
+			MethodName: "StartOmciTestAction",
+			Handler:    _VolthaService_StartOmciTestAction_Handler,
+		},
+		{
+			MethodName: "PutVoipSystemProfile",
+			Handler:    _VolthaService_PutVoipSystemProfile_Handler,
+		},
+		{
+			MethodName: "DeleteVoipSystemProfile",
+			Handler:    _VolthaService_DeleteVoipSystemProfile_Handler,
+		},
+		{
+			MethodName: "PutVoipUserProfile",
+			Handler:    _VolthaService_PutVoipUserProfile_Handler,
+		},
+		{
+			MethodName: "DeleteVoipUserProfile",
+			Handler:    _VolthaService_DeleteVoipUserProfile_Handler,
+		},
+		{
+			MethodName: "DisableOnuDevice",
+			Handler:    _VolthaService_DisableOnuDevice_Handler,
+		},
+		{
+			MethodName: "EnableOnuDevice",
+			Handler:    _VolthaService_EnableOnuDevice_Handler,
+		},
+		{
+			MethodName: "DisableOnuSerialNumber",
+			Handler:    _VolthaService_DisableOnuSerialNumber_Handler,
+		},
+		{
+			MethodName: "EnableOnuSerialNumber",
+			Handler:    _VolthaService_EnableOnuSerialNumber_Handler,
+		},
+		{
+			MethodName: "UpdateDevice",
+			Handler:    _VolthaService_UpdateDevice_Handler,
+		},
+	},
+	Streams: []grpc.StreamDesc{
+		{
+			StreamName:    "StreamPacketsOut",
+			Handler:       _VolthaService_StreamPacketsOut_Handler,
+			ClientStreams: true,
+		},
+		{
+			StreamName:    "ReceivePacketsIn",
+			Handler:       _VolthaService_ReceivePacketsIn_Handler,
+			ServerStreams: true,
+		},
+		{
+			StreamName:    "ReceiveChangeEvents",
+			Handler:       _VolthaService_ReceiveChangeEvents_Handler,
+			ServerStreams: true,
+		},
+	},
+	Metadata: "voltha_protos/voltha.proto",
+}