From e917cdcfa0beb15a452f204521bea3d3571190b3 Mon Sep 17 00:00:00 2001 From: Markus Gothe <markus.gothe@genexis.eu> Date: Sat, 1 Feb 2025 13:54:07 +0100 Subject: [PATCH] econet: PON allows oversized packets. --- econet/ecnt_prvt.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/econet/ecnt_prvt.c b/econet/ecnt_prvt.c index 5e21ab9..b754f9a 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; -- GitLab