Commit graph android_packages_modules_Co.../service/src/com/android/server/ConnectivityService.java
Message SHA1
Merge "Remove locks from LegacyNetworkActivityTracker" am: d66e846764 am: 7dd8c0ead3 am: 7380d35aa1
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/2606669

Change-Id: I1295ac32f5ad7e0d6b0e623f3bca692f854bc304
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>

Motomu Utsumi   authored and   Automerger Merge Worker   commited 2023-06-20 02:58:54 +00:00
ec6df2053a
Merge "Add executing thread check in LegacyNetworkActivityTracker" am: 48d4e66542 am: c34a1628ff am: b9ea7b707e
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/2605754

Change-Id: I99b210050d80d273f6c8420125ff7e020fcd75c0
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>

Motomu Utsumi   authored and   Automerger Merge Worker   commited 2023-06-20 02:58:43 +00:00
a754722358
Merge "Add idleTimer existence check before removing idleTimer" am: 40177cf4cb am: 204765e5e5 am: f0fb1e6e38
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/2605753

Change-Id: I4e3c21dcae0ff5d10e9f6e6b44f22a8a7194b47e
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>

Motomu Utsumi   authored and   Automerger Merge Worker   commited 2023-06-20 02:58:32 +00:00
2ea33a84e8
Merge "Move network activity change processing to handler thread" am: df9a2d7e20 am: b3f309ca24 am: 557fbbdf90
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/2606673

Change-Id: If88c3e9a4a7022e63d7d8188b4b578a5ffcb6479
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>

Motomu Utsumi   authored and   Automerger Merge Worker   commited 2023-06-20 02:58:21 +00:00
2affe13aa3
Merge "Remove locks from LegacyNetworkActivityTracker"
Motomu Utsumi   authored and   Gerrit Code Review   commited 2023-06-20 00:58:14 +00:00
d66e846764
Merge "Add executing thread check in LegacyNetworkActivityTracker"
Motomu Utsumi   authored and   Gerrit Code Review   commited 2023-06-20 00:57:45 +00:00
48d4e66542
Merge "Add idleTimer existence check before removing idleTimer"
Motomu Utsumi   authored and   Gerrit Code Review   commited 2023-06-20 00:45:03 +00:00
40177cf4cb
Merge "Move network activity change processing to handler thread"
Motomu Utsumi   authored and   Gerrit Code Review   commited 2023-06-20 00:44:47 +00:00
df9a2d7e20
Remove locks from LegacyNetworkActivityTracker
Following CLs update LegacyNetworkActivityTracker to support multiple
network activity tracking on U+ devices.
This CL is a preparation for them.

Reasons for having locks in LegacyNetworkActivityTracker were 1)
mNetworkActive can be updated from non handler thread 2)
isDefaultNetworkActive can be called from non handler thread and this
return boolean based on mNetworkActive and mActiveIdleTimers.

aosp/2606673 moves the activity change processing to handler thread
and resolved the first reason.
This CL updates isDefaultNetworkActive to just return
mNetworkActive and resolved the second reason.

So, now LegacyNetworkActivityTracker doesn't need locks and this CL
removed the locks.

Bug: 267870186
Bug: 279380356
Test: atest FrameworksNetTests
Change-Id: I12e3a00c6f8c4a0c40b45b9461860fe2e82fe22a

Motomu Utsumi   commited 2023-06-19 16:03:29 +09:00
c298cf0c2d
Merge "Always disconnect agents immediately." am: d925df8aa6 am: a89d79e3c7 am: 235cb64505
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/2623893

Change-Id: I850e1253735cff84730e36f92cc3ce7763dac00a
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>

Lorenzo Colitti   authored and   Automerger Merge Worker   commited 2023-06-15 06:31:03 +00:00
7ed3e7d540
Always disconnect agents immediately.
Currently, various codepaths in ConnectivityService disconnect
networks using NetworkAgentInfo#disconnect. This posts a message
to the NetworkAgent to disconnect and also posts a message to
ConnectivityService to call disconnectAndDestroyNetwork, which
performs all cleanup in ConnectivityService. These two messages
race and the order is non-deterministic.

Instead, always disconnect using disconnectAndDestroyNetwork,
and have disconnectAndDestroyNetwork post the message to the
agent to disconnect.

