Commit Graph

1185 Commits

Author SHA1 Message Date
Jean Chalard
76fdaf89c6 Merge "Test no Internet and partial connectivity notifications." 2022-09-15 03:56:13 +00:00
Motomu Utsumi
9e1675d38c Merge changes from topic "dump_map_status"
* changes:
  Move Interface index name map dump to NetworkStatsService
  Move stats map A/B dump to NetworkStatsService
  Add BpfInterfaceMapUpdater#getIfNameByIndex
2022-09-14 01:27:49 +00:00
Chalard Jean
4c46308265 Test no Internet and partial connectivity notifications.
Test: new unit tests pass
Change-Id: I363fa3ef15476a30e7b8708a80867dd456e5e520
2022-09-13 19:33:26 +09:00
Motomu Utsumi
fdb601603d Move Interface index name map dump to NetworkStatsService
Map status dump will do access check if map is null.
This could show different message from the current dump output.

Information in map content dump does not change
$ dumpsys connectivity trafficcontroller
....
     mIfaceIndexNameMap:
      ifaceIndex=5 ifaceName=ip6_vti0
      ifaceIndex=19 ifaceName=r_rmnet_data3
      ifaceIndex=17 ifaceName=r_rmnet_data1
      ifaceIndex=18 ifaceName=r_rmnet_data2
      ifaceIndex=23 ifaceName=wifi-aware0
....

$ dumpsys netstats
....
  BPF map content:
    ifaceIndex=5 ifaceName=ip6_vti0
    ifaceIndex=19 ifaceName=r_rmnet_data3
    ifaceIndex=17 ifaceName=r_rmnet_data1
    ifaceIndex=18 ifaceName=r_rmnet_data2
    ifaceIndex=8 ifaceName=rmnet_ipa0
....

Bug: 217624062
Test: dumpsys netstats, atest
com.android.server.net.BpfInterfaceMapUpdaterTest

Change-Id: If182bd97f72713b6347028668cf7bd4676b8aea4
2022-09-12 16:53:51 +09:00
Motomu Utsumi
608c32c782 Move stats map A/B dump to NetworkStatsService
Map status dump will do access check if map is null.
This could show different message from the current dump output.

Information in map content dump does not change
$ dumpsys connectivity trafficcontroller
....
      mStatsMapA:
      ifaceIndex ifaceName tag_hex uid_int cnt_set rxBytes rxPackets txBytes txPackets
      20 wlan0 0x0 1051 0 144 2 312 4
      10 rmnet_data0 0x0 0 0 0 0 48 1
      20 wlan0 0x0 0 0 0 0 136 2
      20 wlan0 0xffffff82 1051 0 144 2 312 4

      mStatsMapB:
      ifaceIndex ifaceName tag_hex uid_int cnt_set rxBytes rxPackets txBytes txPackets
....

$ dumpsys netstats
....
  mStatsMapA:
    ifaceIndex ifaceName tag_hex uid_int cnt_set rxBytes rxPackets txBytes txPackets
    20 wlan0 0x0 1051 0 144 2 312 4
    10 rmnet_data0 0x0 0 0 0 0 48 1
    20 wlan0 0x0 0 0 0 0 136 2
    20 wlan0 0xffffff82 1051 0 144 2 312 4
  mStatsMapB:
    ifaceIndex ifaceName tag_hex uid_int cnt_set rxBytes rxPackets txBytes txPackets
....

Bug: 217624062
Test: dumpsys netstats, dumpstate, atest NetworkStatsServiceTest

Change-Id: Ifbd45f0ad6dd9c519a15a7680cf0ea99fb5f5dcf
2022-09-12 16:53:48 +09:00
Paul Hu
ab32bf8aa1 Merge "Check automotive system feature on Constructor" 2022-09-12 07:36:33 +00:00
Motomu Utsumi
95e095dd0d Add BpfInterfaceMapUpdater#getIfNameByIndex
Upcoming CL uses this to dump stats bpf map

Bug: 217624062
Test: atest com.android.server.net.InterfaceMapValueTest
com.android.server.net.BpfInterfaceMapUpdaterTest

