Commit graph android_packages_modules_Co.../core/java/android
Message SHA1
[CM] Unhide the NetworkSpecifier as object API
API visibility change: unhide allowing NetworkSpecifier
to be an arbitrary object.

Bug: 27533960
Bug: 36053921
Bug: 36275276
Test: builds and runs
Change-Id: I1d1705cca7ece077ef8d7c674c62d5369fedbb03
Merged-In: I7535495681da8f168c46d6d95e13925cffecc99b
Merged-In: I6500639ae839ee9ad5af34d1292d1539c943e2ad

Etan Cohen   authored and   Lorenzo Colitti   commited 2017-04-14 18:23:45 +09:00
fedaf00fa3
Make the NetworkSpecifier a class instead of a string.
Bug: 27533960
Bug: 36053921
Bug: 36275276
Test: connectivity, wifi, telephony unit tests
Change-Id: Idd9b10a8418c53c8cf386d9ff8252226b076bbf9
Merged-In: I7535495681da8f168c46d6d95e13925cffecc99b
Merged-In: I6500639ae839ee9ad5af34d1292d1539c943e2ad

Etan Cohen   authored and   Lorenzo Colitti   commited 2017-04-14 18:22:10 +09:00
6c2ab24a4c
Connectivity metrics: add transports pretty printing
This patch also
  - partially reverts commit 7f818778a8
    that exposed a getTransports method on NetworkCapabilities.
  - moves enumerateBits to BitUtils (as unpackBits), and adds the
    reverse packBit method.

Bug: 34901696
Test: manually looked at $ adb shell dumpsys connmetrics list
Change-Id: I1650daf8fc9c1b6e0d986d2285f81e888be8847f
Merged-In: Id04f9080e7f75608deeb49306aec34941e71794c

(cherry picked from commit df456e13a1127e3c8594b1d22ea4a9b3dca67a4b)

Hugo Benichi   commited 2017-04-13 22:17:50 +00:00
45670bb37d
Connectivity metrics: add transports to validation probes
This patch adds transports info to ValidationProbeEvent and migrates
netId logging for this event to the topt-level netId field in
ConnectivityMetricsEvent.

Test: modified unit tests. $ runtest frameworks-net passes
Bug: 3490169
Change-Id: Ibf51049ba8901ae5ca4ea86e2f500944a4738b5c

Hugo Benichi   commited 2017-03-21 11:43:18 +09:00
7f818778a8
Connectivity metrics: serialize networkId, transports, ifname
This patch adds translation from ConnectivityMetricsEvent to
IpConnectivityEvent of recently added fields:
 - top-level network id
 - top-level ifname
 - transports

Also adds inference of link layer from transports or ifname.

At the moment these new fields are not populated in
ConnectivityMetricsEvent. Follow-up patches will fill this gap for
the events of the android.net.metrics package.

Test: new unit tests, $ runtest frameworks-net passes
Bug: 34901696
Change-Id: I563a6a3183470bdfaabb7c781a1beaf6b1058bf0

Hugo Benichi   commited 2017-03-21 10:18:11 +09:00
45f6ef836d
Merge "ConnectivityManager: unhide methods with Handler argument" am: 0ba4ca681b am: b4db58d5c8
am: 1673f71afb

Change-Id: Ic575f187803548ce15965d6fde942a5322d9e35e

Hugo Benichi   authored and   android-build-merger   commited 2017-03-13 07:18:54 +00:00
4e4731baee
Merge "ConnectivityManager: unhide methods with Handler argument"
am: 0ba4ca681b

Change-Id: I470d68a25e62b9493ac7cfb5887e8345968f1097

Hugo Benichi   authored and   android-build-merger   commited 2017-03-13 07:09:49 +00:00
b4db58d5c8
ConnectivityManager: unhide methods with Handler argument
Test: no functionality change
Bug: 32130437
Change-Id: I2a57175142683f991a215b584282db143a76ed9d

Hugo Benichi   commited 2017-03-09 15:25:26 +09:00
51a5826b2e
Merge "[CM] Allow timeout in request network" am: 43d964ac8f am: 24c862dad6
am: ac879cbcaf

Change-Id: If42250966d619073d45d608aab454589213b1756

Etan Cohen   authored and   android-build-merger   commited 2017-03-07 17:02:05 +00:00
61d46aad9e
Merge "[CM] Allow timeout in request network"
am: 43d964ac8f

Change-Id: Ic7a3da0a5292be5e13abca9c98c422bc2f50f3a0

