Commit Graph

748 Commits

Author SHA1 Message Date
Jeff Sharkey
5a0df01ad7 Give CTS a way to force-poll network stats.
Collecting network statistics is pretty heavy, which is why we're
throttling callers.  However, to keep CTS running fast, we provide a
way for tests to force a poll event, instead of making them wait for
the throttle timeout.

Bug: 77908520
Test: atest cts/tests/tests/app.usage/src/android/app/usage/cts/NetworkUsageStatsTest.java
Change-Id: Ia792f0cd495023366ff8c4839df54e7da2ae8331
2018-04-20 12:18:23 -06:00
Jeff Sharkey
bc05a34970 Merge "Never interact with "phone" while holding locks." into pi-dev
am: d101084db7

Change-Id: I570994cd8ab5c7499dfa94b17e42687181637de0
2018-04-19 20:00:48 -07:00
Jeff Sharkey
c0ddfa3185 Never interact with "phone" while holding locks.
We've seen devices where heavy communication between "system_server"
and the "phone" process can exhuast Binder threads, especially when
calling while holding locks.  To mitigate this, we now interact with
the "phone" process before acquiring any locks.

Update our internal data structures either when we see a connectivity
change, or when SubscriptionManager tells us something changed.

Fix bug in resolveSubscriptionPlan() that always picked the 0'th
SubscriptionPlan instead of looking for the currently active plan;
we now use the same logic for both NSS and NPMS.

Bug: 77908520, 77154412
Test: atest com.android.server.NetworkPolicyManagerServiceTest
Test: atest com.android.server.net.NetworkStatsServiceTest
Change-Id: I177d3fa6cddc78d745b35a9ede12451d458b892c
2018-04-19 14:41:35 -06:00
Jeff Sharkey
addd48f987 Merge "Add tracing for network statistics and policy." into pi-dev
am: a4cd50c93e

Change-Id: I2b6634c8df4dfe14fb4cd01bca6611e7cf7a0056
2018-04-16 18:10:40 -07:00
Jeff Sharkey
8f3b754cd3 Add tracing for network statistics and policy.
These trace points surround areas of heavy lifting to help us debug
code that might be taking longer than expected.  (For example, slow
getting data from eBPF, slow recording into data structures, slow
writing to disk, or slow evaluating policy.)

Typical timings on a taimen:

performPollLocked:   25.5ms
snapshotUid:          4.4ms
snapshotXt:           1.4ms
[persisting]:        13.4ms
updateNotifications:  3.3ms

Bug: 77908520, 77808546, 77853238, 77154412
Test: builds, boots
Change-Id: I072bfecffee01eeec7e4cbad439bd1cdc166febc
2018-04-16 13:31:32 -06:00
Jeff Sharkey
31798e0b93 Merge "Revert "Revert "OP_GET_USAGE_STATS should be noted, not checked.""" into pi-dev
am: 004b279683

Change-Id: Ie9bcdc9736c04ab787efc193311a20d03718b593
2018-04-16 10:19:39 -07:00
Jeff Sharkey
aeaa916b66 Merge "Revert "OP_GET_USAGE_STATS should be noted, not checked."" into pi-dev
am: 893abe5d47

Change-Id: I2cc76316bca81c12e56337d6e36d82b0de6d9ded
2018-04-16 10:07:52 -07:00
Jeff Sharkey
004b279683 Merge "Revert "Revert "OP_GET_USAGE_STATS should be noted, not checked.""" into pi-dev 2018-04-16 16:54:32 +00:00
Jeff Sharkey
0eb04dc200 Revert "Revert "OP_GET_USAGE_STATS should be noted, not checked.""
This reverts commit c6624c7a1a.

Reason for revert: ijpedowitz@

