[VOL-4442] grpc streaming connection monitoring

Change-Id: Id787e94cf28745d36e72f8ed2f5c316312714db4
diff --git a/protos/voltha_protos/adapter_service.proto b/protos/voltha_protos/adapter_service.proto
index cfd5f29..08578a4 100755
--- a/protos/voltha_protos/adapter_service.proto
+++ b/protos/voltha_protos/adapter_service.proto
@@ -20,7 +20,7 @@
 service AdapterService {
     // GetHealthStatus is used by an AdapterService client to verify connectivity
     // to the gRPC server hosting the AdapterService service
-    rpc GetHealthStatus(common.Connection) returns (health.HealthStatus);
+    rpc GetHealthStatus(stream common.Connection) returns (stream health.HealthStatus);
 
     // Device
     rpc AdoptDevice(device.Device) returns(google.protobuf.Empty);
diff --git a/protos/voltha_protos/core_services.proto b/protos/voltha_protos/core_services.proto
index f0929f4..738bd3e 100755
--- a/protos/voltha_protos/core_services.proto
+++ b/protos/voltha_protos/core_services.proto
@@ -15,8 +15,10 @@
 // The CoreService is a gRPC service implemented by the Voltha RW-Core for the
 // sole purpose of serving requests/updates from the Voltha adapters. 
 service CoreService {
-	//	 in coreProxy interface
-	rpc GetHealthStatus(common.Connection) returns (health.HealthStatus);
+	// GetHealthStatus is used by a CoreService client to verify connectivity
+    // to the gRPC server hosting the CoreService service
+    rpc GetHealthStatus(stream common.Connection) returns (stream health.HealthStatus);
+
 	rpc RegisterAdapter (core_adapter.AdapterRegistration) returns (google.protobuf.Empty);
 	rpc DeviceUpdate (device.Device) returns (google.protobuf.Empty);
 	rpc PortCreated (device.Port) returns (google.protobuf.Empty);
diff --git a/protos/voltha_protos/olt_inter_adapter_service.proto b/protos/voltha_protos/olt_inter_adapter_service.proto
index 68dbb6f..6ebad57 100755
--- a/protos/voltha_protos/olt_inter_adapter_service.proto
+++ b/protos/voltha_protos/olt_inter_adapter_service.proto
@@ -12,9 +12,10 @@
 import "voltha_protos/health.proto";
 
 service OltInterAdapterService {
-    // GetHealthStatus is used by an OltInterAdapterService client to verify connectivity
-    // to the gRPC server hosting the OltInterAdapterService service
-    rpc GetHealthStatus(common.Connection) returns (health.HealthStatus);
+    // GetHealthStatus is used by a OltInterAdapterService client to detect a connection
+    // lost with the gRPC server hosting the OltInterAdapterService service
+    rpc GetHealthStatus(stream common.Connection) returns (stream health.HealthStatus);
+
 
     rpc ProxyOmciRequest(inter_adapter.OmciMessage) returns (google.protobuf.Empty);
     rpc ProxyOmciRequests(inter_adapter.OmciMessages) returns (google.protobuf.Empty);
diff --git a/protos/voltha_protos/onu_inter_adapter_service.proto b/protos/voltha_protos/onu_inter_adapter_service.proto
index 1b9243a..3b3d25d 100755
--- a/protos/voltha_protos/onu_inter_adapter_service.proto
+++ b/protos/voltha_protos/onu_inter_adapter_service.proto
@@ -12,9 +12,9 @@
 import "voltha_protos/health.proto";
 
 service OnuInterAdapterService {
-    // GetHealthStatus is used by an OnuInterAdapterService client to verify connectivity
-    // to the gRPC server hosting the OnuInterAdapterService service
-    rpc GetHealthStatus(common.Connection) returns (health.HealthStatus);
+    // GetHealthStatus is used by a OnuInterAdapterService client to detect a connection
+    // lost with the gRPC server hosting the OnuInterAdapterService service
+    rpc GetHealthStatus(stream common.Connection) returns (stream health.HealthStatus);
 
     rpc OnuIndication(inter_adapter.OnuIndicationMessage) returns (google.protobuf.Empty);
     rpc OmciIndication(inter_adapter.OmciMessage) returns (google.protobuf.Empty);