Commit Graph

645 Commits

Author SHA1 Message Date
Treehugger Robot
8c2ccc1a91 Merge "Clear calling identity when notifying alert/limit reached" 2021-11-26 03:28:58 +00:00
Junyu Lai
ee13d6aeee Clear calling identity when notifying alert/limit reached
When the NetworkStatsProvider reports alert/limit reached,
NetworkStatsService will relay the event to other services
such as NPMS or NMS. The identity should be cleared before
calling into other services.

Test: TH
Bug: 181106917
Change-Id: I2a7b273dc30156a84b30566319894ec3a42d4429
2021-11-25 06:53:52 +00:00
Remi NGUYEN VAN
c882adba33 Merge "Remove AsyncChannel usage in NsdManager" 2021-11-22 05:58:15 +00:00
Maciej Żenczykowski
ac792aafc7 bpf is required so /sys/fs/bpf/map_netd_app_uid_stats_map always exists
(we cannot just remove the argument, since the test code path still
 goes via the legacy xt_qtaguid code paths with sample data)

Test: TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I044d0363aaab0dbbb90c40ca466cc48f169d649a
2021-11-18 06:11:00 +00:00
Maciej Żenczykowski
26929b1c5d bpf is required - remove mUseBpfTrafficStats field
Test: git grep mUseBpfTrafficStats
  TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I0be3b802e2ebd175b2a58061bf821aba02a8ec8a
2021-11-18 06:10:46 +00:00
Maciej Żenczykowski
667b94d131 bpf is required - remove checkBpfStatsEnable()
Test: git grep 'nativeGetTotalStat|nativeGetIfaceStat|nativeGetUidStat'
    - shows all locations have been updated
  git grep 'checkBpfStatsEnable'
    - find nothings relevant (just services/art-profile)
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Ib584ea57c39d5ab0605787b05133097fd2c82a39
2021-11-18 06:10:35 +00:00
Maciej Żenczykowski
b6d8c8c7a8 remove qtaguid parsing
This removes the legacy (and untested) xt_qtaguid
non-ebpf code path (ie. dead code).

Test: git grep 'QTAGUID_IFACE_STATS|QTAGUID_UID_STATS|parseIfaceStats|parseUidStats'
  finds nothing
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I922910238474f2cfb74eba19b219bc792ce4abc3
2021-11-18 06:10:14 +00:00
Remi NGUYEN VAN
62eb76e273 Remove AsyncChannel usage in NsdManager
Replace AsyncChannel with two AIDL interfaces: INsdManagerCallback and
INsdServiceConnector.

This will be helpful to move NsdManager into a module, avoiding the
dependency on the hidden AsyncChannel utility.

Bug: 190249673
Test: atest FrameworksNetTests CtsNetTestCases:NsdManagerTest
Change-Id: Id9e8feb95cbb5ba16f00893f6c3f37fced3358c1
2021-11-04 17:59:51 +09:00
paulhu
00e3456488 Replace @hide APIs in IpSecService
- Replace Slog with Log
- Replace Binder.withCleanCallingIdentity with
  BinderUtils.withCleanCallingIdentity

Bug: 204153604
Test: atest FrameworksNetTests CtsNetTestCases
Change-Id: I63083b3a4e50afe5154b4e8585d0eee46da819c6
2021-10-28 06:39:38 +00:00
Junyu Lai
dddf70e9c8 Merge "NetworkStats: Avoid Division By 0" am: e22278838e
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1810678

Change-Id: I5bdeb5bba3613bc4891ff2c1e108d6f1a334eaad
2021-09-01 06:19:57 +00:00
Tyler Wear
8b9f10e93c NetworkStats: Avoid Division By 0
RawBytes should always be at least 1 to avoid division by 0 and
ArithmeticException resulting in Settings crash.

Bug: 197292638
Change-Id: I4e5ac9da7adf707d7f991483555ab5c6d0cc3245
2021-08-26 10:06:28 -07:00
Junyu Lai
beb6aa0fc0 Merge changes Ib048c18b,Ie7694a63 am: 06fd5a94ac am: 76ba518dcc
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1777887

Change-Id: I047a95bbf6d70f1a03e35782a36a98f34f51ca9c
2021-07-30 02:45:18 +00:00
Junyu Lai
73993fbb68 Add debug log for tracking NPE of mMobileIfaces
Test: TH
Bug: 192758557
Change-Id: Ib048c18b1c64627de5a9d2b04d10e084a014ff64
2021-07-26 09:16:59 +00:00
Junyu Lai
3a7f671f45 Fix mMobileIfaces is not protected by lock
Currently, mMobileIfaces is accessed from multiple threads, and
should be protected from concurrent accessing. However, since the
variable could be accessed frequently, holding the mStatsLock
would make this be blocked by network stats I/O operations.
Thus, protect the variable by making it volatile.

