Commit Graph

3459 Commits

Author SHA1 Message Date
James Mattis
e5fd971d2e Merge "Updating Eth Update Request to use Builder" 2022-02-28 16:55:49 +00:00
Lorenzo Colitti
ca25ad3567 Merge changes from topic "ms52-movenetstats"
* changes:
  Expose MATCH_PROXY as a module-lib API.
  Add setPollForce to module API
  Move networkstats JNI to connectivity module
  [MS54.1] Move NetworkStats to updatable sources
  [MS62.1] Start NetworkStatsService from the module
2022-02-28 05:32:23 +00:00
James Mattis
420d6e09c9 Updating Eth Update Request to use Builder
Updating EthernetNetworkUpdateRequest to use a builder for
creation and also changing to use IpConfiguration instead of
StaticIpConfiguration.

Bug: 220017952
Bug: 210487893
Bug: 210485380
Test: atest EthernetServiceTests
Change-Id: I78b002c12cf927c075671b75f0fe0d7878443b56
2022-02-24 13:38:04 -08:00
Aaron Huang
213018b736 Merge "Check iface by TextUtils.equals" 2022-02-22 09:48:08 +00:00
markchien
2616b49c70 Fix system_server crash while iterating CookieTagMap
When uid is removed, NetworkStatsService will iterate CookieTagMap and
delete the corresponded uid socketTag value. But not only
NetworkStatsService would detete CookieTagMap entries. There are other
threads may also delete CookieTagMap entries such as #unTagSocket in
bpfHandler and desctroy socket listener in TrafficController. System
server crash as NPE because the CookieTagMap entry it iterate just be
removed by other threads at the same time. This is just a simple fix to
prevent the crash. Will have follow up CL for formal fix.

Bug: 220084230
Test: m
Change-Id: I08cad87f537fb09499faf1ff5cfd443fcb8ce436
2022-02-18 10:11:15 +00:00
Lorenzo Colitti
fe5ed721be Expose MATCH_PROXY as a module-lib API.
It is used by clockwork.

Test: m update-api
  (cherry-picked from ag/16786203)
Change-Id: I5676f883141afca1511c425b7c36683a6c6bfb9f
Merged-In: I5676f883141afca1511c425b7c36683a6c6bfb9f
2022-02-18 16:20:48 +08:00
Remi NGUYEN VAN
c99a128f51 Add setPollForce to module API
The API was test API in S, but this is not supported in module API
surfaces. Make it module API instead.

Bug: 197717846
Test: Tests already using this API
  (cherry-picked from ag/16780943)
Change-Id: I9d44b761572f94b08b269478c4a0c20c1171343c
Merged-In: I9d44b761572f94b08b269478c4a0c20c1171343c
2022-02-18 16:20:47 +08:00
Remi NGUYEN VAN
63d42a25bb Move networkstats JNI to connectivity module
Reorganize networkstats JNI so it can be included in the connectivity
module.

Bug: 197717846
Test: m
Change-Id: I815ea379f3d9915041c80ac5e743ce62e05f4cf8
Merged-In: I815ea379f3d9915041c80ac5e743ce62e05f4cf8
2022-02-18 16:20:47 +08:00
Junyu Lai
63627bce56 [MS54.1] Move NetworkStats to updatable sources
This CL builds NetworkStats related code with the
connectivity module instead of platform.

This includes:
1. Add netstats.proto to the module.
2. Add lib dependencies for all callers.
3. Include several source files in platform and add jarjar rule
   to it. Modify callers accordingly.

Test: TH
Bug: 197717846
Change-Id: I244693aebe1782d9e67502638ff8145c51462e1e
Merged-In: I244693aebe1782d9e67502638ff8145c51462e1e
2022-02-18 16:20:47 +08:00
Junyu Lai
01a87ca336 [MS62.1] Start NetworkStatsService from the module
NetworkStatsService is going to be moved into Connectivity mainlne
module and it will be not visible to SystemServiceResistry after
migration done. Thus:
1. Register service in NetworkStatsServiceInitialalizer, a separate
   initializer is needed because the service needs to be created
   before NetworkPolicyManagerService's initialization.
