Commit Graph

2621 Commits

Author SHA1 Message Date
Hugo Benichi
44dfd3aaa5 Merge changes I9ad4ce81,I360d539e am: 9680667b1d am: 4062ac81be
am: 84c878ecc8

Change-Id: Ieeb3222246c63292a75ad91e9c867eaedcad8f90
2017-04-06 02:13:07 +00:00
Treehugger Robot
9680667b1d Merge changes I9ad4ce81,I360d539e
* changes:
  NsdService: minor cleanups
  Nsdmanager/NsdService: add logging
2017-04-06 01:51:36 +00:00
Hugo Benichi
2183ba9b5f Nsdmanager/NsdService: add logging
This patch adds basic logging to NsdManager and NsdService, and improves
the facilities for pretty printing the event ids defined in NsdManager.

It also includes a few minor cleanups:
  - adding 'final' on effectively final instance variables of NsdManager
  and NsdService.
  - similarly, adding 'static' on effectively static class fields.
  - regrouping instance variables together.

Test: no functional changes
Bug: 33074219
Change-Id: I360d539e73cc8e4b45d4e0d20b2e345455fdb10c
2017-04-05 15:05:44 +09:00
Hugo Benichi
83f89047f5 Merge "Move back networking policy logic into NetworkPolicyManagerService" into oc-dev
am: df9cf5450c

Change-Id: I7d7b66cc1dc6888ea28e2b4d83d570fa440c29f2
2017-04-04 00:58:02 +00:00
nharold
fcfc121549 Merge changes from topic 'ipsec-transport-impl' am: 464dc5c07e am: f983d89083
am: 8108bef16d

Change-Id: Ie820478fc01f42b5143a63a3422380ce7ec74847
2017-04-02 00:35:08 +00:00
Nathan Harold
5b0577dd31 IpSecManager and IpSecTransform API Cleanup am: 48b566557d am: 5eaf5393a5
am: 37f260f5d8

Change-Id: Ie84a720356466000930030de6f7a9182500afadb
2017-04-02 00:33:17 +00:00
nharold
f983d89083 Merge changes from topic 'ipsec-transport-impl'
am: 464dc5c07e

Change-Id: I6caf23f5fef995f1ad735ea64b99660a5180799f
2017-04-02 00:19:44 +00:00
Nathan Harold
5eaf5393a5 IpSecManager and IpSecTransform API Cleanup
am: 48b566557d

Change-Id: I1524f8381c8a73ba4dc7a36b343e11066b75c08d
2017-04-02 00:18:42 +00:00
Nathan Harold
93962f34ce Add Initial IPsec APIs to IpSecService
-Plumb IpSecManager APIs to NetD
-Add Resource Management to IpSecService