Test: Wifi on/off stress test
Bug: 192758557
Change-Id: Ie7694a63f5203ee7c83830ca13d97219b7949fd7
2021-07-26 09:16:35 +00:00
Luke Huang
f7277ed3c4 Keep the native mdns daemon alive for pre-S application
Roll back the behavior changes by checking the target SDK to ensure that
there are no compatibility issues with the pre-S application.
If the target SDK of the application <S, NsdManager will actively send a
cmd to start the native daemon, and NsdService will keep the daemon
until the last client with the target SDK <S disconnects.

Test: atest NsdManagerTest NsdServiceTest
Bug: 191844585
Change-Id: Ie93d5d585e126fe220ae865bbc7274f21a925984
2021-07-21 06:21:42 +00:00
Luke Huang
92860f9ea0 Fix the comments from aosp/1717479.
1. Increase the cleanup delay from 3s to 10s.
2. Fix the comments from aosp/1717479.

Bug: 181810560
Test: atest NsdManagerTest NsdServiceTest
Original-Change: https://android-review.googlesource.com/1730170
Merged-In: I71ebdd011574bd96de16a4248b0e15636418e87c
Change-Id: I71ebdd011574bd96de16a4248b0e15636418e87c
2021-06-23 09:54:50 +00:00
Luke Huang
0529858b9c Make NsdService only start the native daemon when needed and automatically clean it up.
Currently, NsdService starts the native mdnsresponder daemon if any
NsdManager connect to it, which results in that when any constant
service holds the NsdManager connection, the device would always be
in the mdns multicast group whatever the connection is not used or not.
This is because mdnsresponder will join the multicast group when it
starts.

To solve this problem, start the native daemon only when needed, and
clean it up after the given idle timeout.

1. Start the native daemon when a new request come.
2. If there is no pending request, clean up the daemon after 3 seconds
of idle time.

Bug: 181810560
Test: atest NsdManagerTest NsdServiceTest
Original-Change: https://android-review.googlesource.com/1717479
Merged-In: I3eb04552f6cf6c0c68c07abffe751bb4d0669215
Change-Id: I3eb04552f6cf6c0c68c07abffe751bb4d0669215
2021-06-14 06:54:52 +00:00
Luke Huang
9fd7f864f4 Fix the comments from aosp/1717479.
1. Increase the cleanup delay from 3s to 10s.
2. Fix the comments from aosp/1717479.

Bug: 181810560
Test: atest NsdManagerTest NsdServiceTest
Change-Id: I71ebdd011574bd96de16a4248b0e15636418e87c
2021-06-08 10:09:30 +08:00
Luke Huang
9b56f2e0ec Make NsdService only start the native daemon when needed and automatically clean it up.
Currently, NsdService starts the native mdnsresponder daemon if any
NsdManager connect to it, which results in that when any constant
service holds the NsdManager connection, the device would always be
in the mdns multicast group whatever the connection is not used or not.
This is because mdnsresponder will join the multicast group when it
starts.

To solve this problem, start the native daemon only when needed, and
clean it up after the given idle timeout.

1. Start the native daemon when a new request come.
2. If there is no pending request, clean up the daemon after 3 seconds
of idle time.

Bug: 181810560
Test: atest NsdManagerTest NsdServiceTest
Change-Id: I3eb04552f6cf6c0c68c07abffe751bb4d0669215
2021-06-08 10:09:30 +08:00
junyulai
d8d50e6c8f [FUI27] Fix internal naming of notifyNetworkStatus
Test: TH
Bug: 174123988
Merged-In: I970ee365ca221956ee85788005d331374b5fa71a
Change-Id: I970ee365ca221956ee85788005d331374b5fa71a
  (cherry-picked from aosp/1620539)
2021-05-17 14:07:00 +08:00
junyulai
4e56bc1c93 [FUI27] Fix internal naming of notifyNetworkStatus
Test: TH
Bug: 174123988
Change-Id: I970ee365ca221956ee85788005d331374b5fa71a
2021-05-14 19:48:17 +08:00
Aaron Huang
a266a9855c Rename *Iface* APIs to *Interface*
Address API review feedback, other APIs have been refering to
these as "interface" instead of "iface" so migrate the APIs named
*Iface* to *Interface*.

