Commit graph

5,704 commits

Message SHA1
Merge "Remove ConnectivityManager and its usages from NetworkStatsService."
am: 93dfa10da4

Change-Id: I2a2809d3a2ee4106cc131d61ace401f31c187844

Varun Anand   authored and   android-build-merger   commited 2019-02-28 19:18:33 -08:00
014fc924bc
Remove ConnectivityManager and its usages from NetworkStatsService.
NSS needed it for getting VpnInfo[], NetworkState[] and
activeLinkProperties which it used to query via ConnectivityManager.

For VpnInfo[], this was racy as NSS may ignore intermediate changes to a
VPN's underlying networks. See http://b/123961098 for more context.

It may also lead to deadlocks b/w ConnectivityService and
NetworkStatsService. See http://b/126245192 for more info.

This change will ensure that NSS is never contending on any of
ConnectivityService locks.

Bug: 123961098
Bug: 126245192
Bug: 120145746
Test: atest FrameworksNetTests
Change-Id: Id1da446b54d95ee68ed14079107b1a10318bcf8b
Merged-In: I57e117bb4e9efe491b19d6b5a479f2d58d1c58e6

Varun Anand   commited 2019-03-01 00:10:52 +00:00
5e980f4e3d
Merge "Fix broken javadoc links"
am: e239dc818c

Change-Id: I7f1ef96544450ae71af3b76783fcbdc7641a2d43

Chiachang Wang   authored and   android-build-merger   commited 2019-02-28 05:46:29 -08:00
ba54027efe
Merge "Fix broken javadoc links"
Treehugger Robot   authored and   Gerrit Code Review   commited 2019-02-28 13:34:52 +00:00
e239dc818c
Merge changes from topic "nat64"
am: cfb7f03ec9

Change-Id: I3f7f74c197dd5da3db7d8d41fa4a26aacf38c2e8

Lorenzo Colitti   authored and   android-build-merger   commited 2019-02-27 15:56:18 -08:00
e98fe61189
Merge changes from topic "nat64"
* changes:
  Catch ServiceSpecificException instead of IllegalStateException.
  Manage NAT64 prefix discovery lifecycle in the framework.
  Track NAT64 in the framework and start clatd iff NAT64 detected
  Change Nat464Xlat lifecycle.
  Minor improvements to verifyTcpBufferSizeChange.

Lorenzo Colitti   authored and   Gerrit Code Review   commited 2019-02-27 23:37:42 +00:00
cfb7f03ec9
Catch ServiceSpecificException instead of IllegalStateException.
The old NetworkManagementService methods to start clatd threw
IllegalStateException, but the new netd methods throw
ServiceSpecificException. Update the catch clauses so that if
starting clatd fails, the system doesn't crash.

Also stop logging stack traces but only include the exception
message itself.

Bug: 65674744
Test: atest FrameworksNetTests
Test: connecting/disconnecting to v6-only wifi in a loop does not crash
Change-Id: I4a9ec7f104712fbbe08f4f67e3288df03e8ed873

Lorenzo Colitti   commited 2019-02-27 18:21:22 +09:00
b1ef6f7a8f
Fix broken javadoc links
Bug: 123683994
Test: Verify with javadoc
Change-Id: I4b1b936e3cf86104ace5fcb6829778710801f2d5

Chiachang Wang   commited 2019-02-27 17:18:40 +08:00
0d92d1a79c
Manage NAT64 prefix discovery lifecycle in the framework.
Currently NAT64 prefix discovery, which runs in netd, is started
by netd itself when a network is programmed with all-IPv6 DNS
servers. Unfortunately this is not correct because in many cases
we program DNS servers before the network is connected and it's
actually possible to send packets to them.

In general netd does not have enough visibility into network
lifecycle management to decide when to start and stop prefix
discovery. So move it into the framework with the rest of the
464xlat control plane.

Bug: 65674744
Test: atest FrameworksNetTests
Change-Id: I8fa051a9c216d9c05082bf7d0bbb0cbd56000162

