RTM_DELNEIGHs can happen naturally during garbage collection of STALE
entries, as well as when an interface is going down. All other
transitions of interest at this time pass through FAILED.
Bug: 18581716
Bug: 21531726
Change-Id: Ib2a731dd6ad6ece478df6950d4cc7752588328a4
Lots of code refactoring, include:
- no longer watch for on-link proxies (only routers and DNS servers)
- keep track of NUD state of neighbors of interest
Bug: 18581716
Change-Id: Ia7dbef0690daf54f69ffecefc14e1224fd402397
Adds:
- enum ProvisioningChange
- LinkProperties#compareProvisioning()
return a ProvisioningChange value describing the delta in
provisioning between two LinkProperties objects
- LinkProperties#removeDnsServer()
- make "@hide public" isIPv4Provisioned() and isIPv6Provisioned()
Bug: 18581716
Change-Id: I3df90b2b89617f693346f2dbe72e77c88ce91ffd
With NLM_F_ACK set in RTM_NEWNEIGH requests we get some response from
the kernel, whether there was an error or not.
Additionally:
[1] add IpReachabilityMonitor#probeNeighbor() as a public
static method, since it actually depends very little on the
class internals and might be of larger use.
[2] add a unittest for parsing NetlinkErrorMessages.
Bug: 18581716
Change-Id: I5d62e7a9972c7440f0483c38c77677436d3a1a25
This forces the NetlinkSocketObserver thread to exit quickly, rather
than lingering until the next random netlink neighbor multicast message
arrives.
Additionally, add a small unittest to verify that multiple calls to
NetlinkSocket#close() are safe.
Change-Id: I101730fad7eee72f9c6e8a7e7bd10c634f2ceab4
- space pollLceData calls every 500ms
- cluster multiple pending pollLceData calls into one
- cherry pick from mwd to mnc-dev
Bug: 21307957
Change-Id: I04513011db3ae29af02bd54fe91cb8e0d4ab9f12
It was deprecated as part of the Apache deprecation, however it is used
by ConnectivityManager.getLinkProperties() and .getDefaultProxy().
The alternatives (e.g. java.net.Proxy) do not offer a complete
replacement as they lack certain fields (e.g. PAC URL).
Bug:21274137
Change-Id: I99163a2611a738f337fb9907349ef6255dbed6d6
1. Always keep ConnectivityService's validated bits current:
- Apply the validated bit whenever a NetworkAgent updates its
NetworkCapabilities.
- Set or clear the validated bit whenever lastValidated changes.
2. Send callbacks when the validation state of a network changes.
3. Delete getNetworkCapabilitiesAndValidation, removing code
duplication with getNetworkCapabilities.
4. Add the validated bit to NetworkCapabilities#toString.
Bug: 18591282
Bug: 20081183
Change-Id: I6aa53b61c15cc137f203f9fc6bbd4c16894be750
Note that this change is not sufficient to force probing in all cases,
but does cause probing to occur on Linux if the target node hasn't been
confirmed as reachable in the past 5 seconds (delay_first_probe_time).
Bug: 18581716
Bug: 19866451
Bug: 20944464
Change-Id: I29393897118311b48c966c41e2cddb7a784f136f
Settings and SystemUI need to act on other users than USER_OWNER.
This is gated by INTERACT_ACROSS_USERS_FULL in addition to the existing
CONTROL_VPN checks, so the number of processes able to interfere with
other profiles' VPNs should be quite small.
Bug: 20692490
Bug: 20747154
Bug: 20872408
Change-Id: I6e5d7220f73435bec350719e7b4715935caf4e19
Add a class that monitors on-link IP reachability and notifies
callers whenever any on-link addresses of interest appear to have
become unresponsive.
Bug: 18581716
Change-Id: I333eee6fe30fa97a21297c6745de14ceb95bb661
Add netlink socket helpers and parsing code for basic netlink messages.
Additionally, support from some neighbor discovery -specific messages
is included.
Bug: 18581716
Change-Id: Ib2aa924222b63cdbebf09a8bf8ff35ee24269fc5
All ConnectivityManager APIs taking a network type have been
deprecated so there should be no need to validate a network type.
bug:20647016
Change-Id: I2dcf24f58016e94aa814dda38cfc848366cc461c
The ConnectivityManager documentation uses {@link requestNetwork}
without specifying which version of that method it refers to.
This results in javadoc incorrectly linking to the version of the
method that takes a PendingIntent instead of the version that
takes a callback.
Change-Id: Ia914ec88005a6401b6391c5b4fc92f988baa3922
Track apps going in and out of idle in the NetworkPolicyManagerService.
Apply DROP rules in firewall controller if app is to be blacklisted
for network access.
Firewall can now be in whitelist (old) or blacklist mode. When in
blacklist, it allows all by default and we can selectively DENY
some uids.
Track app idle in UsageStats and update periodically.
Track charging/discharging states.
TODO: Check for appidle temporary parole state
Bug: 20066058
Change-Id: Ia65d7544204b3bcb78a517310ef4adcc05aac6fb
The whitelist is now maintained by DeviceIdleController,
which is moving out into its own independent system service.
Network stats now queries it for the whitelist, instead of
collecting that itself.
Also did a few improvements in alarm manager -- made the
code for moving alarms out of the pending list more robust,
and fixed the debug output to always print the contents of
the pending list even if we aren't in a pending state. (That
would have helped me identify the problem much earlier.)
Change-Id: I0f7119d4c553c3af4d77b2f71246fa6e2c13c561
The documentation for setProcessDefaultNetwork does not
mention that it requires ACCESS_NETWORK_STATE, but a process
without ACCESS_NETWORK_STATE that calls it will crash because
we can't fetch the proxy properties.
Because ACCESS_NETWORK_STATE is not required to obtain a Network
object (Network objects can come from broadcasts too), it may not
be reasonable to require the permission. We did not do so in L.
For now, ignore the failure and don't crash the app. I've filed
http://b/20470604 to track a longer term fix.
Bug: 20081183
Bug: 20423580
Bug: 20470604
Change-Id: I158016130b4afb1d300357fe703804d2e7bc609b