Commit Graph

4231 Commits

Author SHA1 Message Date
Hugo Benichi
e7849f69a3 Merge "Network Service Discovery test: properly release resources"
am: c9d24d203d

Change-Id: If34b3770a5c0fef65d124201e0ca1374cc6b1eca
2017-09-04 12:14:11 +00:00
Hugo Benichi
39ab957328 Network Service Discovery test: properly release resources
Bug: 32561414
Bug: 62918393
Bug: 62044295
Test: runtest frameworks-net
Change-Id: If23993b5e391947ecbdc01677f0a643144794b2b
2017-09-02 14:54:29 +09:00
Jeff Sharkey
954aeb5e49 Merge "Gracefully handle integer overflows." into oc-mr1-dev am: 4d2a8d7203
am: 2b3e602c25

Change-Id: I6a4cec507d8d4eaad65a691e37171359f7fc87c3
2017-09-02 02:24:56 +00:00
Jeff Sharkey
2b3e602c25 Merge "Gracefully handle integer overflows." into oc-mr1-dev
am: 4d2a8d7203

Change-Id: I6ed70a40ad3e6df55e7669fedfe5b34faf95bd9f
2017-09-02 02:07:25 +00:00
Jeff Sharkey
92313e436a Gracefully handle integer overflows.
Try sticking with integer-based math as much as possible for speed,
but switch to double-based math if we detect that we'd end up
causing an overflow.

New tests to verify.

Test: bit FrameworksNetTests:com.android.server.net.NetworkStatsCollectionTest
Bug: 65257769
Change-Id: I1ae35599be134f81850c0a3d86928b057fba1eff
2017-09-01 17:13:01 -06:00
Hugo Benichi
d39d258888 Merge "Revert "Nat464Xlat: interface notification handler on ConnectivityService"" into oc-mr1-dev am: b3dec17660
am: 73c3c66a8e

Change-Id: I7fd2b634e4e5c7f15834baa536cadf37128eb583
2017-09-01 03:13:34 +00:00
Hugo Benichi
73c3c66a8e Merge "Revert "Nat464Xlat: interface notification handler on ConnectivityService"" into oc-mr1-dev
am: b3dec17660

Change-Id: If2b714c7e74d95d4fad610772e3d74ab13b923e8
2017-09-01 03:01:59 +00:00
Hugo Benichi
b3dec17660 Merge "Revert "Nat464Xlat: interface notification handler on ConnectivityService"" into oc-mr1-dev 2017-09-01 02:49:17 +00:00
Hugo Benichi
41f37bc95a Merge "Merge "Revert "Nat464Xlat: interface notification handler on ConnectivityService"" am: 1d66352b40 am: 3e569a9562 am: de68a0a1af" into oc-mr1-dev-plus-aosp
am: 9734dc1fb1

Change-Id: Ibe2d7943e8f759d66ac16b38ef7ba7bf363e062d
2017-08-31 15:16:37 +00:00
Hugo Benichi
1ca09ace9b Merge "Revert "Nat464Xlat: interface notification handler on ConnectivityService"" am: 1d66352b40 am: 3e569a9562
am: de68a0a1af

Change-Id: Icff7a1fa8888654914fceaf324219ed6af3c95ed
2017-08-31 14:58:48 +00:00
Hugo Benichi
3e569a9562 Merge "Revert "Nat464Xlat: interface notification handler on ConnectivityService""
am: 1d66352b40

Change-Id: I691095ce56e30e2fada93bc5500453f13ac51403
2017-08-31 14:39:18 +00:00
Hugo Benichi
2984496383 Revert "Nat464Xlat: interface notification handler on ConnectivityService"
This reverts commit 39e10e2111.

Bug: 65225023
Change-Id: Id6c21682cafa86d87f66480237dd731b21f917c5
2017-08-31 14:32:54 +00:00
Hugo Benichi
eda8324beb Revert "Nat464Xlat: interface notification handler on ConnectivityService"
This reverts commit b2d70b403f due to b/65225023.

Change-Id: I6ca3780afb8d47b77219d6b5a06760042f684c4b
2017-08-31 14:29:51 +00:00
Jeff Sharkey
57d01d6fde Merge "Augment network stats based on SubscriptionPlan." into oc-mr1-dev am: cf84220710
am: 3870ccbd02

Change-Id: Ica24924ff8e5c95bd14114fb0a1d82c21a7d30d4
2017-08-30 19:27:49 +00:00
Jeff Sharkey
3870ccbd02 Merge "Augment network stats based on SubscriptionPlan." into oc-mr1-dev
am: cf84220710

