VOL-892 Alarm - ONU Deactivation Failure
This commit contains the changes required to publish ONU
deactivation failure event to the KAFKA bus.
Change-Id: I9f1cb27842938169677ee363139d62e8ac6b0603
diff --git a/adaptercore/openolt_eventmgr.go b/adaptercore/openolt_eventmgr.go
index b5650ed..f233f6c 100644
--- a/adaptercore/openolt_eventmgr.go
+++ b/adaptercore/openolt_eventmgr.go
@@ -30,26 +30,27 @@
)
const (
- onuDiscoveryEvent = "ONU_DISCOVERY"
- onuLosEvent = "ONU_LOSS_OF_SIGNAL"
- onuLobEvent = "ONU_LOSS_OF_BURST"
- onuLopcMissEvent = "ONU_LOPC_MISS"
- onuLopcMicErrorEvent = "ONU_LOPC_MIC_ERROR"
- oltLosEvent = "OLT_LOSS_OF_SIGNAL"
- oltIndicationDown = "OLT_DOWN_INDICATION"
- onuDyingGaspEvent = "ONU_DYING_GASP"
- onuSignalsFailEvent = "ONU_SIGNALS_FAIL"
- onuStartupFailEvent = "ONU_STARTUP_FAIL"
- onuSignalDegradeEvent = "ONU_SIGNAL_DEGRADE"
- onuDriftOfWindowEvent = "ONU_DRIFT_OF_WINDOW"
- onuActivationFailEvent = "ONU_ACTIVATION_FAIL"
- onuProcessingErrorEvent = "ONU_PROCESSING_ERROR"
- onuTiwiEvent = "ONU_TRANSMISSION_WARNING"
- onuLossOmciEvent = "ONU_LOSS_OF_OMCI_CHANNEL"
- onuLossOfKeySyncEvent = "ONU_LOSS_OF_KEY_SYNC"
- onuLossOfFrameEvent = "ONU_LOSS_OF_FRAME"
- onuLossOfPloamEvent = "ONU_LOSS_OF_PLOAM"
- ponIntfDownIndiction = "OLT_PON_INTERFACE_DOWN"
+ onuDiscoveryEvent = "ONU_DISCOVERY"
+ onuLosEvent = "ONU_LOSS_OF_SIGNAL"
+ onuLobEvent = "ONU_LOSS_OF_BURST"
+ onuLopcMissEvent = "ONU_LOPC_MISS"
+ onuLopcMicErrorEvent = "ONU_LOPC_MIC_ERROR"
+ oltLosEvent = "OLT_LOSS_OF_SIGNAL"
+ oltIndicationDown = "OLT_DOWN_INDICATION"
+ onuDyingGaspEvent = "ONU_DYING_GASP"
+ onuSignalsFailEvent = "ONU_SIGNALS_FAIL"
+ onuStartupFailEvent = "ONU_STARTUP_FAIL"
+ onuSignalDegradeEvent = "ONU_SIGNAL_DEGRADE"
+ onuDriftOfWindowEvent = "ONU_DRIFT_OF_WINDOW"
+ onuActivationFailEvent = "ONU_ACTIVATION_FAIL"
+ onuProcessingErrorEvent = "ONU_PROCESSING_ERROR"
+ onuTiwiEvent = "ONU_TRANSMISSION_WARNING"
+ onuLossOmciEvent = "ONU_LOSS_OF_OMCI_CHANNEL"
+ onuLossOfKeySyncEvent = "ONU_LOSS_OF_KEY_SYNC"
+ onuLossOfFrameEvent = "ONU_LOSS_OF_FRAME"
+ onuLossOfPloamEvent = "ONU_LOSS_OF_PLOAM"
+ ponIntfDownIndiction = "OLT_PON_INTERFACE_DOWN"
+ onuDeactivationFailureEvent = "ONU_DEACTIVATION_FAILURE"
)
const (
@@ -133,6 +134,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_OnuDeactivationFailureInd:
+ log.Infow("Received onu deactivation failure indication ", log.Fields{"alarm_ind": alarmInd})
+ err = em.onuDeactivationFailureIndication(alarmInd.GetOnuDeactivationFailureInd(), deviceID, raisedTs)
default:
err = NewErrInvalidValue(log.Fields{"indication-type": alarmInd}, nil)
}
@@ -477,3 +481,24 @@
}
log.Info("sent-olt-intf-oper-status-event-to-kafka")
}
+
+func (em *OpenOltEventMgr) onuDeactivationFailureIndication(onuDFI *oop.OnuDeactivationFailureIndication, deviceID string, raisedTs int64) error {
+ var de voltha.DeviceEvent
+ context := make(map[string]string)
+ /* Populating event context */
+ context["onu-id"] = strconv.FormatUint(uint64(onuDFI.OnuId), base10)
+ context["intf-id"] = strconv.FormatUint(uint64(onuDFI.IntfId), base10)
+ context["failure-reason"] = strconv.FormatUint(uint64(onuDFI.FailReason), base10)
+ /* Populating device event body */
+ de.Context = context
+ de.ResourceId = deviceID
+ de.DeviceEventName = onuDeactivationFailureEvent
+
+ /* Send event to KAFKA */
+ if err := em.eventProxy.SendDeviceEvent(&de, equipment, onu, raisedTs); err != nil {
+ log.Errorw("Failed to send ONU deactivation failure event", log.Fields{"onu-id": onuDFI.OnuId, "intf-id": onuDFI.IntfId})
+ return err
+ }
+ log.Infow("ONU deactivation failure event sent to KAFKA", log.Fields{"onu-id": onuDFI.OnuId, "intf-id": onuDFI.IntfId})
+ return nil
+}