Lorenzo Colitti   commited 2019-02-27 00:18:13 +09:00
714b786585
Track NAT64 in the framework and start clatd iff NAT64 detected
Currently, both netd and clatd do NAT64 prefix detection, and we
start clatd on all IPv6-only networks regardless of whether netd
has detected a NAT64 prefix or not.

Instead, track the NAT64 prefix in the framework, and only start
clatd if the prefix is detected. This will allow us to remove
DNS64 detection in clatd, and pass the NAT64 prefix and the IPv6
address to clatd on the command line instead of clatd finding it
itself. That way, netd and the framework will always know how
464xlat is configured, and we'll be able to use that information
in netd.

Test: builds, boots
Test: atest FrameworksNetTests
Change-Id: Ida32d5760c5aecf7aeebef08fdb596291b2ce14a

Lorenzo Colitti   commited 2019-02-25 11:42:00 +09:00
8d39bbf0a4
Change Nat464Xlat lifecycle.
Currently, NetworkAgentInfo keeps a Nat464Xlat object only on
networks where we're starting clatd (i.e., IPv6-only networks).
Simplify this code by making the Nat464Xlat object final and
always non-null. This allows us to use Nat464Xlat to store
information, such as the NAT64 prefix, even if the clat daemon
has not been started yet.

Also, remove the STOPPING state which waits for the interface to
be removed. Instead, when stop() is called, immediately enter the
IDLE state.
- This is necessary in order to be able to call start() again
  before the interface removal notification has arrived.
- It's also arguably more correct than the current code,
  because when stop() returns clatd has already terminated
  (ClatdController::stopClatd calls waitpid), and thus the tun
  fd is already closed and the tun interface is gone.

Also, now that Nat464Xlat objects are reused after stop(), add
test coverage for calling start() after stop, in both cases:
- The notification that the previous interface was removed
  arrives before the second start().
- The notification that the previous interface was removed
  arrives after the second start() but before the notification
  that the second interface was added.

Also fix a couple of lint warnings.

Test: builds, boots
Test: atest FrameworksNetTests
Test: clatd stops when IPv4 address added
Test: clatd restarts after "adb shell killall clatd"
Change-Id: I3dc66d155aa27606681f3473daf2170434d8c6d0

Lorenzo Colitti   commited 2019-02-25 11:42:00 +09:00
07f10206e6
Minor improvements to verifyTcpBufferSizeChange.
1. Remove "throws Exception" from the signature so it can be used
   in tests that do not already throw Exception.
2. Update comment to reflect the fact that TCP buffer sizes are
   set on default network switch, not on connect.
3. Move into the method a class-level static constant that is
   only used in that method.

Test: atest ConnectivityServiceTest
Change-Id: Ic2e4fbedc23065efc20e45ea84996b577a8e94b6

Lorenzo Colitti   commited 2019-02-25 11:41:50 +09:00
b0e7a02891
Merge "DO NOT MERGE - Merge pi-dev@5234907 into stage-aosp-master" into stage-aosp-master
Xin Li   authored and   Android (Google) Code Review   commited 2019-02-23 00:39:16 +00:00
5d53623a89
DO NOT MERGE - Merge pi-dev@5234907 into stage-aosp-master
Bug: 120848293
Change-Id: I2f9a524f2ba552de3f62e343075cf0abf400bbae

Xin Li   commited 2019-02-21 16:02:06 -08:00
2348103b5a
Merge "Add logging to NetworkStackClient"
am: b4ef756571

Change-Id: I0fe820c6feab3caa9ad0739df100553b2d4374e0

Remi NGUYEN VAN   authored and   android-build-merger   commited 2019-02-21 14:28:46 -08:00
3c771cc3e6
Merge "Add logging to NetworkStackClient"
Remi NGUYEN VAN   authored and   Gerrit Code Review   commited 2019-02-21 22:13:31 +00:00
b4ef756571
Merge "Send special permission information to netd"
am: 84537c00b2

Change-Id: I35aa015a9448b5f8563da0aee40afd3101df29ff

