History log of /frameworks/base/services/net/java/android/net/ip/IpManager.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
1a4f618812880c2fa4156576da1b7c3c773b52aa 21-Apr-2017 Erik Kline <ek@google.com> Clarify some IpManager/ApfFilter debugging output.

Test: as follows
- built
- flashed
- booted
- "runtest frameworks-net" passes
- "adb shell dumpsys wifi ipmanager" shows updated output
Bug: 34793131
Change-Id: I6dec135b97343943efb421ef7b2e84c4751dd5ea
(cherry picked from commit af579eb5b516296a8ec0b02d824f2ba646e60ca2)
/frameworks/base/services/net/java/android/net/ip/IpManager.java
6e5d86f76bf98ba770d5ace9161fb00e69ba4706 30-Mar-2017 Joel Scherpelz <jscherpelz@google.com> Partially revert "Add blocking and retrying wrappers for INetd uses."

Direct access to Netd from the bluetooth process is disallowed by
SELinux policy. This change reverts to the old behavior where IpManager
interacts with NetdService indirectly via NetworkManagementService.

Test: as follows:
- built (sailfish)
- flashed
- booted
- established bluetooth tethering to another device, ping'd 8.8.8.8
Bug: 36492299

This partially reverts commit af39244a34f4449c12a5f925222c9bc8d8049320.

Change-Id: Icf20b1e24abf7dd3123760f8637928bde7afe06b
/frameworks/base/services/net/java/android/net/ip/IpManager.java
7f9bbae035026f46e841936abe9324dddc8c10fa 28-Mar-2017 Erik Kline <ek@google.com> Merge "Add null check to IpManager.dump()" am: 58406d1df2 am: c5bca697ba
am: e398bae572

Change-Id: I172f23945a79191b777e2daf6795e2d228f510a6
0ea70fc38b5ad7979ee2947fe611b2fd89e2c675 27-Mar-2017 Erik Kline <ek@google.com> Add null check to IpManager.dump()

Test: as follows
- built (bullhead)
- flashed
- booted
- runtest frameworks-net passes
Bug: 36650508
Change-Id: I2270bec20b966de487048f0ea0c97360e242cd9d
/frameworks/base/services/net/java/android/net/ip/IpManager.java
b58609d7a6f06b6b8ea34c1909cf926d2f28ba34 27-Mar-2017 Joel Scherpelz <jscherpelz@google.com> Merge "Revert "Set accept_ra_rt_info_max_plen to 64 before enabling IPv6 interfaces"" am: 63d26caa38 am: 84c2fb2070
am: c3e0dcf082

Change-Id: I9a48897312a785ea7e0338aa68c8bb4877a741e6
6a35f3c3e2f1222d30e969e3cb1b887b43c9e375 24-Mar-2017 Joel Scherpelz <jscherpelz@google.com> Revert "Set accept_ra_rt_info_max_plen to 64 before enabling IPv6 interfaces"

On second thought, let's set accept_ra_rt_info_m**_plen in
Netd (InterfaceController::initializeAll())

This reverts commit 25870a2c9effd7a7d31c0678c34a6e952b2d56a1.

Change-Id: I22b000623bb852e375385d4aae789d007e84ba3d
/frameworks/base/services/net/java/android/net/ip/IpManager.java
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/IpManager.java
25870a2c9effd7a7d31c0678c34a6e952b2d56a1 15-Mar-2017 Joel Scherpelz <jscherpelz@google.com> Set accept_ra_rt_info_max_plen to 64 before enabling IPv6 interfaces

This patch tries to change accept_ra_rt_info_max_plen to 64 from its
default value of 0 on kernels that support router advertisements with
route information options. The code fails silently on older unsupported
platforms.

Also factor existing startIPv6() code into a self documenting function
enableInterfaceIpv6PrivacyExtensions()

Bug: 33333670
Test: as follows
- build sailfish
- flashed
- booted
- runtest frameworks-net passes
- runtest frameworks-wifi passes

Change-Id: I10ec83b9e04836089477d74417b7222499820066
/frameworks/base/services/net/java/android/net/ip/IpManager.java
ba8c613e16a63aa27aeeb4c9292f34c8e40468eb 16-Mar-2017 Treehugger Robot <treehugger-gerrit@google.com> Merge "Add blocking and retrying wrappers for INetd uses."
af39244a34f4449c12a5f925222c9bc8d8049320 14-Mar-2017 Erik Kline <ek@google.com> Add blocking and retrying wrappers for INetd uses.