This fixes a bug where if wifi uses unregisterAfterReplacement
twice in quick succession, when the third agent connects it
doesn't work because the interface is still being used by the
second network.

Also remove the import of IllegalArgumentException to keep the
linter happy (java.lang.* never needs to be imported).

Bug: 286649301
Test: covered by existing tests
Change-Id: Ie01f5589d6839ac6db25f0ba98fc929fbb5b0a96

Lorenzo Colitti   commited 2023-06-14 18:03:02 +09:00
4bc9fa6b8c
Merge changes I4994dd8d,I98c1aab4 am: 472d51344c am: fccaf1b299 am: bbfeebace0
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/2620696

Change-Id: I68db492f0d0e95dda68bcae9198b76292ede0635
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>

Maciej Å»enczykowski   authored and   Automerger Merge Worker   commited 2023-06-09 11:22:48 +00:00
6d45dab095
Merge changes I4994dd8d,I98c1aab4
* changes:
  Annotate ClatCoordinator with RequiresApi(T), part 2
  Annotate ClatCoordinator with RequiresApi(T)

Maciej Å»enczykowski   authored and   Gerrit Code Review   commited 2023-06-09 09:06:25 +00:00
472d51344c
Annotate ClatCoordinator with RequiresApi(T), part 2
Test: TreeHugger
Bug: 284253984
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I4994dd8d4e5e303bca6c33928d359064632b3c4d

Maciej Å»enczykowski   commited 2023-06-09 09:06:19 +00:00
7b05987701
Add executing thread check in LegacyNetworkActivityTracker
One of the reasons for having locks in LegacyNetworkActivityTracker is
mNetworkActive is updated from non handler thread.
aosp/2606673 moves network activity change processing to handler thread.
All the methods that update mNetworkActive and mActiveIdleTimers should
be called from handler thread now.

Bug: 267870186
Bug: 279380356
Test: atest FrameworksNetTests
Change-Id: I5c8cd0b253a77a2740ade3a0145ef80336b3b133

Motomu Utsumi   commited 2023-06-09 17:41:01 +09:00
e0ecaea594
Add idleTimer existence check before removing idleTimer
IdleTimer tracking can be disabled if configured timeout is 0 or
negative value.
In this case, setupDataActivityTracking does not add idleTimer and
removeDataActivityTracking causes NPE.
This did not cause crash since the code to cause NPE is wrapped by try
catch.
This CL adds check to avoid causing NPE.

Bug: 267870186
Bug: 279380356
Test: atest FrameworksNetTests
Change-Id: Id774c5ee3d0318d9736f287c50ccf4c7c5743aef

Motomu Utsumi   commited 2023-06-09 17:28:47 +09:00
00ccb51aa3
Move network activity change processing to handler thread
Following CLs update LegacyNetworkActivityTracker to support multiple
network activity tracking on U+ devices.
This CL is a preparation for them.

Bug: 267870186
Bug: 279380356
Test: atest FrameworksNetTests
Change-Id: I2598feef93ef34e10bf576560f687ff7fc449ab9

Motomu Utsumi   commited 2023-06-09 17:28:47 +09:00
5dfaf4e176
Merge "Remove spurious WTF on pre-U devices." am: c2851d45fd am: 80e186e43d am: a1d077267e
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/2618590

Change-Id: I74ff8480827d125ec27d8578c135843a93c2fbb0
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>

Lorenzo Colitti   authored and   Automerger Merge Worker   commited 2023-06-07 10:57:40 +00:00
f071a921c1
Merge "Remove spurious WTF on pre-U devices."
Lorenzo Colitti   authored and   Gerrit Code Review   commited 2023-06-07 09:00:13 +00:00
c2851d45fd
Remove spurious WTF on pre-U devices.
aosp/2162425 added a WTF if a NetworkAgent changed state before
its native network has been created. This was intended to apply
only to the new U+ codepath, where networks are always created
immediately as soon as their agents register them. But the WTF is
logged on pre-U devices as well.

Fix this so that the WTF is only logged when the new codepath is
running.

Fix: 285999421
Test: TH
Change-Id: I28bda08a006978ab760fe8891bf5cf15b536201a

Lorenzo Colitti   commited 2023-06-07 11:42:20 +09:00
233f2d1d19
Merge "Fix a bug where the PAC proxy port is not set correctly." am: f2b38772ac am: 19fec43662 am: 9a0b1f2653
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1729153