Etan Cohen   authored and   android-build-merger   commited 2017-03-07 16:49:53 +00:00
24c862dad6
Merge "[CM] Allow timeout in request network"
Etan Cohen   authored and   Gerrit Code Review   commited 2017-03-07 16:40:27 +00:00
43d964ac8f
Merge "request{LinkProperties,NetworkCapabilities} no longer needed" am: 67a9265809 am: 57c8c6b5f4
am: bb54baba04

Change-Id: Id2aa8aeff6d299edb85955c12ab0a04023458597

Erik Kline   authored and   android-build-merger   commited 2017-03-07 13:42:11 +00:00
2b1df53310
Merge "request{LinkProperties,NetworkCapabilities} no longer needed"
am: 67a9265809

Change-Id: I79b9323be242ed5d2bf83962f78c613a465a20b8

Erik Kline   authored and   android-build-merger   commited 2017-03-07 13:33:29 +00:00
57c8c6b5f4
request{LinkProperties,NetworkCapabilities} no longer needed
Test: as follows
    - built (bullhead)
    - flashed
    - booted
    - runtest frameworks-net passes
    - manual USB tethering toggling between WiFi and mobile
Bug: 32163131
Change-Id: I57edf5114b6361f320577c7870e40f8b3cdf74ce

Erik Kline   commited 2017-03-07 17:18:06 +09:00
26af1d81b3
Merge "Always send all available state when calling onAvailable()." am: 8fdbb6d6e2 am: b90963fe4d
am: 3765538bab

Change-Id: Ic82e3cb92841ea99972faad6ae004d77c725831b

Erik Kline   authored and   android-build-merger   commited 2017-03-07 06:08:40 +00:00
0fd4b155a5
Merge "Always send all available state when calling onAvailable()."
am: 8fdbb6d6e2

Change-Id: I81e70fecf060a4103b51084a60a32c78f6219f6b

Erik Kline   authored and   android-build-merger   commited 2017-03-07 06:00:09 +00:00
b90963fe4d
Always send all available state when calling onAvailable().
The state that needs to be transferred includes:
    - NetworkCapabilities
    - LinkProperties
    - whether the network is currently suspended

Additionally:
    - Rename notifyNetworkCallback() to notifyNetworkAvailable()
      in order to clarify its real function.
    - fix previous copy/paste error in unittest

Test: as follows
    - built (bullhead)
    - flashed
    - booted
    - runtest frameworks-net passes
    - USB tethering with mobile and Wi-Fi upstream toggling
Bug: 32163131
Change-Id: Ib4460bcd5d08863a9feac9e8ab41a238897bb3ea

Erik Kline   commited 2017-03-07 12:57:26 +09:00
99f301bdfd
Merge "Revert "ConnectivityManager: no double NetworkCallback registration" because oit caused regressions http://b/35955593, http://b/35921499." am: 704520c392 am: e8a3a43193
am: 22d4258a75

Change-Id: I8e66e223003a38735b707d21d7bedb19170b1937

Hugo Benichi   authored and   android-build-merger   commited 2017-03-06 12:45:10 +00:00
ca809f4260
Merge "Revert "ConnectivityManager: no double NetworkCallback registration" because oit caused regressions http://b/35955593, http://b/35921499."
am: 704520c392

Change-Id: Ia0ae78f8406b81377491407cf5ef8ca339952def

Hugo Benichi   authored and   android-build-merger   commited 2017-03-06 12:30:05 +00:00
e8a3a43193
Revert "ConnectivityManager: no double NetworkCallback registration" because oit caused regressions http://b/35955593, http://b/35921499.
This reverts commit ca4bf6edc3.

Change-Id: I86c07c113f24753be7c977e6d7f570b99391e1b5

Hugo Benichi   commited 2017-03-06 06:16:51 +00:00
1d6742c945
[CM] Allow timeout in request network
Add (unhide) a public API which provides network requests with a
timeout. When timed-out the (newly unhidden) onUnavailable() callback
is triggered.

Note: this CL does not add a handler to the API to be consistent
with the existing APIs. There is a separate effort (b/32130437)
to update these APIs with Handlers.

Bug: 31399536
Test: unit tests and CTS (new)
Change-Id: I45ce9ada63372cb56937bb620bfbb7729e5e25d2

Etan Cohen   commited 2017-03-02 08:06:27 -08:00
f67bde923c
Merge "ConnectivityManager: no double NetworkCallback registration" am: 06a192fa49 am: e71290cc46
am: 974e83cc0b

Change-Id: I73569fd084c14a78067e09565418f296994cd424