Change-Id: I5454b6abbd9d84cb7e1dccaaa772d66726cfe3d0
2022-09-12 15:03:18 +09:00
Motomu Utsumi
08ccd0d2e1 Merge changes from topic "idiag_sock_id"
* changes:
  Switch SkDestroyListener based on the flag.
  Add startSkDestroyListener flag to native_init
  Add SkDestroyListenerTest
2022-09-10 02:02:11 +00:00
Motomu Utsumi
3dc2fb5378 Merge "register callback to pull NetworkBpfMapInfo atom" 2022-09-09 08:11:37 +00:00
Motomu Utsumi
166f966209 register callback to pull NetworkBpfMapInfo atom
Test: statsd_testdrive 10161, atest BpfNetMaps
Bug: 217624062
Bug: 245228691

Change-Id: I630a86cb5a34aaa1810eb75b374588dba570f0ff
2022-09-09 11:23:10 +09:00
Treehugger Robot
3b2907e449 Merge "Split POLICY_EVER_VALIDATED_NOT_AVOIDED_WHEN_BAD into two" 2022-09-08 15:42:44 +00:00
Chalard Jean
710b2893c2 Split POLICY_EVER_VALIDATED_NOT_AVOIDED_WHEN_BAD into two
This flag conflates these two things, but it's a lot clearer
if they are separate and evaluated at the end.

Moreover, a new policy will make use only of one of them,
so having them separate is also useful going forward.

Test: FrameworksNetTests

Change-Id: Ia47b3974277cf76153a53d7e8a0e969c90ba78f4
2022-09-08 19:41:38 +09:00
Paul Hu
00955f3d46 Check automotive system feature on Constructor
The system feature depends on device, it will not change at runtime
basically. So do the system feature check once on NetworkAgentInfo
constructor.

Test: FrameworksNetTests CtsNetTestCases
Change-Id: I03fb8b87f5fda93286bd68ccbb23210066b0611b
2022-09-08 06:38:20 +00:00
Motomu Utsumi
96c6aad70d Merge "Open CookieTagMap in BpfNetMaps" 2022-09-08 05:38:27 +00:00
Motomu Utsumi
b9548860a9 Open CookieTagMap in BpfNetMaps
Upcoming CL will update BpfNetMaps to pull NetworkBpfMapInfo atom that
contains the cookieTagMap size field.

Test: m, atest BpfNetMaps
Bug: 217624062
Change-Id: I84bb0aa56e3916fc6fc0ca31ba5962f3b9be4b6f
2022-09-06 22:33:44 +09:00
Motomu Utsumi
d95a0dafa8 Switch SkDestroyListener based on the flag.
Switch existing C SkDestroyListener and new Java SkDestroyListener based
on the experiment flag.

Bug: 217624062
Test: atest SkDestroyListenerTest
Change-Id: I7031ba7c155edb43e0e7b77449587058d6ba38fb
2022-09-06 11:23:13 +09:00
Treehugger Robot
26ebf8c97a Merge "Migrate NetworkStatsServiceTest from when().thenReturn() to doReturn().when()" 2022-09-05 12:20:55 +00:00
Junyu Lai
bae070bf80 Migrate NetworkStatsServiceTest from when().thenReturn() to doReturn().when()
This will address flakiness issues arising from the use of
when() in multithread context.

Fix: 243658074
Test: atest com.android.server.net.NetworkStatsServiceTest#testDataMigration_differentFromFallback \
      --rerun-until-failure 1000
Change-Id: I047050ef14cb60658098ff7803c6773907a92919
2022-09-05 16:17:57 +08:00
Chiachang Wang
ebab250383 Merge "Add test to verify null ProxyInfo in Ikev2VpnProfile" 2022-09-02 12:15:09 +00:00
Aaron Huang
279733e3f5 Merge "Fix settings show data usage with the uid of a removed package" 2022-09-02 07:43:55 +00:00
chiachangwang
715dc5b447 Add test to verify null ProxyInfo in Ikev2VpnProfile
Bug: 244281603
Test: atest FrameworksNetTests
Change-Id: Ice195b60a0f62ae541ede9277c6e36f9c72b2dbb
2022-09-02 03:51:43 +00:00
Jean Chalard
3db58490ff Merge "Convert EthTrackTest from when() to doReturn()" 2022-09-02 02:52:39 +00:00
Treehugger Robot
24ca302311 Merge "Convert booleans in NAI to timestamps" 2022-09-01 23:06:09 +00:00
Chalard Jean
254bd168a3 Convert booleans in NAI to timestamps
These timestamps will be useful for debugging issues where
debuggers need to know what happened to long-lived networks,
where logcat doesn't span long enough.