2. Call SystemReady at PHASE_ACTIVITY_MANAGER_READY phase where
   it needs to be ready before StatsPullAtomService pulls at
   PHASE_THIRD_PARTY_APPS_CAN_START.
3. Register manager in ConnectivityFrameworkInitializerTiramisu
   instead of SystemServiceRegistery.

Test: atest FrameworksNetTests CtsNetTestCases NetworkUsageStatsTest
Bug: 204830222
  (cherry-picked from ag/16688794)
Change-Id: I95020d816ed613ce3480a0720a5b71dcdc7fab72
Merged-In: I95020d816ed613ce3480a0720a5b71dcdc7fab72
2022-02-18 16:20:47 +08:00
Patrick Rohr
397799787d Merge "Replace qtaguid_deleteTagData with java implementation" 2022-02-16 19:59:14 +00:00
Lorenzo Colitti
c54e4f397b Fix grammar nit in comment.
Test: None
Change-Id: I60cb2478615efce13f1904092abe5c21bdf0dc9a
2022-02-11 18:50:04 +09:00
Xiao Ma
11170dd9ef Expose EthernetManager state and control APIs.
This CL exposes EthernetManager APIs that settings and other
system components can use to modify and monitor Ethernet state.
The new APIs are similar to the existing @hide methods but
pass on more information and meet API guidelines:

1. Add an InterfaceStateListener interface, and
   addInterfaceStateListener and removeInterfaceStateListener
   methods that meet API guidelines (e.g., take Executor, take
   SAM parameter last, etc.) This new listener passes interface
   state (absent, up, down), role (client or server) and IP
   configuration.
2. Implement the legacy Listener type as a subinterface of the
   new interface. Hopefully existing callers should be able to
   use it unchanged.
3. Expose setIncludeTestInterfaces as module-lib api instead of
   TestApi, since modules cannot expose TestApi methods.

Bug: 210586283
Test: m
Test: atest EthernetServiceTests
Test: atest EthernetTetheringTest
Change-Id: I88240a546ab51d128ed83775499f2bcabab74db0
Merged-In: I88240a546ab51d128ed83775499f2bcabab74db0
2022-02-11 18:50:04 +09:00
markchien
336d3c71b3 Replace qtaguid_deleteTagData with java implementation
Copies the behavior of TrafficController::deleteTagData.

Test: atest NetworkStatsServiceTest
Change-Id: I436ce514108486db712b455f1b5fd8dca345c65c
2022-02-11 14:51:09 +08:00
James Mattis
ca0be94009 Making EthernetNetworkSpecifier public
Bug: 210485380
Test: atest EthernetServiceTests
atest CtsNetTestCasesLatestSdk

Change-Id: Ic0b7a3360745632eb024a97692e49f6c8dafa3ee
Merged-In: Ic0b7a3360745632eb024a97692e49f6c8dafa3ee
2022-02-10 11:25:18 -08:00
Aaron Huang
83400b6b3b Split out the ipsec API surface and use framework-connectivity-tiramisu
(cherry picked from commit 131a866384)
Bug: 204153604
Test: TH
Change-Id: I6cc8aef6a0ab9ce4bcef2797196b1d1b3687acca
Merged-In: I6cc8aef6a0ab9ce4bcef2797196b1d1b3687acca
2022-02-10 19:01:00 +09:00
Yan Yan
340aa33c2c Merge "Un-finalize IpSecManager" 2022-02-10 01:37:09 +00:00
Chiachang Wang
2f5cb6d7e9 Merge "Correct typo in the year of copyright" 2022-02-09 11:38:50 +00:00
Chiachang Wang
531889a993 Correct typo in the year of copyright
Test: m
Change-Id: I68e9925b5b6deb7c5c9d57aa4a397c80f8b8d869
2022-02-09 11:38:37 +00:00
Yan Yan
7b04f8f339 Un-finalize IpSecManager
Allows VCN and IKE unit tests to mock IpSecManager and thus stop
depending on the hidden APIs in the Connectivity module
(e.g. IpSecService binder interface). Otherwise, any changes on
these related hidden APIs will require topic changes across multiple
projects.