Test: as follows
- built (bullhead)
- flashed
- booted
- runtest frameworks-net passes

Change-Id: I1a8e15149bf9dbedc6a09c0d8ab6abb2ef4f8fee
/frameworks/base/services/net/java/android/net/ip/IpManager.java
c6f796aa91a9ba88025ebf09ca16cbc12f758c5a 14-Mar-2017 Erik Kline <ek@google.com> Add comment with packet tracker debugging tip

Test: as follows
- built (bullhead)
- flashed
- booted
- "runtest frameworks-net" passes
- "adb shell dumpsys wifi ipmanager" shows the debugging tip

Change-Id: Ifcccbdd81a0fc8beb7801ec7c3f78e8a941bc72b
/frameworks/base/services/net/java/android/net/ip/IpManager.java
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/IpManager.java
fed4194af0011e453119f86df7629412b882216f 19-Jan-2017 Erik Kline <ek@google.com> Eschew unspecified IP addresses for DNS servers

Test: as follows
- built
- flashed
- booted
- runtest frameworks-wifi passes (though no test covers this code yet)
Bug: 34210527
Change-Id: I2d44445982dfb3221f7b6394daf0479c1fa8a6e1
/frameworks/base/services/net/java/android/net/ip/IpManager.java
ade3a8ccb0acc1ba1ee29e5668b5e78670f26002 19-Oct-2016 Erik Kline <ek@google.com> Have IpManager track L2-L4 signaling traffic required for IP connectivity.

Test: as follows
- built and flashed
- observed logcat
- observed "dumpsys wifi ipmanager"
- runtest BlockingSocketReaderTest passes
- runtest ConnectivityPacketSummaryTest passes
Bug: 21859053
Bug: 26101306
Bug: 31742572
Bug: 31707128
Bug: 33531488

Change-Id: Ibecaf809dcc1813924b25749e8ba8eb2d4bdf114
/frameworks/base/services/net/java/android/net/ip/IpManager.java
c8585b974274a98fdaabeee9bcf0c7b1d56a65f1 12-Dec-2016 Erik Kline <ek@google.com> More correct startup and shutdown procedures.

During IpManager startup, anything sending messages to the state machine
must not begin doing so until after the state machine has been started.
Reorder the constructor accordingly.

During shutdown, AvoidBadWifiTracker needs to unregister the registered
BroadcastReceiver and might as well also unregister the ContentObserver.

Test: backport from internal
Bug: 33388922
Change-Id: I58e07f7ccddaab160c153bcfb69fd45f50bb8710
/frameworks/base/services/net/java/android/net/ip/IpManager.java
b406666cf5f09a9d11fcdad4df7124c386672954 14-Oct-2016 Erik Kline <ek@google.com> Handle IpReachabilityMonitor errors better.

If construction of a new IpReachabilityMonitor throws an IAE then
log it and immediately call onProvisioningFailure().

Test: runtest frameworks-wifi
passes, except for selectQualifiedNetworkDoesNotChooseDeletedEphemeral()
which fails with an NPE for unrelated reasons.

Bug: 31038971
Bug: 31742703
Change-Id: Ie91b8bdd509d06ad54d062bf446e74c092eb096c
(cherry picked from commit e4526604664cb66ecdcbeca4d8f64e8c94750c31)
/frameworks/base/services/net/java/android/net/ip/IpManager.java
d2ad8ece532dbca185753e0551ed7f2092eb7be9 04-Oct-2016 Lorenzo Colitti <lorenzo@google.com> Ignore loss of IPv6 provisioning when not avoiding bad Wi-Fi.
am: f11ee9f592

Change-Id: I3090ac5fe7dabf2ee19120bd0ab566edaa95ddb6
fdac9b608bbd9ebbce9a7ce7f074dfcb0b49513e 04-Oct-2016 Lorenzo Colitti <lorenzo@google.com> Slightly simplify IpManager#compareProvisioning.
am: b77b775213

Change-Id: I31ab37d3fc39baf73fa14ef3b54b781b60347b41
d719d95139010412e9b95912f988b61ede6805ff 04-Oct-2016 Erik Kline <ek@google.com> Conditionally accept loss of on-link IPv6 DNS servers
am: 5b437d6ff9

