diff --git a/internal/pkg/common/defines.go b/internal/pkg/common/defines.go
index 545892f..f359795 100755
--- a/internal/pkg/common/defines.go
+++ b/internal/pkg/common/defines.go
@@ -361,15 +361,9 @@
 	OnuOmciCommunicationFailureConfig     = "ONU_OMCI_COMMUNICATION_FAILURE_CONFIG"
 	OnuOmciCommunicationFailureConfigDesc = "OMCI communication during ONU configuration failed"
 
-	OnuOmciCommunicationAbortConfig     = "ONU_OMCI_COMMUNICATION_ABORT_CONFIG"
-	OnuOmciCommunicationAbortConfigDesc = "OMCI communication during ONU configuration aborted - max failures reached: stopping device"
-
 	OnuOmciCommunicationFailureSwUpgrade     = "ONU_OMCI_COMMUNICATION_FAILURE_SW_UPGRADE"
 	OnuOmciCommunicationFailureSwUpgradeDesc = "OMCI communication during ONU SW upgrade failed"
 
-	OnuOmciCommunicationAbortSwUpgrade     = "ONU_OMCI_COMMUNICATION_ABORT_SW_UPGRADE"
-	OnuOmciCommunicationAbortSwUpgradeDesc = "OMCI communication during ONU SW upgrade aborted - max failures reached: stopping device"
-
 	OnuConfigFailureMissingTcont     = "ONU_CONFIG_FAILURE_MISSING_TCONT"
 	OnuConfigFailureMissingTcontDesc = "ONU config failed - no further TCONT resources available at ONU"
 
diff --git a/internal/pkg/common/interfaces.go b/internal/pkg/common/interfaces.go
index ceec3ef..3268564 100755
--- a/internal/pkg/common/interfaces.go
+++ b/internal/pkg/common/interfaces.go
@@ -124,8 +124,6 @@
 	CreatePortInCore(context.Context, *voltha.Port) error
 
 	PerOnuFlowHandlerRoutine(uniID uint8)
-
-	UpdateInterface(context.Context) error
 }
 
 // IonuDeviceEntry interface to onuDeviceEntry
diff --git a/internal/pkg/common/omci_cc.go b/internal/pkg/common/omci_cc.go
index 551f389..8726eb3 100755
--- a/internal/pkg/common/omci_cc.go
+++ b/internal/pkg/common/omci_cc.go
@@ -73,8 +73,6 @@
 // CDefaultRetries - TODO: add comment
 const CDefaultRetries = 2
 
-const cMaxConsecutiveOmciTimeouts = 3
-
 // ### OMCI related definitions - end
 
 //CallbackPairEntry to be used for OMCI send/receive correlation
@@ -134,19 +132,15 @@
 	UploadSequNo   uint16
 	UploadNoOfCmds uint16
 
-	mutexSendQueuedRequests      sync.Mutex
-	mutexLowPrioTxQueue          sync.Mutex
-	lowPrioTxQueue               *list.List
-	mutexHighPrioTxQueue         sync.Mutex
-	highPrioTxQueue              *list.List
-	mutexRxSchedMap              sync.Mutex
-	rxSchedulerMap               map[uint16]CallbackPairEntry
-	mutexMonReq                  sync.RWMutex
-	monitoredRequests            map[uint16]OmciTransferStructure
-	mutexConsecutiveOmciTimeouts sync.RWMutex
-	consecutiveOmciTimeouts      uint8
-	mutexOmciAbortInProgress     sync.RWMutex
-	omciAbortInProgress          bool
+	mutexSendQueuedRequests sync.Mutex
+	mutexLowPrioTxQueue     sync.Mutex
+	lowPrioTxQueue          *list.List
+	mutexHighPrioTxQueue    sync.Mutex
+	highPrioTxQueue         *list.List
+	mutexRxSchedMap         sync.Mutex
+	rxSchedulerMap          map[uint16]CallbackPairEntry
+	mutexMonReq             sync.RWMutex
+	monitoredRequests       map[uint16]OmciTransferStructure
 }
 
 var responsesWithMibDataSync = []omci.MessageType{
@@ -186,8 +180,6 @@
 	omciCC.highPrioTxQueue = list.New()
 	omciCC.rxSchedulerMap = make(map[uint16]CallbackPairEntry)
 	omciCC.monitoredRequests = make(map[uint16]OmciTransferStructure)
-	omciCC.consecutiveOmciTimeouts = 0
-	omciCC.omciAbortInProgress = false
 	return &omciCC
 }
 
