VOL-3847: Support FEC Performance Monitoring History Data L2 PM Counter
VOL-3848: Support GEM Port Network Ctp Performance Monitoring History Data L2 PM Counter
- also re-org code to group common functionality into utility functions
Change-Id: I087125ed4992415dac7b1a6cf84bfe9c1177b469
diff --git a/internal/pkg/onuadaptercore/onu_uni_tp.go b/internal/pkg/onuadaptercore/onu_uni_tp.go
index 6e91450..0ab368e 100644
--- a/internal/pkg/onuadaptercore/onu_uni_tp.go
+++ b/internal/pkg/onuadaptercore/onu_uni_tp.go
@@ -104,7 +104,7 @@
mapPonAniConfig map[uniTP]*tcontGemList //per UNI: use pointer values to ease assignments to the map
pAniConfigFsm map[uniTP]*uniPonAniConfigFsm
procResult map[uniTP]error //error indication of processing
- mutexTPState sync.Mutex
+ mutexTPState sync.RWMutex
tpProfileExists map[uniTP]bool
mapRemoveGemEntry map[uniTP]*gemPortParamStruct //per UNI: pointer to GemEntry to be removed
}
@@ -876,3 +876,17 @@
} //else: the state is just ignored (does not exist)
return gemPortIds
}
+
+func (onuTP *onuUniTechProf) GetAllBidirectionalGemPortIDsForOnu() []uint16 {
+ var gemPortInstIDs []uint16
+ onuTP.mutexTPState.RLock()
+ defer onuTP.mutexTPState.RUnlock()
+ for _, tcontGemList := range onuTP.mapPonAniConfig {
+ for gemPortID, gemPortData := range tcontGemList.mapGemPortParams {
+ if gemPortData != nil && !gemPortData.isMulticast { // only if not multicast gem port
+ gemPortInstIDs = append(gemPortInstIDs, gemPortID)
+ }
+ }
+ }
+ return gemPortInstIDs
+}