Change-Id: Ie32080d7918dea0ae89bd3e0987cb1c8f121e0bd
23cdacbec61c130fc35b1c9e84cb8f9b991fd092 04-Oct-2016 Erik Kline <ek@google.com> Refactor "avoid bad wifi" logic into a utility class
am: 065ab6ee40

Change-Id: I4a6ad3791ac551b0d64b37dd4e2afef1e8e8ee10
f11ee9f5928d14d713bb1a7346629c506c968b58 04-Oct-2016 Lorenzo Colitti <lorenzo@google.com> Ignore loss of IPv6 provisioning when not avoiding bad Wi-Fi.

Bug: 31827713
Change-Id: I81471f2f3e6c1c4d7bdfebc9dd321bb9d76ad0b6
/frameworks/base/services/net/java/android/net/ip/IpManager.java
b77b77521373b9de0b79a96fca1e4b1857a140b1 03-Oct-2016 Lorenzo Colitti <lorenzo@google.com> Slightly simplify IpManager#compareProvisioning.

Bug: 31827713
Change-Id: Icc1c8d98feef14c972891451fd94f855d78de43e
/frameworks/base/services/net/java/android/net/ip/IpManager.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/IpManager.java
065ab6ee407dc8b3b5b477e483b6f48e50720113 02-Oct-2016 Erik Kline <ek@google.com> Refactor "avoid bad wifi" logic into a utility class

Additionally, add this utility class to IpManager for compatibility
verification. A follow-on CL will make use of IpManager's local
AvoidBadWifiTracker.

Bug: 31827713
Change-Id: If8c56c3f8076d6a5157ea180e361bbdadc2bc1dd
/frameworks/base/services/net/java/android/net/ip/IpManager.java
c3eec4fff9ee2f6c2e12e1fb871791d4ce1106a6 28-Sep-2016 Erik Kline <ek@google.com> Support triggering confirmConfiguration() via dumpsys

Tested:
- flashed to device
- triggered
- monitored tcpdump for the expected traffic

Bug: 30869013
Change-Id: I6a4741bdeed2aaa483f8c2281acb74d245a323e8
/frameworks/base/services/net/java/android/net/ip/IpManager.java
8ec1dc81175af9194fe938718b9a6efa5919be6b 16-Sep-2016 Erik Kline <ek@google.com> Handle more commands in StoppingState

Also, expand the logging of states in which messages are
received and handled.

Bug: 31264287
Change-Id: If633984cb54128716fc9b3fcb27925906d0bd826
/frameworks/base/services/net/java/android/net/ip/IpManager.java
703b0974e047eaa47f1c833f9b040954a61ea08f 05-Aug-2016 Erik Kline <ek@google.com> Ensure known good state when starting.

Split StartedState into StartedState and RunningState, and ensure
known good state before proceeding from the former to the latter.

Bug: 30290336
Change-Id: I0a93f8fe53c65a0b90c28c3cf708792146a92aab
/frameworks/base/services/net/java/android/net/ip/IpManager.java
feadfda8a0b7c8849787a258de51671f2c60baae 28-Jun-2016 Erik Kline <ek@google.com> Make provisioning timeout apply to both IPv4 and IPv6

Bug: 29449295
Change-Id: I743533ca61914c11163ba5c5767a365def3a5461
/frameworks/base/services/net/java/android/net/ip/IpManager.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/IpManager.java
d8e1592e641f71cb3bfbc267442cfb9c4cc48625 26-Apr-2016 Erik Kline <ek@google.com> Support DHCPv4 rebinding state

Bug: 24837343
Change-Id: Id49e1c12ec3b11fedba42bb28348a00cb0b11169
/frameworks/base/services/net/java/android/net/ip/IpManager.java
2ec229a0ed5a462c20549d86bda5f2de9ec2858e 12-May-2016 Erik Kline <ek@google.com> Support IPv4-only and IPv6-only provisioning

Bug: 28437662
Change-Id: I95b2d6eeb48cc526c8e6e015c5130ff9141fb898
/frameworks/base/services/net/java/android/net/ip/IpManager.java
fc2e5b67034c3a616576e1693d89e54c9b3f477f 28-Apr-2016 Erik Kline <ek@google.com> IpManager: add distinct DhcpActionTimeoutAlarm

