From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.0 required=3.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 14D83C282CD for ; Mon, 28 Jan 2019 23:46:14 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id CE21A2171F for ; Mon, 28 Jan 2019 23:46:13 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=netronome-com.20150623.gappssmtp.com header.i=@netronome-com.20150623.gappssmtp.com header.b="R9i3zrtc" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727520AbfA1XqN (ORCPT ); Mon, 28 Jan 2019 18:46:13 -0500 Received: from mail-qt1-f196.google.com ([209.85.160.196]:38110 "EHLO mail-qt1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727495AbfA1XqL (ORCPT ); Mon, 28 Jan 2019 18:46:11 -0500 Received: by mail-qt1-f196.google.com with SMTP id p17so20396580qtl.5 for ; Mon, 28 Jan 2019 15:46:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netronome-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=voXTLd+THOijaHSEH5sHow08f3veYBR93jOHr+H3FOk=; b=R9i3zrtcoRnKLjEVTrkIMiXWZyrOg1NvN5nP1qQ9cqzG9tiOWK38R4md5Sc6EJg0Vb e23x25AcNlza22CAv0/iSTjdSyUqs8qUW3fuocxrjvpZ+oyDJK4/mNcUebNUOyzG+CxP B6oybdWdAENWDH39rDUUf6H2gGrDBPEANvANig4Bbp/Tpbr90Cc9hJ5JrpQyH3YhuX5a 4TQOnQSR0flflzNtCr6S7HdW3V7YExyfk3V7HpLCXJZvD9iSqC2E1VipmOZz3vA5YkUb o6yOx8W5jXXdBdzDa+fG5EI1jdxLCrFAypmqRhCHOjjwBQaVwjAnNM0EgZ9z+b9yJ6me Zdyg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=voXTLd+THOijaHSEH5sHow08f3veYBR93jOHr+H3FOk=; b=TdUD9fM1P9Ff8InyCy7tKDcKwnrDT/Ss4kg0ASJ/GCrPts6jKSTLoBT96Tc1iGxgz2 0DvjJZgRJm2xKnrg6jQ+mwhcQ56D57g3mn0VIXCL7qsy+nJ7h2OSQdBBAtz55ayEY7mb 5Ejy/jALuiFBJjrU5uLJWU+IQ9+iDFcp89DnXTQ6m6I4IJPzy9BZF6DF+6fsaAqYR9Fe eIedY/WmIxLSqNOfr3ZQyQCzDu+PLKCpIryvmXpjq6FnEu/1kfJbbBtckNocgErpYRFS WzTAsj3Vg+HPQVqE/Bky0cMBz0aI3vHAvWH6W9RQ6OFunhU4k5522WlCn1Tx69hdIRQ/ wqtA== X-Gm-Message-State: AJcUukc3sWLdO0td8pgW+PLz9ul2WjuOmePQOKBC0ohvCr2Ts97X7AnW E2SpPUUKxJ4J/XAJlRqVYmX8pg== X-Google-Smtp-Source: ALg8bN512wqI017z4BX6bV45icBM1URgWhHfI5WvHT+OTcWwFaBy4Fz7P1LZFTVaSCG9I/n8Wqn5cQ== X-Received: by 2002:a0c:f8cb:: with SMTP id h11mr22845634qvo.134.1548719170203; Mon, 28 Jan 2019 15:46:10 -0800 (PST) Received: from jkicinski-Precision-T1700.netronome.com ([66.60.152.14]) by smtp.gmail.com with ESMTPSA id k81sm34336320qkk.18.2019.01.28.15.46.07 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 28 Jan 2019 15:46:09 -0800 (PST) From: Jakub Kicinski To: davem@davemloft.net Cc: oss-drivers@netronome.com, netdev@vger.kernel.org, jiri@resnulli.us, f.fainelli@gmail.com, andrew@lunn.ch, mkubecek@suse.cz, dsahern@gmail.com, simon.horman@netronome.com, jesse.brandeburg@intel.com, maciejromanfijalkowski@gmail.com, vasundhara-v.volam@broadcom.com, michael.chan@broadcom.com, shalomt@mellanox.com, idosch@mellanox.com, Jakub Kicinski Subject: [RFC 10/14] net: hstats: add IEEE 802.3 and common IETF MIB/RMON stats Date: Mon, 28 Jan 2019 15:45:03 -0800 Message-Id: <20190128234507.32028-11-jakub.kicinski@netronome.com> X-Mailer: git-send-email 2.19.2 In-Reply-To: <20190128234507.32028-1-jakub.kicinski@netronome.com> References: <20190128234507.32028-1-jakub.kicinski@netronome.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org 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 --- include/net/hstats.h | 50 ++++++++++++++++++++++++++++++++++++ include/uapi/linux/if_link.h | 50 ++++++++++++++++++++++++++++++++++++ 2 files changed, 100 insertions(+) diff --git a/include/net/hstats.h b/include/net/hstats.h index bb83f50768b1..dd6d5dc567cb 100644 --- a/include/net/hstats.h +++ b/include/net/hstats.h @@ -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 }; diff --git a/include/uapi/linux/if_link.h b/include/uapi/linux/if_link.h index b33d38ff5b47..c58468100a06 100644 --- a/include/uapi/linux/if_link.h +++ b/include/uapi/linux/if_link.h @@ -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) -- 2.19.2