Commit Graph

10985 Commits

Author SHA1 Message Date
Jean Chalard
8b7208a8a5 Merge "Add forwarding methods to RoutingCoordinator" into main am: 23376e6fe7
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/2777668

Change-Id: Ib89b987a8d9a5e9b133bbff7333f8296af3e477f
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-27 05:42:04 +00:00
Jean Chalard
23376e6fe7 Merge "Add forwarding methods to RoutingCoordinator" into main 2023-10-27 05:12:07 +00:00
Treehugger Robot
d3403657df Merge "Support NetworkStatsEventLogger" into main am: aacd7d8d8c
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/2764848

Change-Id: I3cea9eb3db6244494b79b7eb8adbcba0e77a0208
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-26 14:33:52 +00:00
Treehugger Robot
aacd7d8d8c Merge "Support NetworkStatsEventLogger" into main 2023-10-26 14:17:21 +00:00
Chalard Jean
55ccfe19e2 Add forwarding methods to RoutingCoordinator
Test: RoutingCoordinatorServiceTest
      TetheringTest
Change-Id: Ic3b36ddc236e8615e7d931b6e526556bbd2dac17
2023-10-26 20:18:48 +09:00
Maciej Żenczykowski
dbf8d3025e Merge "remove dead portions of BpfUtils.java" into main am: bee431759a
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/2803204

Change-Id: Ib920e77884fb0d1d88d45c93a84cbd19b7244484
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-25 23:21:24 +00:00
Maciej Żenczykowski
de9d367ab2 remove dead portions of BpfUtils.java
(mostly to improve code coverage)

We can always revert if it ever turns out this is useful,
but I'd prefer for cgroup attach to be a once-at-boot
thing and handled either from bpfloader or the netd updatable
which are both directly C++ code.

Test: TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I79b5ca8a47388cb6b9189234942e74ab6056aab9
2023-10-25 17:40:35 +00:00
Junyu Lai
41b37349f3 Support NetworkStatsEventLogger
The performPoll method in the NetworkStatsService can be called
for many reasons, such as RAT changed events, LinkProperties
changed events, open session method calls, forceUpdate method
calls, etc.
However, the current logging is not sufficient to trace down
the caller of performPoll. This makes it difficult to debug
frequent poll issues or performance problems.

Adding debug log to logcat is not an option, given that
performPoll might run several times per second by system server
callers.

This change adds a reason code to the performPoll method and
a helper class to log performPoll events. This will allow us
to track down the caller of performPoll and better understand
why it is being called frequently or causing performance
problems.

This change also introduces a PollEvent object, which can be
used to put related information in subsequent changes when
logging.

Sample output:
Poll counts per reason:
  DUMPSYS: 0
  FORCE_UPDATE: 6
  GLOBAL_ALERT: 0
  NETWORK_STATUS_CHANGED: 3
  OPEN_SESSION: 0
  PERIODIC: 1
  RAT_CHANGED: 1
  REG_CALLBACK: 3
  REMOVE_UIDS: 0
  UPSTREAM_CHANGED: 1

Recent poll events:
  2023-10-04T02:47:12.937370 - Poll(flags=3, PollEvent{reason=REG_CALLBACK})
  2023-10-04T02:47:13.178559 - Poll(flags=3, PollEvent{reason=FORCE_UPDATE})

Test: manual
Test: atest FrameworksNetTests:android.net.connectivity.com.android.server.net.NetworkStatsEventLoggerTest
Test: atest FrameworksNetTests:android.net.connectivity.com.android.server.net.NetworkStatsServiceTest
Bug: 301141955
Change-Id: Ic6d0543ccdef12493385f45200199854b841a26b
2023-10-25 19:23:35 +08:00
Junyu Lai
8f1730ebf9 Merge "[BR01.1] Support BpfNetMapsReader" into main am: a62eed380c
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/2725213

Change-Id: I0a9955e7fa9d51b423f8cd1113553dd492caf843
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-24 06:19:04 +00:00
Junyu Lai
a62eed380c Merge "[BR01.1] Support BpfNetMapsReader" into main 2023-10-24 05:56:33 +00:00
Hansen Kurli
d59d1d790a Merge "Mock Vpn.setAlwaysOnPackage()." into main am: a584159ceb
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/2760608