Track provisioning timeouts separately from "DHCP action" timeouts.

Bug: 17733693
Bug: 24837343
Change-Id: I6071699692e7d375155a4c4fe61c7ec0d89396c0
/frameworks/base/services/net/java/android/net/ip/IpManager.java
9c51583dafdbfeb7e005e12dd646e4395cf7a537 27-Apr-2016 Erik Kline <ek@google.com> Merge "IpManager: add a provisioning timeout option" into nyc-dev
741b15dc759e8ffc1f9e1f9f120c72c25ce021e5 26-Apr-2016 Erik Kline <ek@google.com> IpManager: add a provisioning timeout option

Relatedly: remove the provisioning timeout from DhcpClient.

Bug: 17733693
Bug: 24837343
Change-Id: I6d5b835b4ca70ba6fd06df359fc2128a0df46252
/frameworks/base/services/net/java/android/net/ip/IpManager.java
24b6e2bcc88ed6e142eae8ebd11cb90a70da588f 27-Apr-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge changes I8de95add,Ia6f4ccfd into nyc-dev

* changes:
Remove unused event tags of IpConnectivityEvent
Better ConnectivityMetricsEvent printing
5df9d729f6c78215f287701d7e136dfc922e2bd3 25-Apr-2016 Hugo Benichi <hugobenichi@google.com> Better ConnectivityMetricsEvent printing

This patch adds more information printing for IpConnectivity event
classes in android.net.metrics.

example:

ConnectivityMetricsEvent(14:36:35.799, 0, 1026): DhcpClientEvent(wlan0, DhcpRequestingState)
ConnectivityMetricsEvent(14:36:35.805, 0, 1026): DhcpClientEvent(wlan0, DhcpHaveAddressState)
ConnectivityMetricsEvent(14:36:35.809, 0, 4096): IpManagerEvent(wlan0, PROVISIONING_OK, 155ms)
ConnectivityMetricsEvent(14:36:35.810, 0, 1026): DhcpClientEvent(wlan0, DhcpBoundState)
ConnectivityMetricsEvent(14:36:35.871, 0, 2048): NetworkEvent(101, NETWORK_CONNECTED, 0ms)
ConnectivityMetricsEvent(14:36:35.874, 0, 2051): ValidationProbeEvent(101, PROBE_HTTP:599, 3ms)
ConnectivityMetricsEvent(14:36:35.874, 0, 2048): NetworkEvent(101, NETWORK_VALIDATION_FAILED, 0ms)
ConnectivityMetricsEvent(14:36:35.928, 0, 3072): DefaultNetworkEvent(0 -> 101, [WIFI], IPv4: false, IPv6: false)
ConnectivityMetricsEvent(14:36:37.008, 0, 2051): ValidationProbeEvent(101, PROBE_HTTP:204, 134ms)
ConnectivityMetricsEvent(14:36:37.008, 0, 2050): NetworkEvent(101, NETWORK_VALIDATED, 1137ms)

Also fixes a couple of event logging issues:
- do no record spurious receive DhcpErrorEvent when a network goes down.
- add an eventType field to IpManagerEvent instead of using the
loggger component tag.

Bug: 28204408
Change-Id: Ia6f4ccfd7a0c63a5ccec18825f226c0b5781217b
/frameworks/base/services/net/java/android/net/ip/IpManager.java
5b76623a0e3fdaa792967375bb4e1e143de1ff03 06-Apr-2016 Erik Kline <ek@google.com> Move IPv4 address setting to IpManager

Bug: 24837343
Bug: 27605330
Change-Id: I19ac80e45b3e9200f81d1166ac6094fd19aee963
/frameworks/base/services/net/java/android/net/ip/IpManager.java
b2ff48bd714c79311976c5b6f0d688e6ef047970 26-Apr-2016 Erik Kline <ek@google.com> IpManager: delete dead getLinkProperties() code

Now that it's long since been unused also delete the locking that was
introduced to make it possible.

Bug: 17733693
Bug: 24837343
Change-Id: Iee817a7c2e1d1dc9c080d3124d5986232dcda00f
/frameworks/base/services/net/java/android/net/ip/IpManager.java
a84572b503a9882705705a5ed10bd3a8f6d8feae 22-Apr-2016 Erik Kline <ek@google.com> Add state and callback logs for IpManager dump

