Commit Graph

559 Commits

Author SHA1 Message Date
Lorenzo Colitti
d8f76bb096 Dump counters in "dumpsys tethering bpf". am: 4e92da06fa am: e033a1e543 am: 7081e9f184
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1575051

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I7d74c663b554f5f6f1562d4e6dc2a13f67adb9c0
2021-02-10 06:19:33 +00:00
Lorenzo Colitti
4e92da06fa Dump counters in "dumpsys tethering bpf".
This CL adds the counters collected by the tethering programs to
the output of "dumpsys tethering bpf". The counter names are
fetched by JNI code at startup and then read by the debugging
code on demand.

Example from my device:

  Forwarding errors:
    TCP_CONTROL_PACKET: 67
    NON_GLOBAL_SRC: 13
    NON_GLOBAL_DST: 17
    LOCAL_SRC_DST: 7

Test: manual (debug-only code)
Change-Id: I7ec7992612556a4bca5f1b6bb52c655d6d870201
2021-02-10 04:43:03 +00:00
Lorenzo Colitti
6281d65f61 Don't leak map fds in BpfCoordinator#dump. am: 555472a186 am: a6c9626b5d am: a47891732f
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1581523

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I7f92f0c2768775ab51018ec76feef9cab6e273c4
2021-02-09 23:43:52 +00:00
Lorenzo Colitti
555472a186 Don't leak map fds in BpfCoordinator#dump.
Currently, the dump methods open BpfMap objects and never close
them. This leaks filedescriptors, and if dump is called often
enough, will crash the networkstack process.

Fix this by using try-with-resources statements that
automatically close the map when exiting the try block.

Change the signature of BpfMap#close from "throws Exception" to
"throws ErrnoException" since it does not throw any other type
of checked exceptions.

Test: "lsof | grep network_st" while running "dumpsys tethering bpf" in a loop
Change-Id: I66c407454c2715bf41bf3a2e81bd582f9ea5a905
2021-02-09 23:30:25 +09:00
Martin Stjernholm
423a270abb Revert "Don't crash Tethering service when WiFi feature is missing" am: 199641d451 am: b329062b20 am: b9e5c3b247
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1575305

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I786ef0fee68b2e4310b45b63cd54286f8a168a3f
2021-02-05 15:50:01 +00:00
Martin Stjernholm
199641d451 Revert "Don't crash Tethering service when WiFi feature is missing"
This reverts commit f6a1052f4e.

Reason for revert: Suspected reason for TetheringTests breakage
Bug: 179467044

Change-Id: I3a5ee621b32145b74a31d6c3e411bd789e395935
2021-02-05 11:47:48 +00:00
Tomasz Wasilczyk
dfb58b501b Don't crash Tethering service when WiFi feature is missing am: f6a1052f4e am: 75c7cb992a am: 86be613c85
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1559422

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ib9aa310a0b58b466514c5c73485093dafaa6e883
2021-02-04 15:21:00 +00:00
Tomasz Wasilczyk
f6a1052f4e Don't crash Tethering service when WiFi feature is missing
Bug: 175430552
Test: disable WiFi feature on device with wlan0

Change-Id: I83012013ff6a276d9a5c70748b726289b007cb0a
2021-02-02 16:11:18 +00:00
Treehugger Robot
2b03d6d469 Merge "Dump BPF offload rules for upstream IPv4 and IPv6." am: 0f7f9b6e40 am: 959cc0be9f am: 24ee1bb6a0
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1560404

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I013f36607aad1c3eab54aee8ed4526e26018129f
2021-01-27 08:50:39 +00:00
Lorenzo Colitti
61976f278f Dump BPF offload rules for upstream IPv4 and IPv6.
Add code to BpfCoordinator to dump upstream IPv4 and IPv6 rules.
For IPv4, currently only the upstream map is printed, because the
downstream map is expected to be symmetrical.

Example output:

=============
    21(21) -> 12(rmnet_data2) 86dd 00:00:00:00:00:00 00:00:00:00:00:00
    [wlan1]: iif(iface) oif(iface) v6addr srcmac dstmac
      12(rmnet_data2) 21(wlan1) /2001:240:2425:b5dc:21a9:995d:bc57:bc37 b2:b5:e0:24:21:c2 ca:06:8d:54:99:ad
    [IPv4]: iif(iface) oif(iface) src nat dst
      21(21) 12(rmnet_data2) 192.168.16.247:41544 -> 100.101.80.108:41544 -> 216.239.36.135:443
      21(21) 12(rmnet_data2) 192.168.16.247:42028 -> 100.101.80.108:42028 -> 8.8.4.4:853
      21(21) 12(rmnet_data2) 192.168.16.247:42032 -> 100.101.80.108:42032 -> 8.8.4.4:853
      21(21) 12(rmnet_data2) 192.168.16.247:42042 -> 100.101.80.108:42042 -> 8.8.4.4:853
      21(21) 12(rmnet_data2) 192.168.16.247:41816 -> 100.101.80.108:41816 -> 8.8.8.8:853
      21(21) 12(rmnet_data2) 192.168.16.247:42040 -> 100.101.80.108:42040 -> 8.8.4.4:853

=============

Also make it possible to do "dumpsys tethering bpf" and get only
the BPF dump.

Test: manual
Change-Id: I2aaa2fdda7d724994090c26feff585f24cd3283b
2021-01-27 14:30:51 +09:00
Lorenzo Colitti
1ae9762100 Merge changes Iaac422d7,Ia7638b31 am: 0913a7a415 am: 51875f6043 am: 798f4b0e56
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1560403

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I8709e14b191c55f9a650edf6dc87a84a8f5449d6
2021-01-27 04:28:11 +00:00
Maciej Żenczykowski
52c0a7f446 fix comments am: cff64c8561 am: ec92651a11 am: 08a003ab33
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1561295

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I6ed98e10a8873c6b5e86072964783313ba9de7e2
2021-01-27 04:26:17 +00:00
Lorenzo Colitti
eec343935b Add an isEmpty convenience method to BpfMap. am: 77262cea76 am: 63585e9630 am: bb226600c1
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1560402

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I4a5d933ebce3974a10a8c859b964e3f649bdd7c1
2021-01-27 04:14:29 +00:00
Lorenzo Colitti
b9602938ef Program the upstream IPv6 map in BpfCoordinator. am: 5b1ed508cf am: e9eb340e3e am: 8c49368ee2
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1557099

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ibb815ed4eb9a1d84b4b306aa6ab96d382c816a68
2021-01-27 04:14:23 +00:00
Lorenzo Colitti
1ba4be9119 Rename TetherDownstream6Value to Tether6Value. am: d69a886235 am: 6482088003 am: 80ede0e4d9
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1560395

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ieb7a49618a6f16053d51429d7183595f2fb2209c
2021-01-27 04:14:21 +00:00
Lorenzo Colitti
0913a7a415 Merge changes Iaac422d7,Ia7638b31
* changes:
  Remove IpServer.Dependencies#getIfIndex.
  Address comments on aosp/1559686.
2021-01-27 03:04:23 +00:00
Maciej Żenczykowski
cff64c8561 fix comments
Test: N/A
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Ic217e08484c39077bcc408195daa3311ed93ad28
2021-01-26 16:45:21 -08:00
Lorenzo Colitti
f3b201f819 Remove IpServer.Dependencies#getIfIndex.
This code is unused.

Test: atest TetheringTests
Change-Id: Iaac422d72e8538b67798cb3ae3737deb7b426401
2021-01-27 00:53:59 +09:00
Lorenzo Colitti
51c1a95c82 Address comments on aosp/1559686.
Also remove some unnecessary line wrapping.

Test: atest TetheringTests
Change-Id: Ia7638b3198d7811cdbb34e959c50608cf1a656bf
2021-01-27 00:53:59 +09:00
Lorenzo Colitti
77262cea76 Add an isEmpty convenience method to BpfMap.
Test: new unit test
Change-Id: Ibec09f328e24111aee4760af2f75ea5a80ba84c3
2021-01-27 00:53:56 +09:00
Lorenzo Colitti
5b1ed508cf Program the upstream IPv6 map in BpfCoordinator.
- Add methods to start and stop IPv6 forwarding upstream
- Populate the upstream IPv6 map when the first rule for any
  upstream/downstream pair is created.
- Clear the upstream IPv6 map when the last rule for any
  upstream/downstream pair is deleted.

Test: Added coverage to IpServerTest and BpfCoordinatorTest
Change-Id: Ib041081e95f5f449489ab63138de034222ffac8f
2021-01-27 00:52:09 +09:00
Lorenzo Colitti
d69a886235 Rename TetherDownstream6Value to Tether6Value.
The two value types are identical so there is no need to have
separate classes for them.