Change-Id: I248a5f17f01a06e79159985881141fe2f767d83a
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-24 03:30:24 +00:00
Hansen Kurli
a584159ceb Merge "Mock Vpn.setAlwaysOnPackage()." into main 2023-10-24 03:11:38 +00:00
Maciej Żenczykowski
a588136a62 Merge "Add test for cgroup bpf program status" into main am: 1bd33c6c17
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/2797481

Change-Id: I8684d1beae7095a6fbd2e2a79ffed058c81e2f27
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-23 18:48:09 +00:00
Maciej Żenczykowski
1bd33c6c17 Merge "Add test for cgroup bpf program status" into main 2023-10-23 18:37:05 +00:00
Junyu Lai
626045a601 [BR01.1] Support BpfNetMapsReader
A helper class to *read* java BpfMaps. This is designed to
provide direct bpf access in the caller process through
ConnectivityManager APIs.

The change also removes any statical link to
net-utils-device-common-struct from service-connectivity.
This is because net-utils-device-common-struct is already
included in framework-connectivity. Including it again in
service-connectivity would create a r8 build fail by circular
dependency.

Test: atest FrameworksNetTests:android.net.connectivity.com.android.server.BpfNetMapsTest
Test: atest ConnectivityCoverageTests:android.net.connectivity.com.android.net.module.util.StructTest
Test: atest FrameworksNetTests:android.net.connectivity.android.net.BpfNetMapsReaderTest
Bug: 297836825
Change-Id: I7a6d2eb816d0dc7343167bddd672806b199f44fe
2023-10-23 20:11:02 +08:00
Hansen Kurli
bbbbc2fb1e Merge changes Id9f81fdf,I3428e8b3,Ifa895f71,I61cd4751,I47a25e9f into main am: 00fd12588f
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/2760607

Change-Id: If2ca83079c30566c93953827a2b7a165782be03a
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-23 12:07:55 +00:00
Hansen Kurli
00fd12588f Merge changes Id9f81fdf,I3428e8b3,Ifa895f71,I61cd4751,I47a25e9f into main
* changes:
  Add tests for always on lockdown VPN on system user.
  Remove MockVpn.setAlwaysOnPackage() non-lockdown.
  Mock onUserAdded() and onUserRemoved()
  Refactor helper method to return integer ranges.
  Add tests for onUserAdded and onUserRemoved
2023-10-23 11:58:24 +00:00
Hansen Kurli
2ddfc8ba8c Mock Vpn.setAlwaysOnPackage().
Call setRequireVpnForUids() directly to mock an always on Vpn
being enabled instead of calling the real Vpn method.

Bug: 230548427
Test: atest FrameworksNetTests
Change-Id: I63d6547104cc6ee984413d4cf6027ceecd301ecc
2023-10-23 17:22:19 +08:00
Hansen Kurli
a09c6f29a6 Add tests for always on lockdown VPN on system user.
Add test coverage for Vpn.setAlwaysOnPackage() where the caller
is system user to ensure uid = 0 is not restricted.

Bug: 230548427
Test: atest FrameworksNetTests
Change-Id: Id9f81fdf0147597f64f8440b971930b3bd7b55e5
2023-10-23 17:22:10 +08:00
Hansen Kurli
9ae16e4e27 Remove MockVpn.setAlwaysOnPackage() non-lockdown.
Remove calls to MockVpn.setAlwaysOnPackage() where lockdown is
false as this does not cause any changes to occur. Also verify
setRequireVpnForUids() is not called for this case in VpnTest.

Bug: 230548427
Test: atest FrameworksNetTests
Change-Id: I3428e8b31b02975975be9e943e1f88cf0e80c5ee
2023-10-23 16:03:06 +08:00
Hansen Kurli
cd04062150 Mock onUserAdded() and onUserRemoved()
Replace calls to onUserAdded() and onUserRemoved() to their
equivalent setUids() or setRequireVpnForUids() calls.

Note coverage for the calls to Vpn were added in VpnTest.

Bug: 230548427
Test: atest FrameworksNetTests
Change-Id: Ifa895f71f78bd3376216fd2759c7a5a33cd3aff1
2023-10-23 15:26:30 +08:00
Hansen Kurli
946cafb87e Refactor helper method to return integer ranges.
Calls to setRequireVpnForUids() for Vpn lockdown actually uses a
List instead of a Set of integer ranges.
Add intRangesExcludingUids() to return the needed List of integer
ranges and replace relevant usages of UidRange.toIntRanges() with
it.