@@ -424,11 +416,6 @@
 	rxCallbackEntry, ok := oo.rxSchedulerMap[omciMsg.TransactionID]
 	if ok && rxCallbackEntry.CbFunction != nil {
 
-		// valid OMCI Response Message received - reset counter of consecutive OMCI timeouts
-		oo.mutexConsecutiveOmciTimeouts.Lock()
-		oo.consecutiveOmciTimeouts = 0
-		oo.mutexConsecutiveOmciTimeouts.Unlock()
-
 		if rxCallbackEntry.FramePrint {
 			oo.printRxMessage(ctx, rxMsg)
 		}
@@ -4480,31 +4467,6 @@
 					log.Fields{"tid": tid, "retries": retryCounter, "device-id": oo.deviceID})
 				oo.pOnuDeviceEntry.SendOnuDeviceEvent(ctx, OnuOmciCommunicationFailureSwUpgrade, OnuOmciCommunicationFailureSwUpgradeDesc)
 				oo.incrementTxTimesouts()
-				oo.mutexConsecutiveOmciTimeouts.Lock()
-				if oo.consecutiveOmciTimeouts < cMaxConsecutiveOmciTimeouts {
-					oo.consecutiveOmciTimeouts++
-					oo.mutexConsecutiveOmciTimeouts.Unlock()
-				} else {
-					oo.consecutiveOmciTimeouts = 0
-					oo.mutexConsecutiveOmciTimeouts.Unlock()
-					oo.mutexOmciAbortInProgress.Lock()
-					if !oo.omciAbortInProgress {
-						oo.omciAbortInProgress = true
-						oo.mutexOmciAbortInProgress.Unlock()
-						logger.Errorw(ctx, "reqMon: communication aborted - no of max consecutive timeouts reached - stopping device and send ONU device event!",
-							log.Fields{"tid": tid, "device-id": oo.deviceID})
-						oo.pOnuDeviceEntry.SendOnuDeviceEvent(ctx, OnuOmciCommunicationAbortSwUpgrade, OnuOmciCommunicationAbortSwUpgradeDesc)
-						// stop all running FSM processing
-						_ = oo.pBaseDeviceHandler.UpdateInterface(ctx)
-						oo.mutexOmciAbortInProgress.Lock()
-						oo.omciAbortInProgress = false
-						oo.mutexOmciAbortInProgress.Unlock()
-					} else {
-						oo.mutexOmciAbortInProgress.Unlock()
-						logger.Infow(ctx, "reqMon: communication aborted - corresponding processing already running",
-							log.Fields{"tid": tid, "device-id": oo.deviceID})
-					}
-				}
 				break loop
 			} else {
 				logger.Infow(ctx, "reqMon: timeout waiting for response - retry",
@@ -5008,31 +4970,6 @@
 					log.Fields{"tid": tid, "retries": retryCounter, "device-id": oo.deviceID})
 				oo.pOnuDeviceEntry.SendOnuDeviceEvent(ctx, OnuOmciCommunicationFailureConfig, OnuOmciCommunicationFailureConfigDesc)
 				oo.incrementTxTimesouts()
-				oo.mutexConsecutiveOmciTimeouts.Lock()
-				if oo.consecutiveOmciTimeouts < cMaxConsecutiveOmciTimeouts {
-					oo.consecutiveOmciTimeouts++
-					oo.mutexConsecutiveOmciTimeouts.Unlock()
-				} else {
-					oo.consecutiveOmciTimeouts = 0
-					oo.mutexConsecutiveOmciTimeouts.Unlock()
-					oo.mutexOmciAbortInProgress.Lock()
-					if !oo.omciAbortInProgress {
-						oo.omciAbortInProgress = true
-						oo.mutexOmciAbortInProgress.Unlock()
-						logger.Errorw(ctx, "reqMon: communication aborted - no of max consecutive timeouts reached - stopping device and send ONU device event!",
-							log.Fields{"tid": tid, "device-id": oo.deviceID})
-						oo.pOnuDeviceEntry.SendOnuDeviceEvent(ctx, OnuOmciCommunicationAbortConfig, OnuOmciCommunicationAbortConfigDesc)
-						// stop all running FSM processing
-						_ = oo.pBaseDeviceHandler.UpdateInterface(ctx)
-						oo.mutexOmciAbortInProgress.Lock()
-						oo.omciAbortInProgress = false
-						oo.mutexOmciAbortInProgress.Unlock()
-					} else {
-						oo.mutexOmciAbortInProgress.Unlock()
-						logger.Infow(ctx, "reqMon: communication aborted - corresponding processing already running",
-							log.Fields{"tid": tid, "device-id": oo.deviceID})
-					}
-				}
 				break loop
 			} else {
 				logger.Infow(ctx, "reqMon: timeout waiting for response - retry",