Hugo Benichi   authored and   android-build-merger   commited 2017-03-02 08:12:09 +00:00
a5dd9aba90
Merge "ConnectivityManager: no double NetworkCallback registration"
am: 06a192fa49

Change-Id: I250fa7d3c5e37a66caa41cc898a44bcb18c9a0c4

Hugo Benichi   authored and   android-build-merger   commited 2017-03-02 08:04:03 +00:00
e71290cc46
ConnectivityManager: no double NetworkCallback registration
Test: new test in ConnectivityManagerTest
Bug: 20701525
Change-Id: I205333d31d43e6e6c7fe704ce63b458065f345ce

Hugo Benichi   commited 2017-03-02 15:19:37 +09:00
ca4bf6edc3
Merge "Update UpstreamNetworkMonitor to use custom Handlers" am: 35c89886c2 am: baaa19d65a
am: c239511cdb

Change-Id: I9a210b4896810e7365b2403495716395b3866650

Erik Kline   authored and   android-build-merger   commited 2017-02-24 08:24:51 +00:00
2762541780
Merge "Update UpstreamNetworkMonitor to use custom Handlers"
am: 35c89886c2

Change-Id: I76433822a9b7c124e4b7cfcf2a20cb0e43a60199

Erik Kline   authored and   android-build-merger   commited 2017-02-24 08:15:19 +00:00
baaa19d65a
Update UpstreamNetworkMonitor to use custom Handlers
Test: as follows
    - built (bullhead)
    - flashed
    - booted
    - runtest frameworks-net passes
Bug: 32130437
Bug: 32163131

Change-Id: I2bc3f87cdf7fa6392b4750eb8adb4ea33c6a3f43

Erik Kline   commited 2017-02-24 13:06:51 +09:00
7807ff12af
Merge "ConnectivityManager: allow custom Handlers" am: ef69246260 am: 585855decf
am: 0f99e5367b

Change-Id: I9f7fc64c2d3d6f88344c9547b8e1ac17cf3d1104

Hugo Benichi   authored and   android-build-merger   commited 2017-02-22 05:59:44 +00:00
8f5e49bbe3
Merge "ConnectivityManager: allow custom Handlers"
am: ef69246260

Change-Id: I8da5540f6561cdef4adc91bbeeb9c21a91c08d49

Hugo Benichi   authored and   android-build-merger   commited 2017-02-22 03:48:10 +00:00
585855decf
ConnectivityManager: allow custom Handlers
This patch adds overloaded version of registerDefaultNetworkCallback
registerNetworkCallback, and requestNetwork with an additional Handler
argument that is used for running the caller provided NetworkCallback.

It also clarifies the documentation of the existing methods that
implicitly uses the internal singleton ConnectivityThread about which
internal Handler is used for running NetworkCallbacks.

Test: build, flashed, booted device
Bug: 32130437
Change-Id: Iae15f81e47e2dc0355baf2f2c1679b77e56af299

Hugo Benichi   commited 2017-02-22 09:24:01 +09:00
fd44e91bcb
Merge changes from topic 'cm_request_to' am: d6877b2576 am: 0a8122afa9 am: 6e3ea85738
am: a8bb0c7fdd

Change-Id: I2cef23ff183428041273007cf9bb1b655f92372a

Etan Cohen   authored and   android-build-merger   commited 2017-02-16 14:46:52 +00:00
e4d934db90
Merge changes from topic 'cm_request_to' am: d6877b2576
am: 0a8122afa9

Change-Id: I2720e64e4af88df9d3a7b6209e9fcef4a0340986

Etan Cohen   authored and   android-build-merger   commited 2017-02-16 14:29:29 +00:00
6e3ea85738
Merge changes from topic 'cm_request_to'
* changes:
  [CM] Remove maximum timeout value for request network
  [CM] Remove non-functional timeout from request network

Etan Cohen   authored and   Gerrit Code Review   commited 2017-02-16 14:15:44 +00:00
d6877b2576
[CM] Remove maximum timeout value for request network
The request network with timeout was originally created with a
check of max timeout against a constant of 100 minutes. However,
the API was not public and did not implement a timeout. Any users
were internal and never got any onUnavailable() callback (since
timeout never triggered).

There is no reason to have a max timeout so the constant is
remove.

Bug: 31399536
Test: unit tests and CTS of ConnectivityManager
Change-Id: Icbedfb4299d75b6a7e3e43720111531f1faafd06

