diff --git a/VERSION b/VERSION
index a6333e4..0d3ad67 100755
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-2.2.9
+2.2.10
diff --git a/internal/pkg/common/defines.go b/internal/pkg/common/defines.go
index 9cb4ba8..c2eecbd 100755
--- a/internal/pkg/common/defines.go
+++ b/internal/pkg/common/defines.go
@@ -361,12 +361,6 @@
 	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"
 )
diff --git a/internal/pkg/common/interfaces.go b/internal/pkg/common/interfaces.go
index 69fa26f..98f644c 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 08ee189..e49e50f 100755
--- a/internal/pkg/common/omci_cc.go
+++ b/internal/pkg/common/omci_cc.go
@@ -72,8 +72,6 @@
 // CDefaultRetries - TODO: add comment
 const CDefaultRetries = 2
 
-const cMaxConsecutiveOmciTimeouts = 3
-
 // ### OMCI related definitions - end
 
 //CallbackPairEntry to be used for OMCI send/receive correlation
@@ -123,19 +121,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{
@@ -176,8 +170,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
 }
 
@@ -408,11 +400,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)
 		}
@@ -4405,31 +4392,6 @@
 				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)
-				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",
@@ -4917,31 +4879,6 @@
 				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)
-				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",