Bug: 77662908
Change-Id: I596d330d64942105f447bb613012bb11e281a805
Exempt-From-Owner-Approval: keep tests passing
2018-04-16 16:50:34 +00:00
Jeff Sharkey
893abe5d47 Merge "Revert "OP_GET_USAGE_STATS should be noted, not checked."" into pi-dev 2018-04-16 16:50:06 +00:00
Jeff Sharkey
c6624c7a1a Revert "OP_GET_USAGE_STATS should be noted, not checked."
This reverts commit 930aeb0c00.

Reason for revert: ijpedowitz@

Bug: 77662908
Change-Id: I5dd0ad5038df90ea8a80ba6f583ee46fb24600c2
Exempt-From-Owner-Approval: keep tests passing
2018-04-16 16:39:55 +00:00
Jeff Sharkey
8984338162 Merge "OP_GET_USAGE_STATS should be noted, not checked." into pi-dev
am: e5a47054b3

Change-Id: I38f5aecdb94c8b886ca4eba5908ab1b4a9c1fb89
2018-04-14 18:11:58 -07:00
Jeff Sharkey
84151258a1 Merge "Don't process broadcasts until really ready." into pi-dev
am: fcc07b53fa

Change-Id: I898d5c2d351951a7c016cbc70cb81210a9e18b26
2018-04-14 17:39:59 -07:00
Jeff Sharkey
e5a47054b3 Merge "OP_GET_USAGE_STATS should be noted, not checked." into pi-dev 2018-04-13 23:58:44 +00:00
Jeff Sharkey
e6c2cfbe42 Don't process broadcasts until really ready.
Someone started setting mSystemReady too early, when we really want
to know SystemServer's real ready state.  Add a variable to track
that, and don't process broadcasts until that's set.

Bug: 78020762
Test: builds, boots
Change-Id: I65213e46044c95fb0a8a4b09b9aa463bb15c1844
2018-04-13 14:28:32 -06:00
Jeff Sharkey
930aeb0c00 OP_GET_USAGE_STATS should be noted, not checked.
Per email feedback, we should be using "noteOp" instead of "checkOp"
when testing if caller holds OP_GET_USAGE_STATS, so that we record
that caller used the operation.

Bug: 77662908
Test: builds, boots
Exempt-From-Owner-Approval: keep tests passing
Change-Id: I3a60345d590534fdbc2c1248e0d30dc85a5d6772
2018-04-13 19:32:25 +00:00
Remi NGUYEN VAN
f8536e7c44 Merge "Add rate limiting and logging for NetworkStats." into pi-dev
am: c9185b5f3c

Change-Id: I446a85f8d74fb33abb3a5f6fb1ef86f3c24bb6d4
2018-04-12 14:30:05 -07:00
Remi NGUYEN VAN
3d55d4c02e Add rate limiting and logging for NetworkStats.
Bug: 77908520, 77808546, 77853238, 77154412
Test: atest com.android.server.net.NetworkStatsServiceTest
Test: manual: flashed, verified network usage updated
Change-Id: I905dbea85e00f80103916939f6d4bf8cab931d03
2018-04-12 12:43:53 -06:00
Remi NGUYEN VAN
844d0f6091 Merge "Do not register callback for < MIN_THRESHOLD_BYTES" into pi-dev
am: 76823e1357

Change-Id: I7aab9434ab9b11fe588c057a4c2b774b09ad71d2
2018-04-10 20:46:55 -07:00
Remi NGUYEN VAN
76823e1357 Merge "Do not register callback for < MIN_THRESHOLD_BYTES" into pi-dev 2018-04-11 03:18:57 +00:00
Remi NGUYEN VAN
27d62a0a32 Do not register callback for < MIN_THRESHOLD_BYTES
This also avoids returning a nonzero multipath preference
if remaining data is low but nonzero.

Bug: b/72877610
Change-Id: I2459ded06de77d284ae1fe81a60d9e1df56b0c26
Fixes: b/72877610
Test: Tests in go/ag/3842960 pass
2018-04-10 10:27:00 +09:00
Jeff Sharkey
99670560ca Merge "API council requested tweaks to SubscriptionPlan." into pi-dev
am: ecd081f906

