1. Used SSID to be a wifi network identity can't separate wifi
data usage when there are two different network with same SSID.
Use a new usage key from WifiInfo to replace wifi SSID to solve
this issue.
2. To support to query wifi usage per configured Wifi network.
Adding matchWifiNetworkKeys in NetworkTemplate to support querying
multi networkKeys wifi data usage since each configured Wifi
network configuration might be used to connect different Wifi
network. (Replace mNetworkId with mMatchWifiNetworkKeys)
3. Updated callers who were using NetworkTemplate constructor.
4. Fixed SortedSet null order case. The null subscriberId is a
valid input for matchSubscriberIds.
5. Replaced ArrayUtils with CollectionUtils.
Bug: 197520752
Bug: 126299427
Test: atest -c NetworkTemplateTest
Test: atest -c NetworkStatsServiceTest
Test: atest -c NetworkPolicyManagerServiceTest
Test: atest -c NetworkPolicyTest
Change-Id: Ie20e7fb56597817901be4ce1d2a7afcbc9ded0c6
These internal methods are used in MultipathPolicyTracker and
NetworkPolicyManagementService. getNetworkTotalBytes is used
to query total bytes regarding to the specified NetworkPolicy,
to see how much data quota is used. getNetworkUidBytes is used
to find the app to blame for rapid data usage.
These methods needs to be replaced by public APIs in follow-up
patches.
Test: TH
Bug: 204830222
Change-Id: Iec9cc7a07397ec2bbc6c3d2559fc3680b149cb8a
Private methods added to EthernetManager for network management to be
made public when ready.
Bug: 210485380
Test: make, flash and boot
Change-Id: I7f484d373e05225c98bf0e6111afdc12be31764f
Subscriber Id Match Rule won't be exposed as system Api.
Callers should use Builder#setSubscriberIds or
NetworkTemplate#getSubscriberIds to set/get the Subscriber
Ids filter. An empty set in the paremter or return value
represents the intention of matching any Subscriber Ids.
Test: atest NetworkPolicyManagerServiceTest \
FrameworksNetTests
Bug: 204830222
Change-Id: I12c54280b44c71e4737e82859dfe869794cc9c29
IpSec service is going to be moved into Connectivity module. Replace
Preconditions.checkNotNull with Objects.requireNonNull to remove
hidden API usages.
Bug: 204153604
Test: FrameworksNetTests
Change-Id: Iff7f76844d4126b0e17b62b4ce821449b5b6ce44
Since the NetworkTemplate serialization is done in the platform
code. To decide whether the template is persistable should be
also inside the platform along with the serialization logic.
Test: atest NetworkPolicyTest
Bug: 204830222
Change-Id: I15d17dda77e6a3e1ae11275915e3d2f6e2888639
In current design, NeworkTemplate has a lot of buildTemplate*
functions to create various type of templates. These functions
do not have any flexibility to add any dimension. Thus, if
there is a need to add a dimension, the typical ways are:
1. Add one parameter to the buildTemplate* function and change
all callers.
2. Use the NetworkTemplate constructors directly. And add one
more parameter if it doesn't fulfill the needs.
These codes are painful to maintain in the future if they are
exposed as system api since they are lack of flexibility. Thus,
introduce a builder class to NetworkTemplate to address this
problem.
Test: atest NetworkTemplateTest
Bug: 204830222
Change-Id: I49fab236bac392563b1290d69573ad1415fda734
NetworkStatsAccess is using DevicePolicyManagerInternal APIs, which
cannot be accessed after moving into the mainline module. So, replace
and remove those hidden API usages.
Bug: 207100745
Test: atest NetworkStatsAccessTest
Change-Id: I0802148050869d92e1f09d1d657034380029f236
Since NetworkStats related code will be moved to the module.
multiplySafeByRational in the NetworkUtilsInternal cannot be
accessed after that. Thus, create another utils class that
will be moved with NetworkStats code and put the function
into it.
Test: atest NetworkStaticLibTests:com.android.net.moduletests.util.NetworkStatsUtilsTest
Bug: 204830222
Change-Id: I96f3ac02e57b7325ed53988285770f478dee529e
This change also defines some IntDef annotations that will
be used in the follow-up CLs.
Test: TH
Bug: 204830222
Change-Id: Iba5e714a1304fdfd154379415dcc5d0f9b7b1b29
IpSecManager.DIRECTION_FWD is used by VcnGatewayConnection and
it will be not visible to platform after IpSec was moved into
Connectivity mainline module. Therefore, make DIRECTION_FWD
@SystemApi so that it can be used by VcnGatewayConnection.
Bug: 204153604
Test: FrameworksNetTests
Change-Id: I80dc2a5b4940504820cee0d8e2d2e59ef3fcca18
HexDump is an internal class which cannot be visible to mainline
module. Remove it since this is unused.
Bug: 204153604
Test: FrameworksNetTests
Change-Id: Ie65e7eff8464487719c3124005a097a500ba21c6
ethernet-service is going to be moved into Connectivity mainline module.
Move all ethernet related files in f/b/ to f/b/packages/ConnectivityT so
that it's easier to migrate these files to Connectivity module finally
after clearing the hidden API usages. Below files to be moved:
Ethernet framework related files:
- EthernetManager.java
- EthernetNetworkSpecifier.java
- IEthernetManager.aidl
- IEthernetServiceListener.aidl
- ITetheredInterfaceCallback.aidl
Ethernet service related files:
- IpConfigStore.java(EthernetConfigStore has dependency on the class)
For the ethernet-service related files, keep it as-is temproraliy and
fix the hiden API dependencies in f/opt/net/ethernet/. After this work
is done, then migrating the whole of ethernet folder to Connectivity
module completely.
This CL also fixes some minor errors of code style format to pass the
code style check.
Bug: 210586283
Test: build pass
atest FrameworksNetTests
atest EthernetServiceTests
Change-Id: Ib359d29d5221105f648bc4194c6d6dbe4cc6e3e5
IpSec is going to move to Connectivity mainline module so
hidden API usage should be removed. There's no formal API
could be an alternative for Build.IS_ENG. Considering
isUnsafeBuild() is not a really helpful method because it
only prints the log in eng build. Therefore, remove it.
Bug: 204153604
Test: FrameworksNetTests
Change-Id: Ic354e12423629b0d72e8087843893953a0c8c465
IpSecService is going to be moved into ConnectivityService
module. So, NetdService won't be visible to IpSecService
since it is a hidden class.
NetdService.get(timeout) is a method that blocks for specified time
until INetd instance is available. In SystemServer IpSecService is
created after NetworkManagementService and NMS uses NetdService.get()
to get INetd instance which is a method that blocks until an INetd
instance is available. Thus, connectNativeNetdService can be removed
because NMS already waits for INetd instance is available so IpSecService
should be able to get INetd instance immediately.
Bug: 204153604
Test: FrameworksNetTest
Change-Id: I007cb28de63783d60084f93dddb4de78faa0e868
IpSecService is going to be moved into ConnectivityService module,
so the hidden API usage should be removed.
NetdService.getNetdInstance is a hidden API, therefore the alternative
is to get the instance by Context.getSystemService.
Bug: 204153604
Test: FrameworksNetTests
Change-Id: I1bd8efc03c37654d12a8eadd3e78ed45e10b5691
IpSecService is going to be moved into Connectivity mainline module.
Move all ipsec associated files to packages/ConnectivityT so that
it can be easily migrate these files to connectivity module after
clearing the hidden API usages.
Bug: 204153604
Test: build pass
FrameworksNetTests
CtsNetTestCases
Change-Id: I562b47f18e345988a2638cf886f86818f9144b91
Remove hidden API usage of the Preconditions and Protocol classes in
NsdManager.
NsdManager does not share its handler with other components, so it does
not need to use specific message IDs from Protocol.
Preconditions can also be easily replaced with stable API alternatives.
Bug: 190249673
Test: atest FrameworksNetTests CtsNetTestCases:NsdManagerTest
Change-Id: Ia173f99b82c90df702291c3690f4a7b047e90daa
INsdManager is going to move into connectivity mainline module
and it will be not visible to SystemServiceRegistry after
migration done. Thus, use ConnectivityFrameworkInitializerTiramisu
to register NSD service instead.
ConnectivityFrameworkInitializerTiramisu will be implemented in
the framework-connectivity-tiramisu bootclasspath JAR, which need
to be separated from the S+ framework-connectivity bootclasspath
JAR to be only loaded by the module on T+. So its methods cannot
be in the same class as ConnectivityFrameworkInitializer.
Bug: 206702844
Test: atest FrameworksNetTests CtsNetTestCases
Merged-In: Ibf89ab9a35e35dac4978ba70c7ab306b6155a4a3
Change-Id: Ibf89ab9a35e35dac4978ba70c7ab306b6155a4a3
Since ServiceNotFoundException is not a system API. Remove
the unsupported interface which uses this exception.
This is safe since the method annotated with maxTargetSdk = R
and from dashboard it is not using by anybody.
Test: TH
Bug: 204830222
Change-Id: Ib8c0ce7b165732d24929851792d35371b90a5dfc
Since NetworkTemplate will be moved into the mainline module.
It is necessary to remove hidden BackupUtil usage from
NetworkTemplate. Also, it is also a hazard to maintain
compatibility for byte buffer interfaces.
Thus, move out these cloud backup functions to NetworkPolicy
to address these concerns.
Test: atest NetworkPolicyTest NetworkPolicyManagerServiceTest
Bug: 204830222
Change-Id: I3ec55f7e419ea13db535acff2457d8e7aaebdce8
These files are needed for the data migration util system Api
interfaces to allow OEMs to construct NetworkStats* objects.
Thus, they need to be moved into android.net package, and some
of them will be exposed as @SystemApi in T.
Eventually these classes will be moved into the Connectivity
module, but in the mean time they will be temporarily moved to
f/b/package/ConnectivityT for the preparation stage.
However, the tests are already in the module. Therefore for
the S-derived branch, the test cannot see the renamed classes
since any framework CLs will not be auto-merged into this branch.
Thus, the tests need to stay disabled on the S-derived branch,
and will be re-enabled after all files are moved into the module.
Test: TH
Bug: 197717846
Change-Id: I95278a99cf2437ada28001161ceea17a1d32f2a4
NetworkStatsService is going to be moved into ConnectivityService
module. Move all related files to packages/ConnectivityT so that
it can be easily migrate these files to connectivity module
after clearing the hidden API usages.
Bug: 197717846
Test: TH
Change-Id: Iead00832b5eb7b1dc40a92027c5a14ae8316b16c
Move Nsd files to ConnectivityT so that nsd, ipsec,
ethernet and netstats files can live in the same
directory and it will be easier to move everything
in frameworks/base/packages/ConnectivityT to
packages/modules/Connectivity after fixing all of the
hidden API usages.
Bug: 204153604
Test: FrameworksNetTests
CtsNetTestCases
Change-Id: I411e242e8739d15920cfc2fe274115f7f39bd89f
This directory is used to put nsd, ethernet, ipsec and netstats
associated files that are going to be included in connectivity
mainline module.
Bug: 204153604
Test: create directory and add owners file only
Change-Id: Ifea707e2c3d5242081e70542b1bc32e0f604ac26