Bug: 27605330
Change-Id: I2e659d08fa9acd57a71901f28c85a92c0876c663
/frameworks/base/services/net/java/android/net/ip/IpManager.java
c2827857aa99504903d65e9a750fb61f756101de 17-Apr-2016 Erik Kline <ek@google.com> IpManager,DhcpClient: catch some errors and better logging

Bug: 28196843
Change-Id: Ia91e926da569bf9c503ea00e1e0f767d196547da
/frameworks/base/services/net/java/android/net/ip/IpManager.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/IpManager.java
0a0e1dcdc6960c4206f659f5b9ae5663d90f653d 13-Apr-2016 Erik Kline <ek@google.com> Also consider loss of IPv6 default route to be fatal

Bug: 27962810
Change-Id: I735d71ddc71da701eebbb9969f6e1cbffd7e1a1c
/frameworks/base/services/net/java/android/net/ip/IpManager.java
071b6dfdeea8adf1cb6e5fe5f20dbc87dbda16d1 12-Apr-2016 Erik Kline <ek@google.com> Trigger enabling of NDO when startProvisioning() is called.

Bug: 26238390
Bug: 27598285
Change-Id: I1f63bdd27defd43f994d259d07a943872df4f47c
/frameworks/base/services/net/java/android/net/ip/IpManager.java
19e84f7b750c97d5d7440af16c7ba18bf759e5dc 05-Apr-2016 Lorenzo Colitti <lorenzo@google.com> Merge changes Ibb63f6b4,Ib64559a5 into nyc-dev

* changes:
Clean up netd state when tethering fails.
Clear LinkProperties on interface removed.
a3d5948c3764c071211d2943d5407ce0459483a0 05-Apr-2016 Lorenzo Colitti <lorenzo@google.com> Clear LinkProperties on interface removed.

When an interface is removed, all netlink events for that
interface are lost, because netd will no longer be able to
resolve the ifindex in the netlink event to an interface name,
and it only communicates to the framework events that include an
interface name.

This can cause us to end up with stale IP addresses if, for
example, wlan0 is removed because we switch wifi back from AP
mode to STA mode when exiting tethering. The presence of stale
IPv4 addresses can in turn lead us to miss a provisioning
notification because we already think we have an IPv4 address.

Change-Id: Ib64559a5a4fa261f483760b69fa7996314e7cc17
/frameworks/base/services/net/java/android/net/ip/IpManager.java
5db3f10e9a1f2ffb65776ae0ab84789204e9b336 05-Apr-2016 Erik Kline <ek@google.com> Merge "Move from on464XlatChange() to setNeighborDiscoveryOffload()" into nyc-dev
cd404a2fc34a967f0763fb3b6b43f56a5d8014e8 05-Apr-2016 Lorenzo Colitti <lorenzo@google.com> Merge "Add APF code to drop ARP IPv4 requests not for us" into nyc-dev
5c2e9224a734c7026d40e4ca52cf9ec614c74567 03-Apr-2016 Erik Kline <ek@google.com> Move from on464XlatChange() to setNeighborDiscoveryOffload()

Bug: 26238390
Change-Id: I0f971fbf04e44cb61017653f944d71e1f6d128b4
/frameworks/base/services/net/java/android/net/ip/IpManager.java
a8458c0363851c7324a8e64efe9f73d0bb6ef0b4 25-Mar-2016 Paul Jensen <pauljensen@google.com> Add APF code to drop ARP IPv4 requests not for us

The WiFi chipset's ARP offload may handle this when the
AP is asleep, but when the AP is awake and the chipset is in
wake-on-wifi mode use APF to filter these packets.

Bug: 27477163
Change-Id: I180c08bd7301a1af9c3f728ff3cba06ca4e1022d
/frameworks/base/services/net/java/android/net/ip/IpManager.java
10594942c63e5696b45be7bcc12758f46f5d1a19 05-Apr-2016 Paul Jensen <pauljensen@google.com> Merge "Plumb WiFi multicast filter through to ApfFilter" into nyc-dev
77fdf23d6f7831c09fc43d206b346e273ebe266a 31-Mar-2016 Lorenzo Colitti <lorenzo@google.com> Honour the DHCP MTU option.