Change-Id: I447d4041d1dd0751147d13792b07d6617b27978a
2018-04-09 17:09:34 -07:00
Jeff Sharkey
17a51c8a56 API council requested tweaks to SubscriptionPlan.
Return new shiny Range<> object instead of Pair<>.  Tell developers
what permission to check on refresh broadcast.  Describe what
exceptions might be thrown, and that an empty list is okay.

Allow creation of plans with richer Period object, instead of forcing
them into rigid week or day options.

Protect SubscriptionPlan broadcast.

Test: atest android.util.RecurrenceRuleTest
Test: atest com.android.server.NetworkPolicyManagerServiceTest
Bug: 74945820
Change-Id: I7e555798e0cfaa214ca93d9df627c6443fc5d986
2018-04-04 16:06:27 -06:00
Nathan Harold
6807999817 Merge "Add AppOps Checks for MANAGE_IPSEC_TUNNELS" into pi-dev
am: 80a2bba9a6

Change-Id: Icd1b2cfc699ab44e4ca536b98298d5b23db7372e
2018-04-03 14:41:56 -07:00
Nathan Harold
65ef843176 Add AppOps Checks for MANAGE_IPSEC_TUNNELS
Adds support for a new AppOp to permit services to
use IpSec tunnel mode. The IpSecService now needs
a context so change the service mode to a cached
service rather than a static service.

Bug: 66955045
Test: runtest frameworks-net
Change-Id: I17a4a286225b432c3e15ea1587d946189931b4f4
2018-04-03 18:23:11 +00:00
Remi NGUYEN VAN
0023be9ea9 Fix network usage stats on 464xlat tethered.
Usage stats corrections for 464xlat in NetworkStatsFactory are not applied
to tethered traffic. Add adjustments in NetworkStatsService. After
migrating external callers off NetworkStatsFactory, we will be able to
only apply adjustments in NetworkStatsService and remove stacked
interface tracking from NetworkStatsFactory.
Bug: 72107146
Fixes: 72107146
Test: runtest frameworks-net & manual - checked corrected network usage
Merged-In: Ieb25c41c651499fdd01225ae5ac21d95e3d823f5
Merged-In: I016722f3a0ae2ae0a1d48bfacc4fe07ee3578ef7
(cherry-pick of aosp I5ce450e616b4fddf21f2a491fe5d0c9e9f969bda)

Change-Id: Id41cf22a0f9a63cb1832e9375bfb045861f08e52
2018-04-02 13:30:02 +00:00
Remi NGUYEN VAN
4cac91f292 Merge "Add method to NetworkStatsService for UID stats." into pi-dev 2018-04-02 05:40:04 +00:00
Remi NGUYEN VAN
944eab8689 Add method to NetworkStatsService for UID stats.
Useful for clients such as BatteryStats which currently rely
on NetworkStatsFactory. Data at that stage is incomplete as
it does not account for tethering, VT data and corresponding
464xlat corrections.

Test: runtest frameworks-net, CTS tests pass.
Bug: b/72107146
Merged-In: I31c5b9b4a7c6e72910152415894a137f000a5858
Merged-In: I2527d95000c7500c824ede70f87ecb38e21ed323
(cherry picked from aosp 088ff6824f13145ea52207bdead0d7e454a6f3ce)

Change-Id: Ie80f1bb21124241f3414f9be77aceac9a44ec6d1
2018-03-30 18:58:18 +09:00
Nathan Harold
1b88f0e6ab Disallow Reserved SPI Allocation
Disallow the allocation of SPIs in the range
reserved for future use by RFC 4303.

