Commit Graph

3956 Commits

Author SHA1 Message Date
Lorenzo Colitti
b479ce4339 Merge changes I325b13d5,I89719fe7 am: 58049d845f am: 9628e69cf7
am: 13c29d7805

Change-Id: Ib980879b0e50ffe1c8209339df22da4a50d5b74e
2017-08-19 03:38:10 +00:00
Lorenzo Colitti
13c29d7805 Merge changes I325b13d5,I89719fe7 am: 58049d845f
am: 9628e69cf7

Change-Id: Iac0d1a08c45816f32b0f8ab81a079883a9965e21
2017-08-19 03:25:21 +00:00
Lorenzo Colitti
9628e69cf7 Merge changes I325b13d5,I89719fe7
am: 58049d845f

Change-Id: Iaced543ab17ea87c8f701975764d957bc1b17fc7
2017-08-19 03:15:08 +00:00
Treehugger Robot
58049d845f Merge changes I325b13d5,I89719fe7
* changes:
  Add tether offload traffic to interface stats as well.
  Tell the system when tethering offload hits a limit.
2017-08-19 03:05:14 +00:00
Lorenzo Colitti
2ce1756ae0 Add tether offload traffic to interface stats as well.
Currently, we only count add tethering traffic to per-UID
stats, but not to total data usage (i.e., dev and XT stats). This
is correct for software tethering, because all software forwarded
packets are already included in interface counters, but it is
incorrect for hardware offload, because such packets do not
increment interface counters.

To fix this:
1. Add an argument to ITetheringStatsProvider#getTetherStats to
   indicate whether per-UID stats are requested. For clarity,
   define integer constants STATS_PER_IFACE and STATS_PER_UID
   to represent these operations.
2. Make NetdTetheringStatsProvider return stats only if per-UID
   stats are requested. (Otherwise tethering traffic would be
   double-counted).
3. Make OffloadController's stats provider return the same
   stats regardless of whether per-UID stats were requested or
   not.
4. Make NetworkStatsService add non-per-UID tethering stats to
   the dev and XT snapshots. The per-UID snapshots were already
   correctly adding in per-UID stats.

(cherry picked from commit 5356a35c3bcfcdf2d184c620af6bfbf9bddf35c5)

Bug: 29337859
Bug: 32163131
Test: runtest frameworks-net
Test: runtest frameworks-telephony
Change-Id: I325b13d50e88841dfb0db4c35e7e27f163ee72fe
Merged-In: I4e8e923d68dce1a4a68608dbd6c75a91165aa4ee
2017-08-19 10:12:05 +09:00
Hugo Benichi
2b93d54dfc Merge "Really allow NetworkAgent immutable updates to NetworkCapabilities" am: cb3c24e36b am: c18658e900
am: 5d18f52554

Change-Id: If3742ea0e2151b9b710eda2fed280c31f7960393
2017-08-18 12:25:56 +00:00
Hugo Benichi
5d18f52554 Merge "Really allow NetworkAgent immutable updates to NetworkCapabilities" am: cb3c24e36b
am: c18658e900

Change-Id: Id352fdb6da21a2150d3e8d062d7eba11878f6919
2017-08-18 12:14:56 +00:00
Hugo Benichi
c18658e900 Merge "Really allow NetworkAgent immutable updates to NetworkCapabilities"
am: cb3c24e36b

Change-Id: Ifbdd005576b3f0fbf278ecec81ce3e4308c6276d
2017-08-18 11:59:02 +00:00
Hugo Benichi
1ed8a874ad Really allow NetworkAgent immutable updates to NetworkCapabilities
This patch completes commit 56a1054ab4 to
really allow updates of immutable capabilities to NetworkCapabilities of
NetworkAgents by using satisfiedByImmutableNetworkCapabilities instead
satisfiedByNetworkCapabilities.

Bug: 64125969
Test: runtest frameworks-net
Change-Id: I9beeb623792f0ee31abcd4ba9d0ba2451304fb2e
2017-08-18 14:51:03 +09:00
Hugo Benichi
54ffa99f5b Merge "Add convenience methods to IpPrefix and LinkAddress" am: 813f81f2f3 am: 27bdc7373a
am: ac352b0eb0