Bug: 25590369
Bug: 27719279
Change-Id: I473b5ec9c13f0d74e1ddd55e9d4abcff374a83ef
/frameworks/base/services/net/java/android/net/ip/IpManager.java
2e074db972355a77f91378b5b1daceb500dde019 25-Mar-2016 Paul Jensen <pauljensen@google.com> Plumb WiFi multicast filter through to ApfFilter

Use APF to implement WifiManager.MulticastLock, if APF isn't available
fallback to the present behavior of using DRIVER RXFILTER. Since we
don't know whether APF is supported until we're connected, postpone
enabling/disabling the multicast filter until then; this should be
fine as there isn't much need to filter packets if there aren't any
packets going by since we're not connected.

Bug: 26238573
Change-Id: I862c053f1c8c3a41de50c2951cf14b3ca6923a2a
/frameworks/base/services/net/java/android/net/ip/IpManager.java
5812e6485042a917b5fdc7dd38e29e231ca557f6 28-Mar-2016 Lorenzo Colitti <lorenzo@google.com> Rename IpManager#dumpApf to #dump and change its signature.

Also give it a bit of indentation.

Bug: 26991160
Change-Id: I8a85276e76e15f452075931747552b486598f0e9
/frameworks/base/services/net/java/android/net/ip/IpManager.java
f21b4dc1d6e9cc3fc164828e9eba33445c0801d0 18-Mar-2016 Paul Jensen <pauljensen@google.com> Move ApfFilter from ConnectivityService to IpManager

There's a few advantages to having ApfFilter in IpManager:
1. If things go wrong, crashing a particular transport is less bad then
crashing ConnectivityService. We also don't want to use
ConnectivityService as a dumping ground for transport-specific logic.
2. This makes implementing WifiManager.MulticastLock a lot simpler and
safer because enabling/disabling it doesn't have to go through the
NetworkAgent, which could risk various races (e.g. installing a filter
into the wrong WiFi network).
3. IpManager is the ultimate source for LinkProperties for a particular
transport and since ApfFilter uses the LinkProperties it's better to
have it closely paired with the IpManager. Likewise, ApfFilter needs
to know the APF capabilities of the transport, so having it in
the transport avoids having to parcel this information through the
NetworkAgent.

Bug: 26238573
Change-Id: I99b85f2b64972f0e7572170ec5d1926081aa3429
/frameworks/base/services/net/java/android/net/ip/IpManager.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/IpManager.java
8d6edc3270616b119645fbdf8752c0ea37de0731 29-Feb-2016 Erik Kline <ek@google.com> Add 464xlat notification callback

Bug: 26238390
Bug: 26991160
Change-Id: I556e779c642d19cd8d26637dd98055157d005f77
/frameworks/base/services/net/java/android/net/ip/IpManager.java
b9df11099f16ca816a69e06f1327eb1f86723578 01-Mar-2016 Erik Kline <ek@google.com> Add constructor with more inputs for dependency injection.

Bug: 26991160
Bug: 27406552
Change-Id: If4a0a2f1afb1da4ad59df9eb31c540047c84659b
/frameworks/base/services/net/java/android/net/ip/IpManager.java
111d55658bce1bcc3eb61b4aeaa4d8a256165b02 19-Feb-2016 Erik Kline <ek@google.com> Add WaitForProvisioningCallback

This centralizes code that is shared by both bluetooth and ethernet
transport layers.

Bug: 26991160
Change-Id: I8e2dd8580c29c86394119768e3a5529850b4b859
/frameworks/base/services/net/java/android/net/ip/IpManager.java
d0e843b8ef4218ba8f69a8a53b3eeaf21e667deb 17-Feb-2016 Erik Kline <ek@google.com> Support setting TCP buffer sizes and HTTP Proxy config

This allows IpManager to send callback recipients a more satisfying
LinkProperties.

Bug: 26991160
Change-Id: I2eb60dc633e5be38dad9410a1096d0095ddf57a0
/frameworks/base/services/net/java/android/net/ip/IpManager.java
d2457a3ee39ea55ed8e302bd93feede793cb5055 17-Feb-2016 Lorenzo Colitti <lorenzo@google.com> Add a MessageUtils class to convert int constants to strings.

This class uses reflection to find accessible static integer
members in a specified list of classes and returns a SparseArray
mapping the integers to their names. This will allow us to
replace various 400-line switch statements with a simple
array access.

