Commit Graph

988 Commits

Author SHA1 Message Date
Mark
e86fb5ef56 Fix entitlement recheck fail in U
Starting with U, only explicit intents will be allowed to
launch non-exported internal components. Set package name
to entitlement recheck intent so that the intent could be
delivered to tethering itself successfully.

Bug: 278482046
Test: atest TetheringTests
      manual verify entitlement recheck work in U
Change-Id: Ife30eee13fe39509ccb5786d2a76fbb7baa022a8
2023-05-16 07:59:32 +00:00
Xiao Ma
d5020111ce Update the integration test to verify zero-length DHCP packet.
DHCP packet listener doesn't close socket any more upon receiving a
zero-length DHCP packet with a fix, instead, just ignore the zero-length
packet and continue reading. Also update the integration test logic to
verify the new behavior, i.e. we can send DHCPDISCOVER from a second device
with different mac address to verify the upstream DHCP server doesn't close
the listening socket, and then we will receive the response from server e.g.
DHCPOFFER packet.

Bug: 269692093
Test: atest TetheringIntegrationTests
Change-Id: I183da43ce5a6511714d293318fe6c60ea55999c0
2023-05-15 13:27:16 +00:00
Mark
c16645155f Add verifyHotspotClientUpdate helper function
This change centralized some common test codes to
verifyHotspotClientUpdate() to facilitate the following
commit for softap+lohs

Bug: 233175023
Test: atest TetheringTests
Change-Id: Iee3905084b244b91abdf7c562d77b5054d58ff6a
2023-05-04 07:18:08 +00:00
Xiao Ma
8da5ff4b5f Merge "Add an integration test to verify zero-length DHCP packet." 2023-05-03 14:09:04 +00:00
KH Shi
9dfbb45bb6 Add null check for tupleOrig in ConntrackMessage
ConntrackSocketTest#testIpv4ConntrackSocket always fail in cuttlefish
because it gets NullPointerException when accessing tupleOrig in
ConntrackMessage. tupleOrig can be null if it doesn't have source IP.

This situation happens when dumping the following conntrack entry:
vsoc_x86_64:/ # cat /proc/net/nf_conntrack
ipv4     2 unknown  2 570 src=0.0.0.0 dst=224.0.0.22 [UNREPLIED] \
src=224.0.0.22 dst=0.0.0.0 mark=0 secctx=u:object_r:unlabeled:s0 use=2

Bug: 280203901
Test: atest TetheringPrivilegedTests (on cuttlefish)
Change-Id: Iddc8cb390a4369190d535f4694e0e5fa4b6e590f
2023-05-02 22:57:24 +08:00
Remi NGUYEN VAN
6d38c01852 Add a dependency object in TetheringConfiguration
Address a TODO in TetheringConfiguration to use a dependency object
instead of static mocking on DeviceConfig.

This avoids TetheringConfiguration dependencies on internal
implementation of DeviceConfigUtils, unblocking changes in
DeviceConfigUtils.

Bug: 279108992
Test: atest TetheringTests
Change-Id: I252eaadff85fa47b894e989b4f2527b00c5dca56
2023-04-28 19:18:43 +09:00
Xiao Ma
29e92df3f2 Add an integration test to verify zero-length DHCP packet.
DHCP packet listener closes the listening socket and stops reading
packet upon receiving a zero-length DHCP packet, which will break
the following DHCP handshake. Add an integration test to verify the
current behavior. A follow-up fix will verify if DHCP server will
accept the zero-length DHCP packet and continue reading packet on
that socket.

Bug: 269692093
Test: atest TetheringIntegrationTests
Change-Id: I5990e37cdfad4e8e4337b0bb1a74632286884baf
2023-04-28 10:06:54 +08:00
Wayne Ma
b5ee365614 Add tx_bytes and rx_bytes to UpstreamEvent message
This commit adds two new fields, tx_bytes and rx_bytes, to the
UpstreamEvent message. These fields provide information about the
amount of data transferred during the event, which can be useful for
network performance analysis. The current tx/rx usages are always
zero, but it will be updated in a later change to reflect the actual
usage. No changes were made to the existing fields upstream_type and
duration_millis.

