diff --git a/go/adapter_service/adapter_service.pb.go b/go/adapter_service/adapter_service.pb.go
index bcf60ac..e8aa01c 100644
--- a/go/adapter_service/adapter_service.pb.go
+++ b/go/adapter_service/adapter_service.pb.go
@@ -36,60 +36,60 @@
 }
 
 var fileDescriptor_038e6ec340f67698 = []byte{
-	// 839 bytes of a gzipped FileDescriptorProto
+	// 846 bytes of a gzipped FileDescriptorProto
 	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x96, 0x6f, 0x6f, 0xdb, 0x36,
 	0x10, 0xc6, 0xb1, 0x0d, 0xd8, 0x8b, 0x4b, 0x6c, 0x27, 0x6c, 0x96, 0x0e, 0x0a, 0x56, 0x74, 0xed,
-	0xeb, 0xca, 0x40, 0x8b, 0xb6, 0x1b, 0x86, 0x61, 0xf3, 0xbf, 0xba, 0xde, 0x5a, 0x38, 0xb0, 0xe6,
+	0xeb, 0xca, 0x40, 0x8b, 0xb6, 0x1b, 0x8a, 0x01, 0xf3, 0xbf, 0xba, 0xde, 0x5a, 0x38, 0xb0, 0xe6,
 	0x62, 0xd8, 0x9b, 0x80, 0x96, 0xcf, 0x32, 0x51, 0x8a, 0xd4, 0xc8, 0x93, 0xd3, 0x7e, 0x83, 0x7d,
-	0x84, 0x7d, 0xdc, 0x42, 0x12, 0xe5, 0x58, 0xaa, 0xdd, 0xd6, 0x49, 0xde, 0x59, 0xf7, 0xf0, 0xf9,
+	0x80, 0x7d, 0xe0, 0x42, 0x12, 0xe5, 0x58, 0xaa, 0xdd, 0xd6, 0x49, 0xde, 0x59, 0xf7, 0xf0, 0xf9,
 	0xf1, 0x78, 0x47, 0x93, 0x84, 0x87, 0x2b, 0x2d, 0x69, 0xc9, 0x2f, 0x12, 0xa3, 0x49, 0xdb, 0x36,
 	0x9f, 0xf3, 0x84, 0xd0, 0x5c, 0x58, 0x34, 0x2b, 0x11, 0xa2, 0x9f, 0x87, 0x59, 0xab, 0x16, 0xf6,
-	0xce, 0x22, 0xad, 0x23, 0x89, 0xed, 0x5c, 0x9e, 0xa5, 0x8b, 0x36, 0xc6, 0x09, 0xbd, 0x2f, 0x46,
+	0xce, 0x22, 0xad, 0x23, 0x89, 0xed, 0x5c, 0x9e, 0xa5, 0x8b, 0x36, 0xc6, 0x09, 0x7d, 0x28, 0x46,
 	0x7b, 0x5e, 0x15, 0x19, 0xea, 0x38, 0xd6, 0xca, 0x69, 0xf7, 0xeb, 0x9a, 0xc1, 0x0b, 0x07, 0xdf,
-	0xee, 0x9e, 0xe3, 0x55, 0x1e, 0xde, 0xbd, 0xaa, 0x86, 0xef, 0x08, 0x95, 0x15, 0x5a, 0xd9, 0xed,
-	0xde, 0x25, 0x72, 0x49, 0xcb, 0xed, 0x5a, 0xf1, 0xe5, 0xb4, 0x1f, 0xaa, 0x9a, 0x8e, 0x43, 0x71,
+	0xee, 0x9e, 0xe3, 0x55, 0x1e, 0xde, 0xbd, 0xaa, 0x86, 0xef, 0x09, 0x95, 0x15, 0x5a, 0xd9, 0xed,
+	0xde, 0x25, 0x72, 0x49, 0xcb, 0xed, 0x5a, 0xf1, 0xe5, 0xb4, 0x9f, 0xaa, 0x9a, 0x8e, 0x43, 0x71,
 	0x41, 0x68, 0x69, 0xbb, 0x15, 0x57, 0xa8, 0xc8, 0x4d, 0xf9, 0xf8, 0xff, 0x3b, 0xd0, 0xec, 0x14,
-	0x0b, 0x08, 0x8a, 0xe2, 0xb0, 0xdf, 0xa0, 0x35, 0x44, 0x7a, 0x99, 0x4f, 0x1e, 0x10, 0xa7, 0xd4,
-	0xb2, 0x53, 0xbf, 0x28, 0x98, 0x5f, 0x16, 0xcc, 0x1f, 0x64, 0x05, 0xf3, 0x4e, 0x7c, 0x97, 0x63,
-	0x65, 0xf4, 0x53, 0x38, 0xe8, 0xcc, 0x75, 0x42, 0xfd, 0x7c, 0xed, 0xac, 0xe9, 0xbb, 0x22, 0x14,
-	0xdf, 0xde, 0x0e, 0x18, 0xfb, 0x19, 0x5a, 0x13, 0x0c, 0xb5, 0x0a, 0x85, 0xc4, 0x3d, 0xad, 0xcf,
-	0xe0, 0xb0, 0x8f, 0x12, 0x69, 0x5f, 0xdf, 0x73, 0x68, 0xf4, 0x85, 0xe5, 0xb3, 0xbd, 0x27, 0xfc,
-	0x09, 0x9a, 0x13, 0x1c, 0xa8, 0x6b, 0x38, 0x9f, 0xc1, 0xe1, 0x04, 0x67, 0x5a, 0xd3, 0xfe, 0x33,
-	0x06, 0x28, 0x17, 0x7f, 0xa1, 0xdd, 0xd7, 0xd9, 0x85, 0xa3, 0x21, 0xd2, 0x78, 0x91, 0x14, 0xe3,
-	0x46, 0x6a, 0xa1, 0x3f, 0xf2, 0xde, 0xf3, 0x2b, 0x5b, 0x39, 0xb8, 0x14, 0x14, 0x2e, 0x7b, 0x3c,
-	0xe1, 0x33, 0x21, 0x45, 0xd1, 0x9b, 0xde, 0x52, 0xc8, 0x79, 0x31, 0xfc, 0x95, 0xb6, 0xf4, 0xc5,
-	0xd3, 0x3f, 0x06, 0x28, 0x0a, 0x75, 0xae, 0x0d, 0xb1, 0xc3, 0xd2, 0x95, 0x7d, 0xed, 0xf4, 0x3c,
-	0x81, 0x03, 0xd7, 0x97, 0x3d, 0x4c, 0x5d, 0x68, 0x4d, 0x93, 0x39, 0x27, 0x7c, 0x21, 0xf5, 0xa5,
-	0xed, 0xa6, 0xf2, 0x2d, 0xbb, 0x5b, 0x5d, 0x56, 0x16, 0xcb, 0xc5, 0x9d, 0x8c, 0x09, 0x7c, 0xbf,
-	0xc1, 0x18, 0xa9, 0xd0, 0x60, 0x8c, 0x8a, 0xb8, 0x94, 0xef, 0x59, 0xad, 0x46, 0x1b, 0xe2, 0xa7,
-	0x99, 0xbf, 0x43, 0x23, 0x40, 0x35, 0x3f, 0xe7, 0xe1, 0x5b, 0xa4, 0x71, 0x4a, 0xf5, 0xac, 0xd6,
-	0xc2, 0x4e, 0xc2, 0x00, 0x9a, 0x45, 0x56, 0xe7, 0x71, 0x4f, 0xab, 0x85, 0x88, 0xd8, 0x59, 0x0d,
-	0xe1, 0xe2, 0x36, 0x6b, 0xee, 0x4e, 0x4c, 0x00, 0x47, 0x7d, 0x7d, 0xa9, 0xa4, 0xe6, 0xf3, 0xb1,
-	0x4a, 0x47, 0x31, 0x8f, 0x90, 0x3d, 0xa8, 0x76, 0x31, 0x0f, 0x96, 0x83, 0x26, 0xf8, 0x6f, 0x8a,
-	0x96, 0xbc, 0xb3, 0x2d, 0x63, 0x26, 0x68, 0x13, 0xad, 0x2c, 0xb2, 0x57, 0x70, 0x9c, 0xed, 0x2e,
-	0xc7, 0x73, 0x27, 0x80, 0xb7, 0xd5, 0xf1, 0x05, 0xb4, 0x31, 0x9c, 0x74, 0x66, 0xda, 0xac, 0x79,
-	0xd3, 0x24, 0x32, 0x7c, 0x8e, 0xd7, 0x07, 0x3e, 0x82, 0xc3, 0x8d, 0xf4, 0x2c, 0x03, 0xdf, 0x9d,
-	0xe7, 0xa3, 0xbe, 0x77, 0x5c, 0x1a, 0xaf, 0xe4, 0x3f, 0xe1, 0xa8, 0x13, 0x92, 0x58, 0x71, 0xc2,
-	0x75, 0x89, 0xae, 0x3d, 0xf7, 0x08, 0x9a, 0x3d, 0x1d, 0xc7, 0x82, 0x6e, 0x8e, 0x1a, 0x43, 0xa3,
-	0xec, 0x4a, 0xd9, 0xb7, 0xea, 0x66, 0xdc, 0xec, 0xdb, 0x6b, 0xb4, 0x96, 0x47, 0xe8, 0x7d, 0x57,
-	0x12, 0x2b, 0xea, 0x83, 0x6f, 0xfe, 0xfb, 0xfa, 0x2b, 0xf6, 0x37, 0x9c, 0x0e, 0x91, 0x2a, 0x82,
-	0xeb, 0xdd, 0x4d, 0xc9, 0x53, 0xb8, 0xd3, 0xe3, 0x2a, 0x44, 0x59, 0xd1, 0x6e, 0x03, 0x5b, 0x76,
-	0xc6, 0xed, 0x8c, 0xec, 0x0f, 0x71, 0x63, 0x6c, 0x00, 0xc7, 0x13, 0x5c, 0xa1, 0xa1, 0xdb, 0x84,
-	0xfe, 0x02, 0x8d, 0x80, 0xb8, 0xa1, 0x71, 0x1c, 0x8a, 0xec, 0xc0, 0x66, 0xa7, 0x55, 0xe0, 0xf8,
-	0x75, 0x6f, 0x94, 0xc5, 0x3d, 0xe6, 0x67, 0x77, 0xb5, 0x9f, 0xfd, 0x5e, 0xb7, 0xfa, 0x0f, 0x68,
-	0x04, 0x22, 0x4e, 0x25, 0x27, 0xec, 0x48, 0x6e, 0xe2, 0x7a, 0x36, 0x15, 0xf1, 0x2a, 0x1b, 0xb7,
-	0xad, 0xc7, 0x09, 0x1a, 0x4e, 0x42, 0xab, 0x8c, 0x97, 0x27, 0x92, 0x26, 0x89, 0x41, 0x6b, 0x07,
-	0xd9, 0xad, 0xcf, 0x98, 0x9f, 0xdf, 0xfe, 0x7e, 0xfe, 0xf5, 0x42, 0x48, 0x42, 0xb3, 0xf3, 0xb8,
-	0xf8, 0x15, 0x5a, 0x53, 0x75, 0x7d, 0xfb, 0x4b, 0x38, 0x18, 0x22, 0x0d, 0xde, 0xd1, 0x1b, 0x2e,
-	0x53, 0x64, 0xf7, 0xab, 0xab, 0xd8, 0x90, 0xca, 0x35, 0xdc, 0xf5, 0xd7, 0x0f, 0x22, 0x7f, 0x82,
-	0x94, 0x1a, 0x95, 0xcb, 0x96, 0x0d, 0xe1, 0x20, 0xd8, 0x4d, 0x0a, 0x3e, 0x26, 0xed, 0x4a, 0x69,
-	0x0a, 0xcd, 0x21, 0x52, 0x20, 0x54, 0x24, 0xb1, 0x64, 0x5d, 0xcd, 0x59, 0xc4, 0x87, 0x58, 0xb0,
-	0xca, 0xbf, 0xe5, 0x8f, 0x9f, 0x18, 0xe1, 0x3a, 0x36, 0xcd, 0xae, 0xe6, 0xcf, 0x60, 0x83, 0xcf,
-	0x62, 0x83, 0x1a, 0xb6, 0x4b, 0xf0, 0x50, 0x9b, 0xc8, 0xd7, 0x09, 0xaa, 0x50, 0x9b, 0xb9, 0xef,
-	0x9e, 0x7c, 0xb5, 0xb7, 0x6c, 0xf7, 0xe4, 0x4d, 0x1e, 0xaf, 0x3e, 0xe2, 0xfe, 0x79, 0x1e, 0x09,
-	0x5a, 0xa6, 0xb3, 0x6c, 0x5b, 0xb4, 0x4b, 0x82, 0x7b, 0x34, 0x3e, 0x2a, 0x9f, 0x90, 0x4f, 0xdb,
-	0x91, 0xae, 0xbf, 0x98, 0x67, 0xdf, 0xe6, 0xea, 0x93, 0x0f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x14,
-	0x6f, 0x97, 0x84, 0x59, 0x0b, 0x00, 0x00,
+	0x0b, 0x08, 0x8a, 0xe2, 0xb0, 0x17, 0xd0, 0x1a, 0x22, 0xbd, 0xca, 0x27, 0x0f, 0x88, 0x53, 0x6a,
+	0x19, 0xf3, 0x5d, 0x15, 0x7a, 0x5a, 0x29, 0x0c, 0x49, 0x68, 0xe5, 0x9d, 0xf8, 0x2e, 0xbf, 0xca,
+	0xc8, 0xa7, 0x70, 0xd0, 0x99, 0xeb, 0x84, 0xfa, 0xf9, 0xba, 0x59, 0xd3, 0x77, 0x05, 0x28, 0xbe,
+	0xbd, 0x53, 0xbf, 0xa8, 0xbc, 0x5f, 0x56, 0xde, 0x1f, 0x64, 0x95, 0x67, 0xbf, 0x42, 0x6b, 0x82,
+	0xa1, 0x56, 0xa1, 0x90, 0xb8, 0xa7, 0xf5, 0x19, 0x1c, 0xf6, 0x51, 0x22, 0xed, 0xeb, 0x7b, 0x0e,
+	0x8d, 0xbe, 0xb0, 0x7c, 0xb6, 0xf7, 0x84, 0xbf, 0x40, 0x73, 0x82, 0x03, 0x75, 0x0d, 0xe7, 0x33,
+	0x38, 0x9c, 0xe0, 0x4c, 0x6b, 0xda, 0x7f, 0xc6, 0x00, 0xe5, 0xe2, 0x2f, 0xb4, 0xfb, 0x3a, 0xbb,
+	0x70, 0x34, 0x44, 0x1a, 0x2f, 0x92, 0x62, 0xdc, 0x48, 0x2d, 0xf4, 0x27, 0xde, 0x7b, 0x7e, 0x65,
+	0x1b, 0x07, 0x97, 0x82, 0xc2, 0x65, 0x8f, 0x27, 0x7c, 0x26, 0xa4, 0x28, 0x7a, 0xd3, 0x5b, 0x0a,
+	0x39, 0x2f, 0x86, 0xbf, 0xd6, 0x96, 0xbe, 0x7a, 0xfa, 0xc7, 0x00, 0x45, 0xa1, 0xce, 0xb5, 0x21,
+	0x76, 0x58, 0xba, 0xb2, 0xaf, 0x9d, 0x9e, 0x27, 0x70, 0xe0, 0xfa, 0xb2, 0x87, 0xa9, 0x0b, 0xad,
+	0x69, 0x32, 0xe7, 0x84, 0x2f, 0xa5, 0xbe, 0xb4, 0xdd, 0x54, 0xbe, 0x63, 0x77, 0xab, 0xcb, 0xca,
+	0x62, 0xb9, 0xb8, 0x93, 0x31, 0x81, 0x1f, 0x37, 0x18, 0x23, 0x15, 0x1a, 0x8c, 0x51, 0x11, 0x97,
+	0xf2, 0x03, 0xab, 0xd5, 0x68, 0x43, 0xfc, 0x3c, 0xf3, 0x77, 0x68, 0x04, 0xa8, 0xe6, 0xe7, 0x3c,
+	0x7c, 0x87, 0x34, 0x4e, 0xa9, 0x9e, 0xd5, 0x5a, 0xd8, 0x49, 0x18, 0x40, 0xb3, 0xc8, 0xea, 0x3c,
+	0xee, 0x69, 0xb5, 0x10, 0x11, 0x3b, 0xab, 0x21, 0x5c, 0xdc, 0x66, 0xcd, 0xdd, 0x89, 0x09, 0xe0,
+	0xa8, 0xaf, 0x2f, 0x95, 0xd4, 0x7c, 0x3e, 0x56, 0xe9, 0x28, 0xe6, 0x11, 0xb2, 0x07, 0xd5, 0x2e,
+	0xe6, 0xc1, 0x72, 0xd0, 0x04, 0xff, 0x4d, 0xd1, 0x92, 0x77, 0xb6, 0x65, 0xcc, 0x04, 0x6d, 0xa2,
+	0x95, 0x45, 0xf6, 0x1a, 0x8e, 0xb3, 0xdd, 0xe5, 0x78, 0xee, 0x04, 0xf0, 0xb6, 0x3a, 0xbe, 0x82,
+	0x36, 0x86, 0x93, 0xce, 0x4c, 0x9b, 0x35, 0x6f, 0x9a, 0x44, 0x86, 0xcf, 0xf1, 0xfa, 0xc0, 0x47,
+	0x70, 0xb8, 0x91, 0x9e, 0x65, 0x50, 0x9e, 0x62, 0xa3, 0xbe, 0x77, 0x5c, 0x1a, 0xaf, 0xe4, 0x3f,
+	0xe1, 0xa8, 0x13, 0x92, 0x58, 0x71, 0xc2, 0x75, 0x89, 0xae, 0x3d, 0xf7, 0x08, 0x9a, 0x3d, 0x1d,
+	0xc7, 0x82, 0x6e, 0x8e, 0x1a, 0x43, 0xa3, 0xec, 0x4a, 0xd9, 0xb7, 0xea, 0x66, 0xdc, 0xec, 0xdb,
+	0x1b, 0xb4, 0x96, 0x47, 0xe8, 0xfd, 0x50, 0x12, 0x2b, 0xea, 0x83, 0xef, 0xfe, 0xfb, 0xf6, 0x1b,
+	0xf6, 0x37, 0x9c, 0x0e, 0x91, 0x2a, 0x82, 0xeb, 0xdd, 0x4d, 0xc9, 0x53, 0xb8, 0xd3, 0xe3, 0x2a,
+	0x44, 0x59, 0xd1, 0x6e, 0x03, 0x5b, 0x76, 0xc6, 0xed, 0x8c, 0xec, 0x0f, 0x71, 0x63, 0x6c, 0x00,
+	0xc7, 0x13, 0x5c, 0xa1, 0xa1, 0xdb, 0x84, 0xbe, 0x80, 0x46, 0x40, 0xdc, 0xd0, 0x38, 0x0e, 0x45,
+	0x76, 0x60, 0xb3, 0xd3, 0x2a, 0x70, 0xfc, 0xa6, 0x37, 0xca, 0xe2, 0x1e, 0xf3, 0xb3, 0x7b, 0xda,
+	0xcf, 0x7e, 0xaf, 0x5b, 0xfd, 0x07, 0x34, 0x02, 0x11, 0xa7, 0x92, 0x13, 0x76, 0x24, 0x37, 0x71,
+	0x3d, 0x9b, 0x8a, 0x78, 0x95, 0x8d, 0xdb, 0xd6, 0xe3, 0x04, 0x0d, 0xcf, 0xee, 0xe6, 0x8c, 0x97,
+	0x27, 0x92, 0x26, 0x89, 0x41, 0x6b, 0x07, 0xd9, 0x8d, 0xcf, 0x98, 0x9f, 0xdf, 0xfc, 0x7e, 0xfe,
+	0xf5, 0x52, 0x48, 0x42, 0xb3, 0xf3, 0xb8, 0xf8, 0x0d, 0x5a, 0x53, 0x75, 0x7d, 0xfb, 0x2b, 0x38,
+	0x18, 0x22, 0x0d, 0xde, 0xd3, 0x5b, 0x2e, 0x53, 0x64, 0xf7, 0xab, 0xab, 0xd8, 0x90, 0xca, 0x35,
+	0xdc, 0xf5, 0xd7, 0x8f, 0x21, 0x7f, 0x82, 0x94, 0x1a, 0x95, 0xcb, 0x96, 0x0d, 0xe1, 0x20, 0xd8,
+	0x4d, 0x0a, 0x3e, 0x25, 0xed, 0x4a, 0x69, 0x0a, 0xcd, 0x21, 0x52, 0x20, 0x54, 0x24, 0xb1, 0x64,
+	0x5d, 0xcd, 0x59, 0xc4, 0x87, 0x58, 0xb0, 0xca, 0xbf, 0xe5, 0xcf, 0x9f, 0x19, 0xe1, 0x3a, 0x36,
+	0xcd, 0xae, 0xe6, 0x2f, 0x60, 0x83, 0x2f, 0x62, 0x83, 0x1a, 0xb6, 0x4b, 0xf0, 0x50, 0x9b, 0xc8,
+	0xd7, 0x09, 0xaa, 0x50, 0x9b, 0xb9, 0xef, 0x9e, 0x7b, 0xb5, 0x77, 0x6c, 0xf7, 0xe4, 0x6d, 0x1e,
+	0xaf, 0x3e, 0xe0, 0xfe, 0x79, 0x1e, 0x09, 0x5a, 0xa6, 0xb3, 0x6c, 0x5b, 0xb4, 0x4b, 0x82, 0x7b,
+	0x30, 0x3e, 0x2a, 0x9f, 0x8f, 0x4f, 0xdb, 0x91, 0xae, 0xbf, 0x96, 0x67, 0xdf, 0xe7, 0xea, 0x93,
+	0x8f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x0a, 0x51, 0x44, 0xf1, 0x55, 0x0b, 0x00, 0x00,
 }
 
 // Reference imports to suppress errors if they are not otherwise used.
