diff --git a/go/inter_container/inter_container.pb.go b/go/inter_container/inter_container.pb.go
index 881821f..40ca168 100644
--- a/go/inter_container/inter_container.pb.go
+++ b/go/inter_container/inter_container.pb.go
@@ -59,7 +59,7 @@
 	return proto.EnumName(MessageType_name, int32(x))
 }
 func (MessageType) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_inter_container_80ce0119150605eb, []int{0}
+	return fileDescriptor_inter_container_07f83a25f58b3d1d, []int{0}
 }
 
 type ErrorCodeCodes int32
@@ -82,7 +82,7 @@
 	return proto.EnumName(ErrorCodeCodes_name, int32(x))
 }
 func (ErrorCodeCodes) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_inter_container_80ce0119150605eb, []int{4, 0}
+	return fileDescriptor_inter_container_07f83a25f58b3d1d, []int{4, 0}
 }
 
 type InterAdapterMessageType_Types int32
@@ -94,6 +94,8 @@
 	InterAdapterMessageType_OMCI_RESPONSE    InterAdapterMessageType_Types = 3
 	InterAdapterMessageType_METRICS_REQUEST  InterAdapterMessageType_Types = 4
 	InterAdapterMessageType_METRICS_RESPONSE InterAdapterMessageType_Types = 5
+	InterAdapterMessageType_ONU_IND_REQUEST  InterAdapterMessageType_Types = 6
+	InterAdapterMessageType_ONU_IND_RESPONSE InterAdapterMessageType_Types = 7
 )
 
 var InterAdapterMessageType_Types_name = map[int32]string{
@@ -103,6 +105,8 @@
 	3: "OMCI_RESPONSE",
 	4: "METRICS_REQUEST",
 	5: "METRICS_RESPONSE",
+	6: "ONU_IND_REQUEST",
+	7: "ONU_IND_RESPONSE",
 }
 var InterAdapterMessageType_Types_value = map[string]int32{
 	"FLOW_REQUEST":     0,
@@ -111,13 +115,15 @@
 	"OMCI_RESPONSE":    3,
 	"METRICS_REQUEST":  4,
 	"METRICS_RESPONSE": 5,
+	"ONU_IND_REQUEST":  6,
+	"ONU_IND_RESPONSE": 7,
 }
 
 func (x InterAdapterMessageType_Types) String() string {
 	return proto.EnumName(InterAdapterMessageType_Types_name, int32(x))
 }
 func (InterAdapterMessageType_Types) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_inter_container_80ce0119150605eb, []int{14, 0}
+	return fileDescriptor_inter_container_07f83a25f58b3d1d, []int{14, 0}
 }
 
 type StrType struct {
@@ -131,7 +137,7 @@
 func (m *StrType) String() string { return proto.CompactTextString(m) }
 func (*StrType) ProtoMessage()    {}
 func (*StrType) Descriptor() ([]byte, []int) {
-	return fileDescriptor_inter_container_80ce0119150605eb, []int{0}
+	return fileDescriptor_inter_container_07f83a25f58b3d1d, []int{0}
 }
 func (m *StrType) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_StrType.Unmarshal(m, b)
@@ -169,7 +175,7 @@
 func (m *IntType) String() string { return proto.CompactTextString(m) }
 func (*IntType) ProtoMessage()    {}
 func (*IntType) Descriptor() ([]byte, []int) {
-	return fileDescriptor_inter_container_80ce0119150605eb, []int{1}
+	return fileDescriptor_inter_container_07f83a25f58b3d1d, []int{1}
 }
 func (m *IntType) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_IntType.Unmarshal(m, b)
@@ -207,7 +213,7 @@
 func (m *BoolType) String() string { return proto.CompactTextString(m) }
 func (*BoolType) ProtoMessage()    {}
 func (*BoolType) Descriptor() ([]byte, []int) {
-	return fileDescriptor_inter_container_80ce0119150605eb, []int{2}
+	return fileDescriptor_inter_container_07f83a25f58b3d1d, []int{2}
 }
 func (m *BoolType) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_BoolType.Unmarshal(m, b)
@@ -245,7 +251,7 @@
 func (m *Packet) String() string { return proto.CompactTextString(m) }
 func (*Packet) ProtoMessage()    {}
 func (*Packet) Descriptor() ([]byte, []int) {
-	return fileDescriptor_inter_container_80ce0119150605eb, []int{3}
+	return fileDescriptor_inter_container_07f83a25f58b3d1d, []int{3}
 }
 func (m *Packet) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_Packet.Unmarshal(m, b)
@@ -282,7 +288,7 @@
 func (m *ErrorCode) String() string { return proto.CompactTextString(m) }
 func (*ErrorCode) ProtoMessage()    {}
 func (*ErrorCode) Descriptor() ([]byte, []int) {
-	return fileDescriptor_inter_container_80ce0119150605eb, []int{4}
+	return fileDescriptor_inter_container_07f83a25f58b3d1d, []int{4}
 }
 func (m *ErrorCode) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_ErrorCode.Unmarshal(m, b)
@@ -314,7 +320,7 @@
 func (m *Error) String() string { return proto.CompactTextString(m) }
 func (*Error) ProtoMessage()    {}
 func (*Error) Descriptor() ([]byte, []int) {
-	return fileDescriptor_inter_container_80ce0119150605eb, []int{5}
+	return fileDescriptor_inter_container_07f83a25f58b3d1d, []int{5}
 }
 func (m *Error) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_Error.Unmarshal(m, b)
@@ -364,7 +370,7 @@
 func (m *Header) String() string { return proto.CompactTextString(m) }
 func (*Header) ProtoMessage()    {}
 func (*Header) Descriptor() ([]byte, []int) {
-	return fileDescriptor_inter_container_80ce0119150605eb, []int{6}
+	return fileDescriptor_inter_container_07f83a25f58b3d1d, []int{6}
 }
 func (m *Header) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_Header.Unmarshal(m, b)
@@ -438,7 +444,7 @@
 func (m *Argument) String() string { return proto.CompactTextString(m) }
 func (*Argument) ProtoMessage()    {}
 func (*Argument) Descriptor() ([]byte, []int) {
-	return fileDescriptor_inter_container_80ce0119150605eb, []int{7}
+	return fileDescriptor_inter_container_07f83a25f58b3d1d, []int{7}
 }
 func (m *Argument) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_Argument.Unmarshal(m, b)
@@ -484,7 +490,7 @@
 func (m *InterContainerMessage) String() string { return proto.CompactTextString(m) }
 func (*InterContainerMessage) ProtoMessage()    {}
 func (*InterContainerMessage) Descriptor() ([]byte, []int) {
-	return fileDescriptor_inter_container_80ce0119150605eb, []int{8}
+	return fileDescriptor_inter_container_07f83a25f58b3d1d, []int{8}
 }
 func (m *InterContainerMessage) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_InterContainerMessage.Unmarshal(m, b)
@@ -532,7 +538,7 @@
 func (m *InterContainerRequestBody) String() string { return proto.CompactTextString(m) }
 func (*InterContainerRequestBody) ProtoMessage()    {}
 func (*InterContainerRequestBody) Descriptor() ([]byte, []int) {
-	return fileDescriptor_inter_container_80ce0119150605eb, []int{9}
+	return fileDescriptor_inter_container_07f83a25f58b3d1d, []int{9}
 }
 func (m *InterContainerRequestBody) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_InterContainerRequestBody.Unmarshal(m, b)
@@ -592,7 +598,7 @@
 func (m *InterContainerResponseBody) String() string { return proto.CompactTextString(m) }
 func (*InterContainerResponseBody) ProtoMessage()    {}
 func (*InterContainerResponseBody) Descriptor() ([]byte, []int) {
-	return fileDescriptor_inter_container_80ce0119150605eb, []int{10}
+	return fileDescriptor_inter_container_07f83a25f58b3d1d, []int{10}
 }
 func (m *InterContainerResponseBody) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_InterContainerResponseBody.Unmarshal(m, b)
@@ -638,7 +644,7 @@
 func (m *SwitchCapability) String() string { return proto.CompactTextString(m) }
 func (*SwitchCapability) ProtoMessage()    {}
 func (*SwitchCapability) Descriptor() ([]byte, []int) {
-	return fileDescriptor_inter_container_80ce0119150605eb, []int{11}
+	return fileDescriptor_inter_container_07f83a25f58b3d1d, []int{11}
 }
 func (m *SwitchCapability) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_SwitchCapability.Unmarshal(m, b)
@@ -683,7 +689,7 @@
 func (m *PortCapability) String() string { return proto.CompactTextString(m) }
 func (*PortCapability) ProtoMessage()    {}
 func (*PortCapability) Descriptor() ([]byte, []int) {
-	return fileDescriptor_inter_container_80ce0119150605eb, []int{12}
+	return fileDescriptor_inter_container_07f83a25f58b3d1d, []int{12}
 }
 func (m *PortCapability) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_PortCapability.Unmarshal(m, b)
@@ -724,7 +730,7 @@
 func (m *DeviceDiscovered) String() string { return proto.CompactTextString(m) }
 func (*DeviceDiscovered) ProtoMessage()    {}
 func (*DeviceDiscovered) Descriptor() ([]byte, []int) {
-	return fileDescriptor_inter_container_80ce0119150605eb, []int{13}
+	return fileDescriptor_inter_container_07f83a25f58b3d1d, []int{13}
 }
 func (m *DeviceDiscovered) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_DeviceDiscovered.Unmarshal(m, b)
@@ -782,7 +788,7 @@
 func (m *InterAdapterMessageType) String() string { return proto.CompactTextString(m) }
 func (*InterAdapterMessageType) ProtoMessage()    {}
 func (*InterAdapterMessageType) Descriptor() ([]byte, []int) {
-	return fileDescriptor_inter_container_80ce0119150605eb, []int{14}
+	return fileDescriptor_inter_container_07f83a25f58b3d1d, []int{14}
 }
 func (m *InterAdapterMessageType) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_InterAdapterMessageType.Unmarshal(m, b)
@@ -819,7 +825,7 @@
 func (m *InterAdapterHeader) String() string { return proto.CompactTextString(m) }
 func (*InterAdapterHeader) ProtoMessage()    {}
 func (*InterAdapterHeader) Descriptor() ([]byte, []int) {
-	return fileDescriptor_inter_container_80ce0119150605eb, []int{15}
+	return fileDescriptor_inter_container_07f83a25f58b3d1d, []int{15}
 }
 func (m *InterAdapterHeader) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_InterAdapterHeader.Unmarshal(m, b)
@@ -899,7 +905,7 @@
 func (m *InterAdapterOmciMessage) String() string { return proto.CompactTextString(m) }
 func (*InterAdapterOmciMessage) ProtoMessage()    {}
 func (*InterAdapterOmciMessage) Descriptor() ([]byte, []int) {
-	return fileDescriptor_inter_container_80ce0119150605eb, []int{16}
+	return fileDescriptor_inter_container_07f83a25f58b3d1d, []int{16}
 }
 func (m *InterAdapterOmciMessage) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_InterAdapterOmciMessage.Unmarshal(m, b)
@@ -941,7 +947,7 @@
 func (m *InterAdapterResponseBody) String() string { return proto.CompactTextString(m) }
 func (*InterAdapterResponseBody) ProtoMessage()    {}
 func (*InterAdapterResponseBody) Descriptor() ([]byte, []int) {
-	return fileDescriptor_inter_container_80ce0119150605eb, []int{17}
+	return fileDescriptor_inter_container_07f83a25f58b3d1d, []int{17}
 }
 func (m *InterAdapterResponseBody) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_InterAdapterResponseBody.Unmarshal(m, b)
@@ -1091,7 +1097,7 @@
 func (m *InterAdapterMessage) String() string { return proto.CompactTextString(m) }
 func (*InterAdapterMessage) ProtoMessage()    {}
 func (*InterAdapterMessage) Descriptor() ([]byte, []int) {
-	return fileDescriptor_inter_container_80ce0119150605eb, []int{18}
+	return fileDescriptor_inter_container_07f83a25f58b3d1d, []int{18}
 }
 func (m *InterAdapterMessage) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_InterAdapterMessage.Unmarshal(m, b)
@@ -1151,75 +1157,76 @@
 }
 
 func init() {
-	proto.RegisterFile("voltha_protos/inter_container.proto", fileDescriptor_inter_container_80ce0119150605eb)
+	proto.RegisterFile("voltha_protos/inter_container.proto", fileDescriptor_inter_container_07f83a25f58b3d1d)
 }
 