Test: atest TetheringMetricsTest
Change-Id: I9e1043b3fff5aa3f548b8696bac7e5bc4271c77c
2023-04-21 11:15:56 +08:00
Wayne Ma
c4732276d4 Merge "Address comment from aosp/2335004" 2023-04-18 05:45:42 +00:00
Wayne Ma
fab745c8ae Address comment from aosp/2335004
Bug: 263681262
Test: atest TetheringMetricsTest
Change-Id: I7372b7717a903d43a543f82e31a0439725d02e3a
2023-04-13 10:01:36 +08:00
Maciej Żenczykowski
bab0c1ad95 offload.c - adjust bytes for l2 header
Bug: 263884894
Test: TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I5c7bca4e005302a91368d22b9683db5b16d73b3a
2023-04-04 06:18:28 +00:00
Mark
2040551d18 Fix testPhysicalEthernet failure for physical ethernet device
Other virtual interface ethernet test cases stop ethernet tethering
by deleting the virtual interface. To disable ethernet tethering for
testPhysicalEthernet, call stopTethering explicitly.

Bug: 271380398
Test: atest EtherentTetheringTest
Change-Id: I19a73f63227bab6a60d57d38b17a20a3f3f6c1d4
2023-03-30 09:16:47 +00:00
Wayne Ma
cd893e0825 Merge "Add new test for swtiching multiple upstream network." 2023-03-21 08:51:42 +00:00
Wayne Ma
2bcd523745 Add new test for swtiching multiple upstream network.
Bug: 263681262
Test: atest TetheringMetricsTest
Change-Id: I70e88d36ecf4cac0f61ab54cc14efa46a4b5facb
2023-03-21 11:38:16 +08:00
Wayne Ma
9d6b724887 Merge "Implement logging of upstream event type and duration." 2023-03-20 16:50:37 +00:00
KH Shi
7b8568927e Merge "Add Tetheroffload AIDL interface support" 2023-03-20 03:58:42 +00:00
KH Shi
3d5e65cb48 Add Tetheroffload AIDL interface support
Add the AIDL HAL service interface support and abstract the HIDL/AIDL
interface implementations to allow OffloadController to talk to both
interfaces.

Bug: b/205762647
Test: atest com.android.networkstack.tethering
      atest ConnectivityCoverageTests
      atest ConntrackSocketTest
Change-Id: If7634a298d03668ed70b328f1ad6ca0ac0fe170b
2023-03-17 16:56:47 +08:00
Wayne Ma
c0e9e2901b Implement logging of upstream event type and duration.
Bug: 263681262
Test: atest TetheringMetricsTest
Test: statsd_testdrive 303
Change-Id: I80301ee035a9814920e3ce4b9eca6bcdc59350db
2023-03-17 16:40:06 +08:00
Patrick Rohr
98021b650b Connectivity Tests: join handler thread after calling quitSafely
Somewhat surprisingly, HandlerThread#quitSafely is *not* a synchronous
method, so the tearDown() method still needs to wait for the thread to
join.

Test: TH
Change-Id: I0433e2100adf9299a67af5c259a518cf44f4be57
2023-03-17 01:01:09 -07:00
Wayne Ma
304e4f2af8 Refactor TetheringMetricsTest, remove Pair.
Test: atest TetheringMetricsTest
Change-Id: I1b536ff198119b07e9313f081a8e02e515c67efd
2023-03-15 17:34:12 +08:00
Patrick Rohr
68454864fc EthernetTetheringTest: join handler thread after calling quitSafely
Somewhat surprisingly, HandlerThread#quitSafely is *not* a synchronous
method, so the tearDown() method still needs to wait for the thread to
join.

Test: TH
Change-Id: I4297ba057b3d4e67c7b462b6995da637f2479d42
2023-03-14 20:24:01 +00:00
Wayne Ma
e18edffe3d Merge "Refactor TetheringMetricsTest" 2023-03-14 08:51:16 +00:00
Wayne Ma
209ff1c3c3 Refactor TetheringMetricsTest
Test: atest TetheringMetricsTest
Change-Id: Ic44f47460342300164fa6ad5c928a850ba28d1fb
2023-03-14 13:14:50 +08:00
Maciej Żenczykowski
24c5510ff6 Merge changes I8f22b022,I41daef08
* changes:
  BpfCoordinator: refactor updateUpstreamNetworkState to get MTU
  Test: move getClatIpv6Address to common function