Change-Id: I8d6dd5efd226a8b1c4b05d1e1102362b58e094a1
2017-08-16 15:09:12 +00:00
Hugo Benichi
ac352b0eb0 Merge "Add convenience methods to IpPrefix and LinkAddress" am: 813f81f2f3
am: 27bdc7373a

Change-Id: Iddfec82a08f845e728adadfa6ec58a60a078d6af
2017-08-16 14:56:51 +00:00
Hugo Benichi
27bdc7373a Merge "Add convenience methods to IpPrefix and LinkAddress"
am: 813f81f2f3

Change-Id: I6d3f3c50eaec44e3a0787e849ab28e89f6f4a72d
2017-08-16 14:49:27 +00:00
Treehugger Robot
813f81f2f3 Merge "Add convenience methods to IpPrefix and LinkAddress" 2017-08-16 14:38:29 +00:00
Hugo Benichi
3054e10286 Add convenience methods to IpPrefix and LinkAddress
Also moving relevant test files into tests/net as part of runtest
framworks-net.

Also removes testHashCode in LinkAddress() because this test relies on
the assumption that hashCode() is stable across releases or jdk
versions, which is absolutely not true.

This creates maintenance work for little benefit since hashCode is
already tested as part of the equality test.

For instance this test is now broken because hashing for InetAddress
changed.

Bug: 62988545
Bug: 62918393
Test: runtest frameworks-net, added coverage in tests
Change-Id: I695bc3f0e801bf13bc4fc0706565758f12b775b4
2017-08-16 21:42:21 +09:00
Hugo Benichi
69853a322c Merge "Allow NetworkAgent "immutable updates" to NetworkCapabilities" am: b35719a057 am: c11d6eafe9
am: e3d15057af

Change-Id: I01e287b4df82a53a522566d33b3166f7801badca
2017-08-16 12:14:09 +00:00
Hugo Benichi
e3d15057af Merge "Allow NetworkAgent "immutable updates" to NetworkCapabilities" am: b35719a057
am: c11d6eafe9

Change-Id: Ied592bf6112574399a1e808da337004e1c35f244
2017-08-16 12:04:38 +00:00
Hugo Benichi
c11d6eafe9 Merge "Allow NetworkAgent "immutable updates" to NetworkCapabilities"
am: b35719a057

Change-Id: I0ab76de59e87c46a6961229399ff7200bce49838
2017-08-16 11:50:55 +00:00
Hugo Benichi
56a1054ab4 Allow NetworkAgent "immutable updates" to NetworkCapabilities
This patch loosens the validation checks when a NetworkAgent updates it
NetworkCapabilities: instead of checking that capabilities labeled as
"immutable" stay identical across updates, it is now accepted to change
immutable capabilities in a way that the new NetworkCapabilities
satisfies the old NetworkCapabilities.

This allows a NetworkAgent to update itself in order to match more
requests, but will still catch NetworkAgents that sends degradation
updates causing potentially requests to not match anymore.

Bug: 64125969
Test: runtest frameworks-net
Change-Id: I2a1b3f9c0be6415e40edc989d0c1b03b5631f7b1
2017-08-16 18:30:30 +09:00
Hugo Benichi
0bb20bd56a Merge "Fix flaky IpPrefixTest." am: 47ce6588f3 -s ours am: 44033e347d -s ours
am: eace017214  -s ours

Change-Id: I64b9214694132f874d5546b4ade1917524db50d7
2017-08-08 07:40:11 +00:00
Hugo Benichi
eace017214 Merge "Fix flaky IpPrefixTest." am: 47ce6588f3 -s ours
am: 44033e347d  -s ours

Change-Id: I216b50a8d0f51f2f731b17598b205a7b0ad65324
2017-08-08 07:34:42 +00:00
Hugo Benichi
44033e347d Merge "Fix flaky IpPrefixTest."
am: 47ce6588f3  -s ours

Change-Id: Iabc8a365a6c18c19754da7ddfcc0385eb5b0f768
2017-08-08 07:28:32 +00:00
Treehugger Robot
47ce6588f3 Merge "Fix flaky IpPrefixTest." 2017-08-08 07:16:48 +00:00
Hugo Benichi
207b757194 Fix flaky IpPrefixTest.
Test: IpPrefixTest passes
Bug: 32561414
Merged-In: Ib4bffe9d33a6d4f5c2bd97798073de0f66d77645