Test: atest TetheringTests
Change-Id: Ia622b082d0a44373d21f51222f5e675e5bde08e0
2021-01-27 00:52:09 +09:00
Lorenzo Colitti
ee3d4edd51 Merge changes from topic "bpf_tether4_rename" am: 3c35666892 am: 7d0693f6dc am: 177975f25b
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1559687

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I383d31ffb54f0e3f23d1df8b794b544a38a29cac
2021-01-26 15:01:17 +00:00
Lorenzo Colitti
3c35666892 Merge changes from topic "bpf_tether4_rename"
* changes:
  merge Tether{Down,Up}stream4{Key,Value} - part 3 - fixups
  merge Tether{Down,Up}stream4{Key,Value} - part 2 - java
  merge Tether{Down,Up}stream4{Key,Value} - part 1 - C portion
2021-01-26 13:01:22 +00:00
Lorenzo Colitti
8564a5ca06 Mark the EntitlementManager PendingIntents as immutable. am: a36d65da0a am: ec93812466 am: 8688028150
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1557108

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ie300969f4d942fedefb5f23d7cba6eab37de521f
2021-01-26 12:32:37 +00:00
Lorenzo Colitti
a36d65da0a Mark the EntitlementManager PendingIntents as immutable.
These are read-only intents and should not be mutated by any
app receiving them.

Bug: 178324405
Bug: 178249531
Test: atest TetheringTests TetheringCoverageTests GtsTetheringTestCases
Change-Id: I5395e7c19e6453640ad790f2b9a9ba22bbcefa88
2021-01-26 15:14:26 +09:00
Maciej Żenczykowski
911a7267f5 merge Tether{Down,Up}stream4{Key,Value} - part 3 - fixups
Test: atest, TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Ia7840698e80ded33d8e0b59efe1ca7267254b892
2021-01-25 20:32:10 -08:00
Maciej Żenczykowski
32874eb6bc merge Tether{Down,Up}stream4{Key,Value} - part 2 - java
Generated via:
  git grep 'Tether(Down|Up)stream4(Key|Value)' | cut -d: -f1 | sort -u | while read i; do
    sed -r -i 's@TetherUpstream4Value@Tether4Value@g' "$i"
    sed -r -i 's@TetherDownstream4Value@Tether4Value@g' "$i"
    sed -r -i 's@TetherDownstream4Key@Tether4Key@g' "$i"
    sed -r -i 's@TetherUpstream4Key@Tether4Key@g' "$i"
  done

  cd Tethering/src/com/android/networkstack/tethering
  git mv TetherUpstream4Key.java Tether4Key.java
  git mv TetherUpstream4Value.java Tether4Value.java

  git diff TetherDownstream4Key.java Tether4Key.java
  git diff TetherDownstream4Value.java Tether4Value.java
  git rm TetherDownstream4Key.java
  git rm TetherDownstream4Value.java

Fixup resulting 'import' duplication
  mcedit Tethering/apishim/31/com/android/networkstack/tethering/apishim/api31/BpfCoordinatorShimImpl.java
  mcedit Tethering/apishim/30/com/android/networkstack/tethering/apishim/api30/BpfCoordinatorShimImpl.java
  mcedit Tethering/apishim/common/com/android/networkstack/tethering/apishim/common/BpfCoordinatorShim.java
  mcedit Tethering/tests/unit/src/android/net/ip/IpServerTest.java

Test: N/A, requires follow up commit
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I1dfc3108ca4bbd0cefc3420bc7e421594b62619c
2021-01-25 20:32:05 -08:00
Lorenzo Colitti
0d497319fe Merge changes I8cd6e49b,Ibb52c7b7 am: dc4189f0e4 am: 3b0f7f1d6e am: 4158939871
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1557658

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ifad6ded6097c458cc1b5dba9d167c5920ff2c180
2021-01-26 02:14:37 +00:00
Hungming Chen
dd833dee31 [NFCT.TETHER.10] Add/delete IPv4 offload BPF rules to/from BPF map
Access the IPv4 downstream and upstream BPF map with the built rules.