2023-03-10 07:57:29 +00:00
Frank Feng
a257cc976c Merge "Update Tethering/tests/mts/AndroidManifest.xml" 2023-03-01 13:02:24 +00:00
Frank Feng
596752b740 Update Tethering/tests/mts/AndroidManifest.xml
Remove:
<meta-data android:name="listener" android:value="com.android.cts.runner.CtsTestRunListener" />

Bug: 267766325
Test: TH
Change-Id: I8f2e834581a6d0f89558b9a5f0a40fa2eead11e4
2023-02-24 07:53:12 -08:00
Hungming Chen
2adba0f717 Test: move getClatIpv6Address to common function
Share with EthernetTetheringTest and MtsEthernetTetheringTest

Bug: 258637850
Test: atest ConnectivityCoverageTests
Change-Id: I41daef082c30fdaafab44426ccaab4cb8b3297f3
2023-02-21 23:00:51 +08:00
Hungming Chen
31eab2fd76 Test: separate BPF tethering offload tests to MTS
Needed because CTS release interval is longer than mainline module
release. Newer mainline module release may change low level BPF
offload related code (struct, path, ..). The existing CTS will be
broken. This situation blocks that we want to change low level BPF
offload code after Android CTS has been public released.

The test targets have been changed as follows.
1. CTS/TetheringTests verifies high level tethering functions.
   No matter what data path is.
2. MTS verifies low level tethering functions. It can always test the
   latest BPF codes.

Change list:
1. Add class MtsEthernetTetheringTest for MTS.

Before:
  [base class]                      [derived class]

  EthernetTetheringTestBase +--+--+ EthernetTetheringTest

After:
  [base class]                      [derived class]

                               +--+ EthernetTetheringTest
  EthernetTetheringTestBase +--+
                               +--+ MtsEthernetTetheringTest (new)

2. Separate BPF tethering offload tests to MTS.
Before:
  - TetheringTests (19 tests)
  EthernetTetheringTest#testIcmpv4Echo
  EthernetTetheringTest#testIcmpv6Echo
  EthernetTetheringTest#testVirtualEthernet
  EthernetTetheringTest#testLocalOnlyTethering
  EthernetTetheringTest#testTetherConfigBpfOffloadEnabled
  EthernetTetheringTest#testTetherClatTcp
  EthernetTetheringTest#testTetherClatUdp
  EthernetTetheringTest#testIsUdpOffloadSupportedByKernel
  EthernetTetheringTest#testTetherClatIcmp
  EthernetTetheringTest#testTetherTcpV4
  EthernetTetheringTest#testTetherTcpV6
  EthernetTetheringTest#testTetherUdpV4
  EthernetTetheringTest#testTetherUdpV6
  EthernetTetheringTest#testStaticIpv4
  EthernetTetheringTest#testKernelSupportBpfOffloadUdpV4
  EthernetTetheringTest#testVirtualEthernetAlreadyExists
  EthernetTetheringTest#testPhysicalEthernet
  EthernetTetheringTest#testTetherUdpV4_VerifyBpf
  EthernetTetheringTest#testTetherUdpV4Dns

After:
  - TetheringTests (15 tests)
  EthernetTetheringTest#testIcmpv4Echo
  EthernetTetheringTest#testIcmpv6Echo
  EthernetTetheringTest#testVirtualEthernet
  EthernetTetheringTest#testLocalOnlyTethering
  EthernetTetheringTest#testTetherClatTcp
  EthernetTetheringTest#testTetherClatUdp
  EthernetTetheringTest#testTetherClatIcmp
  EthernetTetheringTest#testTetherTcpV4
  EthernetTetheringTest#testTetherTcpV6
  EthernetTetheringTest#testTetherUdpV4
  EthernetTetheringTest#testTetherUdpV6
  EthernetTetheringTest#testStaticIpv4
  EthernetTetheringTest#testVirtualEthernetAlreadyExists
  EthernetTetheringTest#testPhysicalEthernet
  EthernetTetheringTest#testTetherUdpV4Dns

  - MTS (4 tests)
  MtsEthernetTetheringTest#testTetherConfigBpfOffloadEnabled
  MtsEthernetTetheringTest#testIsUdpOffloadSupportedByKernel
  MtsEthernetTetheringTest#testTetherBpfOffloadUdpV4
  MtsEthernetTetheringTest#testKernelSupportBpfOffloadUdpV4

  Note that MtsEthernetTetheringTest#testTetherBpfOffloadUdpV4 is
  renamed from EthernetTetheringTest#testTetherUdpV4_VerifyBpf

