diff --git a/voltha/adapters/asfvolt16_olt/asfvolt16_device_handler.py b/voltha/adapters/asfvolt16_olt/asfvolt16_device_handler.py
index a0a2a0a..1365942 100644
--- a/voltha/adapters/asfvolt16_olt/asfvolt16_device_handler.py
+++ b/voltha/adapters/asfvolt16_olt/asfvolt16_device_handler.py
@@ -444,13 +444,15 @@
     def _req_pm_counter_from_device_in_loop(self, device):
         # NNI port is hardcoded to 0
         kpi_status = -1
-        try:
-           pm_counters = yield self.bal.get_bal_nni_stats(0)
-           kpi_status = 0
-        except Exception, e:
-           kpi_status = -1
-
-        self.log.info('pm_counters',pm_counters=pm_counters)
+        if device.connect_status == ConnectStatus.UNREACHABLE:
+           self.log.info('Device is not Reachable')
+        else:
+           try:
+              pm_counters = yield self.bal.get_bal_nni_stats(0)
+              kpi_status = 0
+              self.log.info('pm_counters',pm_counters=pm_counters)
+           except Exception as e:
+              kpi_status = -1
 
         if kpi_status == 0 and pm_counters!=None:
            pm_data = { }
@@ -486,20 +488,17 @@
         else:
            self.log.info('Lost Connectivity to OLT')
 
-
-        '''
-        reactor.callLater(self.pm_metrics.default_freq/10,
+        reactor.callLater(self.pm_metrics.pm_default_freq/10,
                           self._req_pm_counter_from_device_in_loop,
                           device)
-        '''
 
     def update_pm_config(self, device, pm_config):
         self.log.info("update-pm-config", device=device, pm_config=pm_config)
         self.pm_metrics.update(device, pm_config)
 