Chenbo Feng   authored and   android-build-merger   commited 2019-02-21 13:30:32 -08:00
26018a4836
Merge "Send special permission information to netd"
Treehugger Robot   authored and   Gerrit Code Review   commited 2019-02-21 20:27:58 +00:00
84537c00b2
Add logging to NetworkStackClient
The current logging relies on the system log that may rotate. This is a
problem to investigate bugs where the network stack service is not
started. Add a SharedLog to NetworkStackClient and dump it in
ConnectivityService (for lack of a better place to dump it).

Bug: 124307802
Test: Booted, dumpsys connectivity shows the log
Change-Id: If596451d0613645f68a8a32acb032eea76ea506c

Remi NGUYEN VAN   commited 2019-02-21 17:09:12 +09:00
a00a3f255d
Send special permission information to netd
Netd need the list of apps that have permission INTERNET or permission
UPDATE_DEVICE_STATS at run time to make decisions about application
request. To avoid protential deadlock and reduce the traffic between
netd and system server, Use packageManagerServcie to send the list of
apps that have those permissions to netd when device boot and when new
apps get installed.

Bug: 111560570
Bug: 111560739
Test: install and uninstall packages and dumpsys netd trafficcontroller
Change-Id: Idb9905f424557a5c59e35d41f5eafe345aca87e0

Chenbo Feng   commited 2019-02-20 14:07:18 -08:00
002c556145
[automerger skipped] Merge changes from topic "PPRL.190205.001"
am: f6abf78795 -s ours
am skip reason: change_id I421c7487955ee339f88e3957c973375d0f87e2ff with SHA1 95bd7221f6 is in history

Change-Id: Ieb824b633f240abc96ee25f39c68f55f1bd621bd

Xin Li   authored and   android-build-merger   commited 2019-02-20 10:17:48 -08:00
0b448cafc4
Merge changes from topic "PPRL.190205.001"
* changes:
  Fix merge problems with cherry-picking "Add notification settings to backup&restore" change into pi-dev
  DO NOT MERGE - Merge PPRL.190205.001 into master

Xin Li   authored and   Gerrit Code Review   commited 2019-02-20 16:25:58 +00:00
f6abf78795
Merge "Skip unreachable route when estimating VPN destinations"
am: 3b3871c9e5

Change-Id: Iafa9ecaf07a36f235b366655d2fa2165a676d1cd

Rubin Xu   authored and   android-build-merger   commited 2019-02-20 04:15:55 -08:00
a480624ebd
Merge "Skip unreachable route when estimating VPN destinations"
Treehugger Robot   authored and   Gerrit Code Review   commited 2019-02-20 12:00:15 +00:00
3b3871c9e5
Skip unreachable route when estimating VPN destinations
Bug: 122652441
Test: atest com.android.server.connectivity.VpnTest
Test: Establish a IPv4 VPN with minimal routes and check
(dumpsys connectivity) the VPN network does not have INTERNET
capability.

Change-Id: Ic7f19ebb7b7f78a6ffb2a8ec3fc3eca5e5421f57

Rubin Xu   commited 2019-02-19 17:18:34 +00:00
1faa896f77
Merge "Update VPN capabilities when its underlying network set is null."
am: 9e226700d9

Change-Id: Id4560d201a40f5e1b1617819991da99d86379dbe

Varun Anand   authored and   android-build-merger   commited 2019-02-15 03:45:03 -08:00
bd97fcd674
Merge "Update VPN capabilities when its underlying network set is null."
Treehugger Robot   authored and   Gerrit Code Review   commited 2019-02-15 11:33:27 +00:00
9e226700d9
Merge "Move NetworkStack to services.net"
am: f66b7a8e60

Change-Id: Iab45985aedb8069ad50fd2913ef6e828989cdd0d