Change-Id: Ia6c6d5893d841f21d181363dc01f77efa6579a8f
2017-08-30 19:14:21 +00:00
Jeff Sharkey
cf84220710 Merge "Augment network stats based on SubscriptionPlan." into oc-mr1-dev 2017-08-30 19:01:18 +00:00
Jeff Sharkey
3c8f96ef4a Augment network stats based on SubscriptionPlan.
When a carrier provides an "anchor" of data usage at a specific
moment in time, augment the network statistics used by warning/limit
thresholds and Settings UI.  For example, if the OS measured 500MB
of usage, but the carrier says only 400MB has been used, we "squish"
down the OS measured usage to match that anchor.

Callers using the hidden API will have their data augmented by
default, and the public API offers a way to opt-into augmentation.

Thorough testing to verify behavior.

Test: bit FrameworksNetTests:android.net.,com.android.server.net.
Test: cts-tradefed run commandAndExit cts-dev -m CtsUsageStatsTestCases -t android.app.usage.cts.NetworkUsageStatsTest
Bug: 64534190
Change-Id: Id3d4d7625bbf04f57643e51dbf376e3fa0ea8eca
2017-08-30 10:01:10 -06:00
Hugo Benichi
c530c724ae Merge changes I34c4a0c3,Iebc7d153,Ibb028886 into oc-mr1-dev am: 3027f4720a -s ours
am: 1918c0850b  -s ours

Change-Id: I952f2eccf2f2870ddb3d5db0e8b77e9ec467b985
2017-08-30 01:31:58 +00:00
Hugo Benichi
1918c0850b Merge changes I34c4a0c3,Iebc7d153,Ibb028886 into oc-mr1-dev
am: 3027f4720a  -s ours

Change-Id: Iff50bd84ac5d36e85bfb344c8bcc1697bca79a27
2017-08-29 23:09:02 +00:00
Hugo Benichi
39e10e2111 Nat464Xlat: interface notification handler on ConnectivityService
This patch adds a layer of asynchonicity to the NetworkBaseObserver
callbacks implemented by Nat464Xlat in order to allow these callbacks
to run on the main ConnectivityService handler.

This allows to run interfaceLinkStateChanged and interfaceRemoved
callbacks in the same thread context as other Nat464Xlat methods and
solves the following issues:
  - NPE risk due to race between fixupLinkProperties called on the
    ConnectivityService thread and interfaceRemoved called as a
    callback by NetworkManagementService.
  - stale LinkProperties reads in both callbacks not called on
    ConnectivityService handler.
  - removes the race between stop() and interfaceRemoved().

This patch also:
  - removes/simplifies comments related to the threading
    model which are no obsolete.
  - extract clatd management logic from ConnectivityService into
    NetworkAgentInfo

Bug: 62997041
Bug: 64571917
Test:  runtest frameworks-net
       manually connected to ipv6 network and went to test-ipv6.com
Merged-In: I889d98e47423ff3d4746d6ed8015b265286e7c52
Merged-In: I2f002cd197e2eeaaadadd747a6b33d264cd34433
Merged-In: Id3ab064cf9f4417c0e8988fff4167b65b3c8c414
Merged-In: Ib224392c9a185f6bd79fd60cd5cb5549f2a7851e
Merged-In: I9116a493ca1cbdf6a25664a1b0017aa6c9b38eb4
Merged-In: I12918d208364eef55067ae9d59fbc38477e1f1c6

(cherry picked from commit 771d5c2f0126ba692897c9716f4098ae6e3a870c)

Change-Id: I34c4a0c32ce7c9b7bd7acf8f87b932e15c573bd8
2017-08-29 15:12:32 +09:00
Hugo Benichi
9ec24e7825 Merge "Nat464Xlat: interface notification handler on ConnectivityService" am: 91817b3129 am: 6d5fd71e52 am: f55c1ae9b6
am: 40bb1b693a

Change-Id: I12918d208364eef55067ae9d59fbc38477e1f1c6
2017-08-29 05:53:09 +00:00
Hugo Benichi
40bb1b693a Merge "Nat464Xlat: interface notification handler on ConnectivityService" am: 91817b3129 am: 6d5fd71e52
am: f55c1ae9b6

Change-Id: I9116a493ca1cbdf6a25664a1b0017aa6c9b38eb4
2017-08-29 05:42:07 +00:00
Hugo Benichi
6d5fd71e52 Merge "Nat464Xlat: interface notification handler on ConnectivityService"
am: 91817b3129