Bug: 250552545
Bug: 258637850
Test: atest ConnectivityCoverageTests
Test: atest CtsTetheringTest
Test: atest CtsTetheringTestLatestSdk
Test: atest MtsTetheringTestLatestSdk
Test: atest TetheringIntegrationTests
Change-Id: Ica3b7008b33b1a0ddc5789d8ef12122a38544d57
2023-02-15 18:37:17 +08:00
Hungming Chen
2c4373f9b3 Test: rename CtsEthernetTetheringTest to EthernetTetheringTest
"Cts" prefix of test name may be confused in some test profiles
which are non-CTS tests. Ex: TetheringCoverageTests.

Bug: 250552545
Bug: 258637850
Test: atest EthernetTetheringTest
Change-Id: Ieacfa58f8ccc8de87fea2481801844acaf3f99d9
2023-02-15 18:37:17 +08:00
Hungming Chen
8e8cd0fdaa TetheringTest: test upstream changes capabilities
Add more tests that upstream changes capabilities in the existing
tests:
- testUpstreamNetworkChanged
- testUpstreamCapabilitiesChanged

Bug: 243516306
Test: atest TetheringTest
Change-Id: Iba2f07404c78c9e8662e2f796a2ff1695123cab7
2023-02-03 11:09:57 +08:00
Hungming Chen
2ebcf840ef TetheringTest: verify onUpstreamCapabilitiesChanged explicitly
In testUpstreamCapabilitiesChanged, verify that
onUpstreamCapabilitiesChanged is called just after which function
triggered onUpstreamCapabilitiesChanged.

Bug: 243516306
Test: atest TetheringTest
Change-Id: Icd871654455033475092b9e7376b604cb0ba00eb
2023-02-02 20:09:13 +08:00
Hungming Chen
9ca7fee6c9 TetheringTest: demonstrate duplicated upstream change event
The duplicated upstream change event on the same network is a bug
which needs to be fixed.

Bug: 243516306
Test: atest TetheringTest
Change-Id: I7c70328d937877ec9832a2764cfb331561ee34b6
2023-02-02 20:09:13 +08:00
Treehugger Robot
7acd206160 Merge changes Ie2ba9805,I8f5b23f9
* changes:
  Move onUpstreamCapabilitiesChanged out of reportUpstreamChange
  TetheringTest: improve onUpstreamCapabilitiesChanged test
2023-02-01 06:35:13 +00:00
Treehugger Robot
119e5adc14 Merge "TetheringTest: replace upstream change check by event callback" 2023-02-01 05:59:53 +00:00
Hungming Chen
650cc9c0d3 BpfCoordinatorTest: add testUpdateUpstreamNetworkState
Bug: 258637850
Bug: 241106456
Test: atest ConnectivityServiceTest
Change-Id: I156398ef7ffaceb454dc187682238821da77c72b
2023-01-31 16:35:09 +08:00
Hungming Chen
9e2c0f9df5 TetheringTest: replace upstream change check by event callback
UpstreamNetworkMonitor#setCurrentUpstream is going to be removed
 because UpstreamNetworkMonitor#mTetheringUpstreamNetwork is unused.
 Use tethering event callback to check upstream change.

Bug: 243516306
Test: atest TetheringTest
Change-Id: I5773cfc80190b554a3b63b4f827c220b0e663427
2023-01-18 15:13:49 +08:00
Hungming Chen
9e9d74ca00 TetheringTest: improve onUpstreamCapabilitiesChanged test
This is a preparation for migrating the upstream change notification.

Changes:
1. Modify testUpstreamNetworkChanged
   - Add losing upstream test
   - Verify the capabilities on the explicit network
2. Modify testUpstreamCapabilitiesChanged
   - Verify the capabilities on the explicit network
3. Add testUpstreamCapabilitiesChanged_stopTethering
   - Test that TetherModeAliveState#exit sends the null upstream
     notification. Above tests only covers the notifications which
     are triggered by chooseUpstreamType or EVENT_ON_CAPABILITIES.

Bug: 243516306
Test: atest TetheringTest

