[VOL-4429] openonuAdapterGo - omci config error and crash during flow removal after adapter restart
Change-Id: I82ae96e1e1dd0617689ce56226fd70c9c3c76256
diff --git a/internal/pkg/onuadaptercore/device_handler.go b/internal/pkg/onuadaptercore/device_handler.go
index 6c34298..c737e74 100644
--- a/internal/pkg/onuadaptercore/device_handler.go
+++ b/internal/pkg/onuadaptercore/device_handler.go
@@ -2122,7 +2122,7 @@
dh.lockVlanConfig.RUnlock()
//reset of all Fsm is always accompanied by global persistency data removal
// no need to remove specific data
- pVlanFilterFsm.RequestClearPersistency(false)
+ pVlanFilterFsm.RequestClearPersistency(ctx, false)
//ensure the FSM processing is stopped in case waiting for some response
pVlanFilterFsm.CancelProcessing(ctx)
} else {
@@ -3227,7 +3227,7 @@
pVlanFilterStatemachine := pVlanFilterFsm.pAdaptFsm.pFsm
if pVlanFilterStatemachine != nil {
//if this was an event of the TP processing that was waited for in the VlanFilterFsm
- if pVlanFilterFsm.GetWaitingTpID() == aTpID {
+ if pVlanFilterFsm.GetWaitingTpID(ctx) == aTpID {
if pVlanFilterStatemachine.Is(vlanStWaitingTechProf) {
if err := pVlanFilterStatemachine.Event(vlanEvContinueConfig); err != nil {
logger.Warnw(ctx, "UniVlanConfigFsm: can't continue processing", log.Fields{"err": err,
@@ -3892,3 +3892,11 @@
log.Fields{"device-id": dh.deviceID, "Err": err})
}
}
+
+// GetUniVlanConfigFsm - returns pointer to UniVlanConfigFsm
+func (dh *deviceHandler) GetUniVlanConfigFsm(uniID uint8) *UniVlanConfigFsm {
+ dh.lockVlanConfig.RLock()
+ value := dh.UniVlanConfigFsmMap[uniID]
+ dh.lockVlanConfig.RUnlock()
+ return value
+}