(cherry-picked from ag/14326779)
Bug: 183972554
Test: atest android.net.UnderlyingNetworkInfoTest
Merged-In: I38b476e762fb57fa88c4a789092d0af6f5330d80
Change-Id: I38b476e762fb57fa88c4a789092d0af6f5330d80
2021-05-14 11:05:22 +08:00
Benedict Wong
974cd14755 Merge "Add clarifying comments on for IPsec forward policies" am: 1a88665f3c am: df1dcf78f2 am: 3f397e3f6e
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1702525

Change-Id: I77e806ab3e76307dfc6456b210f691027aaeec66
2021-05-11 18:13:01 +00:00
Benedict Wong
70f1aab8c7 Merge changes from topic "vcn-fwd" am: d7d2d2a15b am: fc14eeaf35 am: 07806ad6be
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1682047

Change-Id: I745687f69366657dc33bfdacd878e06affd6a8ec
2021-05-11 06:10:32 +00:00
Benedict Wong
47b528cfe7 Add clarifying comments on for IPsec forward policies
This change adds clarifying comments for the usage of the forward
policies in IPsec, and corrects a comment to properly specify the
permissions allowed.

Bug: 185495453
Test: Comment-only changes
Change-Id: I6d36522c344c41b0ebd90d46b216d115b678dd31
2021-05-10 18:26:02 -07:00
Benedict Wong
908d34edcb Add internal support for IPsec forward policies
This change adds support for IPsec forward policies, which are necessary
for packets to be allowed to be forwarded to another interface, as is
the case with tethering. This is necessary and useful only within the
system server, and as such is not exposed as a public API.

This change is safe, since the addition of a FWD policy on IPsec tunnel
interfaces will by default block forwarded traffic (as would be the case
without this patch). In the event that the (system) owner of the tunnel
requires support for forwarded packets (eg tethering), this patch allows
application of transforms in the FWD direction as well.

This will be used to ensure that the VCN can be used as the underlying
network for the purposes of tethering.

Bug: 185495453
Test: atest IpSecServiceTest
Test: atest IpSecServiceParameterizedTest
Test: manual testing with tethering over VCN
Change-Id: I74ecea71f1954029f6fbdbe34598c82e0aac386b
2021-05-07 15:09:42 -07:00
Treehugger Robot
3bcc77078c Merge "Add getters to NetworkStateSnapshot" 2021-04-29 09:20:34 +00:00
Aaron Huang
c6e149a977 Rename *Iface* APIs to *Interface*
Address API review feedback, other APIs have been refering to
these as "interface" instead of "iface" so migrate the APIs named
*Iface* to *Interface*.

Bug: 183972554
Test: atest android.net.UnderlyingNetworkInfoTest
Change-Id: I38b476e762fb57fa88c4a789092d0af6f5330d80
2021-04-28 17:57:32 +08:00
Aaron Huang
433fb498b5 Add getters to UnderlyingNetworkInfo
Address API review feedback, add getters to UnderlyingNetworkInfo
instead of exposing fields.

Instead of wasting memory by converting this into an array, have
migrateTun take a List<String>. In turn, tunAdjustmentInit should
also take a List<String>.

(cherry picked from ag/14211075)
Bug: 183972554
Test: atest android.net.UnderlyingNetworkInfoTest
Merged-In: Id59744097208d91298a25ef110ade91a9cf291a1
Change-Id: Id59744097208d91298a25ef110ade91a9cf291a1
2021-04-22 22:30:42 +08:00
Aaron Huang
955a1a50df Add getters to NetworkStateSnapshot
Address API council feedback, add getters to NetworkStateSnapshot
instead of exposing the bare fields directly.

(cherry picked from ag/14233655)
Bug: 183972826
Test: FrameworksNetTests
Merged-In: Id1707753b42ae88d2b95e4bd00a792609434e4f5
Change-Id: Id1707753b42ae88d2b95e4bd00a792609434e4f5
2021-04-22 18:21:00 +08:00
Aaron Huang
360973e00a Merge "Add getters to UnderlyingNetworkInfo" into sc-dev 2021-04-22 03:09:41 +00:00
Nazanin Bakhshi
35c18e14f9 Merge "Security fix: enforce read privilege permission to check package privileges in TelephonyManager" into sc-dev 2021-04-21 22:04:04 +00:00
Nazanin
6468b0d17e Security fix: enforce read privilege permission to check package
privileges in TelephonyManager

