Add binder call tetherOffloadGetAndClearStats

Provide binder calls for getting tethering statistics and clear the
stats for the given upstream.

Bug: 150736748
Test: None
Change-Id: I7bb635ee39d658961cd9515cc37e23bc3f0cd38f
Merged-In: I7bb635ee39d658961cd9515cc37e23bc3f0cd38f
diff --git a/server/NetdNativeService.cpp b/server/NetdNativeService.cpp
index c580670..3bf879b 100644
--- a/server/NetdNativeService.cpp
+++ b/server/NetdNativeService.cpp
@@ -1301,5 +1301,16 @@
     return statusFromErrcode(res);
 }
 
+binder::Status NetdNativeService::tetherOffloadGetAndClearStats(
+        int ifIndex, android::net::TetherStatsParcel* tetherStats) {
+    NETD_LOCKING_RPC(gCtls->tetherCtrl.lock, PERM_NETWORK_STACK, PERM_MAINLINE_NETWORK_STACK);
+    const auto& stats = gCtls->tetherCtrl.getAndClearTetherOffloadStats(ifIndex);
+    if (!stats.ok()) {
+        return asBinderStatus(stats);
+    }
+    *tetherStats = toTetherStatsParcel(stats.value());
+    return binder::Status::ok();
+}
+
 }  // namespace net
 }  // namespace android