diff --git a/internal/pkg/core/statsmanager.go b/internal/pkg/core/statsmanager.go
index ec3487a..2b91709 100644
--- a/internal/pkg/core/statsmanager.go
+++ b/internal/pkg/core/statsmanager.go
@@ -21,6 +21,7 @@
 	"container/list"
 	"context"
 	"fmt"
+	"math"
 	"sync"
 	"time"
 
@@ -208,18 +209,18 @@
 	Name string
 
 	RxBytes          uint64
-	RxPackets        uint64
-	RxUcastPackets   uint64
-	RxMcastPackets   uint64
-	RxBcastPackets   uint64
-	RxErrorPackets   uint64
+	RxFrames         uint64
+	RxUcastFrames    uint64
+	RxMcastFrames    uint64
+	RxBcastFrames    uint64
+	RxErrorFrames    uint64
 	RxPacketsDropped uint64
 	TxBytes          uint64
-	TxPackets        uint64
-	TxUcastPackets   uint64
-	TxMcastPackets   uint64
-	TxBcastPackets   uint64
-	TxErrorPackets   uint64
+	TxFrames         uint64
+	TxUcastFrames    uint64
+	TxMcastFrames    uint64
+	TxBcastFrames    uint64
+	TxErrorFrames    uint64
 	TxDroppedTotal   uint64
 	RxCrcErrors      uint64
 	BipErrors        uint64
@@ -243,17 +244,17 @@
 	NNI.IntfID = IntfID
 
 	NNI.RxBytes = 0
-	NNI.RxPackets = 0
-	NNI.RxUcastPackets = 0
-	NNI.RxMcastPackets = 0
-	NNI.RxBcastPackets = 0
-	NNI.RxErrorPackets = 0
+	NNI.RxFrames = 0
+	NNI.RxUcastFrames = 0
+	NNI.RxMcastFrames = 0
+	NNI.RxBcastFrames = 0
+	NNI.RxErrorFrames = 0
 	NNI.TxBytes = 0
-	NNI.TxPackets = 0
-	NNI.TxUcastPackets = 0
-	NNI.TxMcastPackets = 0
-	NNI.TxBcastPackets = 0
-	NNI.TxErrorPackets = 0
+	NNI.TxFrames = 0
+	NNI.TxUcastFrames = 0
+	NNI.TxMcastFrames = 0
+	NNI.TxBcastFrames = 0
+	NNI.TxErrorFrames = 0
 	NNI.RxCrcErrors = 0
 	NNI.BipErrors = 0
 
@@ -399,30 +400,30 @@
 			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 "rx_error_packets":
-				nnival["RxErrorPackets"] = float32(cm.RxErrorPackets)
+			case "rx_frames":
+				nnival["RxFrames"] = float32(cm.RxFrames)
+			case "rx_ucast_frames":
+				nnival["RxUcastFrames"] = float32(cm.RxUcastFrames)
+			case "rx_mcast_frames":
+				nnival["RxMcastFrames"] = float32(cm.RxMcastFrames)
+			case "rx_bcast_frames":
+				nnival["RxBcastFrames"] = float32(cm.RxBcastFrames)
+			case "rx_error_frames":
+				nnival["RxErrorFrames"] = float32(cm.RxErrorFrames)
 			case "rx_crc_errors":
 				nnival["RxCrcErrors"] = float32(cm.RxCrcErrors)
 			case "rx_packets_dropped":
 				nnival["RxPacketsDropped"] = float32(cm.RxPacketsDropped)
 			case "tx_bytes":
 				nnival["TxBytes"] = float32(cm.TxBytes)
-			case "tx_packets":
-				nnival["TxPackets"] = float32(cm.TxPackets)
-			case "tx_ucast_packets":
-				nnival["TxUcastPackets"] = float32(cm.TxUcastPackets)
-			case "tx_mcast_packets":
-				nnival["TxMcastPackets"] = float32(cm.TxMcastPackets)
-			case "tx_bcast_packets":
-				nnival["TxBcastPackets"] = float32(cm.TxBcastPackets)
+			case "tx_frames":
+				nnival["TxFrames"] = float32(cm.TxFrames)
+			case "tx_ucast_frames":
+				nnival["TxUcastFrames"] = float32(cm.TxUcastFrames)
+			case "tx_mcast_frames":
+				nnival["TxMcastFrames"] = float32(cm.TxMcastFrames)
+			case "tx_bcast_frames":
+				nnival["TxBcastFrames"] = float32(cm.TxBcastFrames)
 			case "tx_dropped_total":
 				nnival["TxDroppedTotal"] = float32(cm.TxDroppedTotal)
 			}
@@ -675,32 +676,24 @@
 	// var err error
 	IntfID := PortStats.IntfId
 