Bug: 217572993
Test: make update-api
Test: atest IpSecManagerTest, IpSecManagerTunnelTest
Change-Id: I29f3ac96f83b4271f29a7051d33ccf47a0dd6c57
Merged-In: I29f3ac96f83b4271f29a7051d33ccf47a0dd6c57
2022-02-09 03:32:54 +00:00
James Mattis
5e1593f3a6 Marking eth network management APIs @SystemApi
Annotating ethernet network management APIs in EthernetManager
with @SystemApi.

Bug: 210485380
Test: atest EthernetServiceTests
atest CtsNetTestCasesLatestSdk

Change-Id: I10429441fd4d7b9bcaa7437b844420a43a415d72
Merged-In: I10429441fd4d7b9bcaa7437b844420a43a415d72
2022-02-04 17:09:34 -08:00
Treehugger Robot
4a53677d10 Merge "Add key / value data structures for IBpfMaps" 2022-02-04 23:39:29 +00:00
James Mattis
eac7dc0e8d Merge "Adding permission for Ethernet Network Management" 2022-02-04 23:05:27 +00:00
Patrick Rohr
fc3b420236 Add key / value data structures for IBpfMaps
Add key / value structures for CookieTagMap, StatsMap, and UidStatsMap.
This will be used for deleteTagData.

Test: m
Change-Id: I955ae7f7745d4c5f37eccbad80cdb841ef55ff56
2022-02-04 13:13:02 +01:00
Remi NGUYEN VAN
7b8b3ccb8e Merge "Support discovering services with a NetworkRequest" 2022-02-04 12:07:58 +00:00
Remi NGUYEN VAN
585b14d79c Merge changes from topic "nsd_serviceinfo_network"
* changes:
  Support discover/resolve on specific networks
  NSD: Specify on what interface to getAddrInfo
2022-02-04 12:07:38 +00:00
Remi NGUYEN VAN
1ddba4c56a Support discovering services with a NetworkRequest
A common mistake when using service discovery is to mismanage networks,
expecting to find or be able to access services on networks that may not
be available yet, or may be stale/lost.

This new API allows clients to start service discovery with just a
NetworkRequest, letting NsdManager track networks and notify when
services are found/lost for each network.

Bug: 190249673
Test: atest NsdManagerTest
Change-Id: I12e799aa48fce2d1a35f708c5617386b1cc70f21
2022-02-03 13:04:20 +09:00
Remi NGUYEN VAN
bca7618ded Support discover/resolve on specific networks
This adds a Network member to NsdServiceInfo, allowing discovered
services to report which network they were discovered on, and clients to
specify which network to resolve the service on. If clients use the
discovered NsdServiceInfo to resolve a service, it will be resolved on
the network where it was discovered instead of an unspecified network.

Also add a network parameter to a new overload of
NsdManager#discoverServices, so that clients can discover on specific
networks.

Bug: 190249673
Test: atest NsdManagerTest

Change-Id: Idc4bf9fde0f4b0328204a8cd2eedc12fffbbbdba
2022-02-03 13:04:08 +09:00
James Mattis
74a5a70b6f Adding permission for Ethernet Network Management
Adding MANAGE_ETHERNET_NETWORKS as a signature level permission
to allow an application to dynamically change ethernet network values.

Bug: 210485380
Test: atest EthernetServiceTests
Change-Id: Icf9c2accc86735cc981adc0d5a24802e0616ffaf
Merged-In: Icf9c2accc86735cc981adc0d5a24802e0616ffaf
2022-02-02 16:34:46 -08:00
hepengtao
271548c96d NSD: Specify on what interface to getAddrInfo
When discover two different host with same host name
from different network interface, specify on what
 interface to getAddrInfo.

