[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20190128234507.32028-8-jakub.kicinski@netronome.com>
Date: Mon, 28 Jan 2019 15:45:00 -0800
From: Jakub Kicinski <jakub.kicinski@...ronome.com>
To: davem@...emloft.net
Cc: oss-drivers@...ronome.com, netdev@...r.kernel.org,
jiri@...nulli.us, f.fainelli@...il.com, andrew@...n.ch,
mkubecek@...e.cz, dsahern@...il.com, simon.horman@...ronome.com,
jesse.brandeburg@...el.com, maciejromanfijalkowski@...il.com,
vasundhara-v.volam@...adcom.com, michael.chan@...adcom.com,
shalomt@...lanox.com, idosch@...lanox.com,
Jakub Kicinski <jakub.kicinski@...ronome.com>
Subject: [RFC 07/14] net: hstats: help in iteration over directions
Devices (or drivers) often keep the same statistics in both
directions, aid iterating over such statistics with some
helpers.
Signed-off-by: Jakub Kicinski <jakub.kicinski@...ronome.com>
---
include/net/hstats.h | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/include/net/hstats.h b/include/net/hstats.h
index 00f4d9334422..bb83f50768b1 100644
--- a/include/net/hstats.h
+++ b/include/net/hstats.h
@@ -69,6 +69,12 @@ void rtnl_hstat_add_grp(struct rtnl_hstat_req *req,
bool rtnl_hstat_qual_is_set(struct rtnl_hstat_req *req, int qual);
int rtnl_hstat_qual_get(struct rtnl_hstat_req *req, int qual);
+static inline bool rtnl_hstat_is_rx(struct rtnl_hstat_req *req)
+{
+ return rtnl_hstat_qual_get(req, RTNL_HSTATS_QUAL_DIRECTION) ==
+ IFLA_HSTATS_QUAL_DIR_RX;
+}
+
static inline void
rtnl_hstat_dump(struct rtnl_hstat_req *req, const int id, const u64 val)
{
@@ -106,4 +112,13 @@ enum {
[RTNL_HSTATS_QUAL_DIRECTION] = { \
.constant = IFLA_HSTATS_QUAL_DIR_ ##dir, \
}
+
+#define RTNL_HSTATS_QUALS_BASIC_BIDIR(type) \
+ [RTNL_HSTATS_QUAL_TYPE] = { \
+ .constant = IFLA_HSTATS_QUAL_TYPE_ ##type, \
+ }, \
+ [RTNL_HSTATS_QUAL_DIRECTION] = { \
+ .min = IFLA_HSTATS_QUAL_DIR_RX, \
+ .max = IFLA_HSTATS_QUAL_DIR_TX + 1, \
+ }
#endif
--
2.19.2
Powered by blists - more mailing lists