-	if (plt.IntfIDToPortNo(1, voltha.Port_ETHERNET_NNI) < IntfID) &&
-		(IntfID < plt.IntfIDToPortNo(4, voltha.Port_ETHERNET_NNI)) {
-		/*
-		   for this release we are only interested in the first NNI for
-		   Northbound.
-		   we are not using the other 3
-		*/
-		return
-	} else if plt.IntfIDToPortNo(0, voltha.Port_ETHERNET_NNI) == IntfID {
+	if (IntfID & plt.IntfIDToPortNo(0, voltha.Port_ETHERNET_NNI)) != 0 {
 		var portNNIStat NniPort
 		portNNIStat.IntfID = IntfID
 		portNNIStat.PortNum = uint32(0)
 		portNNIStat.RxBytes = PortStats.RxBytes
-		portNNIStat.RxPackets = PortStats.RxPackets
-		portNNIStat.RxUcastPackets = PortStats.RxUcastPackets
-		portNNIStat.RxMcastPackets = PortStats.RxMcastPackets
-		portNNIStat.RxBcastPackets = PortStats.RxBcastPackets
+		portNNIStat.RxFrames = selectCounter(PortStats.RxFrames, PortStats.RxPackets)
+		portNNIStat.RxUcastFrames = selectCounter(PortStats.RxUcastFrames, PortStats.RxUcastPackets)
+		portNNIStat.RxMcastFrames = selectCounter(PortStats.RxMcastFrames, PortStats.RxMcastPackets)
+		portNNIStat.RxBcastFrames = selectCounter(PortStats.RxBcastFrames, PortStats.RxBcastPackets)
 		portNNIStat.RxCrcErrors = PortStats.RxCrcErrors
-		portNNIStat.RxErrorPackets = PortStats.RxErrorPackets
+		portNNIStat.RxErrorFrames = selectCounter(PortStats.RxErrorFrames, PortStats.RxErrorPackets)
 		portNNIStat.RxPacketsDropped = PortStats.RxPacketsDropped
 		portNNIStat.TxBytes = PortStats.TxBytes
-		portNNIStat.TxPackets = PortStats.TxPackets
-		portNNIStat.TxUcastPackets = PortStats.TxUcastPackets
-		portNNIStat.TxMcastPackets = PortStats.TxMcastPackets
-		portNNIStat.TxBcastPackets = PortStats.TxBcastPackets
-		portNNIStat.TxErrorPackets = PortStats.TxErrorPackets
+		portNNIStat.TxFrames = selectCounter(PortStats.TxFrames, PortStats.TxPackets)
+		portNNIStat.TxUcastFrames = selectCounter(PortStats.TxUcastFrames, PortStats.TxUcastPackets)
+		portNNIStat.TxMcastFrames = selectCounter(PortStats.TxMcastFrames, PortStats.TxMcastPackets)
+		portNNIStat.TxBcastFrames = selectCounter(PortStats.TxBcastFrames, PortStats.TxBcastPackets)
+		portNNIStat.TxErrorFrames = selectCounter(PortStats.TxErrorFrames, PortStats.TxErrorPackets)
 		portNNIStat.TxDroppedTotal = PortStats.TxDroppedTotal
 		mutex.Lock()
 		StatMgr.NorthBoundPort[0] = &portNNIStat
@@ -915,3 +908,17 @@
 	singleValResp.Response.Status = extension.GetValueResponse_OK
 	logger.Debugw(ctx, "updateGetOnuPonCountersResponse", log.Fields{"resp": singleValResp})
 }
+
+func selectCounter(primary, secondary uint64) uint64 {
+	if isValidCounter(primary) {
+		return primary
+	}
+	if isValidCounter(secondary) {
+		return secondary
+	}
+	return 0
+}
+
+func isValidCounter(metric uint64) bool {
+	return metric != 0 && metric != math.MaxUint64
+}
diff --git a/internal/pkg/core/statsmanager_test.go b/internal/pkg/core/statsmanager_test.go
index fe845d6..e5d686d 100644
--- a/internal/pkg/core/statsmanager_test.go
+++ b/internal/pkg/core/statsmanager_test.go
@@ -100,24 +100,24 @@
 	}
 	nnimap := map[uint32]*NniPort{}
 	nnimap[0] = &NniPort{
-		PortNum:        0,
-		Name:           "olt1",
-		LogicalPort:    0,
-		IntfID:         0,
-		RxBytes:        0,
-		RxPackets:      0,
-		RxUcastPackets: 0,
-		RxMcastPackets: uint64(1111),
-		RxBcastPackets: 0,
-		RxErrorPackets: 0,
-		TxBytes:        0,
-		TxPackets:      0,
-		TxUcastPackets: 0,
-		TxMcastPackets: 0,
-		TxBcastPackets: 0,
-		TxErrorPackets: 0,
-		RxCrcErrors:    0,
-		BipErrors:      0,
+		PortNum:       0,
+		Name:          "olt1",
+		LogicalPort:   0,
+		IntfID:        0,
+		RxBytes:       0,
+		RxFrames:      0,
+		RxUcastFrames: 0,
+		RxMcastFrames: uint64(1111),
+		RxBcastFrames: 0,
+		RxErrorFrames: 0,
+		TxBytes:       0,
+		TxFrames:      0,
+		TxUcastFrames: 0,
+		TxMcastFrames: 0,
+		TxBcastFrames: 0,
+		TxErrorFrames: 0,
+		RxCrcErrors:   0,
+		BipErrors:     0,
 	}
 	pval := make(map[string]float32)
 	pval["rx_bytes"] = float32(111)