@@ -106,7 +106,7 @@
 type AdapterServiceClient interface {
 	// GetHealthStatus is used by an AdapterService client to verify connectivity
 	// to the gRPC server hosting the AdapterService 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)
 	// Device
 	AdoptDevice(ctx context.Context, in *voltha.Device, opts ...grpc.CallOption) (*empty.Empty, error)
 	ReconcileDevice(ctx context.Context, in *voltha.Device, opts ...grpc.CallOption) (*empty.Empty, error)
@@ -161,7 +161,7 @@
 	return &adapterServiceClient{cc}
 }
 
-func (c *adapterServiceClient) GetHealthStatus(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*health.HealthStatus, error) {
+func (c *adapterServiceClient) GetHealthStatus(ctx context.Context, in *common.Connection, opts ...grpc.CallOption) (*health.HealthStatus, error) {
 	out := new(health.HealthStatus)
 	err := c.cc.Invoke(ctx, "/adapter_service.AdapterService/GetHealthStatus", in, out, opts...)
 	if err != nil {
@@ -485,7 +485,7 @@
 type AdapterServiceServer interface {
 	// GetHealthStatus is used by an AdapterService client to verify connectivity
 	// to the gRPC server hosting the AdapterService service
-	GetHealthStatus(context.Context, *empty.Empty) (*health.HealthStatus, error)
+	GetHealthStatus(context.Context, *common.Connection) (*health.HealthStatus, error)
 	// Device
 	AdoptDevice(context.Context, *voltha.Device) (*empty.Empty, error)
 	ReconcileDevice(context.Context, *voltha.Device) (*empty.Empty, error)
@@ -536,7 +536,7 @@
 type UnimplementedAdapterServiceServer struct {
 }
 
-func (*UnimplementedAdapterServiceServer) GetHealthStatus(ctx context.Context, req *empty.Empty) (*health.HealthStatus, error) {
+func (*UnimplementedAdapterServiceServer) GetHealthStatus(ctx context.Context, req *common.Connection) (*health.HealthStatus, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method GetHealthStatus not implemented")
 }
 func (*UnimplementedAdapterServiceServer) AdoptDevice(ctx context.Context, req *voltha.Device) (*empty.Empty, error) {
@@ -647,7 +647,7 @@
 }
 
 func _AdapterService_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
 	}
@@ -659,7 +659,7 @@
 		FullMethod: "/adapter_service.AdapterService/GetHealthStatus",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(AdapterServiceServer).GetHealthStatus(ctx, req.(*empty.Empty))
+		return srv.(AdapterServiceServer).GetHealthStatus(ctx, req.(*common.Connection))
 	}
 	return interceptor(ctx, in, info, handler)
 }
diff --git a/go/common/common.pb.go b/go/common/common.pb.go
index 952a43c..87d3dca 100644
--- a/go/common/common.pb.go
+++ b/go/common/common.pb.go
@@ -80,7 +80,7 @@
 }
 
 func (AdminState_Types) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_c2e3fd231961e826, []int{2, 0}
+	return fileDescriptor_c2e3fd231961e826, []int{3, 0}
 }
 
 // Operational Status