Etan Cohen   commited 2017-02-16 14:15:16 +00:00
8500016ea4
Merge "ConnectivityManager: fix potential NPE" am: b688dd18ab am: 95d22b0c92 am: 3b0915b6f5
am: 47be55d3ec

Change-Id: I628fdf36a5a80a2d93ff4c4785253cb16a9e4ad2

Hugo Benichi   authored and   android-build-merger   commited 2017-02-15 01:29:31 +00:00
6987c7d743
Merge "ConnectivityManager: fix potential NPE" am: b688dd18ab
am: 95d22b0c92

Change-Id: I72e114037ce6a0ec53863749b8ffa34513c9fdce

Hugo Benichi   authored and   android-build-merger   commited 2017-02-15 01:09:58 +00:00
3b0915b6f5
ConnectivityManager: fix potential NPE
ConnectivityManager static sCallbackHandler is referenced and directly
used in a way that is not ensuring its proper initialization.

This patch fixes this potential NPE by using getHandler() instead.

Also this patch changes sendRequestForNetwork's signature to only accept
the subtype CallbackHandler instead of Handler: without using
CallbackHandler the NetworkCallbacks are not triggered properly and
bookkeeping of sCallbacks does not happen. sendRequestForNetwork's
signature now makes this explicit.

This step prepares the addition of overloaded versions of
registerNetworkCallback and cie that takes custom Handlers.

Test: build, flashed, manually checked connectivity
Change-Id: I52e8a2cb5075e7aef7b35e30c9845cacba927d13

Hugo Benichi   commited 2017-02-14 16:01:40 +09:00
bc4ac9775f
Merge "Add ConnectivityManager.networkCapabilitiesForType()" am: c313123afe am: d313f7c9fa am: 022044ea69
am: 47500d9b1b

Change-Id: I15fe6fe4c9aec3d244b46516c2992ded33337a9f

Erik Kline   authored and   android-build-merger   commited 2017-02-02 20:03:51 +00:00
21573da57d
Merge "Add ConnectivityManager.networkCapabilitiesForType()" am: c313123afe
am: d313f7c9fa

Change-Id: I6828bc3bb094ca8597ca2d8538045758638c374f

Erik Kline   authored and   android-build-merger   commited 2017-02-02 07:27:13 +00:00
022044ea69
Add ConnectivityManager.networkCapabilitiesForType()
This static method returns a NetworkCapabilities instance with
transports and capabilities set according to the given legacy type.

Also:
    - add NetworkRequest.Builder.setCapabilities(), to be able to use
      the NetworkCapabilities instances returned from the above
    - update UpstreamNetworkMonitor to make immediate use of this

Test: as follows
    - build (bullhead)
    - flashed
    - booted
    - runtest frameworks-net passes
    - WiFi to DUN upstream tethering works
Bug: 32163131

Change-Id: Idfe1ddd2815c355cbf27cf29eb0e3de177de84e9

Erik Kline   commited 2017-02-02 11:07:59 +09:00
ce55eb160d
Add an API hint for metered multipath traffic.
This allows an application that knows how to provide seamless
network connectivity (e.g., using QUIC multipath) to find out if
doing so is desired.

Test: builds, boots, runtest frameworks-net passes.
Bug: 34630278
Change-Id: Ic7fd0b9e1cd879fdfaf84009d7125391895e9087

Lorenzo Colitti   commited 2017-02-01 17:02:29 +09:00
48a2a32bdd
Merge commit 'f2bcda635c' into nyc-mr1-dev-plus-aosp
* commit 'f2bcda635c':
  Captive portals: login activity probes like NetworkMonitor
  Logging improvements in CaptivePortalLoginActivity
  Captive portal systel log improvements
  Fix flaky IpPrefixTest.
  Removing bogus file added by mistake
  frameworks-test: adding missing @SmallTest
  Netd events: record connect() success/errno
  Add missing dependency.
  Show notification for always-on app VPN