Bug: 33695893
Test: CTS verifies nearly all of these paths
Change-Id: Ic43965c6158f28cac53810adbf5cf50d2c54f920
2017-03-31 18:11:27 -07:00
Nathan Harold
48b566557d IpSecManager and IpSecTransform API Cleanup
-Remove Int-based SPI usage from the IpSecTransform.Builder
 This is essentially a less-safe method overload, and it is both
 unnecessary and difficult to implement: the cross-validation
 between SPI and Transform is actually useful, and the kernel
 requires two different mechanisms to use an unreserved vs a
 reserved (alloc'd) SPI: CREATESA vs UPDATESA, which makes this
 hard to support. API Council has questioned the value of this,
 and they are right: everything points to "remove this". In the
 future, if we find that SPI reservation is overhead, we can
 always add it back.

-Hiding the TunnelMode builder method and application/remove
 methods. These will not land by the time the next API
 stabilizes, so better to hide them now that this is a
 near-certainty. Expectation is to un-hide them in the subsequent
 API bump.

Bug: 36073210
Test: Compilation, verified nobody is calling these stubs
Change-Id: Ic1a3f2cf7128633318ac175d6b56b45eb8d21cab
2017-03-31 11:21:10 -07:00
Hugo Benichi
938ab4fa39 Move back networking policy logic into NetworkPolicyManagerService
This patch removes from ConnectivityService the logic involved in
deciding if a uid has access to networking based on networking policies.

This logic is moved into NetworkPolicyManagerService which is the source
of truth with regards to the state of networking policie, both for
existing networks and uids.

Instead ConnectivityService directly queries NetworkPolicyManagerService
in a synchronous fashion for a specific uid or a (uid, network) pair.

This eliminates the need to keep a copy of the uid policy rules inside
ConnectivityService and ensures that ConnectivityService takes
networking decisions based on the correct state of networking policies,
and therefore eliminates certain data races in ConnectivityManager API
that applications are exposed to.

Test: $ runtest frameworks-net
      $ runtest -x frameworks/base/services/tests/../NetworkPolicyManagerServiceTest.java
      $ runtest -c com.android.server.net.ConnOnActivityStartTest frameworks-services
Bug: 32069544, 30919851
Change-Id: Ic75d4f7a8853e6be20e51262c4b59805ec35093a
2017-03-31 13:28:45 +09:00
Nathan Harold
949d1353e9 Merge "Change reserveSecurityParameterIndex() to take a remoteAddress" am: d118826971 am: 6d3c10495e
am: 81d48a99e0

Change-Id: I941ee00099df0afdbce94b73c1bd81c246fac1e8
2017-03-30 03:48:20 +00:00
Nathan Harold
6d3c10495e Merge "Change reserveSecurityParameterIndex() to take a remoteAddress"
am: d118826971

Change-Id: Ie59322c4e80aab89d784a2fcb3edd6458677bbb7
2017-03-30 03:39:46 +00:00
Nathan Harold
c4f879925b Change reserveSecurityParameterIndex() to take a remoteAddress
To make the SPI reservation more semantically consistent with the
transform creation API, and to ensure that we always create SPI
reservations relative to a well-known remote, we should take the
SPI request relative to a remote (rather than to a destination).
This necessitates that we now consider direction separately, which
is used for keying the SA-Id.

Bug: 36073210
Test: compilation
Change-Id: I81e955c20128c1f8e04fd68eb26669561f827a78
2017-03-29 17:46:47 -07:00
Nathan Harold
560c9ec724 Merge commit 'e45e328821ba' into oc-dev-plus-aosp
Change-Id: I30ad9038be8faee57e5d6b1391d9e70a966a9a77
2017-03-29 17:05:10 -07:00
Nathan Harold
4fdc7d5ddd Merge commit 'ce073d70bedc' into stage-aosp-master
Change-Id: I319034a5b77de5cf71de0e110bb17819fb907f1b
2017-03-29 16:04:31 -07:00
Nathan Harold
1afbef40c6 Add a Skeleton IpSecService
-Add IpSecService with the necessary glue to connect to netd
-Add code to retrieve IpSecService from System Server

Bug: 34811227
Test: Service boots (and dumpsys works), more via b/34811227
Merged-In: I4cdcb643421141202f77a0e2f87a37012de0cd92
Change-Id: I4cdcb643421141202f77a0e2f87a37012de0cd92
2017-03-29 11:31:27 -07:00
Amin Shaikh
d601360904 Parse NotificationChannel ID meta-data.
- Add this new meta-data field on NetworkRecommendationProvider to NetworkScorerAppData

Bug: 36571359
Test: runtest frameworks-services
Change-Id: Ic8c594bea406fc5183a4919b808bce5159912650
2017-03-24 16:08:32 -07:00
Hugo Benichi
f927f0c52e 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
2017-03-21 11:43:18 +09:00
Hugo Benichi
948a85948d Connectivity metrics: change how interface names are logged
This patch deprecates the ifname field for specific metrics events of
types DhcpClientEvent, DhcpErrorEvent, IpReachabilityEvent and
IpManagerEvent.

Instead ifnames are logged in ConnectivityMetricsEvent, allowing for
link layer inference.

Test: updated unit tests, $ runtest frameworks-net passes
Bug: 34901696
Change-Id: I8bfabcb115bbd5289471d653c153a40bb48f28cd
2017-03-21 10:18:56 +09:00
Hugo Benichi
73fd4d1faf 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
2017-03-21 10:18:11 +09:00
TreeHugger Robot
44d5d0c2fb Merge "ConnectivityMetricsEvent: add ifname, netid, transports" 2017-03-16 02:50:23 +00:00
Hugo Benichi
946b7e424e ConnectivityMetricsEvent: add ifname, netid, transports
This patch adds new fields to ConnectivityMetricsEvent to make it more
symmetric to IpConnectivityEvent in ipconnectivity.proto.

Follow-up patches will start populating these fields for users of
IpConnectivityLog.

Test: unit tests updated, $ runtest frameworks-net passes
Bug: 34901696
Change-Id: I396767cdfcf38cce893c0d6e1f4524f12e3fdc64
2017-03-16 09:58:02 +09:00
Hugo Benichi
97035b4abf Merge "Connectivity metrics: simplify ConnectivityMetricsEvent" 2017-03-16 00:37:47 +00:00
Hugo Benichi
ec27c4d9f3 Connectivity metrics: simplify ConnectivityMetricsEvent
Now that ConnectivityMetricsEvent is only used for core networking
metrics and is not @SystemApi anymore, remove unused fields and prepare
for additional new fields.

Test: updated unit tests, $ runtest frameworks-net passes
Bug: 34901696
Change-Id: I15abad19981d491f16f2a3afe401f1e833079907
2017-03-15 15:12:38 +09:00
TreeHugger Robot
1809db5cb1 Merge "IP connectivity metrics: add new APF counters." 2017-03-15 04:24:30 +00:00
Hugo Benichi
22d9b2d430 IP connectivity metrics: add new APF counters.
This patch adds a few missing counters to APF events:
 - an actual lifetime duration to ApfProgramEvent.
 - counters for total number of updates to ApfStatistics.

ApfProgramEvents are now recorded at program removal in order to
populate the actual lifetime of the program. ApfProgramEvents whose
actual lifetime was less than 1 second are filtered out.

Finally, instance fields of ApfProgramEvent and ApfStats classes are
made mutable to allow for simple record-like creation. This was not
possible when these classes were tagged @SystemApi.

Test: - manually verified output of $ dumpsys connmetrics list
      - unit tests updated.
Bug: 34901696

Change-Id: I02694ebb9421ce1c2aa757fa6aa209d19a654dcd
2017-03-15 11:49:48 +09:00
Joe LaPenna
cf5ce8c27a Merge "Mark NetworkScoreManager.requestRecommendations hidden." 2017-03-14 06:01:59 +00:00
Hugo Benichi
ba1e74cd6e Merge "ConnectivityManager: unhide methods with Handler argument" am: e940d5458d am: 5c5850d2f0
am: 1673f71afb

Change-Id: Ic575f187803548ce15965d6fde942a5322d9e35e
2017-03-13 07:18:54 +00:00
Hugo Benichi
5c5850d2f0 Merge "ConnectivityManager: unhide methods with Handler argument"
am: e940d5458d

Change-Id: I470d68a25e62b9493ac7cfb5887e8345968f1097
2017-03-13 07:09:49 +00:00
Hugo Benichi
a2decca4f2 IP connectivity metrics: ConnectStats additions
This patch:
  - adds a counter to ConnectStats for counting the number of successful
    connect() calls done in blocking mode. This allows to compute error
    rates for connect() in blocking mode.
  - add printing of ConnectStats when dumping NetdEventListenerService
    and/or IpConnectivityMetrics service.

Test: $ runtest frameworks-net, + manual tests verifying logged events.
Bug: 34901696
Change-Id: I889e8ccd12681b0511be487e9d2ee44290a2d7d7
2017-03-13 09:25:15 +09:00
Joe LaPenna
6487a2ff98 Mark NetworkScoreManager.requestRecommendations hidden.
There are no instances of this call in master outside of platform.

BUG: 34169232
Test: make update-api; make; fastboot flashall

Change-Id: I4555af5487291097ca3768fdf071c4db7dd21288
2017-03-10 19:30:49 -08:00
Hugo Benichi
5aaab1f2c8 ConnectivityManager: unhide methods with Handler argument
Test: no functionality change
Bug: 32130437
Change-Id: I2a57175142683f991a215b584282db143a76ed9d
2017-03-09 15:25:26 +09:00
TreeHugger Robot
1966cccd32 Merge "Keep Settings.Global.NETWORK_RECOMMENDATIONS_ENABLED updated." 2017-03-07 23:01:50 +00:00
Jeremy Joslin
9925c6a7e7 Keep Settings.Global.NETWORK_RECOMMENDATIONS_ENABLED updated.
Make sure Settings.Global.NETWORK_RECOMMENDATIONS_ENABLED reflects
the current active scorer state. When valid the setting will have a
value of 1, when invalid it will be 0 (or more
accurately not 1, see below).

Introduced a new valid setting value, -1, which indicates the feature
has been forced off.

Test: runtest frameworks-services -c com.android.server.NetworkScorerAppManagerTest
Test: runtest frameworks-services -c com.android.server.NetworkScoreServiceTest
Bug: 35896421
Change-Id: I271725f798e5d0acc7c08c79678dba5115f8faad
2017-03-07 10:13:41 -08:00
Etan Cohen
a123f73a1c Merge "[CM] Allow timeout in request network" am: 8328f27a87 am: 645b48c8af
am: ac879cbcaf

Change-Id: If42250966d619073d45d608aab454589213b1756
2017-03-07 17:02:05 +00:00
Etan Cohen
645b48c8af Merge "[CM] Allow timeout in request network"
am: 8328f27a87

Change-Id: Ic7a3da0a5292be5e13abca9c98c422bc2f50f3a0
2017-03-07 16:49:53 +00:00
Etan Cohen
8328f27a87 Merge "[CM] Allow timeout in request network" 2017-03-07 16:40:27 +00:00
Erik Kline
a33ae2d884 Merge "request{LinkProperties,NetworkCapabilities} no longer needed" am: 75dfc5bd91 am: 0f901af920
am: bb54baba04

Change-Id: Id2aa8aeff6d299edb85955c12ab0a04023458597
2017-03-07 13:42:11 +00:00
Erik Kline
0f901af920 Merge "request{LinkProperties,NetworkCapabilities} no longer needed"
am: 75dfc5bd91

Change-Id: I79b9323be242ed5d2bf83962f78c613a465a20b8
2017-03-07 13:33:29 +00:00
Erik Kline
465c46d555 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
2017-03-07 17:18:06 +09:00
Erik Kline
6bbefcbf40 Merge "Always send all available state when calling onAvailable()." am: affbb8b6a9 am: e0a62a4398
am: 3765538bab

Change-Id: Ic82e3cb92841ea99972faad6ae004d77c725831b
2017-03-07 06:08:40 +00:00
Erik Kline
e0a62a4398 Merge "Always send all available state when calling onAvailable()."
am: affbb8b6a9

Change-Id: I81e70fecf060a4103b51084a60a32c78f6219f6b
2017-03-07 06:00:09 +00:00
Erik Kline
c75d4fad22 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
2017-03-07 12:57:26 +09:00
Hugo Benichi
45deba76fc Merge "Revert "ConnectivityManager: no double NetworkCallback registration" because oit caused regressions http://b/35955593, http://b/35921499." am: 704520c392 am: 4cf199383f
am: 22d4258a75

Change-Id: I8e66e223003a38735b707d21d7bedb19170b1937
2017-03-06 12:45:10 +00:00
Hugo Benichi
4cf199383f Merge "Revert "ConnectivityManager: no double NetworkCallback registration" because oit caused regressions http://b/35955593, http://b/35921499."
am: 704520c392

Change-Id: Ia0ae78f8406b81377491407cf5ef8ca339952def
2017-03-06 12:30:05 +00:00
Hugo Benichi
649e32484e Revert "ConnectivityManager: no double NetworkCallback registration" because oit caused regressions http://b/35955593, http://b/35921499.
This reverts commit faa70976b4.

Change-Id: I86c07c113f24753be7c977e6d7f570b99391e1b5
2017-03-06 06:16:51 +00:00
Etan Cohen
aebf17e7f1 [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
2017-03-02 08:06:27 -08:00
Hugo Benichi
00a5f2a658 Merge "ConnectivityManager: no double NetworkCallback registration" am: 06a192fa49 am: 5983a772cb
am: 974e83cc0b

Change-Id: I73569fd084c14a78067e09565418f296994cd424
2017-03-02 08:12:09 +00:00
Hugo Benichi
5983a772cb Merge "ConnectivityManager: no double NetworkCallback registration"
am: 06a192fa49

Change-Id: I250fa7d3c5e37a66caa41cc898a44bcb18c9a0c4
2017-03-02 08:04:03 +00:00