(cherry pick from commit b3ac7ab583)

Change-Id: Ibaf11aae9b13af868bebff820c9e7615b63c8eb2
2017-08-08 14:54:08 +09:00
Hugo Benichi
fc34768542 Merge "NetworkCapabilities: fix describeImmutableDifferences" into oc-dr1-dev
am: 1b3877a965  -s ours

Change-Id: I42723162b29e8a8c966201e1b4da811e2d266f00
2017-08-07 05:49:17 +00:00
Hugo Benichi
9f1128a81a NetworkCapabilities: fix describeImmutableDifferences
This patch fixes the mask used in describeImmutableDifferences which did
not correctly turn NET_CAPABILITY_NOT_METERED into bit flag.

Bug: 63326103
Test: added unit tests, runtest frameworks-net
Merged-In: Ib6b390b1daef5912859302692af7dcd6cfd3e39a
Merged-In: If38efacdeec8476880835657938e435f9b598525
Merged-In: Ieccad46fcffcaf748f5644b04617e9a82527000e
Merged-In: I533ef8fe369cec19d283ff2950314fce6e28cffd
Merged-In: I12636c6699ff60487a28570208e819ea0b66fa2e
Merged-In: Ie5df14e0ea1c12e0cfabe87978ac6c9b744353b2

(cherry picked from commit 66bdf0aa16)

Change-Id: I74ecf34a2c079c74152d00caea2c220e9c6d1fa5
2017-08-05 11:37:10 +09:00
Hugo Benichi
ae6ff2ba0f Merge "NetworkCapabilities: fix describeImmutableDifferences" am: 7575ec2240 am: ec11d07dc0
am: ad0a1b3c2b

Change-Id: I533ef8fe369cec19d283ff2950314fce6e28cffd
2017-08-05 01:14:30 +00:00
Hugo Benichi
ad0a1b3c2b Merge "NetworkCapabilities: fix describeImmutableDifferences" am: 7575ec2240
am: ec11d07dc0

Change-Id: Ieccad46fcffcaf748f5644b04617e9a82527000e
2017-08-05 01:01:04 +00:00
Hugo Benichi
ec11d07dc0 Merge "NetworkCapabilities: fix describeImmutableDifferences"
am: 7575ec2240

Change-Id: If38efacdeec8476880835657938e435f9b598525
2017-08-05 00:54:43 +00:00
Hugo Benichi
66bdf0aa16 NetworkCapabilities: fix describeImmutableDifferences
This patch fixes the mask used in describeImmutableDifferences which did
not correctly turn NET_CAPABILITY_NOT_METERED into bit flag.

Bug: 63326103
Test: added unit tests, runtest frameworks-net
Change-Id: Ib6b390b1daef5912859302692af7dcd6cfd3e39a
2017-08-04 15:17:40 +09:00
Hugo Benichi
c8578b804b DO NOT MERGE ANYWHERE ConnectivityService: move reportNetworkConnectivity to handler am: fb8db88bd4 -s ours am: c51fd37f55 -s ours am: 310a4c0cf8 -s ours
am: 9c5fe9b188  -s ours

Change-Id: Ie1a18b001d85450f6458f33b75b0f2f3965a81a9
2017-08-01 15:12:15 +00:00
Hugo Benichi
9e5f004c8b DO NOT MERGE ANYWHERE ConnectivityService: move reportNetworkConnectivity to handler am: fb8db88bd4 -s ours am: c51fd37f55 -s ours am: 310a4c0cf8 -s ours
am: a9fead7c8f  -s ours

Change-Id: Idf2184eb808068366384031694c7fa89fe49c8bb
2017-08-01 15:03:31 +00:00
Hugo Benichi
9c5fe9b188 DO NOT MERGE ANYWHERE ConnectivityService: move reportNetworkConnectivity to handler am: fb8db88bd4 -s ours am: c51fd37f55 -s ours
am: 310a4c0cf8  -s ours

Change-Id: Ia38655a26410e9ea78e394e5c59e052739f041a6
2017-08-01 14:55:26 +00:00
Hugo Benichi
a9fead7c8f DO NOT MERGE ANYWHERE ConnectivityService: move reportNetworkConnectivity to handler am: fb8db88bd4 -s ours am: c51fd37f55 -s ours
am: 310a4c0cf8  -s ours