-    def handle_report_alarm(self, _device_id, _object, key, alarm,
-                            status, priority,
-                            alarm_data=None):
+    def handle_alarms(self, _device_id, _object, key, alarm,
+                      status, priority,
+                      alarm_data=None):
         self.log.info('received-alarm-msg',
                  object=_object,
                  key=key,
@@ -557,54 +556,67 @@
     def BalIfaceLosAlarm(self, device_id, Iface_ID,\
                          los_status, IfaceLos_data):
         self.log.info('Interface Loss Of Signal Alarm')
-        self.handle_report_alarm(device_id,"pon_ni",\
-                                 Iface_ID,\
-                                 "loss_of_signal",los_status,"high",\
-                                 IfaceLos_data)
+        self.handle_alarms(device_id,"pon_ni",\
+                           Iface_ID,\
+                           "loss_of_signal",los_status,"high",\
+                           IfaceLos_data)
 
-    def BalSubsTermDgiAlarm(self, device_id, Iface_ID,\
-                            dgi_status, balSubTermDgi_data):
+    def BalSubsTermDgiAlarm(self, device_id, intf_id,\
+                            onu_id, dgi_status, balSubTermDgi_data,\
+                            ind_info):
         self.log.info('Subscriber terminal dying gasp')
-        self.handle_report_alarm(device_id,"onu",\
-                                 Iface_ID,\
-                                 "dgi_indication",dgi_status,"high",\
-                                 balSubTermDgi_data)
+        self.handle_alarms(device_id,"onu",\
+                           intf_id,\
+                           "dgi_indication",dgi_status,"medium",\
+                           balSubTermDgi_data)
+        if dgi_status == 1:
+            child_device = self.adapter_agent.get_child_device(
+                           device_id, onu_id=onu_id)
+            if child_device is None:
+               self.log.info('Onu-is-not-configured', onu_id=onu_id)
+               return
+            msg = {'proxy_address': child_device.proxy_address,
+                   'event': 'deactivate-onu', 'event_data': ind_info}
+
+            # Send the event message to the ONU adapter
+            self.adapter_agent.publish_inter_adapter_message(child_device.id,
+                                                                 msg)
 
     def BalSubsTermLosAlarm(self, device_id, Iface_ID,
                          los_status, SubTermAlarm_Data):
         self.log.info('ONU Alarms for Subscriber Terminal LOS')
-        self.handle_report_alarm(device_id,"onu",\
-                                 Iface_ID,\
-                                 "ONU : Loss Of Signal",\
-                                 los_status, "High",\
-                                 SubTermAlarm_Data)
+        self.handle_alarms(device_id,"onu",\
+                           Iface_ID,\
+                           "ONU : Loss Of Signal",\
+                           los_status, "medium",\
+                           SubTermAlarm_Data)
 
     def BalSubsTermLobAlarm(self, device_id, Iface_ID,
                          lob_status, SubTermAlarm_Data):
         self.log.info('ONU Alarms for Subscriber Terminal LOB')
-        self.handle_report_alarm(device_id,"onu",\
-                                 Iface_ID,\
-                                 "ONU : Loss Of Burst",\
-                                 lob_status, "High",\
-                                 SubTermAlarm_Data)
+        self.handle_alarms(device_id,"onu",\
+                           Iface_ID,\
+                           "ONU : Loss Of Burst",\
+                           lob_status, "medium",\
+                           SubTermAlarm_Data)
 
     def BalSubsTermLopcMissAlarm(self, device_id, Iface_ID,
                          lopc_miss_status, SubTermAlarm_Data):
         self.log.info('ONU Alarms for Subscriber Terminal LOPC Miss')
-        self.handle_report_alarm(device_id,"onu",\
-                                 Iface_ID,\
-                                 "ONU : Loss Of PLOAM miss channel",\
-                                 lopc_miss_status, "High",\
-                                 SubTermAlarm_Data)
+        self.handle_alarms(device_id,"onu",\
+                           Iface_ID,\
+                           "ONU : Loss Of PLOAM miss channel",\
+                           lopc_miss_status, "medium",\
+                           SubTermAlarm_Data)
 
     def BalSubsTermLopcMicErrorAlarm(self, device_id, Iface_ID,
                          lopc_mic_error_status, SubTermAlarm_Data):
         self.log.info('ONU Alarms for Subscriber Terminal LOPC Mic Error')
-        self.handle_report_alarm(device_id,"onu",\
-                                 Iface_ID,\
-                                 "ONU : Loss Of PLOAM MIC Error",\
-                                 lopc_mic_error_status, "High",\
-                                 SubTermAlarm_Data)
+        self.handle_alarms(device_id,"onu",\
+                           Iface_ID,\
+                           "ONU : Loss Of PLOAM MIC Error",\
+                           lopc_mic_error_status, "medium",\
+                           SubTermAlarm_Data)
 
     def add_port(self, port_no, port_type, label):
         self.log.info('adding-port', port_no=port_no, port_type=port_type)
diff --git a/voltha/adapters/asfvolt16_olt/asfvolt16_rx_handler.py b/voltha/adapters/asfvolt16_olt/asfvolt16_rx_handler.py
index 9f3b847..82b9c17 100644
--- a/voltha/adapters/asfvolt16_olt/asfvolt16_rx_handler.py
+++ b/voltha/adapters/asfvolt16_olt/asfvolt16_rx_handler.py
@@ -261,10 +261,6 @@
                              device_id,request.terminal_alarm.key.intf_id,\
                              lopc_mic_error, balSubTermAlarm_Dict)
 
-        '''
-        ind_info['_object_type'] = 'sub_term_indication'
-        ind_info['_sub_group_type'] = 'alarm_indication'
-        '''
         bal_err = bal_pb2.BalErr()
         bal_err.err = bal_errno_pb2.BAL_ERR_OK
         return bal_err
@@ -287,6 +283,10 @@
 
         if dgi_status != bal_model_types_pb2.BAL_ALARM_STATUS_NO__CHANGE:
 
+           ind_info = dict()
+           ind_info['_object_type'] = 'sub_term_indication'
+           ind_info['_sub_group_type'] = 'dgi_indication'
+
            balSubTermDgi_Dict = { }
            balSubTermDgi_Dict["dgi_status"]=dgi_status.__str__()
 
@@ -294,12 +294,9 @@
            reactor.callLater(0,
                              device_handler.BalSubsTermDgiAlarm,
                              device_id,request.terminal_dgi.key.intf_id,\
-                             dgi_status,balSubTermDgi_Dict)
-        '''
-        ind_info = dict()
-        ind_info['_object_type'] = 'sub_term_indication'
-        ind_info['_sub_group_type'] = 'dgi_indication'
-        '''
+                             request.terminal_dgi.key.sub_term_id, \
+                             dgi_status,balSubTermDgi_Dict, ind_info)
+
         bal_err = bal_pb2.BalErr()
         bal_err.err = bal_errno_pb2.BAL_ERR_OK
         return bal_err
