[VOL-3085]Implement UpdatePmConfig api for voltha-openolt-adapter
Change-Id: Id1f2ae30d7f0d8f4aa4516b96809cf4a1e116dd1
diff --git a/internal/pkg/core/statsmanager.go b/internal/pkg/core/statsmanager.go
index 3512f89..c7bd546 100755
--- a/internal/pkg/core/statsmanager.go
+++ b/internal/pkg/core/statsmanager.go
@@ -285,32 +285,40 @@
mutex.Lock()
cm := StatMgr.Device.portStats.NorthBoundPort[nniID]
mutex.Unlock()
- metricName := StatMgr.Device.metrics.GetSubscriberMetrics()
+ metricNames := StatMgr.Device.metrics.GetSubscriberMetrics()
- if metricName != nil && len(metricName) > 0 {
- for mName := range metricName {
- switch mName {
- case "rx_bytes":
- nnival["RxBytes"] = float32(cm.RxBytes)
- case "rx_packets":
- nnival["RxPackets"] = float32(cm.RxPackets)
- case "rx_ucast_packets":
- nnival["RxUcastPackets"] = float32(cm.RxUcastPackets)
- case "rx_mcast_packets":
- nnival["RxMcastPackets"] = float32(cm.RxMcastPackets)
- case "rx_bcast_packets":
- nnival["RxBcastPackets"] = float32(cm.RxBcastPackets)
- case "tx_bytes":
- nnival["TxBytes"] = float32(cm.TxBytes)
- case "tx_packets":
- nnival["TxPackets"] = float32(cm.TxPackets)
- case "tx_mcast_packets":
- nnival["TxMcastPackets"] = float32(cm.TxMcastPackets)
- case "tx_bcast_packets":
- nnival["TxBcastPackets"] = float32(cm.TxBcastPackets)
+ var metrics []string
+
+ if metricNames != nil && len(metricNames) > 0 {
+ for metric := range metricNames {
+ if metricNames[metric].Enabled {
+ metrics = append(metrics, metric)
}
}
}
+
+ for _, mName := range metrics {
+ switch mName {
+ case "rx_bytes":
+ nnival["RxBytes"] = float32(cm.RxBytes)
+ case "rx_packets":
+ nnival["RxPackets"] = float32(cm.RxPackets)
+ case "rx_ucast_packets":
+ nnival["RxUcastPackets"] = float32(cm.RxUcastPackets)
+ case "rx_mcast_packets":
+ nnival["RxMcastPackets"] = float32(cm.RxMcastPackets)
+ case "rx_bcast_packets":
+ nnival["RxBcastPackets"] = float32(cm.RxBcastPackets)
+ case "tx_bytes":
+ nnival["TxBytes"] = float32(cm.TxBytes)
+ case "tx_packets":
+ nnival["TxPackets"] = float32(cm.TxPackets)
+ case "tx_mcast_packets":
+ nnival["TxMcastPackets"] = float32(cm.TxMcastPackets)
+ case "tx_bcast_packets":
+ nnival["TxBcastPackets"] = float32(cm.TxBcastPackets)
+ }
+ }
return nnival
}
@@ -321,39 +329,41 @@
mutex.Lock()
cm := StatMgr.Device.portStats.SouthBoundPort[pID]
mutex.Unlock()
- metricName := StatMgr.Device.metrics.GetSubscriberMetrics()
+ metricNames := StatMgr.Device.metrics.GetSubscriberMetrics()
- if metricName != nil && len(metricName) > 0 {
- for mName := range metricName {
- switch mName {
- case "rx_bytes":
- ponval["RxBytes"] = float32(cm.RxBytes)
- case "rx_packets":
- ponval["RxPackets"] = float32(cm.RxPackets)
- // these are not supported in OpenOlt Agent now
- // will return zero until supported
- case "rx_ucast_packets":
- ponval["RxUcastPackets"] = float32(cm.RxUcastPackets)
- case "rx_mcast_packets":
- ponval["RxMcastPackets"] = float32(cm.RxMcastPackets)
- case "rx_bcast_packets":
- ponval["RxBcastPackets"] = float32(cm.RxBcastPackets)
- // End will return zero until supported
- case "tx_bytes":
- ponval["TxBytes"] = float32(cm.TxBytes)
- case "tx_packets":
- ponval["TxPackets"] = float32(cm.TxPackets)
- // these are not supported in OpenOlt Agent now
- // will return zero until supported
- case "tx_ucast_packets":
- ponval["TxUcastPackets"] = float32(cm.TxUcastPackets)
- case "tx_mcast_packets":
- ponval["TxMcastPackets"] = float32(cm.TxMcastPackets)
- case "tx_bcast_packets":
- ponval["TxBcastPackets"] = float32(cm.TxBcastPackets)
+ var metrics []string
+
+ if metricNames != nil && len(metricNames) > 0 {
+ for metric := range metricNames {
+ if metricNames[metric].Enabled {
+ metrics = append(metrics, metric)
}
}
}
+
+ for _, mName := range metrics {
+ switch mName {
+ case "rx_bytes":
+ ponval["RxBytes"] = float32(cm.RxBytes)
+ case "rx_packets":
+ ponval["RxPackets"] = float32(cm.RxPackets)
+ case "rx_ucast_packets":
+ ponval["RxUcastPackets"] = float32(cm.RxUcastPackets)
+ case "rx_mcast_packets":
+ ponval["RxMcastPackets"] = float32(cm.RxMcastPackets)
+ case "rx_bcast_packets":
+ ponval["RxBcastPackets"] = float32(cm.RxBcastPackets)
+ case "tx_bytes":
+ ponval["TxBytes"] = float32(cm.TxBytes)
+ case "tx_packets":
+ ponval["TxPackets"] = float32(cm.TxPackets)
+ case "tx_mcast_packets":
+ ponval["TxMcastPackets"] = float32(cm.TxMcastPackets)
+ case "tx_bcast_packets":
+ ponval["TxBcastPackets"] = float32(cm.TxBcastPackets)
+ }
+ }
+
return ponval
}