Change-Id: I2f002cd197e2eeaaadadd747a6b33d264cd34433
2017-08-29 05:20:32 +00:00
Hugo Benichi
9cd15c7f2e Nat464Xlat: internal state guards cleanup + state enum
This patch does some cleanup of Nat464Xlat internal state guards
against the Nat464Xlat state Idle | Started | Running, which reduces
code nesting.

It also replaces introspection of internal state for distinguishing
between different stages in 464xlat lifecycle with an enum explicitly
introducing these three Idle | Started | Running states.

Bug: 62997041
Bug: 64571917
Test:  runtest frameworks-net
       manually connected to ipv6 network and went to test-ipv6.com
Merged-In: I6efc9fed2420ca488731a2b9b9c3c025b16eca10
Merged-In: I188ac4c367db11cb33b67fe92df3a120e3c6fbce
Merged-In: I7e2c5db8d537fb0ab47cde37158b7f04d7786942
Merged-In: Ic2246a97618c596dbdbf48cda39c2f5b66e3bfb6
Merged-In: Ib04b9a3d56e9daf61b299a30e24a3c8839819a00
Merged-In: Icc1558a0f0e7c299270f550897347458e2bd3188

(cherry pick from commit 4f6f139869ddadf6f9ed50967c106a10a2e8ce3f)

Change-Id: Iebc7d153d8cd0b90d074d8d6eed821fbc3f1370d
2017-08-29 10:02:24 +09:00
Hugo Benichi
b2d70b403f Nat464Xlat: interface notification handler on ConnectivityService
This patch adds a layer of asynchonicity to the NetworkBaseObserver
callbacks implemented by Nat464Xlat in order to allow these callbacks
to run on the main ConnectivityService handler.

This allows to run interfaceLinkStateChanged and interfaceRemoved
callbacks in the same thread context as other Nat464Xlat methods and
solves the following issues:
  - NPE risk due to race between fixupLinkProperties called on the
    ConnectivityService thread and interfaceRemoved called as a
    callback by NetworkManagementService.
  - stale LinkProperties reads in both callbacks not called on
    ConnectivityService handler.
  - removes the race between stop() and interfaceRemoved().

This patch also:
  - removes/simplifies comments related to the threading
    model which are no obsolete.
  - extract clatd management logic from ConnectivityService into
    NetworkAgentInfo

Bug: 62997041
Bug: 64571917
Test:  runtest frameworks-net
       manually connected to ipv6 network and went to test-ipv6.com
Change-Id: I889d98e47423ff3d4746d6ed8015b265286e7c52
2017-08-29 08:55:18 +09:00
Hugo Benichi
2f7f3a3196 Merge "Nat464Xlat: internal state guards cleanup + state enum" am: aee703e7e4 am: 6d7e12ed6e am: 68c8b4ad5d
am: b6646ba075

Change-Id: Icc1558a0f0e7c299270f550897347458e2bd3188
2017-08-28 23:21:39 +00:00
Hugo Benichi
b6646ba075 Merge "Nat464Xlat: internal state guards cleanup + state enum" am: aee703e7e4 am: 6d7e12ed6e
am: 68c8b4ad5d

Change-Id: Ib04b9a3d56e9daf61b299a30e24a3c8839819a00
2017-08-28 23:12:13 +00:00
Hugo Benichi
6d7e12ed6e Merge "Nat464Xlat: internal state guards cleanup + state enum"
am: aee703e7e4

Change-Id: I188ac4c367db11cb33b67fe92df3a120e3c6fbce
2017-08-28 22:49:50 +00:00
Hugo Benichi
5a5c1bb116 Nat464Xlat: clat management cleanup
This patch does some minor refactoring of clat starting/stopping code:
 - remove unused LinkProperties arguments in updateClat
 - remove unused Context argument in Nat464Xlat ctor
 - introduce ensureClatIsStarted and ensureClatIsStopped methods and
   simplify updateClat
 - add clatd to NetworkAgentInfo toString() method
 - clarify some comments

This changes prepare for moving BaseNetworkObserver callbacks to
ConnectivityService.

Bug: 62997041
Bug: 64571917
Test: runtest frameworks-net
      manually connected to IPv6 only network and went to test-ipv6.com