The Android Automerger   commited 2017-01-27 06:39:52 +00:00
c95cbb9588
Merge commit 'a19056c35d16ddb5a6c1d3343729701b8939f1e1' into nyc-mr1-dev-plus-aosp
* commit 'a19056c35d16ddb5a6c1d3343729701b8939f1e1': (35 commits)
  NetworkMonitor: send one DNS probe per web probe
  NetworkMonitor metrics: add first validation information
  APF: also drop any ICMPv6 RSs
  ConnectivityServiceTest: fix testAvoidBadWifiSettings
  Fix ConnectivityServiceTest testRequestBenchmark
  Switch over to new "time.android.com" NTP pool.
  Define API for metering network stats buckets.
  Refactored NetworkStatsServiceTest to use Mockito instead of EasyMock.
  Use @Ignore to explicitly disable a @Test method.
  Fixed NetworkStatsServiceTest and converted it to JUnit4.
  VPN network stat accounting changes.
  ConnectivityThread: use lazy holder idiom
  ConnectivityManager: use ConnectivityThread looper
  ConnectivityManager: a simpler CallbackHandler
  Indicate the NsdServiceInfo attributes are only filled in for a resolved service.
  Add a null check for the OnStartTetheringCallback.
  TokenBucket for rate-limiting and throttling
  IpConnectivityMetrics reads buffer size in settings
  CaptivePortalLogin: set mixed content policy to compatibility.
  Add IP conn metrics to dumpsys and bug reports
  ...

The Android Automerger   commited 2017-01-27 06:39:05 +00:00
d49ba144f0
Captive portals: login activity probes like NetworkMonitor
This patch changes CaptivePortalLoginActivity captive portal test to be
consistent with NetworkMonitor by:
 - using Network.java to open the http connection.
 - adding a UserAgent property to the request header.

Test: manually tested.
Bug: 32369183

(cherry picked from commit 454e066e27)

Change-Id: I559eb0497475daad758ba3b3395225dcd0a27a57

Hugo Benichi   authored and   Lorenzo Colitti   commited 2017-01-26 18:53:03 +09:00
f2bcda635c
ConnectivityManager: use ConnectivityThread looper
This patch removes the static singleton looper used by
ConnectivityManager and instead uses the common ConnectivityThread.

This allows to removes the static atomic counter used to track
the number of registered NetworkCallback in ConnectivityManager, because
the looper is not turned off anymore when no callbacks are registered.

Also an overloaded version of sendRequestForNetwork is added taking as a
new parameter a Handler. This will allow to overload various callback
and request related API calls with user provided Handlers.

Test: ConnectivityServiceTest passes
Bug: 26749700
Bug: 28537383
Bug: 32130437

(cherry picked from commit 3b41f05d68)

Change-Id: If956addbf8e7b11b36a4b966de7fca00e8f362c1

Hugo Benichi   authored and   Lorenzo Colitti   commited 2017-01-26 18:51:46 +09:00
eba4b5b0bd
ConnectivityManager: a simpler CallbackHandler
This patch simplifies CallbackHandler in the following way:
  - CallbackHandler directly uses the static references to
    sNetworkCallback and sCallbackRefCount. This allows to remove
    instance fields in CallbackHandler.
  - CallbackHandler does not have a reference to ConnectivityManager
    anymore
  - CallbackHandler.getObject() is now generic in a type-safe way.

Test: ConnectivityServiceTest passes
Bug: 28537383
Bug: 32130437

(cherry picked from commit 0b42baf68a)

Change-Id: I1b5fe2a361b5f623a8310ae698497c83d72f3034

Hugo Benichi   authored and   Lorenzo Colitti   commited 2017-01-26 18:51:43 +09:00
03eeaae5f0
Add a null check for the OnStartTetheringCallback.
This avoids a NullPointerException when trying to call the callback
and gives a more readable error message.

(cherry picked from commit 35e99ea8ef)

Change-Id: Ia419ff68ef10f308f9e44be47420e27099ee6070

Jeremy Klein   authored and   Lorenzo Colitti   commited 2017-01-26 18:51:36 +09:00
d6114b0eda
Support timeouts for requestNetwork() invocations.
(cherry-pick of 0b7a74842b)
(cherry picked from commit 155a59aa63)

Bug: 21414325
Change-Id: I1a58823a372154589f972b98c4c428eab0e0523e

Erik Kline   authored and   Lorenzo Colitti   commited 2017-01-26 18:50:23 +09:00
d99da81fae
Merge "[AWARE] Unhide Wi-Fi Aware API (baseline)" am: dfe8f5dc13 am: 877ccf68fb am: 463d3c6e7c
am: 669e846a8a

Change-Id: Ib668ed15ccf1f05c5ed31f700b69e1f3ab8b4cac

Etan Cohen   authored and   android-build-merger   commited 2017-01-11 23:28:20 +00:00
abccaf34c3
Merge "[AWARE] Unhide Wi-Fi Aware API (baseline)" am: dfe8f5dc13 am: 877ccf68fb
am: 463d3c6e7c

Change-Id: If2a6b632cd03984921572b190745865953a8e808

Etan Cohen   authored and   android-build-merger   commited 2017-01-11 23:22:51 +00:00
669e846a8a