Change-Id: I3607e6389a423cde0bd83270c00b3c863ae1bb29
/frameworks/base/services/net/java/android/net/ip/IpManager.java
29a215268dfa18f5023dc3c06b33db68e91ae316 17-Feb-2016 Erik Kline <ek@google.com> Remove references to BaseDhcpStateMachine and DhcpStateMachine

Bug: 26991160
Change-Id: I3742780a4e5121c163d9d1380951e25edaba19f3
/frameworks/base/services/net/java/android/net/ip/IpManager.java
b1ee39540ead2e4ee74d4dba9ee1b84211766221 17-Feb-2016 Erik Kline <ek@google.com> Add IpManager#shutdown() to terminate the state machine.

Additionally, remove IpManager.Callback#usingIpReachabilityMonitor()
now that this is now longer used.

Bug: 26991160
Change-Id: I9a17497c82238a9fb37a20d01aeca7bc4913ae2c
/frameworks/base/services/net/java/android/net/ip/IpManager.java
93b1a36e31b42c5b33a0164f2832ab9aa12d9a00 11-Feb-2016 Erik Kline <ek@google.com> Add IpManager.ProvisioningRequest class

This class captures provisioning request parameters to be passed to
IpManager#startProvisioning().

Bug: 26991160
Change-Id: I56652bbc4b9ae6cfca3f225a8d99cdfc01bb54d9
/frameworks/base/services/net/java/android/net/ip/IpManager.java
3b74289fdfb0ca2d3078a52b9385127dec93fdf9 11-Feb-2016 Erik Kline <ek@google.com> Duplicate DhcpStateMachine public constants into DhcpClient

This is so we can ultimately delete DhcpStateMachine altogether.

Bug: 24837343
Bug: 26991160
Change-Id: If116639e5f72c97cfc67f748dc5f6433dccd9cf0
/frameworks/base/services/net/java/android/net/ip/IpManager.java
ef1f39abff088789853e8747418310534cf2127e 11-Feb-2016 Erik Kline <ek@google.com> Use IpManager.ifname as the tag in log messages.

Bug: 26991160
Change-Id: Idc9231819298b65da3cc3baa88f1f0cd18ab6df7
/frameworks/base/services/net/java/android/net/ip/IpManager.java
990fc4968d58574f4280194e67cdb6e6ecb69699 03-Feb-2016 Erik Kline <ek@google.com> Incorporate historical WifiStateMachine notions of provisioning.

Also: considerably expand logging capabilities.

Bug: 26991160
Change-Id: I36c3c1d2158ffd178e8ce163b8799d62938f39c7
/frameworks/base/services/net/java/android/net/ip/IpManager.java
6076cb0b859185b075d3a70655afb192d68d0774 03-Feb-2016 Erik Kline <ek@google.com> Ignore link properties updates when nothing actually changed.

Change-Id: Ia3c0a652cb3b67707a5c5a0bb40f991ef1e6f777
/frameworks/base/services/net/java/android/net/ip/IpManager.java
8deac7793c32be0c3b64b64d48dd9c0e2407e8db 03-Feb-2016 Erik Kline <ek@google.com> Partial unification of DHCPv4 and static IPv4 configuration codepaths

Change-Id: Ic796f9b7bb853a332175c34e0f557588efb6247a
/frameworks/base/services/net/java/android/net/ip/IpManager.java
8afa558c527b4be4e0e489b17485577e23148636 02-Feb-2016 Erik Kline <ek@google.com> Move DHCPv4 mechanics into IpManager

Bug: 17345682
Change-Id: I2c3d9d665ff3c38f02084c0cf86cd76035e7b0aa
/frameworks/base/services/net/java/android/net/ip/IpManager.java
1e91e4ebb65e63969e6ae45503257852be017aee 01-Feb-2016 Erik Kline <ek@google.com> Support static IP configuration internally

Also, stop passing around "reason" for IPv4 provision success
or failure.

Bug: 17345682
Change-Id: I4c4b22977a93048e0b291206721d0ccc77cfaaf2
/frameworks/base/services/net/java/android/net/ip/IpManager.java
a636761bd67963385397ee920dcf76ec7cf113fb 13-Jan-2016 Erik Kline <ek@google.com> Initial refactoring to group IP-related elements into an IpManager

Bug: 17345682
Change-Id: I88f3f4bd32d18cd8d4f1404493648c8bcc1deeec
/frameworks/base/services/net/java/android/net/ip/IpManager.java