Merged-In: Idb204784614cfe700f73255a7a7b78c5e9ee6eca
Merged-In: Ic3808a1afe48efac745b1b378fb12cc5678918ec
Merged-In: Ia769aef6ef8b258f44f8979003d271c96264f1b5
Merged-In: I1a19e6fbb0cb13262e90b171d861062469078fb6
Merged-In: I06661bd6bd1456ba34a3bbdb52c120ac01da9d61
Merged-In: Ifccff9f3cfccdb2cdddf2f07561f0787a48bc0f8

(cherry picked from commit b577d65825e623a9868664486482ed137b98b504)

Change-Id: Ibb02888633df9643030336c4dbea6c569a47554c
2017-08-28 22:32:11 +09:00
Hugo Benichi
8c23345c6e Merge "Nat464Xlat: clat management cleanup" am: 81b179cfdd am: bd5610af79 am: da71487a59
am: 7f0c130788

Change-Id: Ifccff9f3cfccdb2cdddf2f07561f0787a48bc0f8
2017-08-28 12:35:38 +00:00
Hugo Benichi
7f0c130788 Merge "Nat464Xlat: clat management cleanup" am: 81b179cfdd am: bd5610af79
am: da71487a59

Change-Id: I06661bd6bd1456ba34a3bbdb52c120ac01da9d61
2017-08-28 12:21:10 +00:00
Hugo Benichi
bd5610af79 Merge "Nat464Xlat: clat management cleanup"
am: 81b179cfdd

Change-Id: Ic3808a1afe48efac745b1b378fb12cc5678918ec
2017-08-28 12:01:25 +00:00
Hugo Benichi
adbbac97c5 Nat464Xlat: internal state guards cleanup + state enum
This patch does some cleanup of Nat464Xlat internal state guards
against the Nat464Xlat state Idle | Started | Running, which reduces
code nesting.

It also replaces introspection of internal state for distinguishing
between different stages in 464xlat lifecycle with an enum explicitly
introducing these three Idle | Started | Running states.

Bug: 62997041
Bug: 64571917
Test:  runtest frameworks-net
       manually connected to ipv6 network and went to test-ipv6.com
Change-Id: I6efc9fed2420ca488731a2b9b9c3c025b16eca10
2017-08-28 15:29:27 +09:00
Hugo Benichi
55d8ae3377 Nat464Xlat: clat management cleanup
This patch does some minor refactoring of clat starting/stopping code:
 - remove unused LinkProperties arguments in updateClat
 - remove unused Context argument in Nat464Xlat ctor
 - introduce ensureClatIsStarted and ensureClatIsStopped methods and
   simplify updateClat
 - add clatd to NetworkAgentInfo toString() method
 - clarify some comments

This changes prepare for moving BaseNetworkObserver callbacks to
ConnectivityService.

Bug: 62997041
Bug: 64571917
Test: runtest frameworks-net
      manually connected to IPv6 only network and went to test-ipv6.com
Change-Id: Idb204784614cfe700f73255a7a7b78c5e9ee6eca
2017-08-28 15:29:23 +09:00
Hugo Benichi
60aafd4f98 Merge "Make NetworkManagementServiceTest pass again." am: 29b1826ff2 am: bfe44f641d am: c933ef6c54
am: 2b89a6f05d

Change-Id: I5ec6a8cc3422c1baf107c814f7a60b28fcc71cd5
2017-08-24 04:21:14 +00:00
Hugo Benichi
2b89a6f05d Merge "Make NetworkManagementServiceTest pass again." am: 29b1826ff2 am: bfe44f641d
am: c933ef6c54

Change-Id: Ic39262b1f650695cc6903c3a9e2ddb592d47b365
2017-08-24 04:09:14 +00:00
Hugo Benichi
bfe44f641d Merge "Make NetworkManagementServiceTest pass again."
am: 29b1826ff2

Change-Id: If7fafa0922fdbc499c0c911a3f88ede9c8a26c1d
2017-08-24 03:46:07 +00:00
Lorenzo Colitti
3b43a4a047 Make NetworkManagementServiceTest pass again.
1. Mock the service manager so that NMS can fetch mock versions
   of INetd and IBatteryStats.
2. Call LocalServices.removeServiceForTest to avoid a duplicate
   service registration error. // check this
3. Change the timeout from 100ms to 200ms, as otherwise the tests
   that check for IfaceClass fail.
4. Convert NetworkManagementServiceTest to JUnit 4.
5. Move NetworkManagementServiceTest to tests/net

Bug: 29337859
Bug: 32163131
Bug: 32561414
Bug: 62918393
Test: runtest frameworks-net
Change-Id: Ic7371b427b35809ccd446addf35c9d8ae99ccfd3
2017-08-23 09:49:05 +09:00
Tobias Thierer
928b838edb Merge "Network: Use HttpURLConnectionFactory rather than OkHttp APIs" am: 811e215e2c am: 41ff948711 am: e7776bd372 am: 8f55753777
am: f65e355e1d