Change-Id: I1612e3a0360961267264c80ecff16ec49e75f33e
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>

Jean Chalard   authored and   Automerger Merge Worker   commited 2023-06-06 14:23:47 +00:00
78efbdcad1
Merge "Fix a bug where the PAC proxy port is not set correctly."
Jean Chalard   authored and   Gerrit Code Review   commited 2023-06-06 12:22:21 +00:00
f2b38772ac
Fix a bug where the PAC proxy port is not set correctly.
Test: new test for this behavior in the preliminary change
Test: FrameworksNetTests NetworkStackTests
Fixes: 138810051
Fixes: 140610528
Change-Id: I95a979d232fb60ece2e33e972bf5d66d20357a1f

Aaron Huang   authored and   Chalard Jean   commited 2023-06-05 20:24:59 +09:00
9fe47bee09
On U+ require config_networkWakeupPacketMark/Mask to be 0x80000000 am: f310a14d53
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/23560649

Change-Id: I09b9d6caea14179c065ab719c5141a2cc8b27a2c
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>

Maciej Å»enczykowski   authored and   Automerger Merge Worker   commited 2023-06-05 10:31:32 +00:00
fb12b4ad40
Merge "On U+ require config_networkWakeupPacketMark/Mask to be 0x80000000"
Treehugger Robot   authored and   Gerrit Code Review   commited 2023-06-05 09:34:47 +00:00
c133f6e29c
On U+ require config_networkWakeupPacketMark/Mask to be 0x80000000
See system/netd/include/Fwmark.h which reserves the bottom 21 bits
of skb->mark for netid, etc... so out of necessity these have to be
in the top 11 bits.

In practice the only values that really make sense are either:
  mark == mask == 0 (disabled)
or (mark == mask) being one of the top 11 available bits, for example:
  mark == mask == 0x80000000 (enabled, using top-most bit)
(only a single bit makes sense, as this is really just a boolean signal,
 and only the topmost is known to be used on any real devices)

Let's just force the use of 0x80000000 for ecosystem consistency.