These timestamps are also likely to be useful in the future,
in particular for metrics.

Test: FrameworksNetTests
Change-Id: I8f46ce92e2ab301fa32e18e714a43a4130719199
2022-09-01 18:37:01 +09:00
Chalard Jean
61525a57a0 Convert EthTrackTest from when() to doReturn()
Bug: 242671512
Test: FrameworksNetTests
Change-Id: I5f13ebe1c1e8e1ecd3d561cae8380ec12b31dc95
2022-09-01 18:02:12 +09:00
Motomu Utsumi
171c817072 Merge "Use IBpfMap type instead of BpfMap type" 2022-08-31 03:54:28 +00:00
Junyu Lai
1c685c1e97 Merge "[ST01] Attributes data usage of test network by specifier" 2022-08-30 05:50:40 +00:00
Aaron Huang
095438420c Fix settings show data usage with the uid of a removed package
When an app is removed, the stats still be included in
the persist snapshot in NetworkStatsFactory which
causes settings show the data usage with the uid of the
removed app. Thus, remove the stats of the removed
package from the persist snapshot when NetworkStatsService
receives ACTION_UID_REMOVED intent.

Bug: 239899930
Bug: 209360825
Test: FrameworksNetTests:NetworkStatsServiceTest
      FrameworksNetTests:NetworkStatsFactoryTest
Change-Id: I73cca367ac6bf0d2d29ef0a7d94500f1e6917dcb
2022-08-29 22:31:26 +08:00
Treehugger Robot
c6c4dc719f Merge "unit test of offernetwork and unoffernetwork" 2022-08-29 13:59:18 +00:00
Junyu Lai
c9f1ca62d9 [ST01] Attributes data usage of test network by specifier
Currently, data usage of all test networks are all attributed to
the same NetworkIdentity, which does not allow services to
distinguish upload & download traffic of different test networks.

Thus, this CL put specifier that comes along with
TestNetworkAgent into wifiNetworkKey field to build different
NetworkIdentity to attribute data usage to different for
individual networks. And allow querying test network usage with
wifiNetworkKeys.

Bug: 139774492
Test: atest FrameworksNetTests
      atest android.net.cts.ConnectivityManagerTest
Change-Id: I1bb38fd20781eaf3105735440a04b27bef36fcae
2022-08-29 13:55:08 +08:00
Aaron Huang
827dbd9277 Merge "Rename expect* methods that are used in NetworkStatsServiceTest" 2022-08-26 14:18:43 +00:00
Lucas Lin
e87c1e0187 Merge "Revert "Test if VPN app can grant ACTIVATE_PLATFORM_VPN with CON..."" 2022-08-25 05:41:01 +00:00
Patrick Rohr
f37e7c645b Merge changes Id6ae7929,I70474ef5,I4958df65,Ifc0e1ba2
* changes:
  ethernet: remove callback from factory updateInterfaceLinkState
  ethernet: updateConfiguration result should not rely on ip provisioning
  ethernet: remove callback boilerplate from EthernetNetworkFactory
  ethernet: add EthernetCallback class to wrap OutcomeReceiver
2022-08-24 17:45:04 +00:00
Motomu Utsumi
73599a5f5d Use IBpfMap type instead of BpfMap type
Currently, production code uses BpfMap type and TestBpfMap extends
BpfMap but this makes it diffcult to test because TestBpfMap loads the
JNI.

This CL updates to use IBpfMap type in the production code.
Upcoming CL updates TestBpfMap to implement IBpfMap instead of extending
BpfMap so that test can still use TestBpfMap but tests do not need to
load JNI.