Change-Id: I8f5b23f93c27b8c690b2fd275e3f636fbaeb4973
2023-01-18 15:13:49 +08:00
Hungming Chen
f2abe15fe7 TetheringTest: correct the comment in chooseDunUpstreamTestCommon
Bug: 243516306
Test: atest TetheringTest
Change-Id: I642722498357dfb8f1582de50701f213c49f3077
2023-01-13 17:53:59 +08:00
Treehugger Robot
8043d5d7af Merge "TetheringTest: fix assert{*}Equals order in TestTetheringEventCallback" 2023-01-13 08:43:07 +00:00
Treehugger Robot
401f1ff2db Merge changes from topic "deprecate_connectivity_action_in_tethering"
* changes:
  Tethering: deprecate CONNECTIVITY_ACTION on U+ device
  Test: add tests to testChooseDunUpstreamByAutomaticMode_*
  TetheringTest: separate setup func from chooseDunUpstreamTestCommon
2023-01-13 08:41:20 +00:00
KH Shi
c91fbabd45 Merge "Fix TetheringServiceTest#testTetheringManagerLeak flaky" 2023-01-13 05:44:17 +00:00
Hungming Chen
b4859d1ea1 TetheringTest: fix assert{*}Equals order in TestTetheringEventCallback
TestTetheringEventCallback may use assertEquals(actual, expected)
but assertEquals(expected, actual).

It is confused while test is failed.

For example:

Code:
callback.expectUpstreamChanged(new Network[] {null} /* expected */);

Before:
java.lang.AssertionError: expected:<100> but was:<null>

After:
java.lang.AssertionError: expected:<null> but was:<100>

Bug: 243516306
Test: atest TetheringTest
Change-Id: I6a987e4dd1cccc5e79da7dda55f194291e0c4a60
2023-01-12 17:48:04 +08:00
KH Shi
0ed11f5a46 Fix TetheringServiceTest#testTetheringManagerLeak flaky
This test relies on forceGc to free and finalize the TetheringManager
before perform validation checks. In some test suites, if there were
already too many unused objects accumulated in the system before
running the test, it might take more than 5 seconds to free them.
Increase the maximum retry time to 30 seconds to fix the flakiness.

Bug: 263335396
Test: atest TetheringServiceTest#testTetheringManagerLeak
      run the flaky test suite on ABTD with CL
Change-Id: I38bee3d43fbeb278993d113ccbe0645aedc5d75d
2023-01-12 08:25:34 +00:00
Hungming Chen
5c985e2cdd BpfCoordinator: publish upstream interface mtu to v4 offload rule
Respect the upstream interface mtu instead of always setting
mtu 1500.

Using upstream interface mtu is probably not the best solution
for tether offload pmtu but it at least respects the upstream
interface mtu which may be less than 1500.

Test: manual test
1. Connect to carrier Taiwan Star.
2. Enable tethering and check the mtu 1434 in dumpsys.
IPv4 Upstream: proto [inDstMac] iif(iface) src -> nat ->
dst [outDstMac] pmtu age
  udp [02:10:45:32:ef:35] 54(54) 192.168.72.125:39034
  -> 15(rmnet1) 100.83.189.11:39034
  -> 142.251.43.14:443 [00:00:00:00:00:00] 1434 69657ms
IPv4 Downstream: proto [inDstMac] iif(iface) src -> nat
  -> dst [outDstMac] pmtu age
  udp [00:00:00:00:00:00] 15(rmnet1) 142.251.43.14:443
  -> 54(54) 100.83.189.11:39034
  -> 192.168.72.125:39034 [9a:8a:4d:ec:a4:7c] 1434 69633ms

Bug: 262860312
Test: atest BpfCoordinatorTest
Change-Id: Ic6dcb95ed76d5306053e4645b6baebc67ff082cf
2023-01-03 23:36:30 +08:00
Maciej Żenczykowski
53e8697d39 Merge "BpfCoordinatorTest: renumber the test interface indices" 2022-12-30 20:46:16 +00:00
Hungming Chen
46767ff62e BpfCoordinatorTest: renumber the test interface indices
This is a preparation to add new interface index.

Test: atest BpfCoordinatorTest
Change-Id: I758c2e7142099d74099fb8203f41ffec9b1182ee
2022-12-28 21:47:11 +08:00
Hungming Chen
4c8c35748f Test: add tests to testChooseDunUpstreamByAutomaticMode_*
Add dun network test cases as follows.

