[VOL-4900] openonuAdapterGo: Suppress OMCI timeout device event if OLT is not available
Change-Id: I05959e169abd7b022b8627a96a8ee509b9fdd5a8
diff --git a/internal/pkg/common/interfaces.go b/internal/pkg/common/interfaces.go
index 3268564..728d10e 100755
--- a/internal/pkg/common/interfaces.go
+++ b/internal/pkg/common/interfaces.go
@@ -88,6 +88,7 @@
SetReadyForOmciConfig(bool)
IsReadyForOmciConfig() bool
+ IsOltAvailable() bool
StorePersistentData(context.Context) error
StorePersUniFlowConfig(context.Context, uint8, *[]UniVlanFlowParams, bool) error
diff --git a/internal/pkg/common/omci_cc.go b/internal/pkg/common/omci_cc.go
index 8726eb3..6dbddbd 100755
--- a/internal/pkg/common/omci_cc.go
+++ b/internal/pkg/common/omci_cc.go
@@ -4463,9 +4463,14 @@
break loop
case <-time.After(time.Duration(aTimeout) * time.Second):
if retryCounter == retries {
- logger.Errorw(ctx, "reqMon: timeout waiting for response - no of max retries reached - send ONU device event!",
- log.Fields{"tid": tid, "retries": retryCounter, "device-id": oo.deviceID})
- oo.pOnuDeviceEntry.SendOnuDeviceEvent(ctx, OnuOmciCommunicationFailureSwUpgrade, OnuOmciCommunicationFailureSwUpgradeDesc)
+ if oo.pBaseDeviceHandler.IsOltAvailable() {
+ logger.Errorw(ctx, "reqMon: timeout waiting for response - no of max retries reached - send ONU device event!",
+ log.Fields{"tid": tid, "retries": retryCounter, "device-id": oo.deviceID})
+ oo.pOnuDeviceEntry.SendOnuDeviceEvent(ctx, OnuOmciCommunicationFailureSwUpgrade, OnuOmciCommunicationFailureSwUpgradeDesc)
+ } else {
+ logger.Errorw(ctx, "reqMon: timeout waiting for response - no of max retries reached - skip ONU device event: OLT unavailable!",
+ log.Fields{"tid": tid, "retries": retryCounter, "device-id": oo.deviceID})
+ }
oo.incrementTxTimesouts()
break loop
} else {
@@ -4966,9 +4971,14 @@
break loop
case <-time.After(time.Duration(aTimeout) * time.Second):
if retryCounter == retries {
- logger.Errorw(ctx, "reqMon: timeout waiting for response - no of max retries reached - send ONU device event!",
- log.Fields{"tid": tid, "retries": retryCounter, "device-id": oo.deviceID})
- oo.pOnuDeviceEntry.SendOnuDeviceEvent(ctx, OnuOmciCommunicationFailureConfig, OnuOmciCommunicationFailureConfigDesc)
+ if oo.pBaseDeviceHandler.IsOltAvailable() {
+ logger.Errorw(ctx, "reqMon: timeout waiting for response - no of max retries reached - send ONU device event!",
+ log.Fields{"tid": tid, "retries": retryCounter, "device-id": oo.deviceID})
+ oo.pOnuDeviceEntry.SendOnuDeviceEvent(ctx, OnuOmciCommunicationFailureConfig, OnuOmciCommunicationFailureConfigDesc)
+ } else {
+ logger.Errorw(ctx, "reqMon: timeout waiting for response - no of max retries reached - skip ONU device event: OLT unavailable!",
+ log.Fields{"tid": tid, "retries": retryCounter, "device-id": oo.deviceID})
+ }
oo.incrementTxTimesouts()
break loop
} else {