@@ -1029,14 +1029,34 @@ struct bcmgenet_stats {
1029
1029
tx_rings[num].stats64, packets), \
1030
1030
STAT_GENET_SOFT_MIB64("txq" __stringify(num) "_bytes", \
1031
1031
tx_rings[num].stats64, bytes), \
1032
+ STAT_GENET_SOFT_MIB64("txq" __stringify(num) "_errors", \
1033
+ tx_rings[num].stats64, errors), \
1034
+ STAT_GENET_SOFT_MIB64("txq" __stringify(num) "_dropped", \
1035
+ tx_rings[num].stats64, dropped), \
1032
1036
STAT_GENET_SOFT_MIB64("rxq" __stringify(num) "_bytes", \
1033
1037
rx_rings[num].stats64, bytes), \
1034
1038
STAT_GENET_SOFT_MIB64("rxq" __stringify(num) "_packets", \
1035
1039
rx_rings[num].stats64, packets), \
1036
1040
STAT_GENET_SOFT_MIB64("rxq" __stringify(num) "_errors", \
1037
1041
rx_rings[num].stats64, errors), \
1038
1042
STAT_GENET_SOFT_MIB64("rxq" __stringify(num) "_dropped", \
1039
- rx_rings[num].stats64, dropped)
1043
+ rx_rings[num].stats64, dropped), \
1044
+ STAT_GENET_SOFT_MIB64("rxq" __stringify(num) "_multicast", \
1045
+ rx_rings[num].stats64, multicast), \
1046
+ STAT_GENET_SOFT_MIB64("rxq" __stringify(num) "_missed", \
1047
+ rx_rings[num].stats64, missed), \
1048
+ STAT_GENET_SOFT_MIB64("rxq" __stringify(num) "_length_errors", \
1049
+ rx_rings[num].stats64, length_errors), \
1050
+ STAT_GENET_SOFT_MIB64("rxq" __stringify(num) "_over_errors", \
1051
+ rx_rings[num].stats64, over_errors), \
1052
+ STAT_GENET_SOFT_MIB64("rxq" __stringify(num) "_crc_errors", \
1053
+ rx_rings[num].stats64, crc_errors), \
1054
+ STAT_GENET_SOFT_MIB64("rxq" __stringify(num) "_frame_errors", \
1055
+ rx_rings[num].stats64, frame_errors), \
1056
+ STAT_GENET_SOFT_MIB64("rxq" __stringify(num) "_fragmented_errors", \
1057
+ rx_rings[num].stats64, fragmented_errors), \
1058
+ STAT_GENET_SOFT_MIB64("rxq" __stringify(num) "_broadcast", \
1059
+ rx_rings[num].stats64, broadcast)
1040
1060
1041
1061
/* There is a 0xC gap between the end of RX and beginning of TX stats and then
1042
1062
* between the end of TX stats and the beginning of the RX RUNT
@@ -1057,6 +1077,11 @@ static const struct bcmgenet_stats bcmgenet_gstrings_stats[] = {
1057
1077
STAT_RTNL (rx_dropped ),
1058
1078
STAT_RTNL (tx_dropped ),
1059
1079
STAT_RTNL (multicast ),
1080
+ STAT_RTNL (rx_missed_errors ),
1081
+ STAT_RTNL (rx_length_errors ),
1082
+ STAT_RTNL (rx_over_errors ),
1083
+ STAT_RTNL (rx_crc_errors ),
1084
+ STAT_RTNL (rx_frame_errors ),
1060
1085
/* UniMAC RSV counters */
1061
1086
STAT_GENET_MIB_RX ("rx_64_octets" , mib .rx .pkt_cnt .cnt_64 ),
1062
1087
STAT_GENET_MIB_RX ("rx_65_127_oct" , mib .rx .pkt_cnt .cnt_127 ),
@@ -2412,6 +2437,8 @@ static unsigned int bcmgenet_desc_rx(struct bcmgenet_rx_ring *ring,
2412
2437
u64_stats_add (& stats -> bytes , len );
2413
2438
if (dma_flag & DMA_RX_MULT )
2414
2439
u64_stats_inc (& stats -> multicast );
2440
+ else if (dma_flag & DMA_RX_BRDCAST )
2441
+ u64_stats_inc (& stats -> broadcast );
2415
2442
u64_stats_update_end (& stats -> syncp );
2416
2443
2417
2444
/* Notify kernel */
0 commit comments