[VOL-4348] if we try to remove subscriber after openonu adapter restart the vtfd config is not removed on the ONU
Change-Id: Ife9b8821cb816bc62809ad03c4ceeca4a5da3133
diff --git a/VERSION b/VERSION
index cfc4b16..0ed156c 100755
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.4.1-dev230
+1.4.1-dev231
diff --git a/internal/pkg/onuadaptercore/omci_vlan_config.go b/internal/pkg/onuadaptercore/omci_vlan_config.go
index 3201150..1751cdb 100644
--- a/internal/pkg/onuadaptercore/omci_vlan_config.go
+++ b/internal/pkg/onuadaptercore/omci_vlan_config.go
@@ -339,6 +339,10 @@
"SetVid": strconv.FormatInt(int64(loRuleParams.SetVid), 16),
"SetPcp": loRuleParams.SetPcp,
"device-id": oFsm.deviceID, "uni-id": oFsm.pOnuUniPort.uniID})
+
+ if oFsm.pDeviceHandler.isSkipOnuConfigReconciling() {
+ oFsm.reconcileVlanFilterList(ctx, uint16(loRuleParams.SetVid))
+ }
oFsm.numUniFlows = 1
oFsm.uniRemoveFlowsSlice = make([]uniRemoveVlanFlowParams, 0) //initially nothing to remove
@@ -549,6 +553,9 @@
"SetPcp": loRuleParams.SetPcp, "numberofFlows": oFsm.numUniFlows + 1,
"device-id": oFsm.deviceID, "uni-id": oFsm.pOnuUniPort.uniID})
+ if oFsm.pDeviceHandler.isSkipOnuConfigReconciling() {
+ oFsm.reconcileVlanFilterList(ctx, uint16(loRuleParams.SetVid))
+ }
oFsm.numUniFlows++
pConfigVlanStateBaseFsm := oFsm.pAdaptFsm.pFsm
@@ -3105,3 +3112,18 @@
}
return false
}
+
+func (oFsm *UniVlanConfigFsm) reconcileVlanFilterList(ctx context.Context, aSetVid uint16) {
+ // VOL-4342 - reconcile vlanFilterList[] for possible later flow removal
+ if aSetVid == uint16(of.OfpVlanId_OFPVID_PRESENT) {
+ logger.Debugw(ctx, "reconciling - transparent setup: no VTFD config was required",
+ log.Fields{"device-id": oFsm.deviceID})
+ } else {
+ oFsm.vlanFilterList[oFsm.numVlanFilterEntries] = aSetVid
+ logger.Debugw(ctx, "reconciling - Vid of VTFD stored in list", log.Fields{
+ "index": oFsm.numVlanFilterEntries,
+ "vid": strconv.FormatInt(int64(oFsm.vlanFilterList[oFsm.numVlanFilterEntries]), 16),
+ "device-id": oFsm.deviceID})
+ oFsm.numVlanFilterEntries++
+ }
+}