Bug: 284334830
Test: TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
(cherry picked from https://android-review.googlesource.com/q/commit:767cf7f1cfc6d612bc8554fef8c354fdd660695b)
Merged-In: I199e9b00de845b3747940426ea6644426ab72e87
Change-Id: I199e9b00de845b3747940426ea6644426ab72e87

Maciej Å»enczykowski   commited 2023-06-05 07:44:18 +00:00
f310a14d53
On U+ require config_networkWakeupPacketMark/Mask to be 0x80000000
See system/netd/include/Fwmark.h which reserves the bottom 21 bits
of skb->mark for netid, etc... so out of necessity these have to be
in the top 11 bits.

In practice the only values that really make sense are either:
  mark == mask == 0 (disabled)
or (mark == mask) being one of the top 11 available bits, for example:
  mark == mask == 0x80000000 (enabled, using top-most bit)
(only a single bit makes sense, as this is really just a boolean signal,
 and only the topmost is known to be used on any real devices)

Let's just force the use of 0x80000000 for ecosystem consistency.

Bug: 284334830
Test: TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I199e9b00de845b3747940426ea6644426ab72e87

Maciej Å»enczykowski   commited 2023-06-05 07:41:00 +00:00
cf41fc877a
Merge "Use netd socketDestroy for VPN in T-" am: d8b852fc06 am: fb2ec37ecd am: d54d71ed34
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/2614310

Change-Id: I6871fbdee5896c460ba69781140c78541cb8f974
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>

Motomu Utsumi   authored and   Automerger Merge Worker   commited 2023-06-05 04:51:11 +00:00
0ddac8acd2
Merge "Use netd socketDestroy for VPN in T-"
Motomu Utsumi   authored and   Gerrit Code Review   commited 2023-06-05 03:04:19 +00:00
d8b852fc06
Use netd socketDestroy for VPN in T-
aosp/2490881 updated to use InetDiagMessage.destroyLiveTcpSocket for all
devices.
But it is possible that netd socketDestory is modified in T- devices.
So this CL revert changes to keep using netd socketDestroy in T-
devices.

Test: atest FrameworksNetTests
Bug: 284253763
Change-Id: I9b61f10e975d2e38e9829a8c01d3af706e2518ef

Motomu Utsumi   commited 2023-06-04 23:12:58 +09:00
1d13726710
Merge "Add tests for PAC proxies." am: 5e76b40973 am: 4155e6ec97 am: 4ae128e7e1
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1729152

Change-Id: Ifc4c685e724de1c3727b560d0213b4257f71da54
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>

Jean Chalard   authored and   Automerger Merge Worker   commited 2023-06-01 21:59:13 +00:00
cab00afb88
Merge "Add tests for PAC proxies."
Jean Chalard   authored and   Gerrit Code Review   commited 2023-06-01 05:20:37 +00:00
5e76b40973
Add tests for PAC proxies.
Test: this is a change that adds a test
Bug: 138810051
Bug: 140610528
Change-Id: I6e7b77320f6baf32ac2f98634fa2e3231d1bf12f

Aaron Huang   authored and   Chalard Jean   commited 2023-05-30 15:53:11 +09:00
40b524448c
Merge "Instrument SDK level and change IDs to help testing" am: 5cc9676d4c am: 2d280e5389 am: f62a06ea96
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/2606676

Change-Id: I8975715af7dd0b1406b5bf552231d6097850a964
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>

Jean Chalard   authored and   Automerger Merge Worker   commited 2023-05-30 04:25:39 +00:00
4212bf3ec0
Instrument SDK level and change IDs to help testing
This patch mocks the SDK level and/or change IDs to help
developing functionality that depends on these without
having to flash a new device every time.

Test: TH
Change-Id: I1011193c99e123a0e5501ed313c9cecbceebdae6

Chalard Jean   commited 2023-05-29 18:42:31 +09:00
df29a85ee7
Merge "Revert "Suppress lint for methods using APIs promoted from system to public""
Treehugger Robot   authored and   Gerrit Code Review   commited 2023-05-25 08:21:39 +00:00
22df1c47ec
Revert "Suppress lint for methods using APIs promoted from system to public"
This reverts commit 73f6948915.

Reason for revert: The bug that necessitated this workaround has been addressed.

Change-Id: Idac3903df029e841bde6c57c9d453b56760d2553
Test: TH

Jean Chalard   commited 2023-05-23 07:47:35 +00:00
cf83d376bc
Use "don't actively prefer" timeout when avoiding bad wifi
Test: ConnectivityServiceTest
Change-Id: I6e99aff77c55805630d878e472f466bd31bba360

Chalard Jean   commited 2023-05-23 13:47:15 +09:00
6f6c353baf
Merge changes from topic "cherrypicker-L68400000960711014:N74200001369704906" into udc-dev
* changes:
  Fix agents disconnecting in SUSPENDED state.
  Check clatd does not stop when suspended network is disconnected

Motomu Utsumi   authored and   Android (Google) Code Review   commited 2023-05-17 06:19:24 +00:00
8a32db5fbc
Merge "Immediately create native networks when NetworkAgents register." into udc-dev
Treehugger Robot   authored and   Android (Google) Code Review   commited 2023-05-17 04:39:20 +00:00
432a18b7e8
Fix agents disconnecting in SUSPENDED state.
Network state is not changed to disconnected when a networkagent
is disconnected and network state is SUSPENDED.

So the function requiresClat return true. Clat is not stoped.

Bug: 277682237
Test: atest FrameworksNetTests
(cherry picked from https://android-review.googlesource.com/q/commit:fd5d3d90e1da7411104902ddfe859ebd0e4a02fb)
Merged-In: I5edfcf64aca5d2d34325d722dd29fab41bcf2600
Change-Id: I5edfcf64aca5d2d34325d722dd29fab41bcf2600

wangshengrjxtjcb   authored and   Cherrypicker Worker   commited 2023-05-17 02:42:14 +00:00
9b5334dbad
Fix agents disconnecting in SUSPENDED state.
Network state is not changed to disconnected when a networkagent
is disconnected and network state is SUSPENDED.

So the function requiresClat return true. Clat is not stoped.

Bug: 277682237
Test: atest FrameworksNetTests

Change-Id: I5edfcf64aca5d2d34325d722dd29fab41bcf2600

wangshengrjxtjcb   authored and   Motomu Utsumi   commited 2023-05-16 16:35:03 +09:00
fd5d3d90e1
Close sockets from ConnectivityService#setFirewallChainEnabled
And replace netd.socketDestroy by Java implementation

Bug: 270298713
Test: atest FrameworksNetTests CtsNetTestCases
(cherry picked from https://android-review.googlesource.com/q/commit:d44a33adb958d973bb15c74635be6c15dbf8af88)
Merged-In: I0e200247ca010f9649254eeaac02740bd2bfdb21
Change-Id: I0e200247ca010f9649254eeaac02740bd2bfdb21

Motomu Utsumi   authored and   Cherrypicker Worker   commited 2023-05-12 09:32:45 +00:00
ed1848c6e3
Merge changes from topic "firewall_socket_destroy"
* changes:
  Close sockets from ConnectivityService#setFirewallChainEnabled
  Add test to verify socket close when firewall is enabled

Motomu Utsumi   authored and   Gerrit Code Review   commited 2023-05-12 09:18:40 +00:00
179d18b3ad
Immediately create native networks when NetworkAgents register.
Currently, native networks for non-VPN networks are created only
when the NetworkAgent goes into the CONNECTED state. This is not
ideal, because until the network is connected:

- Nothing routes to the network, so no IP packets can be sent on
  it (except via packet sockets).
- Many network configuration changes (e.g., routes and DNS
  servers) fail to apply because the network does not exist yet.
  These cause ENONET errors in the logs.

Fix this starting in U by creating the native network as soon as
the agent registers. This should not impact apps because
NetworkCallbacks are not sent until networks are connected.

Bug: 143158421
Test: new coverage in NetworkAgentTest
(cherry picked from https://android-review.googlesource.com/q/commit:4f87aa3f13d8972d7525bb7231cf7ad6aaa0b7eb)
Merged-In: I26bfa8630c085422175558645c47a6c64be96ae6
Change-Id: I26bfa8630c085422175558645c47a6c64be96ae6

Lorenzo Colitti   authored and   Cherrypicker Worker   commited 2023-05-11 06:24:47 +00:00
8c21c3b14d
Merge "Immediately create native networks when NetworkAgents register."
Lorenzo Colitti   authored and   Gerrit Code Review   commited 2023-05-11 03:35:21 +00:00
18cdec34dd
Close sockets from ConnectivityService#setFirewallChainEnabled
And replace netd.socketDestroy by Java implementation

Bug: 270298713
Test: atest FrameworksNetTests CtsNetTestCases
Change-Id: I0e200247ca010f9649254eeaac02740bd2bfdb21

Motomu Utsumi   commited 2023-05-11 12:22:09 +09:00
d44a33adb9
Optionally have ConnectivityService kill sockets for frozen apps
To do this we register a UidFrozenStateChangedCallback with
ActivityManager. The callback then queues up work on the Handler thread
to consume the original callback args and kill appropriate sockets.

Test: atest ConnectivityServiceTests
Bug: 277100090
(cherry picked from https://android-review.googlesource.com/q/commit:7c999d8d4cc4cd092d2de52ae98037ca4861e71f)
Merged-In: I93f174811aef726145a18ea90443ddfc1456478e
Change-Id: I93f174811aef726145a18ea90443ddfc1456478e

Mark Fasheh   authored and   Cherrypicker Worker   commited 2023-05-11 02:25:35 +00:00
7501e76ea4
Optionally have ConnectivityService kill sockets for frozen apps
To do this we register a UidFrozenStateChangedCallback with
ActivityManager. The callback then queues up work on the Handler thread
to consume the original callback args and kill appropriate sockets.

Test: atest ConnectivityServiceTests
Bug: 277100090
Change-Id: I93f174811aef726145a18ea90443ddfc1456478e

Mark Fasheh   commited 2023-05-10 21:04:54 +00:00
7c999d8d4c
Merge changes from topic "cherrypicker-L46000000960545507:N69100001367007678" into udc-dev
* changes:
  Fix isFeatureEnabled namespace and overload usage
  Add a dependency object in TetheringConfiguration
  Use DeviceConfigUtils for ConnectivityResources
  Move ConnectivityResources to service-connectivity

Motomu Utsumi   authored and   Android (Google) Code Review   commited 2023-05-10 11:22:35 +00:00
c50ead2707