Change-Id: Idc2217a66f60caa783957fd6caeaafa1ff1615bc
2017-08-01 14:50:36 +00:00
Hugo Benichi
310a4c0cf8 DO NOT MERGE ANYWHERE ConnectivityService: move reportNetworkConnectivity to handler am: fb8db88bd4 -s ours
am: c51fd37f55  -s ours

Change-Id: I6d788c5b7cd5c6877799e5a3e0ad865996147b70
2017-08-01 14:37:06 +00:00
Hugo Benichi
c51fd37f55 DO NOT MERGE ANYWHERE ConnectivityService: move reportNetworkConnectivity to handler
am: fb8db88bd4  -s ours

Change-Id: Ie54e0712dc83514ff3ddcd6cee1b0bd2e80c73ad
2017-08-01 14:30:02 +00:00
Hugo Benichi
de31804d45 Merge "Logging improvements when NetworkCapabilities change" am: 935759cfff am: dc2b32d9a0
am: 88a572da7d  -s ours

Change-Id: I5f6e3a2109236f30d0e09bde8a2c63b32e62f772
2017-07-31 02:07:12 +00:00
Hugo Benichi
dc2b32d9a0 Merge "Logging improvements when NetworkCapabilities change"
am: 935759cfff

Change-Id: I886e39db8969eb1ac1dfe06c6f448e53a90fd92c
2017-07-31 01:50:38 +00:00
Treehugger Robot
935759cfff Merge "Logging improvements when NetworkCapabilities change" 2017-07-31 01:38:29 +00:00
Hugo Benichi
1b62b12a72 Logging improvements when NetworkCapabilities change
This patch improves the wtf() logging in updateCapabilities to
better distinguish between the cases of a changed specifiers, changed
transports, or changed capabilities. The case of NOT_METERED being added
or removed is ignored.

Bug: 63326103
Test: runtest frameworks-net, runtest frameworks-wifi
Merged-In: I05c6e78891e1eac658f1cf883223af520a9a4f8f
Merged-In: I4f6cbc0adb461cef6610460daeba72ca38b8f10c
Merged-In: I165a8bbe8362100f1e2bb909459fb45b1c68d5ae
Merged-In: Iec6d92e9a3a12bab87c5adfaf17f776465077060
Merged-In: I633d6347a7f852c27c03fc96b36ca2a60f70c73c
Merged-In: I38739184fc0db105bfd3b4c02cce01e803739e5d
Merged-In: Ia58b877056e2442136cc8b145ac8f4e6560cfc2c

(cherry pick from commit 8c92888a2d)

Change-Id: Id32ca66068c8ff549627e8e8c0e50897ef928c58
2017-07-31 09:25:37 +09:00
Hugo Benichi
170cc51f45 Merge "Logging improvements when NetworkCapabilities change" into oc-dr1-dev
am: 5c55f974bf

Change-Id: I165a8bbe8362100f1e2bb909459fb45b1c68d5ae
2017-07-28 23:54:05 +00:00
Hugo Benichi
5c55f974bf Merge "Logging improvements when NetworkCapabilities change" into oc-dr1-dev 2017-07-28 23:42:59 +00:00
Hugo Benichi
8c92888a2d Logging improvements when NetworkCapabilities change
This patch improves the wtf() logging in updateCapabilities to
better distinguish between the cases of a changed specifiers, changed
transports, or changed capabilities. The case of NOT_METERED being added
or removed is ignored.

Bug: 63326103
Test: runtest frameworks-net, runtest frameworks-wifi
Change-Id: I05c6e78891e1eac658f1cf883223af520a9a4f8f
2017-07-28 15:25:54 +09:00
Hugo Benichi
9b72d7581a Merge "NetworkNotificationManager: correctly handle existing notifications" into oc-dr1-dev
am: a03bf7acd1  -s ours

Change-Id: I13204ae131642c95df242245764689294b0fd85f
2017-07-28 04:38:25 +00:00
Hugo Benichi
fb8db88bd4 DO NOT MERGE ANYWHERE ConnectivityService: move reportNetworkConnectivity to handler
This patch moves reportNetworkConnectivity onto the handler of
ConnectivityService.