Bug: 230548427
Test: atest FrameworksNetTests
Change-Id: I61cd4751ce2faeb129daa5ad5da7181e3c1df73c
2023-10-23 15:12:21 +08:00
Junyu Lai
54e84ab05a Add test for cgroup bpf program status
This is useful to ensure cgroup bpf program is attached,
which would lead to hard-debugging uid stats missing problem.

Test: atest ConnectivityServiceIntegrationTest#testBpfProgramAttachStatus
Bug: 292156770
Change-Id: I16370497484aff29ed41cbb0d160e530731e1a4e
2023-10-23 13:38:04 +08:00
Sudheer Shanka
569a944a05 Merge "Increase the service bind timeout." into main am: 6c83f00b09
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/2798032

Change-Id: I1143f8e5ccceaa55d934bf0a9dff04e8b29299f2
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-22 02:44:08 +00:00
Sudheer Shanka
6c83f00b09 Merge "Increase the service bind timeout." into main 2023-10-22 02:16:22 +00:00
Jean Chalard
a4b92a6b57 Merge "Reapply "Add LocalNetworkConfig"" into main am: e32bf36be8
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/2792436

Change-Id: I1f4843b60ab7aeecfd3df90d6a767775484e0ce8
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-20 06:41:55 +00:00
Jean Chalard
e32bf36be8 Merge "Reapply "Add LocalNetworkConfig"" into main 2023-10-20 06:25:14 +00:00
Sudheer Shanka
bbe0b27ed8 Increase the service bind timeout.
Bug: 305826147
Test: atest com.android.cts.net.HostsideRestrictBackgroundNetworkTests
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:4c137f7fa7827a9794165b86a5cc7ade85f017bf)
Merged-In: I1840e091ebbc9812da56a3522e009ba67a18c476
Change-Id: I1840e091ebbc9812da56a3522e009ba67a18c476
2023-10-19 19:19:51 +00:00
Junyu Lai
83eb7fc1cb Merge "Dump bpf program status in dumpsys" into main am: eb75416136
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/2774206

Change-Id: I22bfe10165de8de395422566f307b644714699ef
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-19 10:09:34 +00:00
Junyu Lai
eb75416136 Merge "Dump bpf program status in dumpsys" into main 2023-10-19 09:33:27 +00:00
Paul Hu
0a9fc24345 Merge "Add expired services removal flag" into main am: 322a322687
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/2788017

Change-Id: I59fd7682b000d1510f9c5587622dc685492e7fd3
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-19 06:46:44 +00:00
Paul Hu
322a322687 Merge "Add expired services removal flag" into main 2023-10-19 06:19:43 +00:00
Paul Hu
f3fe3333d3 Add expired services removal flag
The TTL check and removal of expired services is currently only
performed when a mDNS query is sent. This can result in expired
services remaining in the cache if no queries are sent. To
address this, the remaining TTL will be checked when retrieving
services from the MdnsServiceCache. Add a new flag to enable
the expired services removal feature. This feature will be
implemented in subsequent changes.

Bug: 265787401
Bug: 304649384
Test: atest FrameworksNetTests CtsNetTestCases
Change-Id: I30f0eea568ee45d363cc02821de0921d6040f981
2023-10-18 17:48:46 +08:00
Junyu Lai
155760b57b Dump bpf program status in dumpsys
Sample output:
Bpf Program Status:
  CGROUP_INET_INGRESS: 21
  CGROUP_INET_EGRESS: 22
  CGROUP_INET_SOCK_CREATE: 28
  CGROUP_INET4_BIND: 30
  CGROUP_INET6_BIND: 31

Test: adb shell dumpsys connectivity
Test: atest FrameworksNetTests:android.net.connectivity.com.android.server.ConnectivityServiceTest#testDumpDoesNotCrash
Test: atest ConnectivityCoverageTests:android.net.connectivity.com.android.server.ConnectivityServiceTest#testDumpDoesNotCrash
Bug: 292156770
Change-Id: I312c90c524af12d093536156d6d5c6febd64305a
2023-10-18 16:05:55 +08:00
Chalard Jean
f9d0e3e94f Reapply "Add LocalNetworkConfig"
This reverts commit 6eea22b18c.

Change-Id: I0a2cef4ee992577674c92ecd384dc6f4361afa02
2023-10-18 15:50:02 +09:00
Jean Chalard
1a127b05ea Merge "Reapply "Tell netd about local networks"" into main am: de0f4e5b87
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/2792435