Overall test coverage:
- testChooseDunUpstreamByAutomaticMode (original):
  common, test#1, test#2
- testChooseDunUpstreamByAutomaticMode_defaultNetworkWifi (new):
  test#3, test#4
- testChooseDunUpstreamByAutomaticMode_loseDefaultNetworkWifi (new):
  test#5
- testChooseDunUpstreamByAutomaticMode_defaultNetworkCell (new):
  test#5, test#7
- testChooseDunUpstreamByAutomaticMode_loseAndRegainDun (new):
  test#8
- testChooseDunUpstreamByAutomaticMode_switchDefaultFromWifiToCell
  (new):
  test#9, test#10

Overall test cases:
+-------+-------+-------+-------+-------+
| Test  | WiFi  | Cellu |  Dun  | Expec |
| Case  |       | alr   |       | ted   |
|   #   |       |       |       | Upstr |
|       |       |       |       | eam   |
+-------+-------+-------+-------+-------+
|   -   |       |       |       |   -   | --+
+-------+-------+-------+-------+-------+   |
|   -   |       |   V   |       |   -   |   |
+-------+-------+-------+-------+-------+   |   Implemented
|   -   |       |   V   |   O   |  Dun  |   +-- in chooseDun
+-------+-------+-------+-------+-------+   |   UpstreamTest
|   -   |   V   |   O   |   O   |  WiFi |   |   Common()
+-------+-------+-------+-------+-------+   |
|   -   |   V   |   O   |       |  WiFi | --+
+-------+-------+-------+-------+-------+
|       |   O   |   V   |       |   -   |
|   1   +-------+-------+-------+-------+
|       |   O   |   V   |   O   |  Dun  |
+-------+-------+-------+-------+-------+
|       |   O   |   V   |       |   -   |
|   2   +-------+-------+-------+-------+
|       |   O   |   V   |   O   |  Dun  |
+-------+-------+-------+-------+-------+
|   3   |   V   |   O   |       |  WiFi | (new)
+-------+-------+-------+-------+-------+
|   4   |   V   |       |       |  WiFi | (new)
+-------+-------+-------+-------+-------+
|   5   |       |       |   O   |  Dun  | (new)
+-------+-------+-------+-------+-------+
|   6   |       |   V   |   O   |  Dun  | (new)
+-------+-------+-------+-------+-------+
|   7   |       |       |   O   |  Dun  | (new)
+-------+-------+-------+-------+-------+
|       |       |       |       |   -   | (new)
|   8   +-------+-------+-------+-------+
|       |       |       |   O   |  Dun  |
+-------+-------+-------+-------+-------+
|       |   V   |       |   O   |  WiFi | (new)
|   9   +-------+-------+-------+-------+
|       |   V   |       |       |  WiFi |
+-------+-------+-------+-------+-------+
|       |   O   |   V   |       |   -   | (new)
|   10  +-------+-------+-------+-------+
|       |   O   |   V   |   O   |  Dun  |
+-------+-------+-------+-------+-------+

Annotation:
1. "V" means that the given network is connected and
   it is default network.
2. "O" means that the given network is connected and
   it is not default network.

Bug: 257408654
Test: atest ConnectivityCoverageTests
Change-Id: Ie7beda1a8fcfd2a3f2600ca601f58d869144d275
2022-12-28 02:28:00 +00:00
Hungming Chen
ecfe710805 TetheringTest: separate setup func from chooseDunUpstreamTestCommon
Prepare to share setup function to more dun network tests.
No operation is changed.

Bug: 257408654
Test: TetheringTest
Change-Id: I29f08d8bc3cf83aa9d03f5d2819a1c67466b7bcc
2022-12-26 19:25:16 +08:00
Mark Chien
09cb20d8a8 Merge "TestOnly: disable some UpstreamNetworkMonitor tests after T" 2022-12-21 06:27:02 +00:00
Mark
2657da3cbf TestOnly: disable some UpstreamNetworkMonitor tests after T
The legacy upstream selection flow is never called after T. Stop the
related test cases after T also.

Bug: 257408654
Test: atest TetheringTests
Change-Id: I62692bb9a49dde432d31bece41b4cff442a327d1
2022-12-21 06:26:37 +00:00