This allows:
  - to inspect NetworkAgentInfo on the ConnectivityService handler,
    which is always more correct than doing so on a Binder thread.
  - to improve locking policies around NetworkAgentInfo.

Test: $ runtest frameworks-net
Bug: 37119619, 36902662
Change-Id: I49a765826e65c29a1995242290e5e7544112c94e
2017-07-27 20:18:03 -07:00
Hugo Benichi
228baefe80 DO NOT MERGE ANYWHERE ConnectivityService: safer locking
This path changes a dangerous lock path in reportNetworkConnectivity().
This methods is called outside of the main ConnectivityService handler
and takes a lock on a specific NetworkAgentInfo whose connectivity
status is being reported.

While this lock is held, reportNetworkConnectivity() goes on and query
the network policy state for that network, which may ends into
NetworkPolicyManagerService.

Instead, the lock on NetworkAgentInfo is only held long enough to make a
copy of LinkProperties, which is then passed to
NetworkPolicyManagerService without that lock.

Bug: 36902662
Test: could not repro b/36902662, reportNetworkConnectivity() works.
      $ runtest frameworks-net

Change-Id: Iac4b75bcecbdddb0ac695c8b1a87ae755f62f47f
2017-07-27 20:17:25 -07:00
Hugo Benichi
cd6733c956 NetworkNotificationManager: correctly handle existing notifications
This patch corrects a regression added by commit 51727428fc that did
not take into account the case of multiple notifications shown for a
single network id. Given how network notifications are triggered, it can
happen that NO_INTERNET and SIGN_IN notifications are both triggered for
the same network when captive portal detection is slow.

Contrary to the situation before commit 51727428fc, a notification
priority order is introduced so that SIGN_IN always overrides
NO_INTERNET, and NO_INTERNET is ignored if SIGN_IN is already present.

Bug: 63676954
Bug: 62503737
Test: runtest frameworks-net, added new unit tests
Merged-In: Ib8658601e8d4dc6c41b335ab7dd8caa0cccd9531
Merged-In: I4432f66067ea1ab02e1d2dfe42530bcdafa52df6
Merged-In: I74631b0bfd14daf18a1641ed7f2ec323d636ebbf
Merged-In: I73cc879e910d503946facdba498b300337f349fd
Merged-In: Ieed9e3e7755e0c5f89dc41ef66f47d4dbf4c66a9
Merged-In: I0aa590170f1bd4c37175c7e35e54d52f1fb21347

(cherry picked from commit 5fcd050e0ecd5985cf184f55ea3df4434da8f824)

Change-Id: I41675768ab59e9b23ca4275edf297b82595e5730
2017-07-28 09:17:20 +09:00
Hugo Benichi
26a71df435 Merge "NetworkNotificationManager: correctly handle existing notifications" am: 3451fb6156 am: d7c56713f5
am: 5cbf7e2dc8

Change-Id: I73cc879e910d503946facdba498b300337f349fd
2017-07-27 14:58:32 +00:00
Hugo Benichi
d7c56713f5 Merge "NetworkNotificationManager: correctly handle existing notifications"
am: 3451fb6156

Change-Id: I4432f66067ea1ab02e1d2dfe42530bcdafa52df6
2017-07-27 14:43:48 +00:00
Hugo Benichi
38dfb4ed75 NetworkNotificationManager: correctly handle existing notifications
This patch corrects a regression added by commit 51727428fc that did
not take into account the case of multiple notifications shown for a
single network id. Given how network notifications are triggered, it can
happen that NO_INTERNET and SIGN_IN notifications are both triggered for
the same network when captive portal detection is slow.

Contrary to the situation before commit 51727428fc, a notification
priority order is introduced so that SIGN_IN always overrides
NO_INTERNET, and NO_INTERNET is ignored if SIGN_IN is already present.

Bug: 63676954
Bug: 62503737
Test: runtest frameworks-net, added new unit tests
Change-Id: Ib8658601e8d4dc6c41b335ab7dd8caa0cccd9531
2017-07-27 21:20:20 +09:00
Di Lu
347c180dd0 Merge "Add unit test for IpSecService" am: 66c2152a1a am: 74a670dd15
am: 345db82674

Change-Id: Ia4d85bcf5c42774d7b48cb1cd648754b6dd16b69
2017-07-20 07:50:21 +00:00