[VOL-3542] Support Examine-MDS-handling
- counterpart to verify BBSIM-feature [VOL-3744] BBSIM-ONUs should support MDS-feature according to T-REC-G.988
Change-Id: Iff0579d8b1320beeac570af7e4a84a29f70ab022
diff --git a/internal/pkg/onuadaptercore/onu_device_entry.go b/internal/pkg/onuadaptercore/onu_device_entry.go
index 4873c96..dcc47b0 100644
--- a/internal/pkg/onuadaptercore/onu_device_entry.go
+++ b/internal/pkg/onuadaptercore/onu_device_entry.go
@@ -189,6 +189,7 @@
firstSwImageMeID = 0
secondSwImageMeID = 1
)
+const onuDataMeID = 0
const onugMeID = 0
const onu2gMeID = 0
const ipHostConfigDataMeID = 1
@@ -247,8 +248,10 @@
mibDbClass func(context.Context) error
supportedFsms OmciDeviceFsms
devState OnuDeviceEvent
- // for mibUpload
- mibAuditDelay uint16
+ // Audit and MDS
+ mibAuditDelay uint16
+ mibLastDbSync uint32
+ mibDataSyncAdpt uint8
// for mibUpload
pMibUploadFsm *AdapterFsm //could be handled dynamically and more general as pAdapterFsm - perhaps later
@@ -306,6 +309,8 @@
go onuDeviceEntry.mibDbClass(ctx)
onuDeviceEntry.mibAuditDelay = onuDeviceEntry.supportedFsms["mib-synchronizer"].auditDelay
logger.Debugw(ctx, "MibAudit is set to", log.Fields{"Delay": onuDeviceEntry.mibAuditDelay})
+ onuDeviceEntry.mibLastDbSync = 0
+ onuDeviceEntry.mibDataSyncAdpt = 0
// Omci related Mib upload sync state machine
mibUploadChan := make(chan Message, 2048)
@@ -331,7 +336,10 @@
{Name: ulEvSuccess, Src: []string{ulStUploading}, Dst: ulStInSync},
{Name: ulEvSuccess, Src: []string{ulStExaminingMds}, Dst: ulStInSync},
- {Name: ulEvMismatch, Src: []string{ulStExaminingMds}, Dst: ulStResynchronizing},
+ // TODO: As long as mib-resynchronizing is not implemented, failed MDS-examination triggers
+ // mib-reset and new provisioning at this point
+ //{Name: ulEvMismatch, Src: []string{ulStExaminingMds}, Dst: ulStResynchronizing},
+ {Name: ulEvMismatch, Src: []string{ulStExaminingMds}, Dst: ulStResettingMib},
{Name: ulEvAuditMib, Src: []string{ulStInSync}, Dst: ulStAuditing},
@@ -754,3 +762,13 @@
func (oo *OnuDeviceEntry) unlockOnuKVStoreMutex() {
oo.onuKVStoreMutex.Unlock()
}
+
+func (oo *OnuDeviceEntry) incrementMibDataSync(ctx context.Context) {
+ if oo.mibDataSyncAdpt < 255 {
+ oo.mibDataSyncAdpt++
+ } else {
+ // per G.984 and G.988 overflow starts over at 1 given 0 is reserved for reset
+ oo.mibDataSyncAdpt = 1
+ }
+ logger.Debugf(ctx, "mibDataSync updated - mds: %d - device-id: %s", oo.mibDataSyncAdpt, oo.deviceID)
+}