-var fileDescriptor_inter_container_80ce0119150605eb = []byte{
-	// 1045 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x56, 0x5b, 0x6f, 0xe3, 0x44,
-	0x18, 0xdd, 0xdc, 0x93, 0x2f, 0xdd, 0x6c, 0x3a, 0xdd, 0xed, 0xa6, 0x17, 0xd4, 0xca, 0xec, 0xa5,
-	0x14, 0x48, 0x45, 0x0b, 0x88, 0x7d, 0x42, 0x69, 0xe2, 0xaa, 0x96, 0xda, 0x26, 0x38, 0x69, 0x91,
-	0x78, 0xb1, 0x1c, 0x7b, 0x9a, 0x5a, 0x75, 0x3c, 0xde, 0x99, 0x71, 0x17, 0x4b, 0x08, 0x89, 0x37,
-	0xfe, 0x01, 0xaf, 0x3c, 0xf1, 0x13, 0xf8, 0x7d, 0x68, 0x2e, 0x4e, 0x93, 0xd0, 0x82, 0x04, 0x4f,
-	0xf6, 0x9c, 0x73, 0xe6, 0xf6, 0x5d, 0x8e, 0x0d, 0x1f, 0xdf, 0x91, 0x90, 0xdf, 0xb8, 0x4e, 0x4c,
-	0x09, 0x27, 0xec, 0x20, 0x88, 0x38, 0xa6, 0x8e, 0x47, 0x22, 0xee, 0x06, 0x11, 0xa6, 0x6d, 0x09,
-	0xa3, 0xb2, 0x12, 0x6d, 0x6e, 0x4c, 0x08, 0x99, 0x84, 0xf8, 0x40, 0xa2, 0xe3, 0xe4, 0xfa, 0xc0,
-	0x8d, 0x52, 0x25, 0xd9, 0xdc, 0x59, 0x5c, 0x87, 0xc4, 0x38, 0xba, 0x0e, 0xc9, 0x07, 0xe7, 0x8b,
-	0x23, 0x2d, 0x30, 0x16, 0x05, 0x21, 0x99, 0x04, 0x9e, 0x1b, 0x3a, 0x3e, 0xbe, 0x0b, 0x3c, 0xac,
-	0x34, 0xc6, 0x16, 0x54, 0x86, 0x9c, 0x8e, 0xd2, 0x18, 0xa3, 0x26, 0x14, 0xee, 0xdc, 0xb0, 0x95,
-	0xdb, 0xcd, 0xed, 0xd5, 0x6c, 0xf1, 0x2a, 0x48, 0x2b, 0xe2, 0xcb, 0x64, 0x41, 0x91, 0xdb, 0x50,
-	0x3d, 0x26, 0x24, 0x5c, 0x66, 0xab, 0x8a, 0x35, 0xa0, 0x3c, 0x70, 0xbd, 0x5b, 0xcc, 0x51, 0x0b,
-	0x2a, 0xb1, 0x9b, 0x86, 0xc4, 0xf5, 0x25, 0xbf, 0x62, 0x67, 0x43, 0xc3, 0x84, 0x9a, 0x49, 0x29,
-	0xa1, 0x5d, 0xe2, 0x63, 0xe3, 0x1b, 0x28, 0x79, 0xc4, 0xc7, 0x0c, 0xbd, 0x84, 0xb5, 0xcb, 0x8b,
-	0xe1, 0xe5, 0x60, 0xd0, 0xb7, 0x47, 0x66, 0xcf, 0xb1, 0xcd, 0xef, 0x2e, 0xcd, 0xe1, 0xa8, 0xf9,
-	0x04, 0xad, 0x03, 0xb2, 0x2e, 0xae, 0x3a, 0x67, 0x56, 0xcf, 0x19, 0x74, 0xec, 0xce, 0xb9, 0x39,
-	0x32, 0xed, 0x61, 0x33, 0x67, 0x9c, 0x40, 0x49, 0x2e, 0x83, 0x5e, 0x43, 0x51, 0x2c, 0x21, 0xb7,
-	0xa9, 0x1f, 0xae, 0xb6, 0xd5, 0xf5, 0xdb, 0xb3, 0x3d, 0x6c, 0x49, 0xa3, 0x75, 0x28, 0x53, 0xec,
-	0x32, 0x12, 0xb5, 0xf2, 0xf2, 0xaa, 0x7a, 0x64, 0xfc, 0x99, 0x83, 0xf2, 0x29, 0x76, 0x7d, 0x4c,
-	0x51, 0x03, 0xf2, 0x81, 0xaf, 0x23, 0x91, 0x0f, 0x7c, 0xf4, 0x16, 0x8a, 0x3c, 0x8d, 0xb1, 0x9c,
-	0xd0, 0x38, 0x5c, 0xcb, 0x56, 0x3e, 0xc7, 0x8c, 0xb9, 0x13, 0x2c, 0x42, 0x60, 0x4b, 0x01, 0xfa,
-	0x08, 0xe0, 0x9a, 0x92, 0xa9, 0xc3, 0x49, 0x1c, 0x78, 0xad, 0x82, 0x5c, 0xa0, 0x26, 0x90, 0x91,
-	0x00, 0xd0, 0x06, 0x54, 0x39, 0xd1, 0x64, 0x51, 0x92, 0x15, 0x4e, 0x14, 0xb5, 0x05, 0xb5, 0x5b,
-	0x9c, 0x6a, 0xae, 0x24, 0xb9, 0xea, 0x2d, 0x4e, 0x15, 0xb9, 0x0d, 0x35, 0x1e, 0x4c, 0x31, 0xe3,
-	0xee, 0x34, 0x6e, 0x95, 0x65, 0x0e, 0xee, 0x01, 0xe3, 0x14, 0xaa, 0x1d, 0x3a, 0x49, 0xa6, 0x38,
-	0xe2, 0x22, 0x13, 0xb7, 0x38, 0xcd, 0x92, 0x78, 0x8b, 0x53, 0xb4, 0x0f, 0xa5, 0x3b, 0x37, 0x4c,
-	0xd4, 0xe1, 0xeb, 0x87, 0xcf, 0xdb, 0xaa, 0xa2, 0xda, 0x59, 0x45, 0xb5, 0x3b, 0x51, 0x6a, 0x2b,
-	0x89, 0x11, 0xc0, 0x0b, 0x4b, 0x94, 0x63, 0x37, 0xab, 0x46, 0x7d, 0x43, 0xf4, 0x06, 0xca, 0x37,
-	0x32, 0x34, 0x3a, 0xb8, 0x8d, 0x2c, 0x04, 0x2a, 0x60, 0xb6, 0x66, 0xd1, 0x1e, 0x14, 0xc7, 0xc4,
-	0x4f, 0xff, 0x71, 0x2f, 0xa9, 0x30, 0xfe, 0xc8, 0xc1, 0xc6, 0xe2, 0x5e, 0x36, 0x7e, 0x9f, 0x60,
-	0xc6, 0x8f, 0x89, 0x9f, 0x8a, 0x6b, 0xd0, 0xd8, 0xd3, 0x09, 0x12, 0xaf, 0xe8, 0x15, 0x14, 0x5d,
-	0x3a, 0x61, 0xad, 0xc2, 0x6e, 0x61, 0xaf, 0x7e, 0xd8, 0xcc, 0xf6, 0xcf, 0x2e, 0x6e, 0x4b, 0x16,
-	0x7d, 0x0a, 0xab, 0x14, 0xb3, 0x98, 0x44, 0x0c, 0x3b, 0x14, 0xbf, 0x4f, 0x02, 0x8a, 0x7d, 0x19,
-	0xe9, 0xaa, 0xdd, 0xcc, 0x08, 0x5b, 0xe3, 0xe8, 0x15, 0x34, 0x28, 0x8e, 0x43, 0x11, 0xf4, 0x85,
-	0xb8, 0xaf, 0x48, 0x74, 0xa4, 0x12, 0x63, 0xf8, 0xb0, 0xb9, 0x7c, 0x4e, 0xb5, 0x8e, 0x3c, 0x68,
-	0x0b, 0x2a, 0x2c, 0xf1, 0x3c, 0xcc, 0x98, 0xae, 0xfe, 0x6c, 0x88, 0x3e, 0x13, 0x65, 0xc6, 0x92,
-	0x90, 0xcb, 0x32, 0x78, 0x2c, 0x18, 0x5a, 0x63, 0xfc, 0x9a, 0x83, 0xe6, 0xf0, 0x43, 0xc0, 0xbd,
-	0x9b, 0xae, 0x1b, 0xbb, 0xe3, 0x20, 0x0c, 0x78, 0x8a, 0x3e, 0x81, 0xa2, 0x8f, 0x99, 0xa7, 0x63,
-	0xfe, 0xa2, 0x3d, 0xdf, 0xe2, 0xe4, 0x3a, 0x76, 0x04, 0x69, 0x4b, 0x09, 0xb2, 0xe0, 0x19, 0x93,
-	0xd3, 0x9d, 0x6b, 0xec, 0xf2, 0x84, 0x62, 0xa6, 0x73, 0xb0, 0xfb, 0xb7, 0x59, 0x4b, 0x3a, 0xbb,
-	0xa1, 0x80, 0x13, 0x3d, 0x36, 0xde, 0x41, 0x63, 0x40, 0x28, 0x9f, 0x3b, 0xc7, 0x5b, 0x28, 0xc6,
-	0x84, 0x72, 0x7d, 0x8e, 0x59, 0xf9, 0x9f, 0x29, 0x43, 0x11, 0x62, 0x5b, 0x0a, 0x8c, 0x9f, 0xa1,
-	0xd9, 0x93, 0xee, 0xd2, 0x0b, 0x98, 0x47, 0xee, 0xb0, 0x88, 0xf2, 0x72, 0x2f, 0x6d, 0x41, 0x2d,
-	0x76, 0x29, 0x8e, 0xb8, 0x13, 0xf8, 0x3a, 0xc1, 0x55, 0x05, 0x58, 0x3e, 0xda, 0x81, 0xba, 0xb2,
-	0x27, 0x47, 0xf6, 0x9b, 0x6a, 0x20, 0x50, 0x90, 0x74, 0x9a, 0x6d, 0xa8, 0xc5, 0xc9, 0x38, 0x0c,
-	0xd8, 0x0d, 0xa6, 0xba, 0x85, 0xee, 0x01, 0xe3, 0xb7, 0x1c, 0xbc, 0x94, 0xc9, 0xea, 0xf8, 0x6e,
-	0xcc, 0x67, 0xe5, 0x2b, 0x66, 0x1a, 0x3f, 0x41, 0x49, 0x3c, 0x19, 0x6a, 0xc2, 0xca, 0xc9, 0x59,
-	0xff, 0xfb, 0x39, 0x67, 0x59, 0x85, 0xa7, 0x1a, 0x19, 0x0e, 0xfa, 0x17, 0x43, 0xb3, 0x99, 0x13,
-	0xa2, 0xfe, 0x79, 0xd7, 0x9a, 0x89, 0xf2, 0x42, 0xa4, 0x11, 0x2d, 0x2a, 0xa0, 0x35, 0x78, 0x76,
-	0x6e, 0x8e, 0x6c, 0xab, 0x3b, 0x9c, 0xe9, 0x8a, 0xe8, 0x39, 0x34, 0xef, 0x41, 0x2d, 0x2d, 0x19,
-	0xbf, 0xe4, 0x01, 0xcd, 0x9f, 0xec, 0x11, 0xa3, 0x79, 0xb7, 0x60, 0x34, 0xaf, 0xb3, 0x48, 0x3f,
-	0x72, 0xa7, 0xb6, 0xbc, 0xd0, 0xff, 0xb6, 0x9e, 0x5d, 0x58, 0xe1, 0x44, 0x7f, 0x16, 0x44, 0x52,
-	0x54, 0x17, 0x00, 0x27, 0x2a, 0x97, 0x96, 0x8f, 0xde, 0xc0, 0xb3, 0x98, 0x92, 0x1f, 0xd3, 0x39,
-	0x51, 0x59, 0x8a, 0x9e, 0x4a, 0x78, 0xa6, 0x5b, 0xf0, 0xa9, 0xca, 0xb2, 0x4f, 0x1d, 0x2d, 0x26,
-	0xa7, 0x3f, 0xf5, 0x82, 0xcc, 0x5f, 0x5a, 0x50, 0x99, 0xaa, 0xd7, 0xec, 0x23, 0xa1, 0x87, 0xc6,
-	0xef, 0x39, 0x68, 0xcd, 0xcf, 0x5a, 0xe8, 0xbe, 0x75, 0x28, 0x33, 0xee, 0xf2, 0x24, 0x6b, 0x3e,
-	0x3d, 0x42, 0xfb, 0xff, 0x6e, 0x43, 0xa7, 0x4f, 0x94, 0x11, 0xa1, 0xaf, 0xa0, 0x48, 0xa6, 0x5e,
-	0xa0, 0xbb, 0x74, 0xe7, 0xa1, 0x90, 0xcf, 0x9d, 0x54, 0x4c, 0x13, 0xf2, 0xe3, 0xda, 0xec, 0xb3,
-	0x66, 0x30, 0x58, 0x7b, 0x20, 0x41, 0xe8, 0x70, 0xc9, 0x33, 0x37, 0x1f, 0x5a, 0xfa, 0xbf, 0xfa,
-	0xe7, 0xfe, 0xb7, 0x50, 0x9f, 0xab, 0x04, 0x54, 0x87, 0xca, 0x7d, 0x3d, 0xaf, 0x40, 0x75, 0xae,
-	0x94, 0x5f, 0xc0, 0x6a, 0xcf, 0xbc, 0xb2, 0xba, 0xa6, 0xd3, 0xb3, 0x86, 0xdd, 0xfe, 0x95, 0x69,
-	0x9b, 0xbd, 0x66, 0xfe, 0xf8, 0xeb, 0x1f, 0xbe, 0x9c, 0x04, 0xfc, 0x26, 0x19, 0xb7, 0x3d, 0x32,
-	0x95, 0x7f, 0x0f, 0x1e, 0xa1, 0xfe, 0x81, 0x3a, 0xe3, 0xe7, 0xfa, 0x9f, 0x61, 0x42, 0x96, 0xff,
-	0x4f, 0x06, 0xf9, 0x71, 0x59, 0x92, 0x47, 0x7f, 0x05, 0x00, 0x00, 0xff, 0xff, 0x41, 0xcf, 0x9b,
-	0x5d, 0xc9, 0x08, 0x00, 0x00,
+var fileDescriptor_inter_container_07f83a25f58b3d1d = []byte{
+	// 1061 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x56, 0xdb, 0x6e, 0xe3, 0x44,
+	0x18, 0xde, 0x9c, 0x93, 0x3f, 0xdd, 0x34, 0x9d, 0x6e, 0xbb, 0xe9, 0x01, 0xb5, 0x32, 0x7b, 0x28,
+	0x05, 0x52, 0xd1, 0x02, 0x62, 0xaf, 0x50, 0x9a, 0xb8, 0xaa, 0xa5, 0xb6, 0x09, 0x4e, 0x5a, 0x24,
+	0x6e, 0x2c, 0xc7, 0x9e, 0xa6, 0x56, 0x9d, 0x8c, 0x77, 0x66, 0xdc, 0xc5, 0x37, 0x48, 0xdc, 0xf1,
+	0x18, 0x5c, 0xc1, 0x1b, 0xf0, 0x02, 0xbc, 0x18, 0x9a, 0x83, 0x73, 0xa2, 0x05, 0x09, 0xee, 0x66,
+	0xbe, 0xef, 0x9b, 0xd3, 0x7f, 0xf8, 0x6c, 0xf8, 0xf8, 0x81, 0x84, 0xfc, 0xce, 0x75, 0x22, 0x4a,
+	0x38, 0x61, 0x47, 0xc1, 0x84, 0x63, 0xea, 0x78, 0x64, 0xc2, 0xdd, 0x60, 0x82, 0x69, 0x53, 0xc2,
+	0xa8, 0xa8, 0x44, 0xdb, 0x5b, 0x23, 0x42, 0x46, 0x21, 0x3e, 0x92, 0xe8, 0x30, 0xbe, 0x3d, 0x72,
+	0x27, 0x89, 0x92, 0x6c, 0xef, 0x2d, 0xee, 0x43, 0x22, 0x3c, 0xb9, 0x0d, 0xc9, 0x07, 0xe7, 0x8b,
+	0x13, 0x2d, 0x30, 0x16, 0x05, 0x21, 0x19, 0x05, 0x9e, 0x1b, 0x3a, 0x3e, 0x7e, 0x08, 0x3c, 0xac,
+	0x34, 0xc6, 0x0e, 0x94, 0xfa, 0x9c, 0x0e, 0x92, 0x08, 0xa3, 0x3a, 0xe4, 0x1e, 0xdc, 0xb0, 0x91,
+	0xd9, 0xcf, 0x1c, 0x54, 0x6c, 0x31, 0x14, 0xa4, 0x35, 0xe1, 0xcb, 0x64, 0x4e, 0x91, 0xbb, 0x50,
+	0x3e, 0x25, 0x24, 0x5c, 0x66, 0xcb, 0x8a, 0x35, 0xa0, 0xd8, 0x73, 0xbd, 0x7b, 0xcc, 0x51, 0x03,
+	0x4a, 0x91, 0x9b, 0x84, 0xc4, 0xf5, 0x25, 0xbf, 0x62, 0xa7, 0x53, 0xc3, 0x84, 0x8a, 0x49, 0x29,
+	0xa1, 0x6d, 0xe2, 0x63, 0xe3, 0x1b, 0x28, 0x78, 0xc4, 0xc7, 0x0c, 0xbd, 0x84, 0xf5, 0xeb, 0xab,
+	0xfe, 0x75, 0xaf, 0xd7, 0xb5, 0x07, 0x66, 0xc7, 0xb1, 0xcd, 0xef, 0xae, 0xcd, 0xfe, 0xa0, 0xfe,
+	0x0c, 0x6d, 0x02, 0xb2, 0xae, 0x6e, 0x5a, 0x17, 0x56, 0xc7, 0xe9, 0xb5, 0xec, 0xd6, 0xa5, 0x39,
+	0x30, 0xed, 0x7e, 0x3d, 0x63, 0x9c, 0x41, 0x41, 0x6e, 0x83, 0x5e, 0x43, 0x5e, 0x6c, 0x21, 0x8f,
+	0xa9, 0x1e, 0xaf, 0x35, 0xd5, 0xf3, 0x9b, 0xd3, 0x33, 0x6c, 0x49, 0xa3, 0x4d, 0x28, 0x52, 0xec,
+	0x32, 0x32, 0x69, 0x64, 0xe5, 0x53, 0xf5, 0xcc, 0xf8, 0x23, 0x03, 0xc5, 0x73, 0xec, 0xfa, 0x98,
+	0xa2, 0x1a, 0x64, 0x03, 0x5f, 0x47, 0x22, 0x1b, 0xf8, 0xe8, 0x2d, 0xe4, 0x79, 0x12, 0x61, 0xb9,
+	0xa0, 0x76, 0xbc, 0x9e, 0xee, 0x7c, 0x89, 0x19, 0x73, 0x47, 0x58, 0x84, 0xc0, 0x96, 0x02, 0xf4,
+	0x11, 0xc0, 0x2d, 0x25, 0x63, 0x87, 0x93, 0x28, 0xf0, 0x1a, 0x39, 0xb9, 0x41, 0x45, 0x20, 0x03,
+	0x01, 0xa0, 0x2d, 0x28, 0x73, 0xa2, 0xc9, 0xbc, 0x24, 0x4b, 0x9c, 0x28, 0x6a, 0x07, 0x2a, 0xf7,
+	0x38, 0xd1, 0x5c, 0x41, 0x72, 0xe5, 0x7b, 0x9c, 0x28, 0x72, 0x17, 0x2a, 0x3c, 0x18, 0x63, 0xc6,
+	0xdd, 0x71, 0xd4, 0x28, 0xca, 0x1c, 0xcc, 0x00, 0xe3, 0x1c, 0xca, 0x2d, 0x3a, 0x8a, 0xc7, 0x78,
+	0xc2, 0x45, 0x26, 0xee, 0x71, 0x92, 0x26, 0xf1, 0x1e, 0x27, 0xe8, 0x10, 0x0a, 0x0f, 0x6e, 0x18,
+	0xab, 0xcb, 0x57, 0x8f, 0x5f, 0x34, 0x55, 0x45, 0x35, 0xd3, 0x8a, 0x6a, 0xb6, 0x26, 0x89, 0xad,
+	0x24, 0x46, 0x00, 0x1b, 0x96, 0x28, 0xc7, 0x76, 0x5a, 0x8d, 0xfa, 0x85, 0xe8, 0x0d, 0x14, 0xef,
+	0x64, 0x68, 0x74, 0x70, 0x6b, 0x69, 0x08, 0x54, 0xc0, 0x6c, 0xcd, 0xa2, 0x03, 0xc8, 0x0f, 0x89,
+	0x9f, 0xfc, 0xe3, 0x59, 0x52, 0x61, 0xfc, 0x96, 0x81, 0xad, 0xc5, 0xb3, 0x6c, 0xfc, 0x3e, 0xc6,
+	0x8c, 0x9f, 0x12, 0x3f, 0x11, 0xcf, 0xa0, 0x91, 0xa7, 0x13, 0x24, 0x86, 0xe8, 0x15, 0xe4, 0x5d,
+	0x3a, 0x62, 0x8d, 0xdc, 0x7e, 0xee, 0xa0, 0x7a, 0x5c, 0x4f, 0xcf, 0x4f, 0x1f, 0x6e, 0x4b, 0x16,
+	0x7d, 0x0a, 0x6b, 0x14, 0xb3, 0x88, 0x4c, 0x18, 0x76, 0x28, 0x7e, 0x1f, 0x07, 0x14, 0xfb, 0x32,
+	0xd2, 0x65, 0xbb, 0x9e, 0x12, 0xb6, 0xc6, 0xd1, 0x2b, 0xa8, 0x51, 0x1c, 0x85, 0x22, 0xe8, 0x0b,
+	0x71, 0x5f, 0x91, 0xe8, 0x40, 0x25, 0xc6, 0xf0, 0x61, 0x7b, 0xf9, 0x9e, 0x6a, 0x1f, 0x79, 0xd1,
+	0x06, 0x94, 0x58, 0xec, 0x79, 0x98, 0x31, 0x5d, 0xfd, 0xe9, 0x14, 0x7d, 0x26, 0xca, 0x8c, 0xc5,
+	0x21, 0x97, 0x65, 0xf0, 0x54, 0x30, 0xb4, 0xc6, 0xf8, 0x25, 0x03, 0xf5, 0xfe, 0x87, 0x80, 0x7b,
+	0x77, 0x6d, 0x37, 0x72, 0x87, 0x41, 0x18, 0xf0, 0x04, 0x7d, 0x02, 0x79, 0x1f, 0x33, 0x4f, 0xc7,
+	0x7c, 0xa3, 0x39, 0xdf, 0xe2, 0xe4, 0x36, 0x72, 0x04, 0x69, 0x4b, 0x09, 0xb2, 0x60, 0x95, 0xc9,
+	0xe5, 0xce, 0x2d, 0x76, 0x79, 0x4c, 0x31, 0xd3, 0x39, 0xd8, 0xff, 0xdb, 0xaa, 0x25, 0x9d, 0x5d,
+	0x53, 0xc0, 0x99, 0x9e, 0x1b, 0xef, 0xa0, 0xd6, 0x23, 0x94, 0xcf, 0xdd, 0xe3, 0x2d, 0xe4, 0x23,
+	0x42, 0xb9, 0xbe, 0xc7, 0xb4, 0xfc, 0x2f, 0x94, 0xa1, 0x08, 0xb1, 0x2d, 0x05, 0xc6, 0x4f, 0x50,
+	0xef, 0x48, 0x77, 0xe9, 0x04, 0xcc, 0x23, 0x0f, 0x58, 0x44, 0x79, 0xb9, 0x97, 0x76, 0xa0, 0x12,
+	0xb9, 0x14, 0x4f, 0xb8, 0x13, 0xf8, 0x3a, 0xc1, 0x65, 0x05, 0x58, 0x3e, 0xda, 0x83, 0xaa, 0xb2,
+	0x27, 0x47, 0xf6, 0x9b, 0x6a, 0x20, 0x50, 0x90, 0x74, 0x9a, 0x5d, 0xa8, 0x44, 0xf1, 0x30, 0x0c,
+	0xd8, 0x1d, 0xa6, 0xba, 0x85, 0x66, 0x80, 0xf1, 0x67, 0x06, 0x5e, 0xca, 0x64, 0xb5, 0x7c, 0x37,
+	0xe2, 0xd3, 0xf2, 0x15, 0x2b, 0x8d, 0xdf, 0x33, 0x50, 0x10, 0x03, 0x86, 0xea, 0xb0, 0x72, 0x76,
+	0xd1, 0xfd, 0x7e, 0xce, 0x5a, 0xd6, 0xe0, 0xb9, 0x46, 0xfa, 0xbd, 0xee, 0x55, 0xdf, 0xac, 0x67,
+	0x84, 0xa8, 0x7b, 0xd9, 0xb6, 0xa6, 0xa2, 0xac, 0x10, 0x69, 0x44, 0x8b, 0x72, 0x68, 0x1d, 0x56,
+	0x2f, 0xcd, 0x81, 0x6d, 0xb5, 0xfb, 0x53, 0x5d, 0x1e, 0xbd, 0x80, 0xfa, 0x0c, 0xd4, 0xd2, 0x82,
+	0x90, 0x76, 0xaf, 0xae, 0x1d, 0xeb, 0x6a, 0x66, 0x69, 0x45, 0x21, 0x9d, 0x81, 0x5a, 0x5a, 0x32,
+	0x7e, 0xce, 0x02, 0x9a, 0x7f, 0xc5, 0x13, 0xa6, 0xf4, 0x6e, 0xc1, 0x94, 0x5e, 0xa7, 0x59, 0x79,
+	0xe2, 0xfd, 0x4d, 0xf9, 0xf6, 0xff, 0x6d, 0x53, 0xfb, 0xb0, 0xc2, 0x89, 0xfe, 0x84, 0x88, 0x04,
+	0xaa, 0x8e, 0x01, 0x4e, 0x54, 0xde, 0x2d, 0x1f, 0xbd, 0x81, 0xd5, 0x88, 0x92, 0x1f, 0x93, 0x39,
+	0x51, 0x51, 0x8a, 0x9e, 0x4b, 0x78, 0xaa, 0x5b, 0xf0, 0xb4, 0xd2, 0xb2, 0xa7, 0x9d, 0x2c, 0x26,
+	0xb2, 0x3b, 0xf6, 0x82, 0xd4, 0x8b, 0x1a, 0x50, 0x1a, 0xab, 0x61, 0xfa, 0x41, 0xd1, 0x53, 0xe3,
+	0xd7, 0x0c, 0x34, 0xe6, 0x57, 0x2d, 0x74, 0xea, 0x26, 0x14, 0x19, 0x77, 0x79, 0x9c, 0x36, 0xaa,
+	0x9e, 0xa1, 0xc3, 0x7f, 0xb7, 0xac, 0xf3, 0x67, 0xca, 0xb4, 0xd0, 0x57, 0x90, 0x27, 0x63, 0x2f,
+	0xd0, 0x1d, 0xbd, 0xf7, 0x58, 0xc8, 0xe7, 0x6e, 0x2a, 0x96, 0x09, 0xf9, 0x69, 0x65, 0xfa, 0x09,
+	0x34, 0x18, 0xac, 0x3f, 0x92, 0x20, 0x74, 0xbc, 0xe4, 0xaf, 0xdb, 0x8f, 0x6d, 0xfd, 0x5f, 0xbd,
+	0xf6, 0xf0, 0x5b, 0xa8, 0xce, 0x55, 0x02, 0xaa, 0x42, 0x69, 0x56, 0xfa, 0x2b, 0x50, 0x9e, 0xab,
+	0xfa, 0x0d, 0x58, 0xeb, 0x98, 0x37, 0x56, 0xdb, 0x74, 0x3a, 0x56, 0xbf, 0xdd, 0xbd, 0x31, 0x6d,
+	0xb3, 0x53, 0xcf, 0x9e, 0x7e, 0xfd, 0xc3, 0x97, 0xa3, 0x80, 0xdf, 0xc5, 0xc3, 0xa6, 0x47, 0xc6,
+	0xf2, 0x4f, 0xc3, 0x23, 0xd4, 0x3f, 0x52, 0x77, 0xfc, 0x5c, 0xff, 0x5f, 0x8c, 0xc8, 0xf2, 0xbf,
+	0x4c, 0x2f, 0x3b, 0x2c, 0x4a, 0xf2, 0xe4, 0xaf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x90, 0x60, 0x04,
+	0xd3, 0xf5, 0x08, 0x00, 0x00,
 }
diff --git a/go/voltha.pb b/go/voltha.pb
index 078aa53..6f8610a 100644
--- a/go/voltha.pb
+++ b/go/voltha.pb
Binary files differ
diff --git a/go/voltha/logical_device.pb.go b/go/voltha/logical_device.pb.go
index 0008876..088d55c 100644
--- a/go/voltha/logical_device.pb.go
+++ b/go/voltha/logical_device.pb.go
@@ -35,7 +35,7 @@
 func (m *LogicalPortId) String() string { return proto.CompactTextString(m) }
 func (*LogicalPortId) ProtoMessage()    {}
 func (*LogicalPortId) Descriptor() ([]byte, []int) {
-	return fileDescriptor_logical_device_33972ea6b3a0b7e8, []int{0}
+	return fileDescriptor_logical_device_eab9968d916b9ed2, []int{0}
 }
 func (m *LogicalPortId) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_LogicalPortId.Unmarshal(m, b)
@@ -70,21 +70,22 @@
 }
 
 type LogicalPort struct {
-	Id                   string               `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
-	OfpPort              *openflow_13.OfpPort `protobuf:"bytes,2,opt,name=ofp_port,json=ofpPort,proto3" json:"ofp_port,omitempty"`
-	DeviceId             string               `protobuf:"bytes,3,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
-	DevicePortNo         uint32               `protobuf:"varint,4,opt,name=device_port_no,json=devicePortNo,proto3" json:"device_port_no,omitempty"`
-	RootPort             bool                 `protobuf:"varint,5,opt,name=root_port,json=rootPort,proto3" json:"root_port,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
-	XXX_unrecognized     []byte               `json:"-"`
-	XXX_sizecache        int32                `json:"-"`
+	Id                   string                    `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+	OfpPort              *openflow_13.OfpPort      `protobuf:"bytes,2,opt,name=ofp_port,json=ofpPort,proto3" json:"ofp_port,omitempty"`
+	DeviceId             string                    `protobuf:"bytes,3,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
+	DevicePortNo         uint32                    `protobuf:"varint,4,opt,name=device_port_no,json=devicePortNo,proto3" json:"device_port_no,omitempty"`
+	RootPort             bool                      `protobuf:"varint,5,opt,name=root_port,json=rootPort,proto3" json:"root_port,omitempty"`
+	OfpPortStats         *openflow_13.OfpPortStats `protobuf:"bytes,6,opt,name=ofp_port_stats,json=ofpPortStats,proto3" json:"ofp_port_stats,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}                  `json:"-"`
+	XXX_unrecognized     []byte                    `json:"-"`
+	XXX_sizecache        int32                     `json:"-"`
 }
 
 func (m *LogicalPort) Reset()         { *m = LogicalPort{} }
 func (m *LogicalPort) String() string { return proto.CompactTextString(m) }
 func (*LogicalPort) ProtoMessage()    {}
 func (*LogicalPort) Descriptor() ([]byte, []int) {
-	return fileDescriptor_logical_device_33972ea6b3a0b7e8, []int{1}
+	return fileDescriptor_logical_device_eab9968d916b9ed2, []int{1}
 }
 func (m *LogicalPort) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_LogicalPort.Unmarshal(m, b)
