Commit Graph

1981 Commits

Author SHA1 Message Date
Nathan Harold
ebe4aa77d4 Merge "Disable the AppOp Restriction for IpSec Tunnels" into stage-aosp-master am: bda7c96038
am: 48474a78ad

Change-Id: Idb6ff2adc72d0a293e1d99c287d0df68df88fe79
2018-06-09 09:43:53 -07:00
Nathan Harold
48474a78ad Merge "Disable the AppOp Restriction for IpSec Tunnels" into stage-aosp-master
am: bda7c96038

Change-Id: I98f2a964b3035daf93b54dc2b72561b16d2ded92
2018-06-09 09:25:32 -07:00
Xin Li
e7e5a5a0db Skip ef9f2740a7 in proposed pi-dev-plus-aosp-without-vendor merge. am: 97b2524e94
am: a2734cfc87

Change-Id: Iec38af6624b30fcdcef4a6b3df45033eb3e15588
2018-06-09 05:49:22 -07:00
Xin Li
a2734cfc87 Skip ef9f2740a7 in proposed pi-dev-plus-aosp-without-vendor merge.
am: 97b2524e94

Change-Id: I1a6504799a83d2736881b149a5181e78bc212193
2018-06-09 02:18:01 -07:00
nharold
995534e7a9 [automerger skipped] Merge changes from topic "ipsec-sync-with-pi" am: a8cfde3d35 am: ef9f2740a7 -s ours
am: 46744cdd5d

Change-Id: I19c12917e4048eba6cb1552fa176e2ad1a2571a4
2018-06-08 18:39:08 -07:00
nharold
46744cdd5d [automerger skipped] Merge changes from topic "ipsec-sync-with-pi" am: a8cfde3d35
am: ef9f2740a7  -s ours

Change-Id: Ib18c4a534b8b1f611d0d5b02897afe73055fed6e
2018-06-08 18:31:25 -07:00
Nathan Harold
7c250aedb1 Disable the AppOp Restriction for IpSec Tunnels
This CL temporarily removes the AppOp restriction
that disallows creation of IpSec tunnels due to
the lack of the appropriate AppOp in AOSP/master.
When the relevant framework merges out to master,
this CL should be reverted.

Manually merging this due to skipping a merge
conflict at ef9f2740a790feceaa47a24b1a179e93c4ffb5e6

Bug: none
Test: compilation
Change-Id: Ic06c193f85f6bcdd0ead4238825c1add78703cde
2018-06-08 23:23:04 +00:00
Xin Li
97b2524e94 Skip ef9f2740a7 in proposed pi-dev-plus-aosp-without-vendor merge.
Bug: 79597307
Change-Id: I8ac04fdd94b069434e2f00b0bfab63eb916f6129
2018-06-08 14:36:00 -07:00
nharold
a8cfde3d35 Merge changes from topic "ipsec-sync-with-pi"
* changes:
  Disable the AppOp Restriction for IpSec Tunnels
  Rework Exception Handling for IpSecManager
  Update IpSecManager to use InetAddress and prefixLen
  Add AppOps Checks for MANAGE_IPSEC_TUNNELS
  Add MANAGE_IPSEC_TUNNELS Permission
2018-06-08 17:07:11 +00:00
Nathan Harold
147f7386da Disable the AppOp Restriction for IpSec Tunnels
This CL temporarily removes the AppOp restriction
that disallows creation of IpSec tunnels due to
the lack of the appropriate AppOp in AOSP/master.
When the relevant framework merges out to master,
this CL should be reverted.

Bug: none
Test: compilation
Change-Id: Ic06c193f85f6bcdd0ead4238825c1add78703cde
2018-06-07 18:44:34 -07:00
Nathan Harold
d21e909fd3 Rework Exception Handling for IpSecManager
In order to properly support EOPNOTSUPP this CL
applies a consistent approach to handling Exceptions.
Hereafter, all exceptions that aren't of a special
method-specific type (such as SpiUnavailableException)
will all be returned to the calling process unchanged.
At the API call site, the ServiceSpecificException,
which is really an Errno, will be inspected and either
converted to an unchecked exception for types we know,
or it will be converted to an IOException in cases where
that method can return a checked exception. In cases
where we do not expect an errno, we will simply throw
a generic RuntimeException. This means all API calls
will now properly throw UnsupportedOperationException
and may be CTS tested accordingly.

Bug: 72420898
Test: runtest frameworks-net
Merged-In: I4a00e221618896223fcdb4b4279fb14cd14e34d8
Change-Id: I4a00e221618896223fcdb4b4279fb14cd14e34d8
(cherry picked from commit beed0b61b7)
2018-06-07 18:42:52 -07:00
Benedict Wong
b25e678b4b Update IpSecManager to use InetAddress and prefixLen
LinkAddress constructors are currently @hide; this change updates
IpSecManager to use InetAddress and prefixLen, and then construct a
LinkAddress internally. LinkAddress is used over the binder interface to
IpSecService to ensure validity.

