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
+}
diff --git a/internal/pkg/core/openolt_eventmgr_test.go b/internal/pkg/core/openolt_eventmgr_test.go
index d5f1520..745ce3d 100644
--- a/internal/pkg/core/openolt_eventmgr_test.go
+++ b/internal/pkg/core/openolt_eventmgr_test.go
@@ -115,6 +115,11 @@
 		// AlarmIndication_onuLossOfKeySyncInd
 		{"ProcessEvents-", args{alarmInd: &oop.AlarmIndication{Data: &oop.AlarmIndication_OnuLossOfSyncFailInd{OnuLossOfSyncFailInd: &oop.OnuLossOfKeySyncFailureIndication{IntfId: 1, OnuId: 3, Status: "on"}}}, deviceID: "olt", raisedTs: time.Now().Unix()}},
 		{"ProcessEvents-", args{alarmInd: &oop.AlarmIndication{Data: &oop.AlarmIndication_OnuLossOfSyncFailInd{OnuLossOfSyncFailInd: &oop.OnuLossOfKeySyncFailureIndication{IntfId: 1, OnuId: 3, Status: "off"}}}, deviceID: "olt", raisedTs: time.Now().Unix()}},
+
+		// AlarmIndication_onuDeactivationFailureInd
+		{"ProcessEvents-", args{alarmInd: &oop.AlarmIndication{Data: &oop.AlarmIndication_OnuDeactivationFailureInd{OnuDeactivationFailureInd: &oop.OnuDeactivationFailureIndication{IntfId: 1, OnuId: 3, FailReason: 2}}}, deviceID: "olt", raisedTs: time.Now().Unix()}},
+		// AlarmIndication_onuRemoteDefectInd
+		{"ProcessEvents-", args{alarmInd: &oop.AlarmIndication{Data: &oop.AlarmIndication_OnuRemoteDefectInd{OnuRemoteDefectInd: &oop.OnuRemoteDefectIndication{IntfId: 1, OnuId: 3, RdiErrors: 3}}}, deviceID: "olt", raisedTs: time.Now().Unix()}},
 	}
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
