diff --git a/econet/ecnt_prvt.c b/econet/ecnt_prvt.c index 5e21ab9a1119546587f76d2d66fcef447d2f4920..b754f9ac3c18ce587c755cd9c72f5bf6f3533370 100644 --- a/econet/ecnt_prvt.c +++ b/econet/ecnt_prvt.c @@ -170,7 +170,7 @@ static void fill_stats_tx_from_gdma(struct eth_stats *stats, struct eth_rmon_sta } static void fill_stats_rx_from_gdma(struct eth_stats *stats, struct eth_rmon_stats *rstats, - ECNT_FEMGR_GDMA2_RX_STATISTICS *rx_stats) + ECNT_FEMGR_GDMA2_RX_STATISTICS *rx_stats, bool oversize_is_ok) { if (rx_stats == NULL) return; @@ -178,7 +178,7 @@ static void fill_stats_rx_from_gdma(struct eth_stats *stats, struct eth_rmon_sta if (stats != NULL) { stats->rx_bytes = rx_stats->frame_len; stats->rx_packets = rx_stats->frame_cnt; - stats->rx_errors = rx_stats->crc + rx_stats->jabber + rx_stats->fragment + rx_stats->undersize + rx_stats->oversize; + stats->rx_errors = rx_stats->crc + rx_stats->jabber + rx_stats->fragment + rx_stats->undersize + (oversize_is_ok == false ? rx_stats->oversize : 0); stats->rx_ucast_packets = rx_stats->frame_cnt - (rx_stats->broadcast + rx_stats->multicast); stats->rx_bcast_packets = rx_stats->broadcast; stats->rx_mcast_packets = rx_stats->multicast; @@ -246,7 +246,7 @@ int hsgmii_lan_prvt_get_port_statistics(char *ifname, struct eth_stats *stats, s fill_stats_tx_from_gdma(stats, rstats, &tx_stats); } if (!fe_lib_get_hsgmii_rx_statistics(&rx_stats, hsgmii_index)) { - fill_stats_rx_from_gdma(stats, rstats, &rx_stats); + fill_stats_rx_from_gdma(stats, rstats, &rx_stats, false); } if (rstats != NULL) { @@ -286,7 +286,7 @@ int ae_wan_prvt_get_port_statistics(struct eth_stats *stats, struct eth_rmon_sta fill_stats_tx_from_gdma(stats, rstats, &tx_stats); } if (!fe_lib_get_hsgmii_rx_statistics(&rx_stats, hsgmii_index)) { - fill_stats_rx_from_gdma(stats, rstats, &rx_stats); + fill_stats_rx_from_gdma(stats, rstats, &rx_stats, false); } if (rstats != NULL) { @@ -299,7 +299,7 @@ int ae_wan_prvt_get_port_statistics(struct eth_stats *stats, struct eth_rmon_sta } if (!fe_lib_get_gdma2_rx_statistics(&rx_stats)) { - fill_stats_rx_from_gdma(stats, rstats, &rx_stats); + fill_stats_rx_from_gdma(stats, rstats, &rx_stats, false); } if (rstats != NULL) { @@ -327,7 +327,7 @@ int pon_prvt_get_port_statistics(struct eth_stats *stats, struct eth_rmon_stats } if (!fe_lib_get_gdma2_rx_statistics(&rx_stats)) { - fill_stats_rx_from_gdma(stats, rstats, &rx_stats); + fill_stats_rx_from_gdma(stats, rstats, &rx_stats, true); } return 0;