summaryrefslogtreecommitdiff
path: root/core/rmnet_ctl_client.c
diff options
context:
space:
mode:
authorWeiyi Chen <quic_weiyic@quicinc.com>2022-03-14 17:03:26 -0700
committerWeiyi Chen <quic_weiyic@quicinc.com>2022-03-29 22:52:02 -0700
commitd26ada23f91706f1c97a274a01cfc994053c1cb7 (patch)
tree6b598f07882b526e2da9fde86ec1c92927a6e030 /core/rmnet_ctl_client.c
parentecd7f76efc9213c6628dfde2550930cbc8003279 (diff)
downloaddatarmnet-d26ada23f91706f1c97a274a01cfc994053c1cb7.tar.gz
rmnet_core: ethtool QMAP stats
Add QMAP(rmnet_ctl) RX/TX stats to the ethtool. Change-Id: I730c6e06aaadba20d56485891408abfa1be8c27a Signed-off-by: Weiyi Chen <quic_weiyic@quicinc.com>
Diffstat (limited to 'core/rmnet_ctl_client.c')
-rw-r--r--core/rmnet_ctl_client.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/core/rmnet_ctl_client.c b/core/rmnet_ctl_client.c
index b74f06e..e42c52e 100644
--- a/core/rmnet_ctl_client.c
+++ b/core/rmnet_ctl_client.c
@@ -231,3 +231,19 @@ struct rmnet_ctl_client_if *rmnet_ctl_if(void)
return &client_if;
}
EXPORT_SYMBOL(rmnet_ctl_if);
+
+int rmnet_ctl_get_stats(u64 *s, int n)
+{
+ struct rmnet_ctl_dev *dev;
+
+ rcu_read_lock();
+ dev = rcu_dereference(ctl_ep.dev);
+ if (dev && n > 0) {
+ n = min(n, (int)(sizeof(dev->stats) / sizeof(u64)));
+ memcpy(s, &dev->stats, n * sizeof(u64));
+ }
+ rcu_read_unlock();
+
+ return n;
+}
+EXPORT_SYMBOL(rmnet_ctl_get_stats);