Bug: 180938364
Test: cts
Change-Id: I08c346c46b9e87dceaa1faf35fa36b954d88f9b0
2021-04-20 14:27:20 -07:00
Aaron Huang
444fcb9d56 Add getters to NetworkStateSnapshot
Address API council feedback, add getters to NetworkStateSnapshot
instead of exposing the bare fields directly.

Bug: 183972826
Test: FrameworksNetTests
Change-Id: Id1707753b42ae88d2b95e4bd00a792609434e4f5
2021-04-20 21:55:56 +08:00
Aaron Huang
8a74c1ff1d Add getters to UnderlyingNetworkInfo
Address API review feedback, add getters to UnderlyingNetworkInfo
instead of exposing fields.

Instead of wasting memory by converting this into an array, have
migrateTun take a List<String>. In turn, tunAdjustmentInit should
also take a List<String>.

Bug: 183972554
Test: atest android.net.UnderlyingNetworkInfoTest
Change-Id: Id59744097208d91298a25ef110ade91a9cf291a1
2021-04-20 13:34:52 +08:00
Aaron Huang
cdbde20884 Fix IpConfigStore dependencies on framework-connectivity
This change fixes IpConfigStore dependencies on framework-connectivity
hidden APIs.
- Use the version of SystemApi to new RouteInfo.
- Inline the implementation of isIPv4Default() directly because
  isDefaultRoute() is a public API so it can be used in this class.

(cherry-picked from ag/13945685)
Bug: 178777253
Test: FrameworksServicesTests:IpConfigStoreTest
Merged-In: I5ed1bc8bc8bee5b0c795fd8577a2d64628998e51
Change-Id: I5ed1bc8bc8bee5b0c795fd8577a2d64628998e51
2021-04-06 07:18:06 +00:00
Aaron Huang
ace9a3d468 Migrate hidden API in IpConfigStore to formal API
IpConfiguration and StaticIpConfiguration are included
in framework-connectivity which cannot have external
hidden API usages dependencies on them. IpConfiguration
and StaticIpConfiguration provide builder and getter
methods for the fields of the objects which are formal APIs.
So, replace the usages in IpConfigStore with those formal
APIs to remove the dependencies.

(cherry-picked from ag/13929104)
Bug: 178777253
Test: FrameworksServicesTests:IpConfigStoreTest
Merged-In: Ie9e6af0efe2c39667bb8faa1e3a498b1f61e1432
Change-Id: Ie9e6af0efe2c39667bb8faa1e3a498b1f61e1432
2021-04-06 07:13:56 +00:00
Junyu Lai
8ce0afea2f Merge "[SP29] Send interface warning bytes to NetworkStatsProvider" 2021-03-30 02:56:25 +00:00
Junyu Lai
f1a1d71020 Merge "[SP28] Add API for set data warning" 2021-03-29 11:06:05 +00:00
Junyu Lai
9dfe83449a Merge "Support Dual ViLTE stats" am: df875106a7 am: 4ea19cf4b0 am: 175a1d4e49
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1540920

Change-Id: I5739265c2747055b0252da7d1fb9e47d61ca111c
2021-03-29 09:05:02 +00:00
Junyu Lai
df875106a7 Merge "Support Dual ViLTE stats" 2021-03-29 06:59:19 +00:00
Lucas Lin
0cf3234045 Merge changes I6d5dd0a8,I106b3e4f
* changes:
  Use public API Network#getNetId() to get netid
  Remove unused import IConnectivityManager
2021-03-25 10:49:35 +00:00
lucaslin
20966d9193 Use public API Network#getNetId() to get netid
Network class will be a part of mainline module, external callers
cannot call its hidden constant. Use public API - getNetId() to
get netid instead.

Bug: 182963397
Test: m
Change-Id: I6d5dd0a8c3879df7bdc1d58e36022045c303bb40
Merged-In: I6d5dd0a8c3879df7bdc1d58e36022045c303bb40
  (cherry-picked from ag/13927649)
2021-03-25 10:48:55 +00:00
lucaslin
11e8857033 Use getAllInterfaceNames to get all interface names
The current design is using hidden API - getStackedLinks() to
get LinkProperties then call getInterfaceName() to get the
interface name. In fact, this behavior could be replaced by
system API - getAllInterfaceNames().

Bug: 182963397
Test: atest FrameworksNetTests
Test: atest CtsNetTestCases
Change-Id: Id2b19dc5099355af69d23a6d99d2b7e6c0e1e88a
Merged-In: Id2b19dc5099355af69d23a6d99d2b7e6c0e1e88a
  (cherry-picked from ag/13927660)