@@ -139,6 +140,13 @@
 	return false
 }
 
+func (m *LogicalPort) GetOfpPortStats() *openflow_13.OfpPortStats {
+	if m != nil {
+		return m.OfpPortStats
+	}
+	return nil
+}
+
 type LogicalPorts struct {
 	Items                []*LogicalPort `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"`
 	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
@@ -150,7 +158,7 @@
 func (m *LogicalPorts) String() string { return proto.CompactTextString(m) }
 func (*LogicalPorts) ProtoMessage()    {}
 func (*LogicalPorts) Descriptor() ([]byte, []int) {
-	return fileDescriptor_logical_device_33972ea6b3a0b7e8, []int{2}
+	return fileDescriptor_logical_device_eab9968d916b9ed2, []int{2}
 }
 func (m *LogicalPorts) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_LogicalPorts.Unmarshal(m, b)
@@ -203,7 +211,7 @@
 func (m *LogicalDevice) String() string { return proto.CompactTextString(m) }
 func (*LogicalDevice) ProtoMessage()    {}
 func (*LogicalDevice) Descriptor() ([]byte, []int) {
-	return fileDescriptor_logical_device_33972ea6b3a0b7e8, []int{3}
+	return fileDescriptor_logical_device_eab9968d916b9ed2, []int{3}
 }
 func (m *LogicalDevice) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_LogicalDevice.Unmarshal(m, b)
@@ -290,7 +298,7 @@
 func (m *LogicalDevices) String() string { return proto.CompactTextString(m) }
 func (*LogicalDevices) ProtoMessage()    {}
 func (*LogicalDevices) Descriptor() ([]byte, []int) {
-	return fileDescriptor_logical_device_33972ea6b3a0b7e8, []int{4}
+	return fileDescriptor_logical_device_eab9968d916b9ed2, []int{4}
 }
 func (m *LogicalDevices) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_LogicalDevices.Unmarshal(m, b)
@@ -326,40 +334,41 @@
 }
 
 func init() {
-	proto.RegisterFile("voltha_protos/logical_device.proto", fileDescriptor_logical_device_33972ea6b3a0b7e8)
+	proto.RegisterFile("voltha_protos/logical_device.proto", fileDescriptor_logical_device_eab9968d916b9ed2)
 }
 
