Most of the MAC statistics are included in struct rtnl_link_stats64, but some fields are aggregated. Besides it's good to expose these clearly hardware stats separately.
Showing the changes to include/uapi (2 of 6 files). Show all
Unified · Split
| @@ -671,6 +671,7 @@ enum ethtool_link_ext_substate_cable_issue { · 670 unmodified lines | ||
| 671 | 671 | * @ETH_SS_UDP_TUNNEL_TYPES: UDP tunnel types |
| 672 | 672 | * @ETH_SS_STATS_STD: standardized stats |
| 673 | 673 | * @ETH_SS_STATS_ETH_PHY: names of IEEE 802.3 PHY statistics |
| 674 | + * @ETH_SS_STATS_ETH_MAC: names of IEEE 802.3 MAC statistics | |
| 674 | 675 | * |
| 675 | 676 | * @ETH_SS_COUNT: number of defined string sets |
| 676 | 677 | */ |
| @@ -693,6 +694,7 @@ enum ethtool_stringset { · 16 unmodified lines | ||
| 693 | 694 | ETH_SS_UDP_TUNNEL_TYPES, |
| 694 | 695 | ETH_SS_STATS_STD, |
| 695 | 696 | ETH_SS_STATS_ETH_PHY, |
| 697 | + ETH_SS_STATS_ETH_MAC, | |
| 696 | 698 | |
| 697 | 699 | /* add new constants above here */ |
| 698 | 700 | ETH_SS_COUNT |
| @@ -698,6 +698,7 @@ enum { · 697 unmodified lines | ||
| 698 | 698 | |
| 699 | 699 | enum { |
| 700 | 700 | ETHTOOL_STATS_ETH_PHY, |
| 701 | + ETHTOOL_STATS_ETH_MAC, | |
| 701 | 702 | |
| 702 | 703 | /* add new constants above here */ |
| 703 | 704 | __ETHTOOL_STATS_CNT |
| @@ -726,6 +727,58 @@ enum { · 22 unmodified lines | ||
| 726 | 727 | ETHTOOL_A_STATS_ETH_PHY_MAX = (__ETHTOOL_A_STATS_ETH_PHY_CNT - 1) |
| 727 | 728 | }; |
| 728 | 729 | |
| 730 | +enum { | |
| 731 | + /* 30.3.1.1.2 aFramesTransmittedOK */ | |
| 732 | + ETHTOOL_A_STATS_ETH_MAC_2_TX_PKT, | |
| 733 | + /* 30.3.1.1.3 aSingleCollisionFrames */ | |
| 734 | + ETHTOOL_A_STATS_ETH_MAC_3_SINGLE_COL, | |
| 735 | + /* 30.3.1.1.4 aMultipleCollisionFrames */ | |
| 736 | + ETHTOOL_A_STATS_ETH_MAC_4_MULTI_COL, | |
| 737 | + /* 30.3.1.1.5 aFramesReceivedOK */ | |
| 738 | + ETHTOOL_A_STATS_ETH_MAC_5_RX_PKT, | |
| 739 | + /* 30.3.1.1.6 aFrameCheckSequenceErrors */ | |
| 740 | + ETHTOOL_A_STATS_ETH_MAC_6_FCS_ERR, | |
| 741 | + /* 30.3.1.1.7 aAlignmentErrors */ | |
| 742 | + ETHTOOL_A_STATS_ETH_MAC_7_ALIGN_ERR, | |
| 743 | + /* 30.3.1.1.8 aOctetsTransmittedOK */ | |
| 744 | + ETHTOOL_A_STATS_ETH_MAC_8_TX_BYTES, | |
| 745 | + /* 30.3.1.1.9 aFramesWithDeferredXmissions */ | |
| 746 | + ETHTOOL_A_STATS_ETH_MAC_9_TX_DEFER, | |
| 747 | + /* 30.3.1.1.10 aLateCollisions */ | |
| 748 | + ETHTOOL_A_STATS_ETH_MAC_10_LATE_COL, | |
| 749 | + /* 30.3.1.1.11 aFramesAbortedDueToXSColls */ | |
| 750 | + ETHTOOL_A_STATS_ETH_MAC_11_XS_COL, | |
| 751 | + /* 30.3.1.1.12 aFramesLostDueToIntMACXmitError */ | |
| 752 | + ETHTOOL_A_STATS_ETH_MAC_12_TX_INT_ERR, | |
| 753 | + /* 30.3.1.1.13 aCarrierSenseErrors */ | |
| 754 | + ETHTOOL_A_STATS_ETH_MAC_13_CS_ERR, | |
| 755 | + /* 30.3.1.1.14 aOctetsReceivedOK */ | |
| 756 | + ETHTOOL_A_STATS_ETH_MAC_14_RX_BYTES, | |
| 757 | + /* 30.3.1.1.15 aFramesLostDueToIntMACRcvError */ | |
| 758 | + ETHTOOL_A_STATS_ETH_MAC_15_RX_INT_ERR, | |
| 759 | + | |
| 760 | + /* 30.3.1.1.18 aMulticastFramesXmittedOK */ | |
| 761 | + ETHTOOL_A_STATS_ETH_MAC_18_TX_MCAST, | |
| 762 | + /* 30.3.1.1.19 aBroadcastFramesXmittedOK */ | |
| 763 | + ETHTOOL_A_STATS_ETH_MAC_19_TX_BCAST, | |
| 764 | + /* 30.3.1.1.20 aFramesWithExcessiveDeferral */ | |
| 765 | + ETHTOOL_A_STATS_ETH_MAC_20_XS_DEFER, | |
| 766 | + /* 30.3.1.1.21 aMulticastFramesReceivedOK */ | |
| 767 | + ETHTOOL_A_STATS_ETH_MAC_21_RX_MCAST, | |
| 768 | + /* 30.3.1.1.22 aBroadcastFramesReceivedOK */ | |
| 769 | + ETHTOOL_A_STATS_ETH_MAC_22_RX_BCAST, | |
| 770 | + /* 30.3.1.1.23 aInRangeLengthErrors */ | |
| 771 | + ETHTOOL_A_STATS_ETH_MAC_23_IR_LEN_ERR, | |
| 772 | + /* 30.3.1.1.24 aOutOfRangeLengthField */ | |
| 773 | + ETHTOOL_A_STATS_ETH_MAC_24_OOR_LEN, | |
| 774 | + /* 30.3.1.1.25 aFrameTooLongErrors */ | |
| 775 | + ETHTOOL_A_STATS_ETH_MAC_25_TOO_LONG_ERR, | |
| 776 | + | |
| 777 | + /* add new constants above here */ | |
| 778 | + __ETHTOOL_A_STATS_ETH_MAC_CNT, | |
| 779 | + ETHTOOL_A_STATS_ETH_MAC_MAX = (__ETHTOOL_A_STATS_ETH_MAC_CNT - 1) | |
| 780 | +}; | |
| 781 | + | |
| 729 | 782 | /* generic netlink info */ |
| 730 | 783 | #define ETHTOOL_GENL_NAME "ethtool" |
| 731 | 784 | #define ETHTOOL_GENL_VERSION 1 |