> +/* Additional PHY statistics, not defined by IEEE */ > +struct ethtool_phy_stats { > + /* Basic packet / byte counters are meant for PHY drivers */ > + u64 rx_packets; > + u64 rx_bytes; > + u64 rx_error; /* TODO: we need to define here whether packet > + * counted here is also counted as rx_packets, > + * and whether it's passed to the MAC with some > + * error indication or MAC never sees it. > + */ > + u64 tx_packets; > + u64 tx_bytes; > + u64 tx_error; /* TODO: same as for rx */ > +}; I'm not sure these are actually useful. adin.c: { "total_frames_checked_count", 0x940A, 0x940B }, /* hi + lo */ { "length_error_frames_count", 0x940C }, { "alignment_error_frames_count", 0x940D }, { "symbol_error_count", 0x940E }, { "oversized_frames_count", 0x940F }, { "undersized_frames_count", 0x9410 }, { "odd_nibble_frames_count", 0x9411 }, { "odd_preamble_packet_count", 0x9412 }, { "dribble_bits_frames_count", 0x9413 }, { "false_carrier_events_count", 0x9414 }, bcm-phy-lib.c: { "phy_receive_errors", -1, MII_BRCM_CORE_BASE12, 0, 16 }, { "phy_serdes_ber_errors", -1, MII_BRCM_CORE_BASE13, 8, 8 }, { "phy_false_carrier_sense_errors", -1, MII_BRCM_CORE_BASE13, 0, 8 }, { "phy_local_rcvr_nok", -1, MII_BRCM_CORE_BASE14, 8, 8 }, { "phy_remote_rcv_nok", -1, MII_BRCM_CORE_BASE14, 0, 8 }, { "phy_lpi_count", MDIO_MMD_AN, BRCM_CL45VEN_EEE_LPI_CNT, 0, 16 }, icplus.c: { "phy_crc_errors", 1 }, { "phy_symbol_errors", 11, }, marvell.c: { "phy_receive_errors_copper", 0, 21, 16}, { "phy_idle_errors", 0, 10, 8 }, { "phy_receive_errors_fiber", 1, 21, 16}, micrel.c: { "phy_receive_errors", 21, 16}, { "phy_idle_errors", 10, 8 }, nxp-c45-tja11xx.c: { "phy_link_status_drop_cnt", { "phy_link_availability_drop_cnt", { "phy_link_loss_cnt", { "phy_link_failure_cnt", { "phy_symbol_error_cnt", { "rx_preamble_count", { "tx_preamble_count", { "rx_ipg_length", { "tx_ipg_length", { "phy_symbol_error_cnt_ext", { "tx_frames_xtd", { "tx_frames", { "rx_frames_xtd", { "rx_frames", { "tx_lost_frames_xtd", { "tx_lost_frames", { "rx_lost_frames_xtd", { "rx_lost_frames", smsc.c: { "phy_symbol_errors", 26, 16}, 802.3 does not define in PHY statistics, the same as it does not define any MAC statistics. As a result it is a wild west, vendors doing whatever they want. The exception is the Open Alliance, which have defined a number of different standards defining statistics which Automotive vendors can optionally follow. https://opensig.org/automotive-ethernet-specifications/ These could be defined as either one or three groups, with the expectation more will be added later. Andrew