Bug: 203453164
Test: build & manual

Signed-off-by: hepengtao <hept.hept.hept@gmail.com>
Change-Id: Ifaccb7f3fac6b1dd789cc9ce7c8d964102754508
2022-02-02 17:50:50 +09:00
James Mattis
a46242b7ab Renaming Ethernet Network Management Classes
Renaming InternalNetwork* files and classes related to ethernet network
management to EthernetNetwork* as ethernet is the only trasnport these
particular files are used with.

Bug: 210485380
Test: atest EthernetServiceTests
Change-Id: Ieb3915c032ef5fcd6b36eb09878119de7668bb4b
2022-02-01 21:02:10 -08:00
James Mattis
aeb8a06c23 InternalNetworkManagementException Changes
Update to InternalNetworkManagementException in order to allow all
members to be parcelable.

Bug: 210485380
Test: atest EthernetServiceTests
Change-Id: I17f119a66face8a927546657490969aa3073c54b
2022-02-01 09:21:09 -08:00
Lorenzo Colitti
a6bc0e1373 Merge changes from topics "move-kerneltotag", "move-socket-tagging-to-mainline"
* changes:
  Move socket tagging implementation to mainline.
  Move kernelToTag to NetworkStatsFactory.
2022-01-31 13:35:30 +00:00
Lorenzo Colitti
81b707f491 Move socket tagging implementation to mainline.
Currently, socket tagging is implemented in the framework. The
Java code is in NetworkManagmentSocketTagger.java and the JNI is
in libandroid and loaded by the general framework JNI loader.

- Move the Java implementation to TrafficStats, which is the only
  caller of NetworkManagmentSocketTagger. This simplifies the
  code a bit because a number of methods can be deleted.

- Move the JNI code to a new JNI library in the APEX. The library
  depends only on the NDK and statically links the NDK-only
  version of libnativehelper. Its size is only 5k on ARM and 10k
  on ARM64.

- Temporarily make the framework depend on this library until the
  rest of the T connectivity code moves to the APEX.

Test: atest NetworkUsageStatsTest CtsNetTestCases:TrafficStatsTest
Change-Id: I050c7c515237f68b78d08987bc443f50a7949c06
2022-01-30 15:59:44 +09:00
Lorenzo Colitti
adab7b1cc3 Move kernelToTag to NetworkStatsFactory.
... to prepare for the deletion of NetworkManagementSocketTagger.

Test: atest FrameworksNetTests
Change-Id: Id3ad67fa640ddb9ab446e10dcf8e6a588d661dd9
2022-01-29 21:54:15 +09:00
Junyu Lai
8de5088578 Merge "[MS59.3] Expose NetworkStatsDataMigrationUtils" 2022-01-29 03:55:41 +00:00
junyulai
aa6eed54a7 [MS59.3] Expose NetworkStatsDataMigrationUtils
Test: TH
Bug: 204830222
Change-Id: I15a45fbadeb69b70a0e983b00de9e934d29749d6
2022-01-28 11:03:53 +00:00
Lorenzo Colitti
bf254864a4 Clear counters and delete tag data from NetworkStatsService.
Currently, NetworkStatsService deletes tag data by calling
NetworkManagementSocketTagger, which then calls into libcutils
"qtaguid" code. Instead, make NetworkStatsService call into
libcutils directly and delete the NetworkManagementSocketTagger
code.

In the future, this will make it easier for NetworkStatsService
to perform this operation by calling directly into BpfNetMaps.

Because the unit test does not yet have working JNI code, provide
an internal TagStatsDeleter interface that can be mocked out via
the Dependencies class. This is a bit ugly but it will be deleted
as soon as the code uses BpfNetMaps directly.

Delete NetworkManagementSocketTagger#setKernelCounterSet since it
was replaced in aosp/1958917.

Also remove unused includes and make formatting changes suggested
by clang-format.