Test: atest TetheringCoverageTests
Change-Id: I8cd6e49b377c72250988019eea57f93cccd78309
2021-01-25 20:13:47 +08:00
Nucca Chen
a950792808 Merge changes I73f30477,I84db13ac am: 2f1c2b25cd am: 2b82a04b56 am: d98f2b685f
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1534829

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I468c45d5bb13a55bc525dd8f839de1af87214b6b
2021-01-23 14:55:05 +00:00
Nucca Chen
36027bdbcd Merge "[NFCT.TETHER.1] Add conntrack monitor to BpfCoordinator" am: 168a96643d am: 3efbe8414f am: 4ad3fc7c39
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1488522

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I9ca46e6510116e0859c0284d9547a6dcb8370662
2021-01-22 12:45:20 +00:00
Hungming Chen
347dd90620 [NFCT.TETHER.9] Build IPv4 offload BPF rules for raw ip
Build the upstream and upstream rules when the conntrack event is
received.

Test: atest TetheringCoverageTests
Change-Id: Ibb52c7b75812bd586091d809e260bc9206c06262
2021-01-22 19:37:37 +08:00
Hungming Chen
8784a60eab [NFCT.TETHER.8] Prepare the upstream information for IPv4 offload rule
Add upstream interface index and its IPv4 address mapping

Required for building IPv4 forwarding rule when a conntrack event is
received.

Test: atest TetheringCoverageTests
Change-Id: I73f304777704f09481b80d18751e0bab5bab2edc
2021-01-22 19:37:31 +08:00
Hungming Chen
d71c06ec71 [NFCT.TETHER.7] Prepare the downstream information for IPv4 offload rule
Add and remove downstream client information to BpfCoordinator

Required for building IPv4 forwarding rule when a conntrack event is
received. The IpServer provides the following elements of a rule which
is not included in conntrack event:
- Downstream interface index
- Downstream Mac address
- Client IP address to Client Mac address

Test: atest TetheringCoverageTests
Change-Id: I84db13acc047ace5730d17f0d3dd99544f516084
2021-01-22 19:37:24 +08:00
Nucca Chen
168a96643d Merge "[NFCT.TETHER.1] Add conntrack monitor to BpfCoordinator" 2021-01-22 11:29:09 +00:00
Maciej Żenczykowski
eee7861b37 adjust to changes in map location am: 30a2d8232b am: 21b466f290 am: cc123a310d
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1557274

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ic5df5006474ae5ece29b6240c36284e6bf0f2478
2021-01-22 06:01:39 +00:00
Maciej Żenczykowski
30a2d8232b adjust to changes in map location
Test: atest, TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Idaaa1ede7c239655f5ec489532533c363d297864
2021-01-21 17:51:20 -08:00
Hungming Chen
46c30b1fd4 [NFCT.TETHER.1] Add conntrack monitor to BpfCoordinator
A preparation for starting monitoring conntrack event which is required
by IPv4 tethering offload.

Test: atest TetheringCoverageTests
Change-Id: Ied46aeca193554f52a90889dfdf92827e94845d6
2021-01-21 21:25:18 +08:00
Maciej Żenczykowski
0006c9febf refactor: continued am: a0e2c0445d am: 009cd35124 am: 0c931c6c54
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1553320

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I308465d41d3c43203583f0324bfb08b85f5ddfd8
2021-01-20 16:39:54 +00:00
Maciej Żenczykowski
79b7996f1a refactor: TetherIngress becomes TetherDownstream6 (and friends) am: 770e0a7a8f am: 14583198a0 am: 7a38a7d727
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1554238

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I3aaf8738cd9e7c9bce8dcf9a82baafd9ca056ae9
2021-01-20 12:52:25 +00:00
Maciej Żenczykowski
a0e2c0445d refactor: continued
Test: builds, atest, TreeHugger
  git grep 'makeIngressKey|makeIngressValue|BpfIngressMap|TETHER_INGRESS_FS_PATH'
  no longer finds anything
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I27200d33cbc4ea2094b18e05bf93ab54c564da0b
2021-01-20 11:34:48 +00:00
Maciej Żenczykowski
770e0a7a8f refactor: TetherIngress becomes TetherDownstream6 (and friends)
Generated via:
  #!/bin/bash

  do_replace() {
    pushd "$1" >/dev/null
    shift
    git grep "$1" | cut -d: -f1 | sort -u | while read f; do
      sed -i -r "s@$1@$2@g" "${f}"
      git add "${f}"
    done
    popd >/dev/null
  }

  replace() {
    do_replace packages/modules/Connectivity/Tethering "$@"
    do_replace system/netd "$@"
  }

  do_reset() {
    pushd "$1" >/dev/null
    git rhh
    popd >/dev/null
  }

  main() {
    do_reset packages/modules/Connectivity/Tethering
    do_reset system/netd

    replace TetherIngressKey TetherDownstream6Key
    replace TetherIngressValue TetherDownstream6Value

    pushd packages/modules/Connectivity/Tethering/src/com/android/networkstack/tethering >/dev/null
    git mv TetherIngressKey.java TetherDownstream6Key.java
    git mv TetherIngressValue.java TetherDownstream6Value.java
    popd >/dev/null

    replace TETHER_INGRESS_PROG TETHER_DOWNSTREAM6_TC_PROG
    replace ingress_tether tether_downstream6
    replace ingress/tether_ tether_downstream6_
    replace TETHER_INGRESS_MAP TETHER_DOWNSTREAM6_MAP
    replace tether_ingress_map tether_downstream6_map

    replace getTetherIngressMapFd getTetherDownstream6MapFd
    replace getTetherIngressProgFd getTetherDownstream6TcProgFd

    replace mBpfIngressMap mBpfDownstream6Map
    replace bpfIngressMap bpfDownstream6Map
    replace printIngressMap printDownstream6Map
    replace 'BPF ingress map' 'BPF downstream ipv6 map'
  }

  main "$@"; exit

