diff --git a/vendor/github.com/opencord/voltha-protos/v5/go/onu_inter_adapter_service/onu_inter_adapter_service.pb.go b/vendor/github.com/opencord/voltha-protos/v5/go/onu_inter_adapter_service/onu_inter_adapter_service.pb.go
index eaf7ca8..a2cf537 100644
--- a/vendor/github.com/opencord/voltha-protos/v5/go/onu_inter_adapter_service/onu_inter_adapter_service.pb.go
+++ b/vendor/github.com/opencord/voltha-protos/v5/go/onu_inter_adapter_service/onu_inter_adapter_service.pb.go
@@ -8,6 +8,7 @@
 	fmt "fmt"
 	proto "github.com/golang/protobuf/proto"
 	empty "github.com/golang/protobuf/ptypes/empty"
+	common "github.com/opencord/voltha-protos/v5/go/common"
 	health "github.com/opencord/voltha-protos/v5/go/health"
 	inter_adapter "github.com/opencord/voltha-protos/v5/go/inter_adapter"
 	grpc "google.golang.org/grpc"
@@ -32,29 +33,29 @@
 }
 
 var fileDescriptor_f951f30caeee9ccd = []byte{
-	// 337 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x92, 0xc1, 0x4a, 0xeb, 0x40,
-	0x14, 0x86, 0xb9, 0x5c, 0xb8, 0x8b, 0xb9, 0x54, 0x61, 0x94, 0x82, 0xd1, 0x4d, 0x71, 0xe5, 0xa2,
-	0x13, 0x50, 0x5c, 0x4b, 0x6b, 0xa5, 0x15, 0x2a, 0x2d, 0xb4, 0x88, 0xb8, 0x29, 0xd3, 0xc9, 0x69,
-	0x32, 0x90, 0xcc, 0x09, 0x93, 0x93, 0x8a, 0x6f, 0xe1, 0x1b, 0xfa, 0x2a, 0xd2, 0x4c, 0x0b, 0x9d,
-	0xda, 0x90, 0xd5, 0x2c, 0xce, 0x77, 0xbe, 0xf3, 0x0f, 0xfc, 0xac, 0xbb, 0xc6, 0x94, 0x12, 0xb9,
-	0xc8, 0x2d, 0x12, 0x16, 0x21, 0x9a, 0x72, 0xa1, 0x0d, 0x81, 0x5d, 0xc8, 0x48, 0xe6, 0x9b, 0xb7,
-	0x00, 0xbb, 0xd6, 0x0a, 0x44, 0x05, 0xf0, 0x8b, 0x5a, 0x20, 0xb8, 0x8c, 0x11, 0xe3, 0x14, 0xc2,
-	0x0a, 0x5c, 0x96, 0xab, 0x10, 0xb2, 0x9c, 0x3e, 0xdd, 0x5e, 0xd0, 0xf1, 0xcf, 0x78, 0x86, 0x2d,
-	0x12, 0xf8, 0x48, 0x02, 0x32, 0xa5, 0xc4, 0xcd, 0x6e, 0xbf, 0xff, 0xb2, 0xf6, 0xc4, 0x94, 0xcf,
-	0x9b, 0xb5, 0x9e, 0xdb, 0x9a, 0xb9, 0xb3, 0xfc, 0x81, 0x9d, 0x0e, 0x81, 0x46, 0x15, 0x3d, 0x23,
-	0x49, 0x65, 0xc1, 0xdb, 0xc2, 0x45, 0x11, 0xbb, 0x28, 0xe2, 0x69, 0x13, 0x25, 0x38, 0x17, 0x5b,
-	0xa9, 0x47, 0x8f, 0x59, 0xab, 0x52, 0x47, 0x5a, 0x49, 0xd2, 0x68, 0xf8, 0xb5, 0xf0, 0xe3, 0x79,
-	0xd3, 0x17, 0x28, 0x0a, 0x19, 0x43, 0x50, 0x73, 0x83, 0x0f, 0xd8, 0xc9, 0x24, 0x53, 0x7a, 0x4f,
-	0x17, 0x1c, 0xea, 0x32, 0xa5, 0x9b, 0x2c, 0x6f, 0xec, 0x6c, 0x80, 0x1f, 0x26, 0x45, 0x19, 0xcd,
-	0x41, 0x25, 0x53, 0x8b, 0x2b, 0x9d, 0x02, 0xbf, 0x39, 0x50, 0xed, 0xcd, 0x76, 0x78, 0x93, 0x79,
-	0xcc, 0x5a, 0x03, 0x48, 0x81, 0x60, 0x08, 0xd9, 0x14, 0x2d, 0xfd, 0xfa, 0xad, 0x37, 0x6d, 0xb2,
-	0x8d, 0xd8, 0x7f, 0xc7, 0xcf, 0x1f, 0xd1, 0x10, 0xef, 0x1c, 0x75, 0xcd, 0x15, 0x9a, 0x26, 0x53,
-	0xff, 0xeb, 0x0f, 0xeb, 0xa2, 0x8d, 0x05, 0xe6, 0x60, 0x14, 0xda, 0x48, 0xb8, 0x36, 0x88, 0xda,
-	0xbe, 0xf5, 0xaf, 0x5e, 0x2b, 0xe2, 0x78, 0x2d, 0xde, 0x7b, 0xb1, 0xa6, 0xa4, 0x5c, 0x0a, 0x85,
-	0x59, 0xb8, 0x73, 0x86, 0xce, 0xd9, 0xdd, 0x36, 0x6c, 0x7d, 0x1f, 0xc6, 0x58, 0xdf, 0xf8, 0xe5,
-	0xbf, 0x8a, 0xbb, 0xfb, 0x09, 0x00, 0x00, 0xff, 0xff, 0x75, 0x2b, 0xd4, 0xd6, 0x23, 0x03, 0x00,
-	0x00,
+	// 351 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x93, 0x4f, 0x4b, 0xf3, 0x40,
+	0x10, 0xc6, 0x79, 0x79, 0xc1, 0xc3, 0x4a, 0x15, 0x56, 0x29, 0x18, 0xbd, 0x14, 0x4f, 0x1e, 0xba,
+	0x01, 0xc5, 0x93, 0xa7, 0xfe, 0x91, 0x56, 0xa8, 0xb4, 0xd0, 0x22, 0xe2, 0xa5, 0x6c, 0x37, 0xd3,
+	0x64, 0x21, 0xd9, 0x09, 0xc9, 0xa4, 0xe2, 0xb7, 0xf0, 0xfb, 0xf9, 0x65, 0x24, 0xd9, 0x14, 0xba,
+	0xb5, 0x25, 0xa7, 0x10, 0x9e, 0xdf, 0xfc, 0x98, 0x81, 0x67, 0x59, 0x77, 0x83, 0x31, 0x45, 0x72,
+	0x99, 0x66, 0x48, 0x98, 0xfb, 0x68, 0x8a, 0xa5, 0x36, 0x04, 0xd9, 0x52, 0x06, 0x32, 0x2d, 0xbf,
+	0x39, 0x64, 0x1b, 0xad, 0x40, 0x54, 0x00, 0xbf, 0x3a, 0x0a, 0x78, 0x9e, 0x6b, 0x52, 0x98, 0x24,
+	0x68, 0xec, 0x98, 0x77, 0x1d, 0x22, 0x86, 0x31, 0xf8, 0xd5, 0xdf, 0xaa, 0x58, 0xfb, 0x90, 0xa4,
+	0xf4, 0x55, 0x87, 0x1d, 0x77, 0xd0, 0xb1, 0xd7, 0xc8, 0x9e, 0x3b, 0x02, 0x19, 0x53, 0x64, 0xb3,
+	0xfb, 0x9f, 0xff, 0xac, 0x3d, 0x35, 0xc5, 0x4b, 0x39, 0xd6, 0xb3, 0x53, 0x73, 0xbb, 0x12, 0x7f,
+	0x62, 0xe7, 0x23, 0xa0, 0x71, 0x45, 0xcf, 0x49, 0x52, 0x91, 0x73, 0x2e, 0xea, 0xc5, 0x06, 0x68,
+	0x0c, 0x28, 0xd2, 0x68, 0xbc, 0x4b, 0x51, 0x0b, 0x1d, 0x72, 0xc2, 0x5a, 0x95, 0x36, 0xd0, 0x4a,
+	0x96, 0x18, 0xbf, 0x15, 0xee, 0x6a, 0x4e, 0xfa, 0x0a, 0x79, 0x2e, 0x43, 0xf0, 0xda, 0xc2, 0x9e,
+	0x2a, 0xb6, 0xa7, 0x8a, 0xe7, 0xf2, 0x54, 0x3e, 0x64, 0x67, 0xd3, 0x44, 0xe9, 0x1d, 0x9d, 0xb7,
+	0xaf, 0x4b, 0x94, 0x6e, 0xb2, 0xbc, 0xb3, 0x8b, 0x21, 0x7e, 0x9a, 0x18, 0x65, 0xb0, 0x00, 0x15,
+	0xcd, 0x32, 0x5c, 0xeb, 0x18, 0xf8, 0xdd, 0x9e, 0x6a, 0x27, 0xdb, 0xe2, 0x4d, 0xe6, 0x09, 0x6b,
+	0x0d, 0x21, 0x06, 0x82, 0x11, 0x24, 0x33, 0xcc, 0xe8, 0xcf, 0xb5, 0x4e, 0xda, 0x64, 0x1b, 0xb3,
+	0x53, 0xcb, 0x2f, 0x06, 0x68, 0x88, 0x77, 0x0e, 0xba, 0x16, 0x0a, 0x4d, 0x93, 0xa9, 0xff, 0xfd,
+	0x8f, 0x75, 0x31, 0x0b, 0x05, 0xa6, 0x60, 0x14, 0x66, 0x81, 0xb0, 0x4d, 0x10, 0x47, 0x7b, 0xd8,
+	0xbf, 0x79, 0xab, 0x88, 0xc3, 0x95, 0xf8, 0xe8, 0x85, 0x9a, 0xa2, 0x62, 0x55, 0xb6, 0xc0, 0xdf,
+	0x3a, 0x7d, 0xeb, 0xec, 0xd6, 0xed, 0xda, 0x3c, 0xfa, 0x21, 0x1e, 0x7f, 0x09, 0xab, 0x93, 0x8a,
+	0x7b, 0xf8, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x5f, 0x10, 0x75, 0x34, 0x3b, 0x03, 0x00, 0x00,
 }
 
 // Reference imports to suppress errors if they are not otherwise used.
