[VOL-5440] - Check for port stats map validity

Change-Id: I135606a95597abcd078ea0bbbbc8952c6fa81cee
Signed-off-by: Sridhar Ravindra <sridhar.ravindra@radisys.com>
diff --git a/internal/pkg/core/statsmanager.go b/internal/pkg/core/statsmanager.go
index d978ee9..1169904 100644
--- a/internal/pkg/core/statsmanager.go
+++ b/internal/pkg/core/statsmanager.go
@@ -388,26 +388,28 @@
 		}
 	}
 
-	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)
+	if cm != nil {
+		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
@@ -428,26 +430,28 @@
 		}
 	}
 
-	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)
+	if cm != nil {
+		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)
+			}
 		}
 	}