Followed by:
  cd system/netd
  # change regexp in tests/binder_test.cpp:3374
  git add tests/binder_test.cpp

(and whitespace adjustments to prevent lines from going over 100 characters)

Afterwards we have:
  $ adbz shell ls /sys/fs/bpf/tethering
  map_offload_tether_downstream6_map
  map_offload_tether_limit_map
  map_offload_tether_stats_map
  map_test_tether_downstream6_map
  prog_offload_schedcls_tether_downstream6_ether
  prog_offload_schedcls_tether_downstream6_rawip
  prog_test_xdp_drop_ipv4_udp_ether

Test: atest, TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Ib04dc0c6e3d034461f3f84e09f6fa93a862e1bb2
2021-01-19 23:18:46 -08:00
Lorenzo Colitti
a0ef944e66 Merge changes Id87b88f6,I67dfba75 am: fab97c22b2 am: 68a007c616 am: 73d47c1b20
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1538841

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: If4ab925309508d2bbdc5f4453aa6e5e047e91919
2021-01-20 05:21:54 +00:00
Nucca Chen
ab07e59707 Merge changes I969d6182,Ie73f7b4d am: 2668d4a0e2 am: d3e7c33b2e am: 33ee638bae
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1537801

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I0d62905c33af794213ce419d309d953bafda94d9
2021-01-19 12:40:32 +00:00
Nucca Chen
071607ba28 Merge "[NFCT.TETHER.2] Migrate tetherOffloadRuleAdd from netd to mainline" am: 6bc18e6d2c am: 79f0ca8849 am: 0f360d1d11
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1536562

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ifebd26d45f2be22e7ec8b0936aeb9d102e2d3c26
2021-01-18 08:20:27 +00:00
Hungming Chen
6971e91d62 [NFCT.TETHER.6] Migrate tetherOffloadGetAndClearStats from netd to mainline
A preparation for updating BPF map in mainline module.

Test: atest TetheringCoverageTests
Change-Id: Id87b88f6dfcdfe5765756442ed880933cd1c6baf
2021-01-15 18:40:55 +08:00
Hungming Chen
67c14b549f [NFCT.TETHER.5] Migrate tetherOffloadSetInterfaceQuota from netd to mainline
A preparation for updating BPF map in mainline module.

Test: atest TetheringCoverageTests
Change-Id: I67dfba750c7303e4aeaf65f5086db1290d176b4d
2021-01-15 18:40:48 +08:00
Hungming Chen
5ea9c4b64a [NFCT.TETHER.4] Migrate tetherOffloadRuleRemove from netd to mainline
A preparation for updating BPF map in mainline module.

Test: atest TetheringCoverageTests
Change-Id: I969d6182a307f46c8ed0a30960deb460ecedd8ea
2021-01-15 18:40:40 +08:00
Hungming Chen
b350d7589f [NFCT.TETHER.3] Migrate tetherOffloadGetStats from netd to mainline
A preparation for updating BPF map in mainline module.

Test: TetheringCoverageTests
Change-Id: Ie73f7b4d9b191e62cfdfe2cfa3360cc7210f17e8
2021-01-15 17:11:12 +08:00