Change-Id: I94d4593ff8234c9ee4340b3b2e733ae936177e48
2017-08-22 15:51:15 +00:00
Tobias Thierer
f65e355e1d Merge "Network: Use HttpURLConnectionFactory rather than OkHttp APIs" am: 811e215e2c am: 41ff948711 am: e7776bd372
am: 8f55753777

Change-Id: I1ed6962088be8a0999b81a19d84f5c1c7203dddb
2017-08-22 15:40:30 +00:00
Tobias Thierer
8f55753777 Merge "Network: Use HttpURLConnectionFactory rather than OkHttp APIs" am: 811e215e2c am: 41ff948711
am: e7776bd372

Change-Id: I048a7695ec98711163494e3dedab785e1400d1da
2017-08-22 15:28:07 +00:00
Tobias Thierer
e7776bd372 Merge "Network: Use HttpURLConnectionFactory rather than OkHttp APIs" am: 811e215e2c
am: 41ff948711

Change-Id: I0e15e22f4e1561102012b012cdea74db63ac2163
2017-08-22 15:16:31 +00:00
Baligh Uddin
0dd189632f DO NOT MERGE ANYWHERE Revert "Merge "Remove gender-specific pronouns from documentation" into oc-dev" am: e811770999 -s ours am: 92363c4e9f -s ours am: c8a6298b3f -s ours
am: 2899590223  -s ours

Change-Id: I061d8aa9e3aa519cd97394bb5e1ad231a6b30762
2017-08-22 15:08:23 +00:00
Tyler Freeman
f15ef5d899 Merge "Merge "DO NOT MERGE ANYWHERE: Manually merge commit 'fd35d7c0a284' into oc-dev-plus-aosp am: 732df7fec9 -s ours" into oc-dr1-dev-plus-aosp am: 6c182d2c61 -s ours" into oc-mr1-dev-plus-aosp
am: d2e9f1df97  -s ours

Change-Id: I89f50ec1f15fc6c78fa033b8de5be48ab286cb72
2017-08-22 15:02:40 +00:00
Tobias Thierer
41ff948711 Merge "Network: Use HttpURLConnectionFactory rather than OkHttp APIs"
am: 811e215e2c

Change-Id: I79db2f0dc0870f71ec21397545e2e6abb5c7142b
2017-08-22 15:00:24 +00:00
Baligh Uddin
756a5719f0 Merge "DO NOT MERGE ANYWHERE Revert "Merge "Remove gender-specific pronouns from documentation" into oc-dev" am: e811770999 -s ours am: 0a92e1584e -s ours am: a174dd26d3 -s ours" into oc-mr1-dev-plus-aosp
am: edb499aa82  -s ours

Change-Id: I59072d11b99d74f318f46dfb8e46891830424c58
2017-08-22 14:47:58 +00:00
Baligh Uddin
3451cfca77 DO NOT MERGE ANYWHERE Revert "Merge "Remove gender-specific pronouns from documentation" into oc-dev" am: e811770999 -s ours am: 0a92e1584e -s ours am: 4a46108d0f -s ours
am: 925023b605  -s ours

Change-Id: Ia543610cd2f3a376d24ca6e1df07180f09bd0acf
2017-08-22 14:27:14 +00:00
Tyler Freeman
d793fea361 Merge "DO NOT MERGE ANYWHERE Manually merge commit 'fd35d7c0a284' into oc-dr1-dev am: 27b9dd89db -s ours am: 20eaf1b908 -s ours" into oc-mr1-dev-plus-aosp
am: 1d9e16f218  -s ours

Change-Id: Icb4a80f7b80b56eef5afe130fb7a9b030dfd45e7
2017-08-22 14:21:18 +00:00
Tyler Freeman
144cf4eb40 DO NOT MERGE ANYWHERE Manually merge commit 'fd35d7c0a284' into oc-dr1-dev am: 27b9dd89db -s ours am: 9e41f13ae6 -s ours
am: 5930bf3296  -s ours

Change-Id: Ie6afcc2231fbe22d6b6c944f2c520d0cb36b3fbb
2017-08-22 14:15:48 +00:00
Tobias Thierer
811e215e2c Merge "Network: Use HttpURLConnectionFactory rather than OkHttp APIs" 2017-08-22 14:07:16 +00:00