@@ -132,7 +132,7 @@
 }
 
 func (OperStatus_Types) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_c2e3fd231961e826, []int{3, 0}
+	return fileDescriptor_c2e3fd231961e826, []int{4, 0}
 }
 
 // Connectivity Status
@@ -164,7 +164,7 @@
 }
 
 func (ConnectStatus_Types) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_c2e3fd231961e826, []int{4, 0}
+	return fileDescriptor_c2e3fd231961e826, []int{5, 0}
 }
 
 type OperationResp_OperationReturnCode int32
@@ -195,7 +195,7 @@
 }
 
 func (OperationResp_OperationReturnCode) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_c2e3fd231961e826, []int{5, 0}
+	return fileDescriptor_c2e3fd231961e826, []int{6, 0}
 }
 
 // Convey a resource identifier
@@ -278,6 +278,65 @@
 	return nil
 }
 
+type Connection struct {
+	// endpoint is the endpoint sending the request
+	Endpoint string `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty"`
+	// contextInfo represents additional contextual information
+	ContextInfo string `protobuf:"bytes,2,opt,name=contextInfo,proto3" json:"contextInfo,omitempty"`
+	// keep_alive_interval is used to indicate to the remote endpoint how often it
+	// will get a keep alive notification
+	KeepAliveInterval    int64    `protobuf:"varint,3,opt,name=keep_alive_interval,json=keepAliveInterval,proto3" json:"keep_alive_interval,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *Connection) Reset()         { *m = Connection{} }
+func (m *Connection) String() string { return proto.CompactTextString(m) }
+func (*Connection) ProtoMessage()    {}
+func (*Connection) Descriptor() ([]byte, []int) {
+	return fileDescriptor_c2e3fd231961e826, []int{2}
+}
+
+func (m *Connection) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_Connection.Unmarshal(m, b)
+}
+func (m *Connection) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_Connection.Marshal(b, m, deterministic)
+}
+func (m *Connection) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_Connection.Merge(m, src)
+}
+func (m *Connection) XXX_Size() int {
+	return xxx_messageInfo_Connection.Size(m)
+}
+func (m *Connection) XXX_DiscardUnknown() {
+	xxx_messageInfo_Connection.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Connection proto.InternalMessageInfo
+
+func (m *Connection) GetEndpoint() string {
+	if m != nil {
+		return m.Endpoint
+	}
+	return ""
+}
+
+func (m *Connection) GetContextInfo() string {
+	if m != nil {
+		return m.ContextInfo
+	}
+	return ""
+}
+
+func (m *Connection) GetKeepAliveInterval() int64 {
+	if m != nil {
+		return m.KeepAliveInterval
+	}
+	return 0
+}
+
 type AdminState struct {
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
@@ -288,7 +347,7 @@
 func (m *AdminState) String() string { return proto.CompactTextString(m) }
 func (*AdminState) ProtoMessage()    {}
 func (*AdminState) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c2e3fd231961e826, []int{2}
+	return fileDescriptor_c2e3fd231961e826, []int{3}
 }
 
 func (m *AdminState) XXX_Unmarshal(b []byte) error {
@@ -319,7 +378,7 @@
 func (m *OperStatus) String() string { return proto.CompactTextString(m) }
 func (*OperStatus) ProtoMessage()    {}
 func (*OperStatus) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c2e3fd231961e826, []int{3}
+	return fileDescriptor_c2e3fd231961e826, []int{4}
 }
 
 func (m *OperStatus) XXX_Unmarshal(b []byte) error {
@@ -350,7 +409,7 @@
 func (m *ConnectStatus) String() string { return proto.CompactTextString(m) }
 func (*ConnectStatus) ProtoMessage()    {}
 func (*ConnectStatus) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c2e3fd231961e826, []int{4}
+	return fileDescriptor_c2e3fd231961e826, []int{5}
 }
 
 func (m *ConnectStatus) XXX_Unmarshal(b []byte) error {
@@ -385,7 +444,7 @@
 func (m *OperationResp) String() string { return proto.CompactTextString(m) }
 func (*OperationResp) ProtoMessage()    {}
 func (*OperationResp) Descriptor() ([]byte, []int) {
-	return fileDescriptor_c2e3fd231961e826, []int{5}
+	return fileDescriptor_c2e3fd231961e826, []int{6}
 }
 
 func (m *OperationResp) XXX_Unmarshal(b []byte) error {
@@ -428,6 +487,7 @@
 	proto.RegisterEnum("common.OperationResp_OperationReturnCode", OperationResp_OperationReturnCode_name, OperationResp_OperationReturnCode_value)
 	proto.RegisterType((*ID)(nil), "common.ID")
 	proto.RegisterType((*IDs)(nil), "common.IDs")
+	proto.RegisterType((*Connection)(nil), "common.Connection")
 	proto.RegisterType((*AdminState)(nil), "common.AdminState")
 	proto.RegisterType((*OperStatus)(nil), "common.OperStatus")
 	proto.RegisterType((*ConnectStatus)(nil), "common.ConnectStatus")
@@ -437,37 +497,41 @@
 func init() { proto.RegisterFile("voltha_protos/common.proto", fileDescriptor_c2e3fd231961e826) }
 
 var fileDescriptor_c2e3fd231961e826 = []byte{
-	// 506 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x52, 0xcd, 0x6e, 0xda, 0x30,
-	0x1c, 0x6f, 0x42, 0x4b, 0xd7, 0x3f, 0x25, 0x64, 0xee, 0x3a, 0xb1, 0x69, 0x07, 0x94, 0x4b, 0xbb,
-	0x49, 0x03, 0xa9, 0xdb, 0x8e, 0x3b, 0xa4, 0x89, 0xc7, 0xac, 0x52, 0x3b, 0x72, 0x12, 0x2a, 0xf5,
-	0x12, 0xa5, 0xc4, 0x85, 0x48, 0x25, 0x8e, 0x88, 0xa9, 0xc4, 0x75, 0x6f, 0xb0, 0x57, 0xdd, 0x13,
-	0x4c, 0x0e, 0x54, 0x14, 0x89, 0x9b, 0x7f, 0x1f, 0xfe, 0x7f, 0xc3, 0xc7, 0x67, 0xf9, 0xa4, 0x66,
-	0x69, 0x52, 0x2e, 0xa4, 0x92, 0xd5, 0x60, 0x22, 0xe7, 0x73, 0x59, 0xf4, 0x6b, 0x84, 0x9a, 0x6b,
-	0xe4, 0xbc, 0x03, 0x93, 0xf8, 0xc8, 0x02, 0x33, 0xcf, 0xba, 0x46, 0xcf, 0xb8, 0x3c, 0xe1, 0x66,
-	0x9e, 0x39, 0x17, 0xd0, 0x20, 0x7e, 0x85, 0x7a, 0x70, 0x94, 0x2b, 0x31, 0xaf, 0xba, 0x46, 0xaf,
-	0x71, 0xd9, 0xba, 0x82, 0xfe, 0x26, 0x04, 0xf1, 0xf9, 0x5a, 0x70, 0x66, 0x00, 0x6e, 0x36, 0xcf,
-	0x8b, 0x50, 0xa5, 0x4a, 0x38, 0xf7, 0x70, 0x14, 0xad, 0x4a, 0x51, 0xa1, 0x16, 0x1c, 0xc7, 0xf4,
-	0x86, 0xb2, 0x3b, 0x6a, 0x1f, 0x20, 0x04, 0x56, 0xc0, 0x71, 0xc0, 0xd9, 0x98, 0x84, 0x84, 0x51,
-	0xec, 0xdb, 0x86, 0x36, 0x60, 0xea, 0x5e, 0x8f, 0xb0, 0x6f, 0x9b, 0xe8, 0x14, 0xde, 0xf8, 0x24,
-	0x5c, 0xa3, 0x06, 0x3a, 0x87, 0xb7, 0x3e, 0xbb, 0xa3, 0x23, 0xe6, 0xfa, 0x84, 0x0e, 0x13, 0x72,
-	0xeb, 0x0e, 0xb1, 0x7d, 0xe8, 0xfc, 0x35, 0x00, 0x58, 0x29, 0x16, 0x3a, 0xd3, 0xb2, 0x72, 0xfe,
-	0x18, 0x7b, 0x73, 0x59, 0x00, 0x3e, 0x09, 0x3d, 0x36, 0xc6, 0xbc, 0xce, 0x63, 0x01, 0xb8, 0x5e,
-	0x44, 0xc6, 0x6e, 0x44, 0xe8, 0xd0, 0x36, 0xb5, 0x39, 0xc2, 0x61, 0x0d, 0x1a, 0x08, 0xa0, 0x59,
-	0x8b, 0xd8, 0x3e, 0xd4, 0xef, 0x5f, 0x2e, 0xd1, 0x15, 0x1c, 0xa1, 0x0e, 0xb4, 0x38, 0xf6, 0x18,
-	0xf5, 0xc8, 0x48, 0x1b, 0x9b, 0xe8, 0x3d, 0xa0, 0x57, 0x44, 0xb2, 0x31, 0x1e, 0x3b, 0x18, 0xda,
-	0x9e, 0x2c, 0x0a, 0x31, 0x51, 0x9b, 0xaa, 0xbe, 0xef, 0x2d, 0xaa, 0x03, 0xad, 0x98, 0x72, 0xec,
-	0x7a, 0xbf, 0x75, 0x8f, 0xb6, 0x81, 0xda, 0x70, 0xb2, 0x85, 0xa6, 0xf3, 0xcf, 0x80, 0xb6, 0x6e,
-	0x2d, 0x55, 0xb9, 0x2c, 0xb8, 0xa8, 0x4a, 0xf4, 0x13, 0x0e, 0x27, 0x32, 0x13, 0xf5, 0x46, 0xac,
-	0xab, 0xcf, 0x2f, 0x73, 0xdf, 0x31, 0xbd, 0x46, 0x6a, 0xb9, 0x28, 0x3c, 0x99, 0x09, 0x5e, 0x7f,
-	0x43, 0x17, 0xd0, 0x49, 0xb3, 0x2c, 0xd7, 0x5a, 0xfa, 0x94, 0xe4, 0xc5, 0xa3, 0xec, 0x9a, 0xf5,
-	0x6e, 0xad, 0x2d, 0x4d, 0x8a, 0x47, 0xe9, 0xac, 0xe0, 0x6c, 0x4f, 0x14, 0xbd, 0x02, 0x16, 0x60,
-	0xee, 0x46, 0x84, 0xd1, 0x24, 0x8c, 0x3d, 0x0f, 0x87, 0xa1, 0x7d, 0xb0, 0x4b, 0xeb, 0x21, 0xc4,
-	0x5c, 0x77, 0xf3, 0x01, 0xce, 0xb7, 0x74, 0x4c, 0xc3, 0x38, 0x08, 0x18, 0x8f, 0xea, 0xcd, 0xee,
-	0x48, 0x84, 0x26, 0x01, 0x67, 0x43, 0xae, 0x83, 0x35, 0xbe, 0x7c, 0x82, 0xd3, 0x48, 0x54, 0xea,
-	0x56, 0x66, 0xe2, 0x46, 0xac, 0x2a, 0x7d, 0x04, 0x69, 0x99, 0x27, 0x4a, 0x54, 0xca, 0x3e, 0xb8,
-	0xc6, 0x70, 0x26, 0x17, 0xd3, 0xbe, 0x2c, 0x45, 0x31, 0x91, 0x8b, 0xac, 0xbf, 0xbe, 0xe4, 0xfb,
-	0xfe, 0x34, 0x57, 0xb3, 0xe5, 0x83, 0x9e, 0xc7, 0xe0, 0x45, 0x1b, 0xac, 0xb5, 0xaf, 0x9b, 0x2b,
-	0x7f, 0xfe, 0x31, 0x98, 0xca, 0xcd, 0xad, 0x3f, 0x34, 0x6b, 0xf2, 0xdb, 0xff, 0x00, 0x00, 0x00,
-	0xff, 0xff, 0x6b, 0x71, 0x98, 0xbd, 0x0a, 0x03, 0x00, 0x00,
+	// 570 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x53, 0x5d, 0x4f, 0xdb, 0x30,
+	0x14, 0x25, 0x09, 0x14, 0xb8, 0x85, 0x12, 0xcc, 0x98, 0x3a, 0xb4, 0x87, 0x2a, 0x2f, 0xb0, 0x49,
+	0x6b, 0x25, 0xb6, 0x3d, 0xee, 0x21, 0x24, 0x5e, 0x67, 0x01, 0x4e, 0xe5, 0xa4, 0x20, 0xf1, 0x12,
+	0x85, 0xc6, 0x03, 0x6b, 0xad, 0x1d, 0x25, 0xa6, 0x1a, 0x7b, 0xdc, 0x3f, 0xd8, 0x5f, 0xdd, 0x2f,
+	0x98, 0x9c, 0x86, 0x15, 0xa4, 0xbe, 0xe5, 0x9c, 0x73, 0x73, 0xbf, 0x8e, 0x2f, 0x1c, 0xcd, 0xd5,
+	0x54, 0xdf, 0x67, 0x69, 0x51, 0x2a, 0xad, 0xaa, 0xc1, 0x44, 0xcd, 0x66, 0x4a, 0xf6, 0x6b, 0x84,
+	0x5a, 0x0b, 0xe4, 0xbd, 0x02, 0x9b, 0x84, 0xa8, 0x03, 0xb6, 0xc8, 0xbb, 0x56, 0xcf, 0x3a, 0xd9,
+	0x66, 0xb6, 0xc8, 0xbd, 0x63, 0x70, 0x48, 0x58, 0xa1, 0x1e, 0x6c, 0x08, 0xcd, 0x67, 0x55, 0xd7,
+	0xea, 0x39, 0x27, 0xed, 0x53, 0xe8, 0x37, 0x29, 0x48, 0xc8, 0x16, 0x82, 0xf7, 0x0b, 0x20, 0x50,
+	0x52, 0xf2, 0x89, 0x16, 0x4a, 0xa2, 0x23, 0xd8, 0xe2, 0x32, 0x2f, 0x94, 0x90, 0xba, 0x49, 0xf6,
+	0x1f, 0xa3, 0x1e, 0xb4, 0x27, 0x4a, 0x6a, 0xfe, 0x53, 0x13, 0xf9, 0x5d, 0x75, 0xed, 0x5a, 0x7e,
+	0x4e, 0xa1, 0x3e, 0x1c, 0xfc, 0xe0, 0xbc, 0x48, 0xb3, 0xa9, 0x98, 0xf3, 0x54, 0x48, 0xcd, 0xcb,
+	0x79, 0x36, 0xed, 0x3a, 0x3d, 0xeb, 0xc4, 0x61, 0xfb, 0x46, 0xf2, 0x8d, 0x42, 0x1a, 0xc1, 0xbb,
+	0x07, 0xf0, 0xf3, 0x99, 0x90, 0xb1, 0xce, 0x34, 0xf7, 0x6e, 0x60, 0x23, 0x79, 0x2c, 0x78, 0x85,
+	0xda, 0xb0, 0x39, 0xa6, 0xe7, 0x34, 0xba, 0xa6, 0xee, 0x1a, 0x42, 0xd0, 0x19, 0x31, 0x3c, 0x62,
+	0xd1, 0x15, 0x89, 0x49, 0x44, 0x71, 0xe8, 0x5a, 0x26, 0x00, 0x53, 0xff, 0xec, 0x02, 0x87, 0xae,
+	0x8d, 0x76, 0x60, 0x2b, 0x24, 0xf1, 0x02, 0x39, 0xe8, 0x10, 0xf6, 0xc3, 0xe8, 0x9a, 0x5e, 0x44,
+	0x7e, 0x48, 0xe8, 0x30, 0x25, 0x97, 0xfe, 0x10, 0xbb, 0xeb, 0xde, 0x1f, 0x0b, 0x20, 0x2a, 0x78,
+	0x69, 0x2a, 0x3d, 0x54, 0xde, 0x6f, 0x6b, 0x65, 0xad, 0x0e, 0x40, 0x48, 0xe2, 0x20, 0xba, 0xc2,
+	0xac, 0xae, 0xd3, 0x01, 0xf0, 0x83, 0x84, 0x5c, 0xf9, 0x09, 0xa1, 0x43, 0xd7, 0x36, 0xc1, 0x09,
+	0x8e, 0x6b, 0xe0, 0x20, 0x80, 0x56, 0x2d, 0x62, 0x77, 0xdd, 0x7c, 0x7f, 0xf5, 0x89, 0xe9, 0x60,
+	0x03, 0xed, 0x41, 0x9b, 0xe1, 0x20, 0xa2, 0x01, 0xb9, 0x30, 0x81, 0x2d, 0xf4, 0x1a, 0xd0, 0x33,
+	0x22, 0x6d, 0x02, 0x37, 0x3d, 0x0c, 0xbb, 0xcd, 0xe6, 0x9b, 0xae, 0x3e, 0xad, 0x6c, 0x6a, 0x0f,
+	0xda, 0x63, 0xca, 0xb0, 0x1f, 0x7c, 0x33, 0x33, 0xba, 0x16, 0xda, 0x85, 0xed, 0x25, 0xb4, 0xbd,
+	0xbf, 0x16, 0xec, 0x9a, 0xd1, 0x32, 0x63, 0x20, 0xe3, 0x55, 0x81, 0xbe, 0xc0, 0xfa, 0x44, 0xe5,
+	0xbc, 0x36, 0xb0, 0x73, 0xfa, 0xee, 0xc9, 0xf3, 0x17, 0x41, 0xcf, 0x91, 0x7e, 0x28, 0x65, 0xa0,
+	0x72, 0xce, 0xea, 0xdf, 0xd0, 0x31, 0xec, 0x65, 0x79, 0x2e, 0x8c, 0x96, 0x4d, 0x53, 0xb1, 0xf4,
+	0xba, 0xb3, 0xa4, 0x8d, 0xdd, 0xde, 0x23, 0x1c, 0xac, 0xc8, 0x62, 0x2c, 0x88, 0x46, 0x98, 0xf9,
+	0x09, 0x89, 0x68, 0x1a, 0x8f, 0x83, 0x00, 0xc7, 0xb1, 0xbb, 0xf6, 0x92, 0x36, 0x4b, 0x18, 0x33,
+	0x33, 0xcd, 0x1b, 0x38, 0x5c, 0xd2, 0x63, 0x1a, 0x8f, 0x47, 0xa3, 0x88, 0x25, 0xb5, 0xb3, 0x2f,
+	0x24, 0x42, 0xd3, 0x11, 0x8b, 0x86, 0xcc, 0x24, 0x73, 0xde, 0xbf, 0x85, 0x9d, 0x84, 0x57, 0xfa,
+	0x52, 0xe5, 0xfc, 0x9c, 0x3f, 0x56, 0xe6, 0x11, 0x64, 0x85, 0x48, 0x35, 0xaf, 0xb4, 0xbb, 0x76,
+	0x86, 0xe1, 0x40, 0x95, 0x77, 0x7d, 0x55, 0x70, 0x39, 0x51, 0x65, 0xde, 0x5f, 0x5c, 0xd1, 0x4d,
+	0xff, 0x4e, 0xe8, 0xfb, 0x87, 0x5b, 0xb3, 0x8f, 0xc1, 0x93, 0x36, 0x58, 0x68, 0x1f, 0x9a, 0x0b,
+	0x9b, 0x7f, 0x1e, 0xdc, 0xa9, 0xe6, 0xce, 0x6e, 0x5b, 0x35, 0xf9, 0xf1, 0x5f, 0x00, 0x00, 0x00,
+	0xff, 0xff, 0x62, 0x34, 0x9d, 0xbf, 0x86, 0x03, 0x00, 0x00,
 }
diff --git a/go/core_service/core_services.pb.go b/go/core_service/core_services.pb.go
index 41ab077..5816ad2 100644
--- a/go/core_service/core_services.pb.go
+++ b/go/core_service/core_services.pb.go
@@ -32,46 +32,46 @@
 func init() { proto.RegisterFile("voltha_protos/core_services.proto", fileDescriptor_979c43850713f141) }
 
 var fileDescriptor_979c43850713f141 = []byte{
-	// 612 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x55, 0xcd, 0x6f, 0xd3, 0x30,
-	0x14, 0xbf, 0x21, 0x78, 0xeb, 0xd6, 0xcd, 0xfb, 0x00, 0x65, 0x1a, 0x6c, 0x27, 0x2e, 0xe0, 0x48,
-	0x6c, 0x0c, 0x09, 0x24, 0x50, 0xd7, 0x40, 0x57, 0x69, 0x43, 0x55, 0x2b, 0x40, 0xe2, 0x32, 0xb9,
-	0xc9, 0x5b, 0x12, 0x2d, 0x8d, 0x2b, 0xdb, 0x2d, 0xf4, 0x8f, 0x47, 0x42, 0x89, 0xdd, 0xca, 0xce,
-	0x6a, 0xb1, 0x03, 0xd7, 0xf7, 0x7e, 0x1f, 0xef, 0xc3, 0x4f, 0x86, 0x93, 0x39, 0x2f, 0x54, 0xc6,
-	0x6e, 0xa6, 0x82, 0x2b, 0x2e, 0xc3, 0x98, 0x0b, 0xbc, 0x91, 0x28, 0xe6, 0x79, 0x8c, 0x92, 0xd6,
-	0x41, 0xd2, 0xb2, 0x83, 0xc1, 0x61, 0xca, 0x79, 0x5a, 0x60, 0x58, 0xe7, 0xc6, 0xb3, 0xdb, 0x10,
-	0x27, 0x53, 0xb5, 0xd0, 0xd0, 0xe0, 0x78, 0x8d, 0x1a, 0x4b, 0xd8, 0x54, 0xa1, 0x30, 0x88, 0xa0,
-	0x89, 0x98, 0x4c, 0x78, 0xb9, 0x3e, 0x97, 0x60, 0x65, 0xb8, 0x3e, 0x97, 0x21, 0x2b, 0x54, 0xa6,
-	0x73, 0x6f, 0xfe, 0x6c, 0xc0, 0x46, 0x97, 0x0b, 0x1c, 0xe9, 0x12, 0xc9, 0x27, 0x68, 0xf7, 0x50,
-	0x5d, 0xd6, 0x90, 0x91, 0x62, 0x6a, 0x26, 0xc9, 0x01, 0xd5, 0x65, 0xd3, 0x65, 0xd9, 0xf4, 0x73,
-	0x55, 0x76, 0xb0, 0x47, 0x8d, 0x92, 0x83, 0xbe, 0x82, 0xf6, 0x10, 0xd3, 0x5c, 0x2a, 0x14, 0x1d,
-	0x5d, 0x3d, 0x39, 0xa1, 0x4e, 0x33, 0x26, 0xac, 0x51, 0x82, 0xa9, 0x9c, 0x97, 0x81, 0xc7, 0x83,
-	0x9c, 0x43, 0x2b, 0xaa, 0x5b, 0xf9, 0x36, 0x4d, 0x98, 0x42, 0xb2, 0x45, 0x4d, 0x67, 0x3a, 0xea,
-	0xe5, 0x9d, 0xc2, 0xc6, 0x80, 0x0b, 0xd5, 0x15, 0xc8, 0x14, 0x26, 0xa4, 0xb5, 0xa4, 0x55, 0x41,
-	0x2f, 0xa9, 0x0f, 0xdb, 0x55, 0x5e, 0x56, 0x9d, 0x2c, 0x0d, 0x8f, 0xdc, 0xda, 0xab, 0x7c, 0x9d,
-	0xfe, 0x92, 0x17, 0x0a, 0x85, 0x57, 0xea, 0x0c, 0xb6, 0x22, 0x2c, 0x50, 0x61, 0xa7, 0x28, 0x6a,
-	0x4d, 0x02, 0xd4, 0xec, 0xab, 0x1f, 0x79, 0x59, 0xef, 0x60, 0xb3, 0x87, 0x4a, 0xb7, 0x56, 0xb1,
-	0xc8, 0xb3, 0xfb, 0xee, 0xc6, 0xd8, 0xe9, 0x88, 0xbc, 0x82, 0xf6, 0x55, 0x2e, 0x2d, 0xa6, 0xeb,
-	0xb7, 0x69, 0x83, 0xab, 0x15, 0xed, 0x68, 0xa4, 0xdd, 0xe8, 0x0b, 0xd7, 0xca, 0x02, 0xfc, 0xa3,
-	0xd5, 0x0e, 0xec, 0x19, 0xdf, 0xeb, 0x2e, 0x2f, 0x6f, 0xf3, 0xd4, 0x08, 0xee, 0xac, 0x4c, 0x27,
-	0x3a, 0x2e, 0xbd, 0x12, 0x11, 0xec, 0x76, 0xb3, 0xbc, 0x48, 0xb4, 0x4e, 0x84, 0x0a, 0xe3, 0x6a,
-	0x6b, 0x47, 0xeb, 0x4a, 0x8a, 0x72, 0x19, 0xf3, 0x39, 0x8a, 0x45, 0xd0, 0x78, 0x0b, 0xe4, 0x1c,
-	0xb6, 0x2d, 0x15, 0x79, 0xc5, 0xa5, 0x7a, 0xd0, 0xd4, 0xdf, 0xc3, 0x9e, 0xcd, 0x5b, 0xd9, 0x3f,
-	0x84, 0xfb, 0x12, 0x9e, 0xac, 0x36, 0xe6, 0x10, 0x9a, 0xc5, 0x75, 0x60, 0xab, 0x87, 0xca, 0xf2,
-	0x69, 0x0e, 0xdc, 0x4a, 0x99, 0x81, 0x37, 0x25, 0x68, 0x7d, 0x9a, 0x76, 0xa9, 0x8e, 0x63, 0xdb,
-	0x85, 0x4b, 0xf2, 0x11, 0x5a, 0x23, 0x2c, 0x93, 0x01, 0x8b, 0xef, 0x50, 0xf5, 0x4b, 0x72, 0xd0,
-	0x78, 0x4c, 0x26, 0xee, 0xed, 0xed, 0x12, 0x88, 0x96, 0x1a, 0x22, 0x93, 0xbc, 0x34, 0x6b, 0x0d,
-	0xd6, 0x2d, 0x45, 0x23, 0xbc, 0x4a, 0x17, 0xd0, 0x5e, 0x1d, 0x8e, 0x91, 0x79, 0xea, 0xb9, 0x2b,
-	0xaf, 0xc6, 0x07, 0xd8, 0x1f, 0x62, 0xcc, 0xcb, 0x38, 0x2f, 0xd0, 0x3b, 0x03, 0x1f, 0xf9, 0x1a,
-	0x9e, 0xbb, 0xa3, 0xfb, 0x91, 0xab, 0x6c, 0x20, 0xf8, 0xef, 0x45, 0x27, 0x49, 0x04, 0x4a, 0x49,
-	0x0e, 0xdd, 0xe9, 0x51, 0x3b, 0x79, 0x6f, 0x13, 0xa7, 0xf0, 0xb8, 0x87, 0x4a, 0x1f, 0x93, 0xff,
-	0x44, 0x1b, 0x57, 0xf7, 0xd5, 0x3c, 0x72, 0x81, 0xe5, 0x7f, 0xb9, 0xbb, 0x08, 0x76, 0xb5, 0x44,
-	0x7f, 0xc2, 0x52, 0x8c, 0xf8, 0xaf, 0xb2, 0xe0, 0x2c, 0x21, 0xfb, 0x4b, 0x57, 0x27, 0xec, 0x53,
-	0xb9, 0xb8, 0x83, 0x63, 0x2e, 0x52, 0xca, 0xa7, 0x58, 0xc6, 0x5c, 0x24, 0x54, 0x7f, 0x15, 0xd4,
-	0xfe, 0xb6, 0x2e, 0x76, 0xbe, 0xd7, 0x41, 0xeb, 0x9b, 0xf8, 0x79, 0x96, 0xe6, 0x2a, 0x9b, 0x8d,
-	0xab, 0xd1, 0x87, 0x4b, 0x6e, 0xa8, 0xb9, 0xaf, 0xcd, 0x37, 0x33, 0x7f, 0x1b, 0xa6, 0xdc, 0xf9,
-	0x14, 0xc7, 0x8f, 0xea, 0xd4, 0xe9, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x1b, 0x1f, 0x15, 0x0e,
-	0x39, 0x07, 0x00, 0x00,
+	// 619 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x55, 0xdf, 0x4f, 0x14, 0x31,
+	0x10, 0x7e, 0x33, 0x3a, 0x1c, 0x1c, 0x94, 0x1f, 0x9a, 0x25, 0x28, 0x3c, 0xf9, 0xa2, 0xdd, 0x44,
+	0x10, 0x13, 0x49, 0x4c, 0x8e, 0x5b, 0x3d, 0x2e, 0x01, 0x43, 0x20, 0x6a, 0xe2, 0x0b, 0x29, 0xbb,
+	0xc3, 0xee, 0x86, 0xbd, 0xf6, 0xd2, 0x96, 0x53, 0xfe, 0x74, 0xdf, 0xcc, 0x6e, 0xbb, 0x97, 0x76,
+	0xb9, 0x46, 0x1e, 0x7c, 0x9d, 0x99, 0xef, 0xfb, 0x66, 0xbe, 0xe9, 0xa4, 0xb0, 0x37, 0x13, 0x95,
+	0x2e, 0xd8, 0xd5, 0x54, 0x0a, 0x2d, 0x54, 0x9c, 0x0a, 0x89, 0x57, 0x0a, 0xe5, 0xac, 0x4c, 0x51,
+	0xd1, 0x26, 0x48, 0x7a, 0x6e, 0x30, 0xda, 0xce, 0x85, 0xc8, 0x2b, 0x8c, 0x9b, 0xdc, 0xf5, 0xdd,
+	0x4d, 0x8c, 0x93, 0xa9, 0xbe, 0x37, 0xa5, 0xd1, 0xee, 0x02, 0x36, 0x96, 0xb1, 0xa9, 0x46, 0x69,
+	0x2b, 0xa2, 0x6e, 0xc5, 0x64, 0x22, 0xf8, 0xe2, 0x5c, 0x86, 0xb5, 0xe0, 0xe2, 0x5c, 0x81, 0xac,
+	0xd2, 0x85, 0xc9, 0xbd, 0xfb, 0xb3, 0x04, 0x4b, 0x43, 0x21, 0xf1, 0xd2, 0xb4, 0x48, 0x8e, 0xa0,
+	0x3f, 0x42, 0x7d, 0xd2, 0x94, 0x5c, 0x6a, 0xa6, 0xef, 0x14, 0x21, 0xd4, 0x2a, 0x0d, 0x05, 0xe7,
+	0x98, 0xea, 0x52, 0xf0, 0x68, 0x83, 0x5a, 0x16, 0xaf, 0xf2, 0x14, 0xfa, 0x17, 0x98, 0x97, 0x4a,
+	0xa3, 0x1c, 0x98, 0xce, 0xc9, 0x1e, 0xf5, 0x06, 0xb1, 0x61, 0x53, 0x25, 0x59, 0xc3, 0xb5, 0x45,
+	0x8d, 0x2d, 0xb4, 0xb5, 0x85, 0x7e, 0xae, 0x6d, 0x21, 0x87, 0xd0, 0x4b, 0x9a, 0x31, 0xbe, 0x4d,
+	0x33, 0xa6, 0x91, 0xac, 0x50, 0x3b, 0x95, 0x89, 0x06, 0x71, 0xfb, 0xb0, 0x74, 0x2e, 0xa4, 0x1e,
+	0x4a, 0x64, 0x1a, 0x33, 0xd2, 0x6b, 0x61, 0x75, 0x30, 0x08, 0x1a, 0xc3, 0x6a, 0x9d, 0x57, 0xf5,
+	0x24, 0xad, 0xe0, 0x8e, 0xdf, 0x7b, 0x9d, 0x6f, 0xd2, 0x5f, 0xca, 0x4a, 0xa3, 0x0c, 0x52, 0x1d,
+	0xc0, 0x4a, 0x82, 0x15, 0x6a, 0x1c, 0x54, 0x55, 0xc3, 0x49, 0xa0, 0x75, 0x70, 0x9c, 0x04, 0x51,
+	0x1f, 0x60, 0x79, 0x84, 0xda, 0x8c, 0x56, 0xa3, 0xc8, 0x8b, 0x87, 0xea, 0x56, 0xd8, 0x9b, 0x88,
+	0xbc, 0x81, 0xfe, 0x69, 0xa9, 0x1c, 0xa4, 0xaf, 0xb7, 0xec, 0x16, 0xd7, 0x2b, 0x5a, 0x33, 0x95,
+	0xee, 0xa0, 0xaf, 0x7c, 0x29, 0xa7, 0xe0, 0x1f, 0xa3, 0x0e, 0x60, 0xc3, 0xea, 0x9e, 0x0d, 0x05,
+	0xbf, 0x29, 0x73, 0x4b, 0xb8, 0x36, 0x17, 0x9d, 0x98, 0xb8, 0x0a, 0x52, 0x24, 0xb0, 0x3e, 0x2c,
+	0xca, 0x2a, 0x33, 0x3c, 0x09, 0x6a, 0x4c, 0xeb, 0xad, 0xed, 0x2c, 0x6a, 0x29, 0x29, 0x55, 0x2a,
+	0x66, 0x28, 0xef, 0xa3, 0xce, 0x5b, 0x20, 0x87, 0xb0, 0xea, 0xb0, 0xa8, 0x53, 0xa1, 0xf4, 0xa3,
+	0x5c, 0xff, 0x08, 0x1b, 0x2e, 0x6e, 0x2e, 0xff, 0x18, 0xec, 0x6b, 0x78, 0x36, 0xdf, 0x98, 0x07,
+	0xe8, 0x36, 0x37, 0x80, 0x95, 0x11, 0x6a, 0x47, 0xa7, 0x6b, 0xb8, 0x93, 0xb2, 0x86, 0x77, 0x29,
+	0x68, 0x73, 0x96, 0x6e, 0xab, 0x9e, 0x62, 0xdf, 0x2f, 0x57, 0xe4, 0x13, 0xf4, 0x2e, 0x91, 0x67,
+	0xe7, 0x2c, 0xbd, 0x45, 0x3d, 0xe6, 0x64, 0xab, 0xf3, 0x98, 0x6c, 0x3c, 0x38, 0xdb, 0x09, 0x10,
+	0x43, 0x75, 0x81, 0x4c, 0x09, 0x6e, 0xd7, 0x1a, 0x2d, 0x5a, 0x8a, 0xa9, 0x08, 0x32, 0x1d, 0x43,
+	0x7f, 0x7e, 0x38, 0x96, 0xe6, 0x79, 0xe0, 0xae, 0x82, 0x1c, 0x47, 0xb0, 0x79, 0x81, 0xa9, 0xe0,
+	0x69, 0x59, 0x61, 0xd0, 0x83, 0x10, 0xf8, 0x0c, 0x5e, 0xfa, 0xd6, 0xfd, 0x28, 0x75, 0x71, 0x2e,
+	0xc5, 0xef, 0xfb, 0x41, 0x96, 0x49, 0x54, 0x8a, 0x6c, 0xfb, 0xee, 0x51, 0x37, 0xf9, 0x60, 0x13,
+	0xfb, 0xf0, 0x74, 0x84, 0xda, 0x1c, 0x53, 0xf8, 0x44, 0x3b, 0x57, 0xf7, 0xd5, 0x3e, 0x72, 0x89,
+	0xfc, 0xbf, 0xdc, 0x5d, 0x02, 0xeb, 0x86, 0x62, 0x3c, 0x61, 0x39, 0x26, 0xe2, 0x17, 0xaf, 0x04,
+	0xcb, 0xc8, 0x66, 0xab, 0xea, 0x85, 0x43, 0x2c, 0xc7, 0xb7, 0xb0, 0x2b, 0x64, 0x4e, 0xc5, 0x14,
+	0x79, 0x2a, 0x64, 0x46, 0xcd, 0x37, 0x41, 0xdd, 0x2f, 0xeb, 0x78, 0xed, 0x7b, 0x13, 0x74, 0xbe,
+	0x88, 0x9f, 0x07, 0x79, 0xa9, 0x8b, 0xbb, 0xeb, 0xda, 0xfa, 0xb8, 0xc5, 0xc6, 0x06, 0xfb, 0xd6,
+	0x7e, 0x31, 0xb3, 0xf7, 0x71, 0x2e, 0xbc, 0x0f, 0xf1, 0xfa, 0x49, 0x93, 0xda, 0xff, 0x1b, 0x00,
+	0x00, 0xff, 0xff, 0xe7, 0xe2, 0x9c, 0x32, 0x35, 0x07, 0x00, 0x00,
 }
 
 // Reference imports to suppress errors if they are not otherwise used.
@@ -87,7 +87,7 @@
 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
 type CoreServiceClient interface {
 	//	 in coreProxy interface
-	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)
 	RegisterAdapter(ctx context.Context, in *core_adapter.AdapterRegistration, opts ...grpc.CallOption) (*empty.Empty, error)
 	DeviceUpdate(ctx context.Context, in *voltha.Device, opts ...grpc.CallOption) (*empty.Empty, error)
 	PortCreated(ctx context.Context, in *voltha.Port, opts ...grpc.CallOption) (*empty.Empty, error)
@@ -122,7 +122,7 @@
 	return &coreServiceClient{cc}
 }
 
-func (c *coreServiceClient) GetHealthStatus(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*health.HealthStatus, error) {
+func (c *coreServiceClient) GetHealthStatus(ctx context.Context, in *common.Connection, opts ...grpc.CallOption) (*health.HealthStatus, error) {
 	out := new(health.HealthStatus)
 	err := c.cc.Invoke(ctx, "/core_service.CoreService/GetHealthStatus", in, out, opts...)
 	if err != nil {
@@ -341,7 +341,7 @@
 // CoreServiceServer is the server API for CoreService service.
 type CoreServiceServer interface {
 	//	 in coreProxy interface
-	GetHealthStatus(context.Context, *empty.Empty) (*health.HealthStatus, error)
+	GetHealthStatus(context.Context, *common.Connection) (*health.HealthStatus, error)
 	RegisterAdapter(context.Context, *core_adapter.AdapterRegistration) (*empty.Empty, error)
 	DeviceUpdate(context.Context, *voltha.Device) (*empty.Empty, error)
 	PortCreated(context.Context, *voltha.Port) (*empty.Empty, error)
@@ -372,7 +372,7 @@
 type UnimplementedCoreServiceServer struct {
 }
 
-func (*UnimplementedCoreServiceServer) GetHealthStatus(ctx context.Context, req *empty.Empty) (*health.HealthStatus, error) {
+func (*UnimplementedCoreServiceServer) GetHealthStatus(ctx context.Context, req *common.Connection) (*health.HealthStatus, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method GetHealthStatus not implemented")
 }
 func (*UnimplementedCoreServiceServer) RegisterAdapter(ctx context.Context, req *core_adapter.AdapterRegistration) (*empty.Empty, error) {
@@ -450,7 +450,7 @@
 }
 
 func _CoreService_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
 	}
@@ -462,7 +462,7 @@
 		FullMethod: "/core_service.CoreService/GetHealthStatus",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(CoreServiceServer).GetHealthStatus(ctx, req.(*empty.Empty))
+		return srv.(CoreServiceServer).GetHealthStatus(ctx, req.(*common.Connection))
 	}
 	return interceptor(ctx, in, info, handler)
 }
diff --git a/go/olt_inter_adapter_service/olt_inter_adapter_service.pb.go b/go/olt_inter_adapter_service/olt_inter_adapter_service.pb.go
index 569dfda..d958a65 100644
--- a/go/olt_inter_adapter_service/olt_inter_adapter_service.pb.go
+++ b/go/olt_inter_adapter_service/olt_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,26 +33,27 @@
 }
 
 var fileDescriptor_3ddb40a5aae0f6e1 = []byte{
-	// 299 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x92, 0xbd, 0x4e, 0xc3, 0x30,
-	0x10, 0xc7, 0x05, 0x03, 0x83, 0x17, 0x90, 0x85, 0x2a, 0x61, 0x58, 0x18, 0x19, 0x6a, 0x23, 0x10,
-	0x33, 0x6a, 0x05, 0x94, 0x0e, 0xa8, 0x15, 0x45, 0x0c, 0x2c, 0x95, 0xeb, 0x5e, 0x9d, 0x48, 0x6e,
-	0x2e, 0xd8, 0x97, 0x40, 0xdf, 0x82, 0x91, 0xc7, 0x45, 0x89, 0x93, 0x21, 0xa8, 0x99, 0x3c, 0xdc,
-	0xef, 0xff, 0xa1, 0x3b, 0xb3, 0x61, 0x89, 0x8e, 0x12, 0xbd, 0xcc, 0x3d, 0x12, 0x06, 0x85, 0x8e,
-	0x96, 0x69, 0x46, 0xe0, 0x97, 0x7a, 0xad, 0xf3, 0xea, 0x0d, 0xe0, 0xcb, 0xd4, 0x80, 0xac, 0x01,
-	0x7e, 0xd6, 0x0b, 0x88, 0x73, 0x8b, 0x68, 0x1d, 0xa8, 0x1a, 0x5c, 0x15, 0x1b, 0x05, 0xdb, 0x9c,
-	0x76, 0x51, 0x27, 0x2e, 0xbb, 0x31, 0x1d, 0x87, 0x06, 0x11, 0x5d, 0x24, 0x01, 0xed, 0x28, 0x89,
-	0xb3, 0x9b, 0xdf, 0x43, 0x36, 0x98, 0x39, 0x9a, 0x56, 0xb2, 0x51, 0x54, 0x2d, 0x62, 0x2c, 0xbf,
-	0x67, 0xc7, 0x13, 0xa0, 0xe7, 0x9a, 0x5e, 0x90, 0xa6, 0x22, 0xf0, 0x81, 0x8c, 0x55, 0x64, 0x5b,
-	0x45, 0x3e, 0x56, 0x55, 0xc4, 0xa9, 0x6c, 0x4c, 0x3b, 0xf4, 0x13, 0x3b, 0x99, 0x7b, 0xfc, 0xde,
-	0xcd, 0xb6, 0x26, 0x7d, 0x85, 0xcf, 0x02, 0x02, 0x71, 0x21, 0xbb, 0x0d, 0xab, 0xd9, 0x0b, 0x84,
-	0xa0, 0x2d, 0x88, 0x1e, 0x77, 0x5e, 0xb0, 0xc1, 0x04, 0xe8, 0x0d, 0x4c, 0x32, 0xf7, 0xb8, 0x49,
-	0x1d, 0x4c, 0xb3, 0x40, 0x3a, 0x33, 0xc0, 0xaf, 0xff, 0xb9, 0xed, 0x61, 0x9a, 0xe0, 0x36, 0xe3,
-	0xaa, 0x5f, 0xf1, 0x80, 0x5f, 0x99, 0x43, 0xbd, 0x6e, 0xd0, 0xf1, 0xcf, 0x01, 0x1b, 0xa2, 0xb7,
-	0x12, 0x73, 0xc8, 0x0c, 0xfa, 0xb5, 0x8c, 0x6b, 0x94, 0xbd, 0x87, 0x1a, 0x5f, 0xbc, 0xd7, 0xc4,
-	0xfe, 0x7d, 0x7e, 0x8c, 0x6c, 0x4a, 0x49, 0xb1, 0x92, 0x06, 0xb7, 0xaa, 0xf5, 0x54, 0xd1, 0x73,
-	0xd8, 0x9c, 0xa6, 0xbc, 0x53, 0x16, 0xfb, 0xbf, 0xca, 0xea, 0xa8, 0xe6, 0x6e, 0xff, 0x02, 0x00,
-	0x00, 0xff, 0xff, 0x96, 0x1f, 0x38, 0xd3, 0x5c, 0x02, 0x00, 0x00,
+	// 316 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x92, 0xbf, 0x4e, 0xc3, 0x30,
+	0x10, 0x87, 0x05, 0x03, 0x43, 0x16, 0x90, 0x85, 0x2a, 0x11, 0x58, 0x18, 0x19, 0xea, 0x20, 0x10,
+	0x13, 0x53, 0xcb, 0x9f, 0xd2, 0x01, 0xb5, 0xa2, 0x88, 0x81, 0xa5, 0x72, 0xdd, 0xab, 0x63, 0xc9,
+	0xf1, 0x05, 0xfb, 0x52, 0xe8, 0x5b, 0x30, 0xf0, 0xc0, 0x28, 0xb1, 0x3b, 0xa4, 0x6a, 0xa6, 0x28,
+	0xba, 0xef, 0xf7, 0xf9, 0xee, 0xec, 0xa4, 0xbf, 0x46, 0x43, 0xb9, 0x98, 0x97, 0x0e, 0x09, 0x7d,
+	0x86, 0x86, 0xe6, 0xda, 0x12, 0xb8, 0xb9, 0x58, 0x8a, 0xb2, 0xfe, 0x7a, 0x70, 0x6b, 0x2d, 0x81,
+	0x37, 0x00, 0x3b, 0xeb, 0x04, 0xd2, 0xb4, 0x6d, 0x92, 0x58, 0x14, 0x68, 0x43, 0x2c, 0x3d, 0x57,
+	0x88, 0xca, 0x40, 0xd6, 0xfc, 0x2d, 0xaa, 0x55, 0x06, 0x45, 0x49, 0x9b, 0x58, 0xbc, 0x6c, 0x07,
+	0x5b, 0xf6, 0x88, 0xec, 0xb8, 0x73, 0x10, 0x86, 0xf2, 0x50, 0xbb, 0xf9, 0x3b, 0x4c, 0x7a, 0x13,
+	0x43, 0xe3, 0x3a, 0x36, 0x08, 0xa9, 0x59, 0x68, 0x89, 0xdd, 0x27, 0xc7, 0x23, 0xa0, 0x97, 0x86,
+	0x9e, 0x91, 0xa0, 0xca, 0x33, 0xc6, 0x63, 0x63, 0x0f, 0x68, 0x2d, 0x48, 0xd2, 0x68, 0xd3, 0x53,
+	0x1e, 0x85, 0x2d, 0xf2, 0x39, 0x39, 0x99, 0x3a, 0xfc, 0xd9, 0x4c, 0x0a, 0xa9, 0xdf, 0xe0, 0xab,
+	0x02, 0x4f, 0x2c, 0xe5, 0xed, 0xee, 0xea, 0xda, 0x2b, 0x78, 0x2f, 0x14, 0xa4, 0x3d, 0x1e, 0x86,
+	0xe4, 0xdb, 0x21, 0xf9, 0x53, 0x3d, 0x24, 0xab, 0x92, 0xde, 0x08, 0xe8, 0x1d, 0x64, 0x3e, 0x75,
+	0xb8, 0xd2, 0x06, 0xc6, 0xd6, 0x93, 0xb0, 0x12, 0xd8, 0xf5, 0x8e, 0x6d, 0x0f, 0x13, 0x0f, 0xde,
+	0x9e, 0x71, 0xd5, 0x9d, 0x78, 0xc4, 0x6f, 0x6b, 0x50, 0x2c, 0x23, 0x3a, 0xfc, 0x3d, 0x48, 0xfa,
+	0xe8, 0x14, 0xc7, 0x12, 0xac, 0x44, 0xb7, 0xe4, 0x61, 0x85, 0xbc, 0xf3, 0x02, 0x87, 0x17, 0x1f,
+	0x0d, 0xb1, 0x7f, 0x97, 0x9f, 0x03, 0xa5, 0x29, 0xaf, 0x16, 0xf5, 0xfa, 0xb2, 0xad, 0x33, 0x0b,
+	0xce, 0x7e, 0xbc, 0x96, 0xf5, 0x5d, 0xa6, 0xb0, 0xfb, 0x09, 0x2d, 0x8e, 0x1a, 0xee, 0xf6, 0x3f,
+	0x00, 0x00, 0xff, 0xff, 0x7c, 0x06, 0x94, 0x70, 0x74, 0x02, 0x00, 0x00,
 }
 
 // Reference imports to suppress errors if they are not otherwise used.
@@ -68,7 +70,7 @@
 type OltInterAdapterServiceClient interface {
 	// GetHealthStatus is used by an OltInterAdapterService client to verify connectivity
 	// to the gRPC server hosting the OltInterAdapterService 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)
 	ProxyOmciRequest(ctx context.Context, in *inter_adapter.OmciMessage, opts ...grpc.CallOption) (*empty.Empty, error)
 	GetTechProfileInstance(ctx context.Context, in *inter_adapter.TechProfileInstanceRequestMessage, opts ...grpc.CallOption) (*inter_adapter.TechProfileDownloadMessage, error)
 }
@@ -81,7 +83,7 @@
 	return &oltInterAdapterServiceClient{cc}
 }
 
-func (c *oltInterAdapterServiceClient) GetHealthStatus(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*health.HealthStatus, error) {
+func (c *oltInterAdapterServiceClient) GetHealthStatus(ctx context.Context, in *common.Connection, opts ...grpc.CallOption) (*health.HealthStatus, error) {
 	out := new(health.HealthStatus)
 	err := c.cc.Invoke(ctx, "/olt_inter_adapter_service.OltInterAdapterService/GetHealthStatus", in, out, opts...)
 	if err != nil {
@@ -112,7 +114,7 @@
 type OltInterAdapterServiceServer interface {
 	// GetHealthStatus is used by an OltInterAdapterService client to verify connectivity
 	// to the gRPC server hosting the OltInterAdapterService service
-	GetHealthStatus(context.Context, *empty.Empty) (*health.HealthStatus, error)
+	GetHealthStatus(context.Context, *common.Connection) (*health.HealthStatus, error)
 	ProxyOmciRequest(context.Context, *inter_adapter.OmciMessage) (*empty.Empty, error)
 	GetTechProfileInstance(context.Context, *inter_adapter.TechProfileInstanceRequestMessage) (*inter_adapter.TechProfileDownloadMessage, error)
 }
@@ -121,7 +123,7 @@
 type UnimplementedOltInterAdapterServiceServer struct {
 }
 
-func (*UnimplementedOltInterAdapterServiceServer) GetHealthStatus(ctx context.Context, req *empty.Empty) (*health.HealthStatus, error) {
+func (*UnimplementedOltInterAdapterServiceServer) GetHealthStatus(ctx context.Context, req *common.Connection) (*health.HealthStatus, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method GetHealthStatus not implemented")
 }
 func (*UnimplementedOltInterAdapterServiceServer) ProxyOmciRequest(ctx context.Context, req *inter_adapter.OmciMessage) (*empty.Empty, error) {
@@ -136,7 +138,7 @@
 }
 
 func _OltInterAdapterService_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
 	}
@@ -148,7 +150,7 @@
 		FullMethod: "/olt_inter_adapter_service.OltInterAdapterService/GetHealthStatus",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(OltInterAdapterServiceServer).GetHealthStatus(ctx, req.(*empty.Empty))
+		return srv.(OltInterAdapterServiceServer).GetHealthStatus(ctx, req.(*common.Connection))
 	}
 	return interceptor(ctx, in, info, handler)
 }
diff --git a/go/onu_inter_adapter_service/onu_inter_adapter_service.pb.go b/go/onu_inter_adapter_service/onu_inter_adapter_service.pb.go
index eaf7ca8..a2cf537 100644
--- a/go/onu_inter_adapter_service/onu_inter_adapter_service.pb.go
+++ b/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)
 }
diff --git a/go/voltha/voltha.pb.go b/go/voltha/voltha.pb.go
index 44e2567..217a597 100644
--- a/go/voltha/voltha.pb.go
+++ b/go/voltha/voltha.pb.go
@@ -37,6 +37,9 @@
 // IDs from public import voltha_protos/common.proto
 type IDs = common.IDs
 
+// Connection from public import voltha_protos/common.proto
+type Connection = common.Connection
+
 // AdminState from public import voltha_protos/common.proto
 type AdminState = common.AdminState
 