Remi NGUYEN VAN   authored and   android-build-merger   commited 2019-02-15 03:01:11 -08:00
8989e36283
Merge "Move NetworkStack to services.net"
Remi NGUYEN VAN   authored and   Gerrit Code Review   commited 2019-02-15 10:52:03 +00:00
f66b7a8e60
Merge "Remove NetworkMonitor dependency on ICaptivePortal"
am: ca55fb73c7

Change-Id: Ia0d06e1aa931cdc1c6dd4008e804a6a44ae2304f

Remi NGUYEN VAN   authored and   android-build-merger   commited 2019-02-15 00:26:34 -08:00
50746281b1
Merge "Remove NetworkMonitor dependency on ICaptivePortal"
Remi NGUYEN VAN   authored and   Gerrit Code Review   commited 2019-02-15 08:09:29 +00:00
ca55fb73c7
Move NetworkStack to services.net
NetworkStack is only used in services.net or clients of services.net. It
cannot stay in framework.jar because it needs to depend on AIDL
interfaces, which would conflict with app implementations if they were
in framework.jar.

Test: atest FrameworksNetTests NetworkStackTests
Bug: 124033493
Change-Id: Ib1d08a3669983640119d008db7e2990fa798724f
Merged-In: I501b125a388c1100c2182bde4670944c2f0d7a02

Remi NGUYEN VAN   commited 2019-02-15 12:20:17 +09:00
f1c624afd1
Remove NetworkMonitor dependency on ICaptivePortal
ICaptivePortal is used in the framework and cannot be used as a
dependency in NetworkMonitor, as the framework class takes precedence
when linking.
Also fix NetworkMonitorTest that was not verifying the right
startCaptivePortalApp call.

Test: atest FrameworksNetTests NetworkStackTests
Bug: 124033493
Change-Id: I8e7bb79e50650ae182a2e4277fb49abf5fb6d910
Merged-In: Ib6a89e54312628662b130fbeec18d11e139f09fa

Remi NGUYEN VAN   commited 2019-02-15 12:20:03 +09:00
89fbdc360d
Update VPN capabilities when its underlying network set is null.
Previously, they were only updated when underlying network set was
non-null.

This change also ensures that all the calls b/w ConnectivityService and
Vpn that leads to updating capabilities are on ConnectivityService
handler thread.

Additionally, it also ensures that capabilities are propagated after VPN
enters connected state. This was previously done from establish which
could potentially lead to race between VPN getting connected and
capabilities getting updated.

This change also updates VPN capabilities inline from
ConnectivityService handler thread. Previously, there was an additional
loop where Vpn would update capabilities via NetworkAgent thru
AsyncChannel which posts back to CS handler thread, which could
potentially lead to delays in updating VPN capabilities.

Bug: 119129310
Bug: 118856062
Bug: 124268198
Test: atest FrameworksNetTests
Test: manual - verified VPNs capabilities are getting updated and
DownloadManager is working correctly.

Change-Id: Id0abc4d304bb096e92479a118168690ccce634ed

Varun Anand   commited 2019-02-14 18:50:56 -08:00
273f900b3b
Merge "DO NOT MERGE - Merge pi-platform-release (PPRL.190205.001) into stage-aosp-master" into stage-aosp-master
Xin Li   authored and   Android (Google) Code Review   commited 2019-02-14 22:11:32 +00:00
7687edd138
Merge "Add Test Network and Transport types"
am: df27f67993

Change-Id: I1cf33485adb9f4c442de42060697efe71bb45264

Benedict Wong   authored and   android-build-merger   commited 2019-02-14 10:49:48 -08:00
3a7e4f86ae
Merge "Add Test Network and Transport types"
Benedict Wong   authored and   Gerrit Code Review   commited 2019-02-14 18:37:04 +00:00
df27f67993
DO NOT MERGE - Merge pi-platform-release (PPRL.190205.001) into
stage-aosp-master

Bug: 124234733
Change-Id: Ic4f67fde0835da0b1c363906cccef0d244e38393

Xin Li   commited 2019-02-14 09:48:06 -08:00
4bf096e345
Merge "Fix flaky testNattSocketKeepalives"
am: 296c5ed68d