Change-Id: I33c0d6e79f579764d8cd51690c0fdbf18cc3f21d
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-17 13:34:09 +00:00
Jean Chalard
de0f4e5b87 Merge "Reapply "Tell netd about local networks"" into main 2023-10-17 13:00:46 +00:00
Junyu Lai
c58926b4ec Merge "Move dumpsys to handler thread" into main am: 5606bba1f9
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/2785999

Change-Id: I5bd9aae3c84ac49d214d8615a1416a7e0744e931
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-17 11:38:16 +00:00
Junyu Lai
5606bba1f9 Merge "Move dumpsys to handler thread" into main 2023-10-17 11:08:19 +00:00
Junyu Lai
f8dba342f1 Move dumpsys to handler thread
I0afdda023208c3f8620cb5b89add66448af596d7 added some assertions
to ensure NetworkAgentInfo can only be accessed from the handler
thread. This is good to eliminate any potential concurrent
accessing problem. Howver, dumpsys runs on binder thread, this
change breaks dumpsys functionality.

Thus, this change:
  1. Copy Handler#runWithScissors() and related class
     locally since they are @hide methods.
  2. Run doDump on the handler thread and waits for return.

Test: adb shell dumpsys connectivity
Test: atest FrameworksNetTests:android.net.connectivity.com.android.server.HandlerUtilsTest
Fix: 303348620
Change-Id: Ic3a22f5d370bbf8c18b1972e86d695b6ad61bd0d
2023-10-17 17:16:04 +08:00
Chalard Jean
e0aaca5ac6 Reapply "Tell netd about local networks"
This reverts commit cc409153b4.

Change-Id: Ied6bdb9b94e08e2bfe1092765d0f4591e603c3eb
2023-10-17 17:39:23 +09:00
Paul Hu
a55920ca69 Merge "Include A/AAAA records in probing packet" into main am: 4479bd9f27
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/2739333

Change-Id: Idc31dd8f93df533c2d6b514ceafc026f2918d34f
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-17 02:55:04 +00:00
Paul Hu
4479bd9f27 Merge "Include A/AAAA records in probing packet" into main 2023-10-17 02:24:10 +00:00
Patrick Rohr
993f28cfb4 Merge "Disable flaky NetworkStatsHistoryTest#testFuzzing in presubmit" into main am: bc17f31426
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/2788197

Change-Id: I0c63bb7d73ddbe5cc30e162a14a8cb7dcebe9908
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-16 22:35:57 +00:00
Patrick Rohr
bc17f31426 Merge "Disable flaky NetworkStatsHistoryTest#testFuzzing in presubmit" into main 2023-10-16 22:06:40 +00:00
Hansen Kurli
a0cca02515 Add tests for onUserAdded and onUserRemoved
Test coverage of adding and removing a restricted user with and
without lockdown mode, using either setLockdown() and
setAlwaysOnPackage().

This change also refactors makeVpnUidRange() to return a list
and adds makeVpnUidRangeSet().

Bug: 230548427
Test: atest FrameworksNetTests
Change-Id: I47a25e9f0337f5c1d5754c279534640cd2753b5c
2023-10-16 18:11:41 +08:00
Hansen Kurli
de0eeb2ee4 Merge changes Ib7883f8a,I91ec59f7 into main am: 6f3e8aa4a0
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/2757367

Change-Id: I06c64d762d0242506ec543f1acf1cb082ccb36db
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-16 09:26:10 +00:00
Junyu Lai
09ac34db85 Disable flaky NetworkStatsHistoryTest#testFuzzing in presubmit
Root cause not yet located, disable test to unblock TH.

Test: atest ConnectivityCoverageTests:android.net.connectivity.android.net.NetworkStatsHistoryTest
Bug: 302325928
Change-Id: I618090b67e428ab911ec88e7daab30c14cccbf64
2023-10-16 17:21:06 +08:00
Hansen Kurli
6f3e8aa4a0 Merge changes Ib7883f8a,I91ec59f7 into main
* changes:
  Mock Vpn.setUnderlyingNetworks()
  Mock Vpn.setLockdown()
2023-10-16 09:04:22 +00:00
Junyu Lai
16e8b3b3de Merge changes If7cb1cbb,I1d09ac01 into main am: e5c0a0fe56
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/2749823

Change-Id: I8d8c2da425adcbb63266074412145a86c6831d0b
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-16 07:15:11 +00:00