diff --git a/protos/voltha_protos/adapter_service.proto b/protos/voltha_protos/adapter_service.proto
index 5ff553e..cfd5f29 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(google.protobuf.Empty) returns (health.HealthStatus);
+    rpc GetHealthStatus(common.Connection) returns (health.HealthStatus);
 
     // Device
     rpc AdoptDevice(device.Device) returns(google.protobuf.Empty);
diff --git a/protos/voltha_protos/common.proto b/protos/voltha_protos/common.proto
index 9efbdd9..f7efff6 100755
--- a/protos/voltha_protos/common.proto
+++ b/protos/voltha_protos/common.proto
@@ -20,6 +20,18 @@
     api_test=0;
 }
 
+message Connection {
+    // endpoint is the endpoint sending the request
+    string endpoint = 1;
+
+    // contextInfo represents additional contextual information
+    string contextInfo = 2;
+
+    // keep_alive_interval is used to indicate to the remote endpoint how often it 
+    // will get a keep alive notification
+    int64 keep_alive_interval = 3;
+}
+
 message AdminState {
     // Administrative State
     enum Types {
diff --git a/protos/voltha_protos/core_services.proto b/protos/voltha_protos/core_services.proto
index b6c16da..f0929f4 100755
--- a/protos/voltha_protos/core_services.proto
+++ b/protos/voltha_protos/core_services.proto
@@ -16,7 +16,7 @@
 // sole purpose of serving requests/updates from the Voltha adapters. 
 service CoreService {
 	//	 in coreProxy interface
-	rpc GetHealthStatus(google.protobuf.Empty) returns (health.HealthStatus);
+	rpc GetHealthStatus(common.Connection) returns (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 5d4773f..f33def4 100755
--- a/protos/voltha_protos/olt_inter_adapter_service.proto
+++ b/protos/voltha_protos/olt_inter_adapter_service.proto
@@ -6,6 +6,7 @@
 
 package olt_inter_adapter_service;
 
+import "voltha_protos/common.proto";
 import "google/protobuf/empty.proto";
 import "voltha_protos/inter_adapter.proto";
 import "voltha_protos/health.proto";
@@ -13,7 +14,7 @@
 service OltInterAdapterService {
     // GetHealthStatus is used by an OltInterAdapterService client to verify connectivity
     // to the gRPC server hosting the OltInterAdapterService service
-    rpc GetHealthStatus(google.protobuf.Empty) returns (health.HealthStatus);
+    rpc GetHealthStatus(common.Connection) returns (health.HealthStatus);
 
     rpc ProxyOmciRequest(inter_adapter.OmciMessage) returns (google.protobuf.Empty);
     rpc GetTechProfileInstance(inter_adapter.TechProfileInstanceRequestMessage) returns (inter_adapter.TechProfileDownloadMessage);
diff --git a/protos/voltha_protos/onu_inter_adapter_service.proto b/protos/voltha_protos/onu_inter_adapter_service.proto
index ee4dff7..1b9243a 100755
--- a/protos/voltha_protos/onu_inter_adapter_service.proto
+++ b/protos/voltha_protos/onu_inter_adapter_service.proto
@@ -6,6 +6,7 @@
 
 package onu_inter_adapter_service;
 
+import "voltha_protos/common.proto";
 import "google/protobuf/empty.proto";
 import "voltha_protos/inter_adapter.proto";
 import "voltha_protos/health.proto";
@@ -13,7 +14,7 @@
 service OnuInterAdapterService {
     // GetHealthStatus is used by an OnuInterAdapterService client to verify connectivity
     // to the gRPC server hosting the OnuInterAdapterService service
-    rpc GetHealthStatus(google.protobuf.Empty) returns (health.HealthStatus);
+    rpc GetHealthStatus(common.Connection) returns (health.HealthStatus);
 
     rpc OnuIndication(inter_adapter.OnuIndicationMessage) returns (google.protobuf.Empty);
     rpc OmciIndication(inter_adapter.OmciMessage) returns (google.protobuf.Empty);