Bug: 77528639
Test: CTS, Java unit tests ran on walleye
Merged-In: I19e124adef6d9f4992d8293db3190bcf74c95848
Change-Id: I19e124adef6d9f4992d8293db3190bcf74c95848
(cherry picked from commit d39837f7e2)
2018-06-07 18:42:52 -07:00
Nathan Harold
cac8775b2a 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
Merged-In: I17a4a286225b432c3e15ea1587d946189931b4f4
Change-Id: I17a4a286225b432c3e15ea1587d946189931b4f4
(cherry picked from commit 65ef843176)
2018-06-07 18:42:52 -07:00
Nathan Harold
b9df8b1fca Add MANAGE_IPSEC_TUNNELS Permission
Add a new MANAGE_IPSEC_TUNNELS permission and
protect all IPsec Tunnel mode APIs with it.
This permission is only granted to the system or
through an AppOp.

Bug: 66955045
Test: compilation
Merged-In: I0f618373b500c493ef2211bece681f74652a1833
Change-Id: I0f618373b500c493ef2211bece681f74652a1833
(cherry picked from commit 00e77247eb)
2018-06-07 18:42:52 -07:00
Remi NGUYEN VAN
47df8a66e4 Merge "Fix testRegisterUsageCallback failure in setUp" 2018-05-31 00:05:53 +00:00
Chenbo Feng
1966722418 [automerger skipped] Merge "Check for bpf support at NetworkStatsService start" am: 0defa6e72c am: 8196301e24 -s ours
am: 5e006b9300  -s ours

Change-Id: I744e7fd2e6e8d4a68404c7a9d924da321ff94ba0
2018-05-30 15:32:01 -07:00
Chenbo Feng
5e006b9300 [automerger skipped] Merge "Check for bpf support at NetworkStatsService start" am: 0defa6e72c
am: 8196301e24  -s ours

Change-Id: I4b8e1669b80040287dd96423e8384e189db4af2d
2018-05-30 15:17:21 -07:00
Chenbo Feng
2cb46550f7 Check for bpf support at NetworkStatsService start
The current implementation check for bpf map existance whenever a
NetworkStats request comes in. The check is not efficient and may
require additional permission for threads. So a member variable is added
to NetworkStatsService to store the bpf configuration status and is
initialized when NetworkStatsService start.

Test: -m CtsNetTestCases -t android.net.cts.TrafficStatsTest
      -m CtsUsageStatsTestCases -t android.app.usage.cts.NetworkUsageStatsTest
Bug: 79994577

Change-Id: I872ae18fb3e9631a4e6c4d773fefbba32e60a03b
Merged-In: I872ae18fb3e9631a4e6c4d773fefbba32e60a03b
2018-05-30 18:15:25 +00:00
android-build-team Robot
a858ecf2a0 Snap for 4801384 from b82d3d7e741ff8fe6bf7d1cae79d519fe4922d9a to pi-release
Change-Id: I43f3badb9f29c0d8d748b896eb3d83cf740a8d49
2018-05-24 07:26:26 +00:00
Jeff Sharkey
d811e74b93 Merge "Last-ditch clamping of negative NetworkStats." into pi-dev am: 0026f5eb18
am: eecce38819

Change-Id: I572ef538dafb59d8947958df8eac155e890d08f0
2018-05-23 17:43:05 -07:00
Jeff Sharkey
eecce38819 Merge "Last-ditch clamping of negative NetworkStats." into pi-dev
am: 0026f5eb18

Change-Id: I0db4e16533aeac3aa88307a0af0b64cb6041d2c0
2018-05-23 16:20:22 -07:00
Jeff Sharkey
0026f5eb18 Merge "Last-ditch clamping of negative NetworkStats." into pi-dev 2018-05-23 16:30:25 +00:00
Remi NGUYEN VAN
ea2710c799 Fix testRegisterUsageCallback failure in setUp
LocalServices.addService in NetworkStatsService is currently failing
with IllegalStateException "Overriding service registration". Setting up
LocalServices in the test to avoid this issue might be possible, but
moving the registration to the only non-test caller of that constructor
as done here solves the issue and avoids side-effects from a constructor.

Test: this test passes in master through runtest frameworks-net
Bug: b/78487385
Bug: b/80082746
Change-Id: I884a7a8bd7db3fcd220b785ba9914ac8c77720f0
2018-05-23 13:19:57 +09:00
Jeff Sharkey
d631c5836d Last-ditch clamping of negative NetworkStats.
We've seen reports of negative values flowing through to attempt
being recorded, which will outright crash.  This change does one
last-ditch check to see if we're about to work with negative values,
reporting any trouble and clamping them to zero so we don't crash.

