diff --git a/internal/pkg/core/openolt_eventmgr.go b/internal/pkg/core/openolt_eventmgr.go
index 4e21d11..45d963e 100644
--- a/internal/pkg/core/openolt_eventmgr.go
+++ b/internal/pkg/core/openolt_eventmgr.go
@@ -51,6 +51,7 @@
 	onuLossOfPloamEvent         = "ONU_LOSS_OF_PLOAM"
 	ponIntfDownIndiction        = "OLT_PON_INTERFACE_DOWN"
 	onuDeactivationFailureEvent = "ONU_DEACTIVATION_FAILURE"
+	onuRemoteDefectIndication   = "ONU_REMOTE_DEFECT"
 )
 
 const (
@@ -134,6 +135,9 @@
 	case *oop.AlarmIndication_OnuItuPonStatsInd:
 		log.Infow("Received onu Itu Pon Stats indication ", log.Fields{"alarm_ind": alarmInd})
 		log.Infow("Not implemented yet", log.Fields{"alarm_ind": alarmInd})
+	case *oop.AlarmIndication_OnuRemoteDefectInd:
+		log.Infow("Received onu remote defect indication ", log.Fields{"alarm_ind": alarmInd})
+		err = em.onuRemoteDefectIndication(alarmInd.GetOnuRemoteDefectInd(), deviceID, raisedTs)
 	case *oop.AlarmIndication_OnuDeactivationFailureInd:
 		log.Infow("Received onu deactivation failure indication ", log.Fields{"alarm_ind": alarmInd})
 		err = em.onuDeactivationFailureIndication(alarmInd.GetOnuDeactivationFailureInd(), deviceID, raisedTs)
@@ -502,3 +506,25 @@
 	log.Infow("ONU deactivation failure event sent to KAFKA", log.Fields{"onu-id": onuDFI.OnuId, "intf-id": onuDFI.IntfId})
 	return nil
 }
+
+func (em *OpenOltEventMgr) onuRemoteDefectIndication(onuRDI *oop.OnuRemoteDefectIndication, deviceID string, raisedTs int64) error {
+	/* Populating event context */
+	context := map[string]string{
+		"onu-id":     strconv.FormatUint(uint64(onuRDI.OnuId), base10),
+		"intf-id":    strconv.FormatUint(uint64(onuRDI.IntfId), base10),
+		"rdi-errors": strconv.FormatUint(uint64(onuRDI.RdiErrors), base10),
+	}
+	/* Populating device event body */
+	de := &voltha.DeviceEvent{
+		Context:         context,
+		ResourceId:      deviceID,
+		DeviceEventName: onuRemoteDefectIndication,
+	}
+	/* Send event to KAFKA */
+	if err := em.eventProxy.SendDeviceEvent(de, equipment, onu, raisedTs); err != nil {
+		log.Errorw("Failed to send ONU remote defect event", log.Fields{"onu-id": onuRDI.OnuId, "intf-id": onuRDI.IntfId})
+		return err
+	}
+	log.Infow("ONU remote defect event sent to KAFKA", log.Fields{"onu-id": onuRDI.OnuId, "intf-id": onuRDI.IntfId})
+	return nil
+}
