@@ -101,6 +101,56 @@ enum {
RTNL_HSTAT_BIT(LINUX_CSUM_COMPLETE, 0),
RTNL_HSTAT_BIT(LINUX_CSUM_UNNECESSARY, 0),
RTNL_HSTAT_BIT(LINUX_SEGMENTATION_OFFLOAD_PKTS, 0),
+
+ /* IETF RFC2819 ("Remote Network Monitoring MIB") */
+ RTNL_HSTAT_BIT(RFC2819_etherStatsDropEvents, 1),
+ RTNL_HSTAT_BIT(RFC2819_etherStatsOctets, 1),
+ RTNL_HSTAT_BIT(RFC2819_etherStatsPkts, 1),
+ RTNL_HSTAT_BIT(RFC2819_etherStatsBroadcastPkts, 1),
+ RTNL_HSTAT_BIT(RFC2819_etherStatsMulticastPkts, 1),
+ RTNL_HSTAT_BIT(RFC2819_etherStatsCRCAlignErrors, 1),
+ RTNL_HSTAT_BIT(RFC2819_etherStatsUndersizePkts, 1),
+ RTNL_HSTAT_BIT(RFC2819_etherStatsOversizePkts, 1),
+ RTNL_HSTAT_BIT(RFC2819_etherStatsFragments, 1),
+ RTNL_HSTAT_BIT(RFC2819_etherStatsJabbers, 1),
+ RTNL_HSTAT_BIT(RFC2819_etherStatsCollisions, 1),
+ RTNL_HSTAT_BIT(RFC2819_etherStatsPkts64Octets, 1),
+ RTNL_HSTAT_BIT(RFC2819_etherStatsPkts65to127Octets, 1),
+ RTNL_HSTAT_BIT(RFC2819_etherStatsPkts128to255Octets, 1),
+ RTNL_HSTAT_BIT(RFC2819_etherStatsPkts256to511Octets, 1),
+ RTNL_HSTAT_BIT(RFC2819_etherStatsPkts512to1023Octets, 1),
+ RTNL_HSTAT_BIT(RFC2819_etherStatsPkts1024to1518Octets, 1),
+ /* Extensions to IETF RFC2819 */
+ RTNL_HSTAT_BIT(RFC2819EXT_etherStatsPkts1024toMaxOctets, 1),
+ RTNL_HSTAT_BIT(RFC2819EXT_etherStatsPkts1519toMaxOctets, 1),
+ RTNL_HSTAT_BIT(RFC2819EXT_etherStatsPkts1024to2047Octets, 1),
+ RTNL_HSTAT_BIT(RFC2819EXT_etherStatsPkts2048to4095Octets, 1),
+ RTNL_HSTAT_BIT(RFC2819EXT_etherStatsPkts4096to8191Octets, 1),
+ RTNL_HSTAT_BIT(RFC2819EXT_etherStatsPkts8192toMaxOctets, 1),
+
+ /* IETF RFC2863 ("The Interfaces Group MIB") */
+ RTNL_HSTAT_BIT(RFC2863_UcastPkts, 1),
+ RTNL_HSTAT_BIT(RFC2863_Errors, 1),
+ RTNL_HSTAT_BIT(RFC2863_Discards, 1),
+
+ /* IEEE 802.3 */
+ RTNL_HSTAT_BIT(IEEE8023_FramesOK, 2),
+ RTNL_HSTAT_BIT(IEEE8023_OctetsOK, 2),
+ RTNL_HSTAT_BIT(IEEE8023_MulticastFramesOK, 2),
+ RTNL_HSTAT_BIT(IEEE8023_BroadcastFramesOK, 2),
+ RTNL_HSTAT_BIT(IEEE8023_FrameCheckSequenceErrors, 2),
+ RTNL_HSTAT_BIT(IEEE8023_AlignmentErrors, 2),
+ RTNL_HSTAT_BIT(IEEE8023_InRangeLengthErrors, 2),
+ RTNL_HSTAT_BIT(IEEE8023_OutOfRangeLengthField, 2),
+ RTNL_HSTAT_BIT(IEEE8023_FrameTooLongErrors, 2),
+ RTNL_HSTAT_BIT(IEEE8023_CollisionFrames, 2),
+ RTNL_HSTAT_BIT(IEEE8023_SQETestErrors, 2),
+ RTNL_HSTAT_BIT(IEEE8023_SymbolErrorDuringCarrier, 2),
+ RTNL_HSTAT_BIT(IEEE8023_MACControlFrames, 2),
+ RTNL_HSTAT_BIT(IEEE8023_UnsupportedOpcodes, 2),
+ RTNL_HSTAT_BIT(IEEE8023_PAUSEMACCtrlFrames, 2),
+ RTNL_HSTAT_BIT(IEEE8023_FECCorrectedBlocks, 2),
+ RTNL_HSTAT_BIT(IEEE8023_FECUncorrectableBlocks, 2),
#undef RTNL_HSTAT_BIT
};
@@ -982,6 +982,56 @@ enum {
IFLA_HSTATS_STAT_LINUX_CSUM_UNNECESSARY,
IFLA_HSTATS_STAT_LINUX_SEGMENTATION_OFFLOAD_PKTS,
+ /* IETF RFC2819 ("Remote Network Monitoring MIB") */
+ IFLA_HSTATS_STAT_RFC2819_etherStatsDropEvents = 65, /* 1 */
+ IFLA_HSTATS_STAT_RFC2819_etherStatsOctets,
+ IFLA_HSTATS_STAT_RFC2819_etherStatsPkts,
+ IFLA_HSTATS_STAT_RFC2819_etherStatsBroadcastPkts,
+ IFLA_HSTATS_STAT_RFC2819_etherStatsMulticastPkts,
+ IFLA_HSTATS_STAT_RFC2819_etherStatsCRCAlignErrors,
+ IFLA_HSTATS_STAT_RFC2819_etherStatsUndersizePkts,
+ IFLA_HSTATS_STAT_RFC2819_etherStatsOversizePkts,
+ IFLA_HSTATS_STAT_RFC2819_etherStatsFragments,
+ IFLA_HSTATS_STAT_RFC2819_etherStatsJabbers,
+ IFLA_HSTATS_STAT_RFC2819_etherStatsCollisions,
+ IFLA_HSTATS_STAT_RFC2819_etherStatsPkts64Octets,
+ IFLA_HSTATS_STAT_RFC2819_etherStatsPkts65to127Octets,
+ IFLA_HSTATS_STAT_RFC2819_etherStatsPkts128to255Octets,
+ IFLA_HSTATS_STAT_RFC2819_etherStatsPkts256to511Octets,
+ IFLA_HSTATS_STAT_RFC2819_etherStatsPkts512to1023Octets,
+ IFLA_HSTATS_STAT_RFC2819_etherStatsPkts1024to1518Octets,
+ /* Extensions to IETF RFC2819 */
+ IFLA_HSTATS_STAT_RFC2819EXT_etherStatsPkts1024toMaxOctets,
+ IFLA_HSTATS_STAT_RFC2819EXT_etherStatsPkts1519toMaxOctets,
+ IFLA_HSTATS_STAT_RFC2819EXT_etherStatsPkts1024to2047Octets,
+ IFLA_HSTATS_STAT_RFC2819EXT_etherStatsPkts2048to4095Octets,
+ IFLA_HSTATS_STAT_RFC2819EXT_etherStatsPkts4096to8191Octets,
+ IFLA_HSTATS_STAT_RFC2819EXT_etherStatsPkts8192toMaxOctets,
+
+ /* IETF RFC2863 ("The Interfaces Group MIB") */
+ IFLA_HSTATS_STAT_RFC2863_UcastPkts = 97,
+ IFLA_HSTATS_STAT_RFC2863_Errors,
+ IFLA_HSTATS_STAT_RFC2863_Discards,
+
+ /* IEEE 802.3 */
+ IFLA_HSTATS_STAT_IEEE8023_FramesOK = 129, /* 2 */
+ IFLA_HSTATS_STAT_IEEE8023_OctetsOK,
+ IFLA_HSTATS_STAT_IEEE8023_MulticastFramesOK,
+ IFLA_HSTATS_STAT_IEEE8023_BroadcastFramesOK,
+ IFLA_HSTATS_STAT_IEEE8023_FrameCheckSequenceErrors,
+ IFLA_HSTATS_STAT_IEEE8023_AlignmentErrors,
+ IFLA_HSTATS_STAT_IEEE8023_InRangeLengthErrors,
+ IFLA_HSTATS_STAT_IEEE8023_OutOfRangeLengthField,
+ IFLA_HSTATS_STAT_IEEE8023_FrameTooLongErrors,
+ IFLA_HSTATS_STAT_IEEE8023_CollisionFrames,
+ IFLA_HSTATS_STAT_IEEE8023_SQETestErrors,
+ IFLA_HSTATS_STAT_IEEE8023_SymbolErrorDuringCarrier,
+ IFLA_HSTATS_STAT_IEEE8023_MACControlFrames,
+ IFLA_HSTATS_STAT_IEEE8023_UnsupportedOpcodes,
+ IFLA_HSTATS_STAT_IEEE8023_PAUSEMACCtrlFrames,
+ IFLA_HSTATS_STAT_IEEE8023_FECCorrectedBlocks,
+ IFLA_HSTATS_STAT_IEEE8023_FECUncorrectableBlocks,
+
__IFLA_HSTATS_STAT_MAX,
};
#define IFLA_HSTATS_STAT_MAX (__IFLA_HSTATS_STAT_MAX - 1)
Add IDs for standard-based counters commonly maintained by ethernet hardware (IEEE 802.3, IETF RFC2819, IETF RFC2863). The lists are not intended to be complete, reserve some ID space for adding more stats in the middle if they are found useful later. Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com> --- include/net/hstats.h | 50 ++++++++++++++++++++++++++++++++++++ include/uapi/linux/if_link.h | 50 ++++++++++++++++++++++++++++++++++++ 2 files changed, 100 insertions(+)