Bug: 77205120
Test: runtest frameworks-net
Merged-In: I05e26ed34b5871f1a07d5bd7b58b79a64cd74b67
Change-Id: I05e26ed34b5871f1a07d5bd7b58b79a64cd74b67
(cherry picked from commit 7f606ee8e57d9d8b7c5d0cb2a78421aa02efb385)
2018-03-30 01:54:36 -07:00
Lorenzo Colitti
dcc60bcef3 Merge "Disallow Reserved SPI Allocation" am: 9c68e5a5b7
am: 62e6b774e3

Change-Id: Ic5c7857754a04ae7238414b55a1e5ab653d62f6b
2018-03-30 08:33:06 +00:00
Lorenzo Colitti
3baa94c23f Merge "Clarify UDP encapsulation socket API" am: 0cf9421304
am: a12c8fe218

Change-Id: I5fcf79691c670e710e46b3a9eac8a580c44028fb
2018-03-30 06:48:17 +00:00
Lorenzo Colitti
9c68e5a5b7 Merge "Disallow Reserved SPI Allocation" 2018-03-30 06:16:17 +00:00
Benedict Wong
a386e37eab Clarify UDP encapsulation socket API
This change updates the getSocket() methods for IPsec to improve clarity
of the return types, both for public APIs, and internal-only methods.

Bug: 72473753
Test: APIs updated, CTS + unit tests ran.
Merged-In: I0afebd432c5d04c47c93daa1ce616d712aa323d7
Change-Id: I0afebd432c5d04c47c93daa1ce616d712aa323d7
(cherry picked from commit 4c987ebade580d4abc8a3d549e0df90baab33140)
2018-03-29 23:05:42 -07:00
Lorenzo Colitti
0cf9421304 Merge "Clarify UDP encapsulation socket API" 2018-03-30 04:58:47 +00:00
Remi NGUYEN VAN
f11ee9cd95 Merge "Fix network usage stats on 464xlat tethered." am: 83088dcd8e
am: aa20932ff1

Change-Id: I016722f3a0ae2ae0a1d48bfacc4fe07ee3578ef7
2018-03-29 07:46:34 +00:00
Nathan Harold
c37f6f6b89 Disallow Reserved SPI Allocation
Disallow the allocation of SPIs in the range
reserved for future use by RFC 4303.

Bug: 77205120
Test: runtest frameworks-net
Change-Id: I05e26ed34b5871f1a07d5bd7b58b79a64cd74b67
2018-03-28 16:08:57 +00:00
Remi NGUYEN VAN
857952d498 Fix network usage stats on 464xlat tethered.
Usage stats corrections for 464xlat in NetworkStatsFactory are not applied
to tethered traffic. Add adjustments in NetworkStatsService. After
migrating external callers off NetworkStatsFactory, we will be able to
only apply adjustments in NetworkStatsService and remove stacked
interface tracking from NetworkStatsFactory.
Bug: 72107146
Fixes: 72107146
Test: runtest frameworks-net & manual - checked corrected network usage

Change-Id: I5ce450e616b4fddf21f2a491fe5d0c9e9f969bda
2018-03-28 12:14:14 +09:00
Benedict Wong
50b0ab8086 Clarify UDP encapsulation socket API
This change updates the getSocket() methods for IPsec to improve clarity
of the return types, both for public APIs, and internal-only methods.

Bug: 72473753
Test: APIs updated, CTS + unit tests ran.
Change-Id: I0afebd432c5d04c47c93daa1ce616d712aa323d7
2018-03-27 19:46:50 -07:00
Jeff Sharkey
367d402c6e Merge "Don't let callers OOM the system process." into pi-dev
am: 662cedc67c

Change-Id: I9698aab0d98c564ad7779462485576121e9bc815
2018-03-27 20:08:50 +00:00
Jeff Sharkey
33851627b0 Don't let callers OOM the system process.
Constrain our default history size to 180 days; if we end up needing
more, we'll dynamically grow the history object.

