948a85948dcccea4aaa9d70a74405308581b0925 |
|
16-Mar-2017 |
Hugo Benichi <hugobenichi@google.com> |
Connectivity metrics: change how interface names are logged This patch deprecates the ifname field for specific metrics events of types DhcpClientEvent, DhcpErrorEvent, IpReachabilityEvent and IpManagerEvent. Instead ifnames are logged in ConnectivityMetricsEvent, allowing for link layer inference. Test: updated unit tests, $ runtest frameworks-net passes Bug: 34901696 Change-Id: I8bfabcb115bbd5289471d653c153a40bb48f28cd
/frameworks/base/services/net/java/android/net/ip/IpReachabilityMonitor.java
|
e45952c825d5aeec5cb59010c63d591521205ddd |
|
01-Feb-2017 |
Lorenzo Colitti <lorenzo@google.com> |
Rename AvoidBadWifiTracker to MultinetworkPolicyTracker am: 58ebe1c6f1 am: 0bc8070fce am: 338241de94 am: d526434f05 Change-Id: I5aefc453c022286e6ee2332a53e6c9f36472e9a5
|
d526434f0559684a7089a5486df3c08bcf948b7a |
|
01-Feb-2017 |
Lorenzo Colitti <lorenzo@google.com> |
Rename AvoidBadWifiTracker to MultinetworkPolicyTracker am: 58ebe1c6f1 am: 0bc8070fce am: 338241de94 Change-Id: I91f1338f3488cfc60eef0c2147aa7b1d61107cdd
|
58ebe1c6f1ef7a686eaa4f3ad3ff991c28e2bc2a |
|
24-Jan-2017 |
Lorenzo Colitti <lorenzo@google.com> |
Rename AvoidBadWifiTracker to MultinetworkPolicyTracker Rename the class and ensure that all code related to bad wifi avoidance has names that reflect its purpose. This will allow us to reuse most of the the code for other purposes in future CLs. Test: runtest frameworks-net passes Bug: 34630278 Change-Id: Ida190e5a79e7a12f4eec07e1a3e4d9d138e83bcd
/frameworks/base/services/net/java/android/net/ip/IpReachabilityMonitor.java
|
94dcb3c3fd84a23bbcca75eb24c8ee9aa6ffa9b1 |
|
04-Oct-2016 |
Hugo Benichi <hugobenichi@google.com> |
DO NOT MERGE: Do not synchronize boolean reads/writes This patch removes the synchronization around the private variable mRunning inside of IpReachabilityMonitor and instead qualifeis the field as volatile. Synchronization is not needed for reads/writes on native fields or object references because they are already guaranteed to be atomic. Synchronization here was used for enforcing memory visibility across concurrent threads indirectly through monitor acquire/release. The volatile keyword achieves this in a more explicit way. Also, this patch changes the way that probeAll() copies the IpReachabilityMonitor's mIpWatchList by temporary holding mIpWatchList keys into an ArrayList instead of a more expensive HashSet. Since Java HashSet are just degenerated HashMaps, and that key iteration order is based on key hash, the iteration order over this temporary collection will be consistent for the same mIpWatchList. Test: refactoring CL. Existing unit tests still pass. (cherry picked from commit b0f1186c034c4df9eb54ed29944d16ce6d7ade56) Change-Id: I48d2b4d837a459150cd431b400ec01b87b48c014
/frameworks/base/services/net/java/android/net/ip/IpReachabilityMonitor.java
|
b0f1186c034c4df9eb54ed29944d16ce6d7ade56 |
|
04-Oct-2016 |
Hugo Benichi <hugobenichi@google.com> |
Do not synchronize boolean reads/writes This patch removes the synchronization around the private variable mRunning inside of IpReachabilityMonitor and instead qualifeis the field as volatile. Synchronization is not needed for reads/writes on native fields or object references because they are already guaranteed to be atomic. Synchronization here was used for enforcing memory visibility across concurrent threads indirectly through monitor acquire/release. The volatile keyword achieves this in a more explicit way. Also, this patch changes the way that probeAll() copies the IpReachabilityMonitor's mIpWatchList by temporary holding mIpWatchList keys into an ArrayList instead of a more expensive HashSet. Since Java HashSet are just degenerated HashMaps, and that key iteration order is based on key hash, the iteration order over this temporary collection will be consistent for the same mIpWatchList. Test: refactoring CL. Existing unit tests still pass. Change-Id: I86ca6d54cb41ec78281e224a8d8ffd7155451132
/frameworks/base/services/net/java/android/net/ip/IpReachabilityMonitor.java
|
5b437d6ff91116f25be946e07d5d90cd25c372a4 |
|
03-Oct-2016 |
Erik Kline <ek@google.com> |
Conditionally accept loss of on-link IPv6 DNS servers Permit this if and only if we're not "avoiding bad wifi" in general. Bug: 31827713 Change-Id: I0874ec2d1d09e913ccdbe9f6e178090400808a04
/frameworks/base/services/net/java/android/net/ip/IpReachabilityMonitor.java
|
0d1c65b221dee1ef80a03c25877e7fd58fc106de |
|
22-Jun-2016 |
Hugo Benichi <hugobenichi@google.com> |
IpConn metrics: distinguish NUD_FAILED answers This patch adds in IpReachabilityMonitor a timestamp variable set everytime that probeAll() send NUD probe requests to RTNETLINK. This allows to distinguish between: 1) NUD_FAILED events resulting from such a forced NUD probe 2) "organic" NUD_FAILED notifications from the kernel This distinction is added to IpReachabilityEvent as a one-bit flag. This patch also changes the formatting of ApfProgramEvent flags to use '|' as a joining character, similarly to other flags formatting. Bug: 21859053 Change-Id: I24c64a3f17fa283eace5bd0a05c21a90a2305359
/frameworks/base/services/net/java/android/net/ip/IpReachabilityMonitor.java
|
cfddd6879283860bb4d2cf2972ea086f585a37ec |
|
31-May-2016 |
Hugo Benichi <hugobenichi@google.com> |
Refactor IP connectivity event logging This patch removes static methods for logging IP connectivity events defined in android.net.metrics and replaces them with a single log() instance method defined on IpConnectivityLog. Event constructors are now public also. Every classes logging such events now create an instance of IpConnectivityLog for logging event objects directly instantiated with new. Removing static dependencies allow straightforward testing of logging. This patch also removes the base IpConnectivityEvent class which is not needed any more. Bug: 29035129 Change-Id: I3de700f93f46deaa48a759f938f7d00e1d8bff98
/frameworks/base/services/net/java/android/net/ip/IpReachabilityMonitor.java
|
25bf8f5d5678e747933ae9e4051daa99ddfcfaa3 |
|
19-Apr-2016 |
Hugo Benichi <hugobenichi@google.com> |
Various fixes in IpReachability event logging - fold IpReachabilityMonitor* classes into a single IpReachabilityEvent. - only log an event for NUD_FAILED Netlink answers. - distinguish between NUD_FAILED with or without lost of provisioning. - do not record host ip addresses. - record interface name instead of interface index when losing provisioning. - also return an error code when probeNeighbor fails, and log this error code in IpReachability events. Bug: 28204408 Change-Id: I5f0def0ab1ace7e467a0c69b3b82d07ef2252307
/frameworks/base/services/net/java/android/net/ip/IpReachabilityMonitor.java
|
5b25a0f7960048cbf5929ba144e7a575eb4f7d32 |
|
12-Apr-2016 |
Erik Kline <ek@google.com> |
Add some more metrics: IpManager, IpReachabilityMonitor Change-Id: Ibb7150c849715a42fc2c879589eaaf86e8a007e7
/frameworks/base/services/net/java/android/net/ip/IpReachabilityMonitor.java
|
55618be44c5d2a7db3cf23881cace15108f07557 |
|
19-Feb-2016 |
Pierre Imai <imaipi@google.com> |
Add initial connectivity metrics handling. Adds initial support for IP connectivity metrics collection (DHCP client, IP reachability monitor, network monitor, connectivity service). Change-Id: If9a0455f2a34aa9abea90f9c1b38e4d895dc1a72
/frameworks/base/services/net/java/android/net/ip/IpReachabilityMonitor.java
|
f188d41fa2876a4c77586656bce06cac10d08942 |
|
02-Feb-2016 |
Joe Onorato <joeo@google.com> |
Turn down the logging a little bit and don't do a log wrapper function. Change-Id: I109f04c2c2299f26e21b076df3a935ce2d356bdf
/frameworks/base/services/net/java/android/net/ip/IpReachabilityMonitor.java
|
952159f3bc395ccad3d4bbdf8bdb004407fbea06 |
|
23-Oct-2015 |
Erik Kline <ek@google.com> |
Make all IpReachabilityMonitor log messages have the same tag Change-Id: I463566a9efc52ea02d431fb859e915a615ad0dc6
/frameworks/base/services/net/java/android/net/ip/IpReachabilityMonitor.java
|
1c01e61c90d74a8acace18466d5aa6538440cd15 |
|
01-Oct-2015 |
Erik Kline <ek@google.com> |
Only log exceptions if the IpReachabilityMonitor is still running. It's not terribly interesting to see logged exceptions about reads on sockets that were deliberately closed due to normal tear down. Change-Id: Ib6834a98b6f086fc40ce19db60c161414459d758
/frameworks/base/services/net/java/android/net/ip/IpReachabilityMonitor.java
|
41480898f3e98437285455efbb9b64a2c23733df |
|
28-Sep-2015 |
Erik Kline <ek@google.com> |
Add an explanation of how IpReachabilityMonitor works Change-Id: Idfc1cf64c867182ffd612b27ba463b97e6c95769
/frameworks/base/services/net/java/android/net/ip/IpReachabilityMonitor.java
|
02cc5a030a6f132e776b754dd5684ae632009f76 |
|
10-Aug-2015 |
Erik Kline <ek@google.com> |
Refactor netlink and IpReachabilityMonitor into services/net - netlink from core to services/net/netlink - IpReachabilityMonitor from core to services/net/ip Change-Id: I45ac3f591bade45dd5ec441111b02b621234c0e4
/frameworks/base/services/net/java/android/net/ip/IpReachabilityMonitor.java
|