Change-Id: Ie9fe40e3bcf4187a2e5cbf525bc4e874cff70747

Remi NGUYEN VAN   authored and   android-build-merger   commited 2019-02-13 20:42:01 -08:00
793f58bb98
Merge "Clear all lingering notifications when network is disconnected"
am: 1037bbb82a

Change-Id: I2d9f84840cdc73ed3b30278d7a9dbeefff233fa3

Lucas Lin   authored and   android-build-merger   commited 2019-02-13 20:29:03 -08:00
460b42bc65
Merge "Fix flaky testNattSocketKeepalives"
Remi NGUYEN VAN   authored and   Gerrit Code Review   commited 2019-02-14 03:29:00 +00:00
296c5ed68d
Fix flaky testNattSocketKeepalives
The test did not wait for the WifiNetworkAgent to disconnect, and there
are reports of flakes where it is still connected in
connectKeepaliveNetwork.

Test: atest FrameworksNetTests
Bug: 124319553
Change-Id: I85968806885c8853ec4f4dbea356366c1af0ea1c

Remi NGUYEN VAN   commited 2019-02-14 03:28:48 +00:00
cb0b1fc561
Clear all lingering notifications when network is disconnected
In aosp/861571, it tried to refine the design to prevent the
lingering notification is cleared unexpectedly. However, all
notifications should be cleared when network is disconnected.
Refine the design by clearing all lingering notifications when
network is disconnected.

Bug: 123488640
Bug: 123537643
Test: 1.Build pass
      2.atest FrameworksNetTests
      3.Connect to a hotspot which doesn't have internet,
      after getting "NO_INTERNET" notification, disconnect
      the wifi and check if "NO_INTERNET" notification will
      be cleared or not.
Change-Id: Iac45ec186cf81915c318dba37f43136609d579f6

lucaslin   authored and   Lucas Lin   commited 2019-02-13 03:23:10 +00:00
b5b671abfd
Merge "Remove hard-coded NetworkStack package name"
am: 20bda51d6c

Change-Id: I0e67a5e857d4f5ba2af1f0928be6d97c0f4ce94f

Remi NGUYEN VAN   authored and   android-build-merger   commited 2019-02-11 20:22:40 -08:00
dba80faaf0
Merge "Remove hard-coded NetworkStack package name"
Remi NGUYEN VAN   authored and   Gerrit Code Review   commited 2019-02-12 03:58:09 +00:00
20bda51d6c
Add Test Network and Transport types
This change adds new network types for testing purposes, signifying a
network with an extremely limited feature set.

Bug: 72950854
Test: Compiles, CTS tests relying on this work correctly.
Change-Id: I06cade6044afd12e0b69ed3c2f160f27f85d43d0

Benedict Wong   commited 2019-02-11 12:57:43 -08:00
8015602ac9
Snap for 5180536 from b96a8ade50 to pi-platform-release
Change-Id: I7c5a9c9e96572c32eadd97448c4886f9c9150a19

android-build-team Robot   commited 2019-02-09 02:33:11 +00:00
9def767db8
Remove hard-coded NetworkStack package name
Have the network stack pass its package name in
showProvisioningNotification instead.

Bug: 124033493
Test: flashed, WiFi and captive portal works
Test: atest FrameworksNetTests NetworkStackTests
Change-Id: I1f3312768ba1fb34e99a827e1fcdaf7510e318a8

Remi NGUYEN VAN   commited 2019-02-08 12:12:57 +09:00
8b3999ca8b
Merge "Check MAINLINE_NETWORK_STACK in ConnectivityService"
am: 641c68cfdb

Change-Id: I5bc7a8dae5667a1509f9741be571008a919b6461

Remi NGUYEN VAN   authored and   android-build-merger   commited 2019-02-06 19:50:15 -08:00
9b177fe2f7
Merge "Check MAINLINE_NETWORK_STACK in ConnectivityService"
Remi NGUYEN VAN   authored and   Gerrit Code Review   commited 2019-02-07 03:33:54 +00:00
641c68cfdb