This gives us the data we need to continue investigating without
triggering runtime restarts in the field.

Bug: 80057433
Test: atest android.net.NetworkStatsTest
Change-Id: I8174391c6cf5dadc2c2c10a8d841ee07e1f7d934
2018-05-22 11:35:32 -06:00
android-build-team Robot
118f56c83b Snap for 4796401 from e8a3536660bd783acec41a1785f425a1d357c69c to pi-release
Change-Id: Ic5bdeccc568be53377d663913b75d827f6573f96
2018-05-22 07:23:57 +00:00
Chenbo Feng
5f2e77cd42 Merge "Check for bpf support at NetworkStatsService start" into pi-dev am: 6555a9fa16
am: f407e646b4

Change-Id: Ib5acef029a83ce8fa219a8b7d1edc17c71fc2df5
2018-05-21 12:50:12 -07:00
Chenbo Feng
f407e646b4 Merge "Check for bpf support at NetworkStatsService start" into pi-dev
am: 6555a9fa16

Change-Id: If2fd9e040e4717f1040c16e4b5f6c61cfc14e140
2018-05-21 12:44:23 -07:00
Chenbo Feng
dc9c7fc7bf Check for bpf support at NetworkStatsService start
The current implementation check for bpf map existance whenever a
NetworkStats request comes in. The check is not efficient and may
require additional permission for threads. So a member variable is added
to NetworkStatsService to store the bpf configuration status and is
initialized when NetworkStatsService start.

Test: -m CtsNetTestCases -t android.net.cts.TrafficStatsTest
      -m CtsUsageStatsTestCases -t android.app.usage.cts.NetworkUsageStatsTest
Bug: 79994577

Change-Id: I872ae18fb3e9631a4e6c4d773fefbba32e60a03b
2018-05-18 17:10:07 -07:00
Nathan Harold
e60c308c0c Use INetd Constant for IpSec Interface Prefix
Convert to using a constant in INetd to ensure
that there is a consistent tunnel prefix  between
Java and native code.

Bug: 74560705
Test: atest FramworksNetTest; atest CtsNetTestCases
Change-Id: Ida233aac2e6c6b26567463964e0ebac9d52eff1e
(cherry picked from commit 7be7f4596a)
2018-05-14 22:47:24 -07:00
nharold
f1e6f0113a Merge "Use INetd Constant for IpSec Interface Prefix" am: 05a16e8a04 am: e651d67bcb
am: dabe7cd760

Change-Id: I62832e817becf6a5c532a51344ff158c2138fc43
2018-05-14 22:08:19 -07:00
nharold
dabe7cd760 Merge "Use INetd Constant for IpSec Interface Prefix" am: 05a16e8a04
am: e651d67bcb

Change-Id: I142689ec7f7b43e745580eea393130d84fe4e99b
2018-05-14 21:59:55 -07:00
Nathan Harold
67724c654e Use INetd Constant for IpSec Interface Prefix
Convert to using a constant in INetd to ensure
that there is a consistent tunnel prefix  between
Java and native code.

Bug: 74560705
Test: atest FramworksNetTest; atest CtsNetTestCases
Change-Id: Ida233aac2e6c6b26567463964e0ebac9d52eff1e
(cherry picked from commit 7be7f4596a)
2018-05-14 13:14:10 -07:00
android-build-team Robot
a3d8a46c35 Snap for 4773106 from 98451417018a312251b6267c42236c3802f45812 to pi-release
Change-Id: I0170c5b3f8940e2956242ef5f527a54b74567b6a
2018-05-10 07:26:53 +00:00
Nathan Harold
8fc32697e8 [automerger skipped] Merge "[DO NOT MERGE] Use INetd Constant for IpSec Interface Prefix" into pi-dev am: 89005ff73e
am: f12f06c7cc  -s ours

Change-Id: Id434717764cf6209d2c5d954b131653a3fe61445
2018-05-09 10:56:35 -07:00
Nathan Harold
f12f06c7cc Merge "[DO NOT MERGE] Use INetd Constant for IpSec Interface Prefix" into pi-dev
am: 89005ff73e

Change-Id: I09fe6255126cefbbf165bc1f8af031c17aead7d1
2018-05-09 10:46:20 -07:00
Nathan Harold
89005ff73e Merge "[DO NOT MERGE] Use INetd Constant for IpSec Interface Prefix" into pi-dev 2018-05-09 17:27:13 +00:00
Nathan Harold
7be7f4596a [DO NOT MERGE] Use INetd Constant for IpSec Interface Prefix
Convert to using a constant in INetd to ensure
that there is a consistent tunnel prefix  between
Java and native code.