@@ -71,7 +72,7 @@
 type OnuInterAdapterServiceClient interface {
 	// GetHealthStatus is used by an OnuInterAdapterService client to verify connectivity
 	// to the gRPC server hosting the OnuInterAdapterService service
-	GetHealthStatus(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*health.HealthStatus, error)
+	GetHealthStatus(ctx context.Context, in *common.Connection, opts ...grpc.CallOption) (*health.HealthStatus, error)
 	OnuIndication(ctx context.Context, in *inter_adapter.OnuIndicationMessage, opts ...grpc.CallOption) (*empty.Empty, error)
 	OmciIndication(ctx context.Context, in *inter_adapter.OmciMessage, opts ...grpc.CallOption) (*empty.Empty, error)
 	DownloadTechProfile(ctx context.Context, in *inter_adapter.TechProfileDownloadMessage, opts ...grpc.CallOption) (*empty.Empty, error)
@@ -87,7 +88,7 @@
 	return &onuInterAdapterServiceClient{cc}
 }
 
-func (c *onuInterAdapterServiceClient) GetHealthStatus(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*health.HealthStatus, error) {
+func (c *onuInterAdapterServiceClient) GetHealthStatus(ctx context.Context, in *common.Connection, opts ...grpc.CallOption) (*health.HealthStatus, error) {
 	out := new(health.HealthStatus)
 	err := c.cc.Invoke(ctx, "/onu_inter_adapter_service.OnuInterAdapterService/GetHealthStatus", in, out, opts...)
 	if err != nil {
@@ -145,7 +146,7 @@
 type OnuInterAdapterServiceServer interface {
 	// GetHealthStatus is used by an OnuInterAdapterService client to verify connectivity
 	// to the gRPC server hosting the OnuInterAdapterService service
-	GetHealthStatus(context.Context, *empty.Empty) (*health.HealthStatus, error)
+	GetHealthStatus(context.Context, *common.Connection) (*health.HealthStatus, error)
 	OnuIndication(context.Context, *inter_adapter.OnuIndicationMessage) (*empty.Empty, error)
 	OmciIndication(context.Context, *inter_adapter.OmciMessage) (*empty.Empty, error)
 	DownloadTechProfile(context.Context, *inter_adapter.TechProfileDownloadMessage) (*empty.Empty, error)
@@ -157,7 +158,7 @@
 type UnimplementedOnuInterAdapterServiceServer struct {
 }
 
-func (*UnimplementedOnuInterAdapterServiceServer) GetHealthStatus(ctx context.Context, req *empty.Empty) (*health.HealthStatus, error) {
+func (*UnimplementedOnuInterAdapterServiceServer) GetHealthStatus(ctx context.Context, req *common.Connection) (*health.HealthStatus, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method GetHealthStatus not implemented")
 }
 func (*UnimplementedOnuInterAdapterServiceServer) OnuIndication(ctx context.Context, req *inter_adapter.OnuIndicationMessage) (*empty.Empty, error) {
@@ -181,7 +182,7 @@
 }
 
 func _OnuInterAdapterService_GetHealthStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(empty.Empty)
+	in := new(common.Connection)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
@@ -193,7 +194,7 @@
 		FullMethod: "/onu_inter_adapter_service.OnuInterAdapterService/GetHealthStatus",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(OnuInterAdapterServiceServer).GetHealthStatus(ctx, req.(*empty.Empty))
+		return srv.(OnuInterAdapterServiceServer).GetHealthStatus(ctx, req.(*common.Connection))
 	}
 	return interceptor(ctx, in, info, handler)
 }