2021-03-25 08:10:28 +00:00
junyulai
8947c7125a [SP29] Send interface warning bytes to NetworkStatsProvider
This change contains necessary modification in NPMS and NSS
to send warning bytes to NetworkStatsProvider. But since
no any provider has been upgraded to handle such parameter.
Thus, no behavior change is made in this patch.

Test: atest NetworkPolicyManagerServiceTest NetworkStatsServiceTest
Test: atest NetworkPolicyManagerServiceTest#testStatsProviderWarningAndLimitReached
Bug: 149467454
Bug: 170699770
Bug: 170179169
Merged-In: I6c4863030c36328db571294fd12a40e59864def5
Change-Id: I6c4863030c36328db571294fd12a40e59864def5
  (cherry-picked from ag/13982166)
2021-03-25 09:23:24 +08:00
junyulai
d66c225def [SP28] Add API for set data warning
To have better control and race-free of set data warning
to tether offload hardware, an interface of set warning and
limit at the same time in the NetworkStatsProvider is needed.

This is a no-op change which expose such interface with minimum
changes in service side to get build pass. The implementation
would be included in follow-up patches.

Test: atest NetworkStatsServiceTest
Test: atest NetworkPolicyManagerServiceTest
Test: atest GtsNetworkStackHostTestCases
Test: m doc-comment-check-docs
Bug: 149467454
Bug: 170699770
Bug: 170179169
Merged-In: I6ee661497f7dedb871c85786d1950cab951d8aa2
Change-Id: I6ee661497f7dedb871c85786d1950cab951d8aa2
  (cherry-picked from ag/13959436)
2021-03-24 22:48:26 +08:00
junyulai
df6726cac7 [SP29] Send interface warning bytes to NetworkStatsProvider
This change contains necessary modification in NPMS and NSS
to send warning bytes to NetworkStatsProvider. But since
no any provider has been upgraded to handle such parameter.
Thus, no behavior change is made in this patch.

Test: atest NetworkPolicyManagerServiceTest NetworkStatsServiceTest
Test: atest NetworkPolicyManagerServiceTest#testStatsProviderWarningAndLimitReached
Bug: 149467454
Bug: 170699770
Bug: 170179169
Ignore-AOSP-First: avoid long automerger delay
Change-Id: I6c4863030c36328db571294fd12a40e59864def5
2021-03-24 22:02:52 +08:00
junyulai
cc6bc70bbf [SP28] Add API for set data warning
To have better control and race-free of set data warning
to tether offload hardware, an interface of set warning and
limit at the same time in the NetworkStatsProvider is needed.

This is a no-op change which expose such interface with minimum
changes in service side to get build pass. The implementation
would be included in follow-up patches.

Test: atest NetworkStatsServiceTest
Test: atest NetworkPolicyManagerServiceTest
Test: atest GtsNetworkStackHostTestCases
Test: m doc-comment-check-docs
Bug: 149467454
Bug: 170699770
Bug: 170179169
Ignore-AOSP-First: avoid long automerger delay
Change-Id: I6ee661497f7dedb871c85786d1950cab951d8aa2
2021-03-23 23:43:10 +08:00
Aaron Huang
cbe8076a23 Fix IpConfigStore dependencies on framework-connectivity
This change fixes IpConfigStore dependencies on framework-connectivity
hidden APIs.
- Use the version of SystemApi to new RouteInfo.
- Inline the implementation of isIPv4Default() directly because
  isDefaultRoute() is a public API so it can be used in this class.

Bug: 178777253
Test: FrameworksServicesTests:IpConfigStoreTest
Change-Id: I5ed1bc8bc8bee5b0c795fd8577a2d64628998e51
2021-03-22 18:59:41 +08:00
Aaron Huang
f19fea861c Migrate hidden API in IpConfigStore to formal API
IpConfiguration and StaticIpConfiguration are included
in framework-connectivity which cannot have external
hidden API usages dependencies on them. IpConfiguration
and StaticIpConfiguration provide builder and getter
methods for the fields of the objects which are formal APIs.
So, replace the usages in IpConfigStore with those formal
APIs to remove the dependencies.

Bug: 178777253
Test: FrameworksServicesTests:IpConfigStoreTest
Change-Id: Ie9e6af0efe2c39667bb8faa1e3a498b1f61e1432
2021-03-22 18:59:37 +08:00