Bug: 217624062
Test: atest BpfCoordinatorTest BpfNetMapsTest
Change-Id: Ie67e14bf5519fb4427474ecc0fda441877a9555f
2022-08-24 23:31:19 +09:00
Jean Chalard
38a01e080d Merge "Add tests for callback visibility" 2022-08-24 09:51:36 +00:00
Paul Hu
f37dfa3a11 Merge "Add null check for clientInfo" 2022-08-24 03:54:49 +00:00
Motomu Utsumi
9988869442 Merge changes from topic "cookie_tag_map_raw_dump"
* changes:
  Add option to dump cookieTagMap in base64 format
  Use BpfDump#fromBase64EncodedString
2022-08-24 03:16:53 +00:00
Chiachang Wang
cbe38b46a2 Merge "Decouple VpnManagerService from ConnectivityServiceTest" 2022-08-24 03:05:24 +00:00
Patrick Rohr
750036b286 ethernet: remove callback from factory updateInterfaceLinkState
updateInterfaceLinkState already returns true / false depending on the
success, so the EthernetCallback can be removed and sent from
EthernetTracker instead.

Test: atest EthernetManagerTest
Bug: 225317892
Change-Id: Id6ae7929097840ac5c9a4d244fdf669a06b94ed5
2022-08-23 13:07:57 -07:00
Treehugger Robot
6a8166cf5e Merge "Use PerUidCounter in the connectivity static library" 2022-08-23 18:25:03 +00:00
Patrick Rohr
ea5c6dd136 ethernet: updateConfiguration result should not rely on ip provisioning
In addition, the result should always be success if the new
configuration is stored. This allows updating interfaces that are not
currently registered with ethernet service.

Bug: 236312641
Test: atest EthernetManagerTest
Change-Id: I70474ef5f046c65a6f74161137e25debd8dfe612
2022-08-23 11:01:47 -07:00
Motomu Utsumi
405d676a08 Merge "Support java BpfMap in BpfNetMaps#swapActiveStatsMap" 2022-08-23 04:01:30 +00:00
Jean Chalard
595a98b352 Merge "Address comments on aosp/1781202" 2022-08-23 03:13:12 +00:00
Patrick Rohr
251f2fcf13 ethernet: add EthernetCallback class to wrap OutcomeReceiver
The OutcomeReceiver that gets passed into the EthernetServiceImpl is
hard to use (it is nullable and both onError and onResult can throw
RemoteExceptions).

Note: This is an intermediary state.
The next step will be to completely tear EthernetCallback out of
EthernetNetworkFactory, which will remove a lot of boilerplate code.

Bug: 225317892
Test: atest EthernetManagerTest
Change-Id: Ifc0e1ba29ded933c418e4b335cb731c3496d7e44
2022-08-22 12:10:27 -07:00
Motomu Utsumi
618b9b0fa0 Merge "Support java BpfMap in BpfNetMaps#setNetPermForUids" 2022-08-21 04:01:19 +00:00
Lucas Lin
d17c5ea7f0 Merge "Check if VpnConfig#allowBypass is set or not" 2022-08-19 09:13:35 +00:00
Aaron Huang
8509ef03a9 Rename expect* methods that are used in NetworkStatsServiceTest
These expect* methods are used to have NetworkStatsService
returns the given stats instead of expecting anything.
Therefore, give these methods more appropriate naming.

Bug: 236819091
Test: FrameworksNetTests:NetworkStatsServiceTest
Change-Id: Ife877dede5b8ac78001679792d7459764bbc38f0
2022-08-18 14:34:33 +08:00
lucaslin
03dcd7123f Check if VpnConfig#allowBypass is set or not
Bug: 242931436
Test: atest FrameworksNetTests:VpnTest
Change-Id: I00e28717b35ed8b024b1d44e0689392d924c18bf
2022-08-18 12:06:22 +08:00
Motomu Utsumi
e6120b409f Add option to dump cookieTagMap in base64 format
This is a preparation for testing SkDestroyListener that removes
cookieTagMap entry when socket is destroyed.

Bug: 217624062
Test: atest NetworkStatsServiceTest
Change-Id: Ia1091130101360e37557e6f00efe0f736134de05
2022-08-18 13:00:33 +09:00
Maciej Żenczykowski
22f0604474 Merge "fix clat on restricted networks" 2022-08-18 00:43:06 +00:00