Test: manual
Bug: 70916680
Change-Id: Id885f9800ad8f45fb0c1a89dab5a4b10ffd9e2f2
2018-03-27 11:09:18 -06:00
Remi NGUYEN VAN
a2d63a7043 Merge "Add method to NetworkStatsService for UID stats." am: db89ca3c12
am: af2fafe743

Change-Id: I2527d95000c7500c824ede70f87ecb38e21ed323
2018-03-23 04:01:09 +00:00
Remi NGUYEN VAN
a6cf27f302 Add method to NetworkStatsService for UID stats.
Useful for clients such as BatteryStats which currently rely
on NetworkStatsFactory. Data at that stage is incomplete as
it does not account for tethering, VT data and corresponding
464xlat corrections.

Test: runtest frameworks-net, CTS tests pass.
Change-Id: I763b77f601c827fd2963204694fb5b45425cc791
2018-03-22 15:31:28 +09:00
Nathan Harold
4f1703787d Merge changes I4c26aea7,I79911434 into pi-dev
* changes:
  Check mOwnedByTransform to avoid DELSA on SPI
  Expose add/removeAddress for IpSecInterfaces
2018-03-21 20:59:02 +00:00
Benedict Wong
d99c2eb909 Merge "Added implementation for VTI add/remove address" into pi-dev 2018-03-21 17:03:52 +00:00
nharold
8788f3944a Merge "Check mOwnedByTransform to avoid DELSA on SPI" am: 197361431c
am: ad1edf143f

Change-Id: Ie505e32e6f3bef3fe39198396a40a2b534e2bcda
2018-03-21 05:01:47 +00:00
Nathan Harold
fdde4d633f Check mOwnedByTransform to avoid DELSA on SPI
The owned by transform flag prevents the removal
of an SPI from accidentally deleting an associated
SA in the kernel. That flag wasn't actually being
checked, so deleting an SPI would result in the
transform being removed.

The existing code already guarantees that the SA is
deleted when the transform is deleted

Bug: 73258845
Test: runtest frameworks-net
Merged-In: I4c26aea7af817a5d9e54da5db1cdf4f943bcae06
Change-Id: I4c26aea7af817a5d9e54da5db1cdf4f943bcae06
(cherry picked from commit 22795302be4ec35449908cf566aa7c16945df836)
2018-03-20 18:29:02 -07:00
nharold
197361431c Merge "Check mOwnedByTransform to avoid DELSA on SPI" 2018-03-21 01:27:22 +00:00
Benedict Wong
97c3c945d7 Added implementation for VTI add/remove address
This change adds implementation details for add/remove addresses onto a
VTI.

Bug: 73675031
Test: New tests added, passing on Walleye
Merged-In: Idde9d943a5285d2c13c5c6b0f7b8a9faf718e6a5
Change-Id: Idde9d943a5285d2c13c5c6b0f7b8a9faf718e6a5
(cherry picked from commit ecc9f7cc08804e3fa15fea04ae94ea1bc74edbfe)
2018-03-20 16:01:27 -07:00
Benedict Wong
f91c619d2b Merge "Add support for auth-only transforms" am: 22b39848a6
am: 51ca645608

Change-Id: I8a8a89c40ab97b81225520b80950937b11863134
2018-03-20 22:28:27 +00:00
Benedict Wong
778327e548 Add support for auth-only transforms
Kernel limitations prevent auth-only SAs from being created. Explicitly
request a null encryption algorithm instead of omitting the algorithm
to comply with the kernel requirement for ESP.

Bug: 75049573
Test: CTS tests for auth-only, crypt-only transforms added for all
combinations of (UDP, TCP, IPv4, IPv6, UDP-encap) Also added unit
tests to ensure correct triggering of NULL_CRYPT usage.
Merged-In: Ia9a5cfee9c7786412846bc039f326420f6211c08
Change-Id: Ia9a5cfee9c7786412846bc039f326420f6211c08
(cherry picked from commit bf013a3820c69348e034c6340b28e95f3441ebe8)
2018-03-20 12:34:52 -07:00