Test: m
Test: atest NetworkStatsServiceTest
Test: atest NetworkUsageStatsTest
Test: atest TrafficStatsTest
Test: stats deleted when CtsUsageStatsTestCases completes and test APK is uninstalled
Change-Id: I62987000afc185199821580232bfb7668c8e301e
2022-01-28 13:02:48 +09:00
Frank
de9b4def5f [DU12]Remove NetworkType Annotation
Bug: 216619447
Test: atest NetworkTemplateTest NetworkStatsCollectionTest
            NetworkStatsSubscriptionsMonitorTest
Change-Id: I58689201a684f581a4b88df058a5e0683da61926
2022-01-27 22:28:20 +08:00
Mark Chien
b68a9f0972 Merge "Update UidCounterSetMap directly from NetworkStatsService" 2022-01-27 10:02:35 +00:00
Aaron Huang
1618171b38 Move the implement of getAllCollapsedRatTypes to StatsPullAtomService
To make data usage as a mainline module, move getAllCollapsedRatTypes
to StatsPullAtomService since currently it is the only user. Also, the
method needs to call getCollapsedRatType, thus move getCollapsedRatType
to NetworkStatsManager and expose it as module API.

Bug: 210073043
Test: builds, FrameworksNetTests
Change-Id: Ibe41b50f173464694c21dd22841552bdb69a6a14
2022-01-27 12:27:20 +08:00
Aaron Huang
0bfd365a4f Move NETWORK_TYPE_5G_NSA from NetworkTemplate to NetworkStatsManager
Move NETWORK_TYPE_5G_NSA to NetworkStatsManager. Also expose it as
module API so that it can be used out of module.

Bug: 210073043
Test: builds, FrameworksNetTests
Change-Id: I670c7e1405107bbe30b92fe1a8d81652c46de6d9
2022-01-27 12:23:56 +08:00
Aaron Huang
17a9e07870 Merge "Use public resouce in android.R package" 2022-01-26 15:01:32 +00:00
markchien
ad9ee7d926 Update UidCounterSetMap directly from NetworkStatsService
Currently NetworkStatsService call
NetworkManagementSocketTagger#setKernelCounterSet which would call into
netd to update UidCounterSet bpf map. This change let
NetworkStatsService get UidCounterSetMap and update it directly. After
this change, NetworkManagementSocketTagger#setKernelCounterSet could be
removed because NetworkStatsService is the only caller.

Test: dump UidCounterSetMap to ensure it still have value after removing
netd code.

Change-Id: I7ae14106ded4fa55122e93e76c3057052a2fa33e
2022-01-26 22:50:27 +08:00
Treehugger Robot
4f6a232bb4 Merge "[MS74] Expose NetworkTemplate#matches" 2022-01-26 11:33:29 +00:00
Junyu Lai
ce3dbdb741 [MS78.1] Fix NetworkIdentity#Builder crashing on 5G NSA networks
Test: atest NetworkIdentityTest
Fix: 216193400
Change-Id: Iaeae0c66f222ae8730439c5aedf5d5818855875d
2022-01-26 07:35:47 +00:00
junyulai
ad252f8347 [MS74] Expose NetworkTemplate#matches
This is used by NetworkPolicyManagerService to find
relevant networks of a given NetworkPolicy.

Test: TH
Bug: 204830222
Change-Id: I7176ab727bf208e0fd05ecb9c2bcb00cd3438031
2022-01-26 01:38:44 +08:00
Junyu Lai
b6ac084831 Merge "[DU09-0]Adding the NetworkStatsCollection Builder" 2022-01-25 16:44:16 +00:00
Junyu Lai
a6889ec04f Merge "[MS69.1] Fix TrafficStats.init crashs for supplemental process" 2022-01-25 16:26:34 +00:00
Junyu Lai
0534b453bc Merge "[MS68.1] Register usage callback from NetworkPolicyManagerService" 2022-01-25 13:30:57 +00:00