Bug: 74560705
Test: atest FramworksNetTest; atest CtsNetTestCases
Change-Id: Ida233aac2e6c6b26567463964e0ebac9d52eff1e
2018-05-09 01:33:06 +00:00
android-build-team Robot
cfd7c1fdaa Snap for 4759746 from 49a987c277b8644f81c53defbc7ff8c2a950ba28 to pi-release
Change-Id: I4dd0e1b090acebe52adbe7c57d9ea63772a2fe91
2018-05-03 07:21:04 +00:00
android-build-team Robot
d9f715bc10 [automerger skipped] Merge changes from topic "ifaceStatsDetail" into pi-dev am: 4b561abcaa -s ours
am: 4e30f9743c  -s ours

Change-Id: I885775a92a7fde71f4ea5b6167045aab2600bc1a
2018-05-02 16:39:10 -07:00
Chenbo Feng
3001cc6f75 [automerger skipped] Remove the unused file parsing function am: d8dfd8c175 -s ours
am: b750b4cb0c  -s ours

Change-Id: Id18c037613b38f8c031b475d6cb81704b026eec7
2018-05-02 14:45:47 -07:00
android-build-team Robot
4e30f9743c [automerger skipped] Merge changes from topic "ifaceStatsDetail" into pi-dev
am: 4b561abcaa  -s ours

Change-Id: Ia25540fd865f6040e2a5d943c19b2a12965c4d5b
2018-05-02 12:42:24 -07:00
Chenbo Feng
b750b4cb0c [automerger skipped] Remove the unused file parsing function
am: d8dfd8c175  -s ours

Change-Id: I264e9826246ebfc74cf74f8af623a428909a56e3
2018-05-02 12:32:53 -07:00
android-build-team Robot
4b561abcaa Merge changes from topic "ifaceStatsDetail" into pi-dev
* changes:
  Remove the unused file parsing function
  Use eBPF map data for per iface stats
2018-05-02 19:17:27 +00:00
android-build-prod (mdb)
868479ce7b Merge changes from topic "am-b4a6d70f84a44081adc7240053891656" into pi-dev-plus-aosp
am: 5e5a150dbd

Change-Id: Ice5d3c6c975c0945785332c09a876754441d536d
2018-05-01 20:11:28 -07:00
android-build-prod (mdb)
93f2f28a66 Merge changes from topic "ifaceStats" am: eab28ef97c
am: b86d2b4b84

Change-Id: I460bc25806182bc2dc5fcc2512ab01e776a0e8e6
2018-05-01 19:53:30 -07:00
Chenbo Feng
3654e617c0 Use eBPF map data for per iface stats am: 2dc99dc445
am: 2e13ecc88d

Change-Id: If4944a4a5a0c49235731afb4ae3220cf72240a83
2018-05-01 19:49:53 -07:00
Chenbo Feng
d8dfd8c175 Remove the unused file parsing function
With the new xt_bpf support for iface stats. We no longer need to parse
the per interface stats from /proc/net/dev. And since the old xt_qtaguid
code path also not depend on it, we can completly remove that helper
function since no caller is depending on it now.

Bug: 72111305
Test: runtest frameworks-net -c com.android.internal.net.NetworkStatsFactoryTest
Change-Id: Icb7eaeef0eeb9fdffd32a90316c76ee05bafffbe
Merged-In: Icb7eaeef0eeb9fdffd32a90316c76ee05bafffbe
(cherry picked from aosp commit b815c978b81eee4b1494bd0b9d25bfad52f08b72)
2018-05-01 19:48:03 -07:00
Chenbo Feng
c34a67b18c Use eBPF map data for per iface stats
After adding the xt_bpf module and ifaceStatsMap, eBPF tool can now
support reading per interface data. So networkStatsFactory should move
away from parsing proc/net/dev and use the eBPF map stats instead.

Bug: 72111305
Test: atest com.android.server.net.NetworkStatsServiceTest
Change-Id: Ibcc6150d00835b3bd33af22a72e4a86e172581cf
Merged-In: Ibcc6150d00835b3bd33af22a72e4a86e172581cf
(cherry picked from aosp commit dcc56783f5b945b16c9f5e50333fba557a7c3603)
2018-05-01 19:46:09 -07:00
android-build-prod (mdb)
eab28ef97c Merge changes from topic "ifaceStats"
* changes:
  Remove the unused file parsing function
  Use eBPF map data for per iface stats
2018-05-02 01:19:23 +00:00
Chenbo Feng
1f37112a51 Remove the unused file parsing function
With the new xt_bpf support for iface stats. We no longer need to parse
the per interface stats from /proc/net/dev. And since the old xt_qtaguid
code path also not depend on it, we can completly remove that helper
function since no caller is depending on it now.

Bug: 72111305
Test: runtest frameworks-net -c com.android.internal.net.NetworkStatsFactoryTest
Change-Id: Icb7eaeef0eeb9fdffd32a90316c76ee05bafffbe
2018-05-01 14:13:55 -07:00