-var fileDescriptor_logical_device_33972ea6b3a0b7e8 = []byte{
-	// 488 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x53, 0x4f, 0x6b, 0xd4, 0x40,
-	0x14, 0x37, 0xdd, 0xcd, 0x76, 0xf7, 0x65, 0xbb, 0xc2, 0x48, 0x69, 0xa8, 0x4a, 0x43, 0xf0, 0xb0,
-	0xa5, 0x34, 0x5b, 0xb7, 0x08, 0x7a, 0x10, 0x64, 0x29, 0x95, 0x05, 0x11, 0x99, 0xa3, 0x97, 0x30,
-	0xcd, 0x24, 0xd9, 0x81, 0x6c, 0x5e, 0xc8, 0xcc, 0xb6, 0x57, 0xf5, 0xe2, 0xc7, 0xf1, 0x93, 0xf8,
-	0x25, 0xfc, 0x10, 0x9e, 0x65, 0x66, 0x92, 0xba, 0xe9, 0xea, 0x31, 0xbf, 0x3f, 0xef, 0xfd, 0xde,
-	0x6f, 0x08, 0x84, 0xb7, 0x58, 0xa8, 0x15, 0x8b, 0xab, 0x1a, 0x15, 0xca, 0x59, 0x81, 0xb9, 0x48,
-	0x58, 0x11, 0xf3, 0xf4, 0x56, 0x24, 0x69, 0x64, 0x50, 0x32, 0xb0, 0x9a, 0xe3, 0x67, 0x39, 0x62,
-	0x5e, 0xa4, 0x33, 0x56, 0x89, 0x19, 0x2b, 0x4b, 0x54, 0x4c, 0x09, 0x2c, 0xa5, 0x55, 0x1d, 0xfb,
-	0xdd, 0x49, 0xeb, 0x54, 0xb1, 0x86, 0x39, 0xe9, 0x32, 0x58, 0xa5, 0x65, 0x56, 0xe0, 0x5d, 0xfc,
-	0xf2, 0xd2, 0x0a, 0xc2, 0xd7, 0x70, 0xf0, 0xc1, 0x2e, 0xfe, 0x84, 0xb5, 0x5a, 0x72, 0x32, 0x81,
-	0x3d, 0xc1, 0x7d, 0x27, 0x70, 0xa6, 0x23, 0xba, 0x27, 0x38, 0x39, 0x82, 0xfd, 0x0a, 0x6b, 0x15,
-	0x0b, 0xee, 0xef, 0x19, 0x70, 0x50, 0x19, 0x61, 0xf8, 0xc3, 0x01, 0x6f, 0xcb, 0xba, 0x63, 0xbc,
-	0x80, 0x21, 0x66, 0x55, 0xac, 0xd5, 0xc6, 0xe9, 0xcd, 0x0f, 0xa3, 0xed, 0xfd, 0x2d, 0x49, 0xf7,
-	0x31, 0xab, 0xcc, 0x84, 0xa7, 0x30, 0xb2, 0xc7, 0xeb, 0x65, 0x3d, 0x33, 0x68, 0x68, 0x81, 0x25,
-	0x27, 0x2f, 0x60, 0xd2, 0x90, 0x26, 0x4e, 0x89, 0x7e, 0x3f, 0x70, 0xa6, 0x07, 0x74, 0x6c, 0x51,
-	0x3d, 0xe0, 0x23, 0xea, 0x11, 0x35, 0xa2, 0xb2, 0x5b, 0xdd, 0xc0, 0x99, 0x0e, 0xe9, 0x50, 0x03,
-	0x9a, 0x0e, 0xdf, 0xc0, 0x78, 0x2b, 0xb0, 0x24, 0xa7, 0xe0, 0x0a, 0x95, 0xae, 0xa5, 0xef, 0x04,
-	0xbd, 0xa9, 0x37, 0x7f, 0x12, 0xd9, 0xb2, 0xa2, 0x2d, 0x11, 0xb5, 0x8a, 0xf0, 0x7b, 0xef, 0xbe,
-	0xa7, 0x2b, 0xb3, 0x6f, 0xe7, 0xdc, 0x13, 0xf0, 0x38, 0x53, 0xac, 0x62, 0x6a, 0xd5, 0x76, 0xd5,
-	0xa7, 0xd0, 0x42, 0x4b, 0x4e, 0x4e, 0xa1, 0xcf, 0x53, 0x99, 0x98, 0xc3, 0xfe, 0xd5, 0x85, 0x26,
-	0xa9, 0x91, 0x90, 0x25, 0x3c, 0x96, 0x77, 0x42, 0x25, 0xab, 0x38, 0x4b, 0x99, 0xda, 0xd4, 0xa9,
-	0x34, 0xc7, 0x7a, 0xf3, 0x60, 0xc7, 0xf5, 0x40, 0x47, 0x27, 0x16, 0xb8, 0x6e, 0xbe, 0x75, 0x6d,
-	0xa6, 0x90, 0xbf, 0xc5, 0xba, 0x26, 0xf2, 0x58, 0xa3, 0x57, 0x6d, 0xb9, 0xaf, 0xc0, 0xd5, 0x8d,
-	0x49, 0xff, 0xcb, 0xff, 0xab, 0x58, 0x8c, 0x7e, 0xfd, 0xfe, 0xf9, 0xbc, 0xaf, 0xcf, 0xa6, 0x56,
-	0x4d, 0x2e, 0xc0, 0xd5, 0x59, 0xa4, 0xff, 0xd5, 0x31, 0xf1, 0x48, 0x27, 0xde, 0xb5, 0xa6, 0x16,
-	0xae, 0x76, 0x3d, 0xa2, 0x56, 0x48, 0xde, 0x81, 0x67, 0xe8, 0xbc, 0xc6, 0x4d, 0x25, 0xfd, 0x6f,
-	0xd6, 0x77, 0xb4, 0xe3, 0x7b, 0x6f, 0xf8, 0xd6, 0x0c, 0xd9, 0x3d, 0x14, 0xbe, 0x85, 0x49, 0xe7,
-	0x21, 0x24, 0x39, 0xeb, 0x3e, 0xe3, 0xe1, 0x83, 0xec, 0x56, 0xd6, 0x3c, 0xe4, 0xe2, 0xfc, 0xf3,
-	0x59, 0x2e, 0xd4, 0x6a, 0x73, 0x13, 0x25, 0xb8, 0x36, 0xff, 0x43, 0x82, 0x35, 0x9f, 0x59, 0xcb,
-	0x79, 0xf3, 0x9b, 0xe4, 0xd8, 0x00, 0x37, 0x03, 0x83, 0x5c, 0xfe, 0x09, 0x00, 0x00, 0xff, 0xff,
-	0xe6, 0x88, 0x38, 0xe0, 0xac, 0x03, 0x00, 0x00,
+var fileDescriptor_logical_device_eab9968d916b9ed2 = []byte{
+	// 512 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x53, 0x4f, 0x6b, 0x13, 0x41,
+	0x14, 0x77, 0x9b, 0x6c, 0x9a, 0xbc, 0x4d, 0x23, 0x8c, 0x94, 0x2e, 0xad, 0xd2, 0xb0, 0x78, 0x48,
+	0x29, 0x4d, 0x6a, 0x8a, 0xa0, 0x07, 0x41, 0x43, 0xa9, 0x04, 0x44, 0x64, 0xbc, 0x79, 0x59, 0xa6,
+	0x3b, 0x9b, 0xcd, 0x40, 0x92, 0xb7, 0xec, 0x4c, 0xda, 0xab, 0x7a, 0xf1, 0xd3, 0xf9, 0x25, 0xfc,
+	0x08, 0x1e, 0x3c, 0xcb, 0xbc, 0xd9, 0xad, 0xd9, 0xa6, 0x1e, 0xf7, 0xf7, 0xe7, 0xbd, 0xdf, 0xfc,
+	0x1e, 0x0b, 0xd1, 0x0d, 0x2e, 0xcc, 0x5c, 0xc4, 0x79, 0x81, 0x06, 0xf5, 0x68, 0x81, 0x99, 0x4a,
+	0xc4, 0x22, 0x96, 0xe9, 0x8d, 0x4a, 0xd2, 0x21, 0xa1, 0xac, 0xe5, 0x34, 0x87, 0x4f, 0x33, 0xc4,
+	0x6c, 0x91, 0x8e, 0x44, 0xae, 0x46, 0x62, 0xb5, 0x42, 0x23, 0x8c, 0xc2, 0x95, 0x76, 0xaa, 0xc3,
+	0xb0, 0x3e, 0x69, 0x99, 0x1a, 0x51, 0x32, 0xc7, 0x75, 0x06, 0xf3, 0x74, 0x35, 0x5b, 0xe0, 0x6d,
+	0xfc, 0xe2, 0xc2, 0x09, 0xa2, 0x57, 0xb0, 0xf7, 0xc1, 0x2d, 0xfe, 0x84, 0x85, 0x99, 0x4a, 0xd6,
+	0x83, 0x1d, 0x25, 0x43, 0xaf, 0xef, 0x0d, 0x3a, 0x7c, 0x47, 0x49, 0x76, 0x00, 0xbb, 0x39, 0x16,
+	0x26, 0x56, 0x32, 0xdc, 0x21, 0xb0, 0x95, 0x93, 0x30, 0xfa, 0xed, 0x41, 0xb0, 0x61, 0xdd, 0x32,
+	0x9e, 0x43, 0x1b, 0x67, 0x79, 0x6c, 0xd5, 0xe4, 0x0c, 0xc6, 0xfb, 0xc3, 0xcd, 0xfd, 0x15, 0xc9,
+	0x77, 0x71, 0x96, 0xd3, 0x84, 0x23, 0xe8, 0xb8, 0xc7, 0xdb, 0x65, 0x0d, 0x1a, 0xd4, 0x76, 0xc0,
+	0x54, 0xb2, 0xe7, 0xd0, 0x2b, 0x49, 0x8a, 0xb3, 0xc2, 0xb0, 0xd9, 0xf7, 0x06, 0x7b, 0xbc, 0xeb,
+	0x50, 0x3b, 0xe0, 0x23, 0xda, 0x11, 0x05, 0xa2, 0x71, 0x5b, 0xfd, 0xbe, 0x37, 0x68, 0xf3, 0xb6,
+	0x05, 0x68, 0xfe, 0x3b, 0xe8, 0x55, 0x4b, 0x63, 0x6d, 0x84, 0xd1, 0x61, 0x8b, 0x72, 0x1d, 0x3d,
+	0x98, 0xcb, 0x49, 0x78, 0xb7, 0x4c, 0xf7, 0xd9, 0x7e, 0x45, 0xaf, 0xa1, 0xbb, 0xf1, 0x66, 0xcd,
+	0x4e, 0xc0, 0x57, 0x26, 0x5d, 0xea, 0xd0, 0xeb, 0x37, 0x06, 0xc1, 0xf8, 0xc9, 0xd0, 0xf5, 0x3d,
+	0xdc, 0x10, 0x71, 0xa7, 0x88, 0x7e, 0x34, 0xee, 0xaa, 0xbe, 0xa4, 0xc8, 0x5b, 0x8d, 0x1d, 0x43,
+	0x20, 0x85, 0x11, 0xb9, 0x30, 0xf3, 0xaa, 0xee, 0x26, 0x87, 0x0a, 0x9a, 0x4a, 0x76, 0x02, 0x4d,
+	0x99, 0xea, 0x84, 0xba, 0x79, 0xa8, 0x4e, 0x4b, 0x72, 0x92, 0xb0, 0x29, 0x3c, 0xd6, 0xb7, 0xca,
+	0x24, 0xf3, 0x78, 0x96, 0x0a, 0xb3, 0x2e, 0x52, 0x4d, 0x7d, 0x05, 0xe3, 0xfe, 0x96, 0xeb, 0x9e,
+	0x8e, 0xf7, 0x1c, 0x70, 0x55, 0x7e, 0xdb, 0xe6, 0xa9, 0xd3, 0x7f, 0xb7, 0xf1, 0x29, 0x72, 0xd7,
+	0xa2, 0x97, 0xd5, 0x7d, 0x5e, 0x82, 0x6f, 0x5b, 0xd3, 0xe1, 0xd7, 0xff, 0x57, 0x31, 0xe9, 0xfc,
+	0xfa, 0xf3, 0xf3, 0x59, 0xd3, 0x3e, 0x9b, 0x3b, 0x35, 0x3b, 0x07, 0xdf, 0x66, 0xd1, 0xe1, 0x37,
+	0x8f, 0xe2, 0xb1, 0x5a, 0xbc, 0x2b, 0x4b, 0x4d, 0x7c, 0xeb, 0x7a, 0xc4, 0x9d, 0x90, 0xbd, 0x85,
+	0x80, 0xe8, 0xac, 0xc0, 0x75, 0xae, 0xc3, 0xef, 0xce, 0x77, 0xb0, 0xe5, 0x7b, 0x4f, 0x7c, 0x65,
+	0x86, 0xd9, 0x1d, 0x14, 0xbd, 0x81, 0x5e, 0xed, 0x10, 0x9a, 0x9d, 0xd6, 0xcf, 0xb8, 0x7f, 0x2f,
+	0xbb, 0x93, 0x95, 0x87, 0x9c, 0x9c, 0x7d, 0x39, 0xcd, 0x94, 0x99, 0xaf, 0xaf, 0x87, 0x09, 0x2e,
+	0xe9, 0x97, 0x4a, 0xb0, 0x90, 0x23, 0x67, 0x39, 0x2b, 0xff, 0xb4, 0x0c, 0x4b, 0xe0, 0xba, 0x45,
+	0xc8, 0xc5, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x23, 0x92, 0xcd, 0x9e, 0xef, 0x03, 0x00, 0x00,
 }
diff --git a/protos/voltha_protos/logical_device.proto b/protos/voltha_protos/logical_device.proto
index 6e3a233..f5e2fd8 100644
--- a/protos/voltha_protos/logical_device.proto
+++ b/protos/voltha_protos/logical_device.proto
@@ -22,6 +22,7 @@
     string device_id = 3;
     uint32 device_port_no = 4;
     bool root_port = 5;
+    openflow_13.ofp_port_stats ofp_port_stats = 6;
 }
 
 message LogicalPorts {
