[VOL-5567] update protos

Change-Id: I2237e104062831286129ece7cae6621fd971ecb9
Signed-off-by: Abhay Kumar <abhay.kumar@radisys.com>
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",
+}