Commit Graph

10913 Commits

Author SHA1 Message Date
Chiachang Wang
cf16fe22b9 Move BasicShellCommandHandler to frameworks/lib/modules-utils am: 62740141dc
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1483965

Change-Id: Ib2a99f1aeb31b89e69a5b313ca3774ba145dde33
2020-11-20 07:47:11 +00:00
Benedict Wong
117c387343 Merge "Expose MIN_MTU_V6 as a public, @hide constant" am: 3b0f85c921
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1505072

Change-Id: I9ef7cc8f84d6a9a49d754b39cc2bd66209d6343f
2020-11-20 01:38:30 +00:00
Lucas Lin
8f1d8528c8 Merge "Remove a comment from ConnectivityService" am: f0d6b60b9b
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1494040

Change-Id: I20fa62c5dbe2d1e8e9cce19a8fb9a932f21722f7
2020-11-20 01:34:29 +00:00
Benedict Wong
3b0f85c921 Merge "Expose MIN_MTU_V6 as a public, @hide constant" 2020-11-20 01:30:18 +00:00
Lucas Lin
f0d6b60b9b Merge "Remove a comment from ConnectivityService" 2020-11-20 01:10:21 +00:00
Sarah Chin
05dc875b8e Merge "Clarify documentation on TEMP_NOT_METERED API" am: b4b3693558
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1504954

Change-Id: I36d911d227ed4ac8e7b23f52036ff384977e2248
2020-11-19 18:02:28 +00:00
Sarah Chin
b4b3693558 Merge "Clarify documentation on TEMP_NOT_METERED API" 2020-11-19 17:50:35 +00:00
Lorenzo Colitti
d030251f42 Merge "Make MockVpn more realistic and easier to use." am: 8dd41ee6b3
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1501814

Change-Id: I6584e231913841dc218573dc586429cd720621a3
2020-11-19 10:42:04 +00:00
Lorenzo Colitti
23fa46ae09 Merge changes I3711b362,I49421183,Icc0701cb,I2f5ccc1d am: 63c1a59620
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1501951

Change-Id: I021b2719e8b6d76cbb64d979f1ce5f661a1a25a5
2020-11-19 10:37:25 +00:00
Lorenzo Colitti
8dd41ee6b3 Merge "Make MockVpn more realistic and easier to use." 2020-11-19 10:32:19 +00:00
Lorenzo Colitti
63c1a59620 Merge changes I3711b362,I49421183,Icc0701cb,I2f5ccc1d
* changes:
  Increase test coverage for VPN info sent to NetworkStatsService.
  Simplify MockVpn.
  Test a VPN with an underlying network that does not yet exist.
  Minor fixes to NetworkCapabilities#toString.
2020-11-19 10:20:00 +00:00
Sarah Chin
2cb619acfd Clarify documentation on TEMP_NOT_METERED API
Test: build
Bug: 165337240
Change-Id: Ifc0843b529e7a205b0e1caf98420adfc377c28e7
2020-11-19 01:15:48 -08:00
Benedict Wong
f3215117bc Expose MIN_MTU_V6 as a public, @hide constant
MIN_MTU_V6 is increasingly used, and the LinkProperties version is used
as a source of truth for the constant.

Bug: 163602123
Test: atest FrameworksNetTests
Change-Id: I67134cd4fb7e2cf59c36947b62f681ac9b94ea4a
2020-11-19 00:21:53 -08:00
lucaslin
5d358df3c7 Remove a comment from ConnectivityService
This comment is not true anymore since NetworkMonitor is not only
verifying the default network but also verifying VPN when private
DNS is enabled.

Test: Build pass.
Change-Id: Ib975aa28c84b9974a73d1baca9d5185c01b71217
2020-11-19 16:19:10 +08:00
Lorenzo Colitti
4489abdb15 Make MockVpn more realistic and easier to use.
MockVpn is very difficult to use because it requires the test
caller keeping track of both the MockVpn object and an
accompanying TestNetworkAgentWrapper.

It's also not very realistic: for example, connect() doesn't
actually connect anything, it just makes it so that if
ConnectivityService tries to update the capabilities, the attempt
will not be ignored. Also, unlike the real code in Vpn, it
connects with empty NetworkCapabilities (in particular, with
empty UID ranges).

Make this easier to use and a bit more realistic by:
- Allowing TestNetworkAgentWrapper to take a "NetworkCapabilities
  template" that will form the initial capabilities sent when the
  agent registers with ConnectivityService. This allows the VPN
  to register its agent with its UID ranges already set, like the
  production code does.
- Providing separate methods to register the NetworkAgent and
  mark it connected for cases where the test needs to make
  changes to the NetworkAgent before connecting (e.g., poking
  NetworkMonitor).
- Putting the TestNetworkAgentWrapper inside MockVpn and driving
  it through MockVpn's methods. In order not to have too many
  wrapper functions (and because we can't delegate like in
  Kotlin), there's still an agent() method that returns the
  TestNetworkAgentWrapper.

Bug: 173331190
Test: test-only change
Change-Id: I749ff325bc13ac96f512270b86d1f67686eec378
2020-11-19 16:23:07 +09:00
Lorenzo Colitti
e42d10a803 Increase test coverage for VPN info sent to NetworkStatsService.
Bug: 173331190
Test: test-only change
Change-Id: I3711b362f31cb92b759e9f5c9d244fb88d9bd5e7
2020-11-19 14:56:50 +09:00
Lorenzo Colitti
3581b34f69 Simplify MockVpn.
This CL removes four methods in MockVpn by slightly changing the
test code to leverage the actual methods implemented by the
(production) Vpn superclass.

This works because setting mInterface results in
isRunningLocked() returning true, which makes a number of methods
behave as if the VPN is connected (which is what the test
expects).

The more realistic behaviour exposes a minor bug in the treatment
of underlying networks. Add a TODO to fix it.

Bug: 173331190
Test: test-only change
Change-Id: I49421183538ba61ca790af71e309ece36b653bf9
2020-11-19 14:53:53 +09:00
Lorenzo Colitti
d00e0b8757 Test a VPN with an underlying network that does not yet exist.
This test checks that if a VPN declares an underlying network
that does not exist, the capabilities of that network are applied
to the VPN as soon as the network starts to exist.

Bug: 173331190
Test: test-only change
Change-Id: Icc0701cb4cea7d91f7738c1e426e94cd26686b74
2020-11-19 14:46:32 +09:00
Chiachang Wang
62740141dc Move BasicShellCommandHandler to frameworks/lib/modules-utils
BasicShellCommandHandler is used by mainline modules and the
framwork. There is a new repo that was created for putting
this kind of utility class. Move BasicShellCommandHandler for
the incoming ConnectivityService mainline and updating the
related usage.

Bug: 170598012
Test: m ; verify with adb shell cmd
Change-Id: I8a2873df6e7d8342b7a8b466bda155f74c807ee3
Merged-In: Ida30c877116090616d4bf3f87fdad835446dac84
2020-11-19 03:16:03 +00:00
Chiachang Wang
8e992f60d3 Merge "Replace InterfaceConfiguration usage with stable aidl" am: b823971656
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1488356

Change-Id: I7be60028fb07d0d6fcc65d110c2d198a85ff2b29
2020-11-18 09:14:35 +00:00
Chiachang Wang
b823971656 Merge "Replace InterfaceConfiguration usage with stable aidl" 2020-11-18 09:05:59 +00:00
Lorenzo Colitti
1ea1cda675 Minor fixes to NetworkCapabilities#toString.
1. The current code only prints the array of administrator UIDs
   if it's empty. This is clearly an oversight. Print it only if
   it's non-empty.
2. Only print requestor UID and package name if they are set.
   This makes output shorter in the common case that they are
   unset.
3. Reorder the output at the end: group all UIDs together, and
   place SSID and private DNS broken bit after that.
4. Make the private DNS broken indication a single word instead
   of a sentence. This saves space and makes it easier to write
   regexps.

New format:
... SignalStrength: -72 OwnerUid: 1000 AdminUids: [1000] SSID: ...
... Uid: 1000 RequestorUid: 1000 RequestorPkg: android ...

Test: manual
Change-Id: I2f5ccc1d9e4af6ddacc4d193185a17723822972b
2020-11-18 17:10:11 +09:00
Chiachang Wang
49ffc814eb Replace InterfaceConfiguration usage with stable aidl
Replace InterfaceConfiguration with InterfaceConfigurationParcel
for the incoming ConnectivityService mainline since mainline
modules could not use @hide API.

Bug: 170598012
Test: atest FrameworksNetTests
Change-Id: I17ce8741e985fd30e3c8f0c34e79564a82890dc6
2020-11-18 14:46:13 +08:00
Lucas Lin
7763d25d40 Merge "Separate 2 tests to verify canBeSatisfiedBy()" am: 459ad2aa4b
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1495268

Change-Id: I8b2d43d11570f90b1bfa23c27fccb592269b16c9
2020-11-17 09:22:34 +00:00
Lucas Lin
459ad2aa4b Merge "Separate 2 tests to verify canBeSatisfiedBy()" 2020-11-17 08:38:07 +00:00
Lucas Lin
a85fbb66d0 Merge "Fix the comments left on aosp/1481197" am: 90a764cd5b
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1494036

Change-Id: I7f13f380db5fe30e67be9cedc9429519b9fd4b6e
2020-11-17 07:47:54 +00:00
Lucas Lin
90a764cd5b Merge "Fix the comments left on aosp/1481197" 2020-11-17 07:06:46 +00:00
Junyu Lai
5e9cd697f2 Merge changes I6a48d4db,I6741c41c,Ifec6bde5,Icd0717c5 am: c6cd3d4f7b
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1490617

Change-Id: I5545dddcb5c8499ac9c53325cbafd424124429e1
2020-11-12 09:02:13 +00:00
Junyu Lai
c6cd3d4f7b Merge changes I6a48d4db,I6741c41c,Ifec6bde5,Icd0717c5
* changes:
  Remove unused variables
  Return offloaded traffic when querying from TrafficStats API
  Add hardware tethering traffic in testTethering test
  Remove unused getTetherStats
2020-11-12 08:45:15 +00:00
junyulai
3c4242ca5e Add hardware tethering traffic in testTethering test
Test: atest com.android.server.net.NetworkStatsServiceTest#testTethering
Bug: 162292214
Change-Id: Ifec6bde5fd3231f2135f12536c42e42ec6b707de
2020-11-12 14:22:31 +08:00
lucaslin
20f7c6e60d Separate 2 tests to verify canBeSatisfiedBy()
In Android R, NetworkSpecifier#satisfiedBy() has changed to
NetworkSpecifier#canBeSatisfiedBy(), but its subclass -
MatchAllNetworkSpecifier hasn't.
In Android S, both of MatchAllNetworkSpecifier and
NetworkSpecifier has changed satisfiedBy() to canBeSatisfiedBy().
So if running the latest CTS on R device, it will verify
NetworkSpecifier#canBeSatisfiedBy() instead of
MatchAllNetworkSpecifier#satisfiedBy() and get the unexpected
result.
The fix is to separate 2 tests to verify canBeSatisfiedBy(), one
is for Android R or older version and the other is for Android
S+.

Bug: 172401624
Test: Run MatchAllNetworkSpecifierTest on Android R and S.
Change-Id: I1391bae9a0fc0298beb8fe80b5f388b492244566
2020-11-12 12:48:16 +08:00
Chiachang Wang
c8ae2175f0 Merge "Replace the way to add legacy routing" am: 41da838f4d
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1490244

Change-Id: I6a278e3ae1ac4f5eaba92d28edf4a53d5381832e
2020-11-11 05:23:20 +00:00
Chiachang Wang
41da838f4d Merge "Replace the way to add legacy routing" 2020-11-11 05:06:58 +00:00
James Mattis
8975cb3a2c Merge "Updating network preference comments" am: 8806704457
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1490233

Change-Id: I99561b2d7673c5f5f45ac793c453b4f10bd663e1
2020-11-10 18:35:28 +00:00
James Mattis
8806704457 Merge "Updating network preference comments" 2020-11-10 17:30:36 +00:00
lucaslin
64945ac754 Fix the comments left on aosp/1481197
Bug: 172040168
Test: atest FrameworksNetTests
Test: Manual test NO_INTERNET, SIGN_IN, PARTIAL_CONNECTIVITY,
      VPN_ALWAYS_ON notifications.
Change-Id: Ibd05366481e6ddadf8b323335c2c35d40d340d0d
2020-11-10 14:54:52 +08:00
Chiachang Wang
6f95279de6 Replace the way to add legacy routing
ConnectivityService is going to become a mainline module which
is not able to access hidden API. Thus, replace the usage from
NMS to INetd.

Bug: 170598012
Test: atest FrameworksNetTests ConnectivityManagerLegacyTest
Change-Id: Ice1bd1effab26555917bc1766354aeaebd41ad66
2020-11-10 14:53:55 +08:00
Lucas Lin
c3516b2bdd Merge changes I67e5fa23,I223b207c am: 879f21b545
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1483969

Change-Id: I74209eccb2fd5473d65968f765f3eb54ee99954e
2020-11-10 05:47:18 +00:00
Lucas Lin
879f21b545 Merge changes I67e5fa23,I223b207c
* changes:
  Use hasIpv[4|6]DefaultRoute instead of hasIPv[4|6]DefaultRoute
  Use local defined constants for notification channels
2020-11-10 05:28:33 +00:00
James Mattis
82d1b93dfd Updating network preference comments
Updating comments for network preferences to better clarify that
preferences which include more than one network type will then rely on
scoring to determine which of those networks are chosen.

Bug: 171795464
Test: atest FrameworksNetTests
Change-Id: I9eb5683f2cd69281bbee9fb70028d45f07720914
2020-11-09 21:06:09 -08:00
Mathew Inwood
67b0ad1865 Merge "Add maxTargetSdk restriction to unused APIs." am: 8b7da06e85
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1468245

Change-Id: I35f65987f7f9287cf03418e9feb27c81f4fd1878
2020-11-09 15:09:11 +00:00
Mathew Inwood
8b7da06e85 Merge "Add maxTargetSdk restriction to unused APIs." 2020-11-09 14:41:20 +00:00
James Mattis
27019738f1 Merge "Adding API stubs for application network routing" am: 20a9e59e25
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1478963

Change-Id: I293192102c800a9dd8f09c32f890728e802cc965
2020-11-06 17:32:56 +00:00
junyulai
363c86274e Remove unused getTetherStats
Before Android R, getTetherStats were used to collect tethering
iface stats of all clients who extends ITetheringStatsProvider,
which typically contains NetdTetheringStatsProvider and
OffloadController.

However, this always returns 0 since Android R, because:
  1. OffloadController implemented NetworkStatsProvider and no
     longer reports stats through getTetherStats.
  2. NetdTetheringStatsProvider always return 0 by design since
     non-offloaded iface tethering stats are already included
     in native iface stats.

This change is a no-op refactoring to remove unused
getTetherStats and update test which is not pratical.
Fix for offloaded tethering stats will be in follow-up CLs.

Test: atest FrameworksNetTests TetheringTests
Bug: 162292214
Change-Id: Icd0717c5c2807ae3bd98626b897e4b148f142815
2020-11-06 19:02:44 +08:00
James Mattis
356a879404 Adding API stubs for application network routing
Bug: 171795464
Test: atest FrameworksNetTests
Change-Id: Ib055aa37a7bf0c48c335307afc2258aa869c4267
2020-11-06 00:08:13 -08:00
James Mattis
3f92c436d3 Merge "Adding multilayered requests to NetworkRequestInfo" am: f2c37de2ba
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1486199

Change-Id: I57d85884e4bf6039cf645ed58e2c7b0c8fd404a2
2020-11-06 05:19:47 +00:00
James Mattis
60b84b216b Adding multilayered requests to NetworkRequestInfo
Updating NetworkRequestInfo for "multilayered requests" functionality so that
requests can support a network hierarchy. I.e., requests network
with capability A first and if not available, request network with
capability B. This CL is the first step in adding that support by
updating the request object from a single request to a collection.

Bug: 171991028
Test: atest FrameworksNetTests
atest NetworkStackTests
atest FrameworksNetIntegrationTests
atest NetworkStackIntegrationTests
atest CtsNetTestCasesLatestSdk

Change-Id: I64a124802986e4cf4aa7de158c6690fdf9851cb2
2020-11-05 13:55:50 -08:00
Paul Hu
1d8f82be44 Merge "Replace Context @hide APIs" am: 9869d309a6
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1458063

Change-Id: I914ee12abdcba7c53fb868425592d6458a797e23
2020-11-05 08:53:01 +00:00
Paul Hu
e0c53d6fe1 Merge "Replace AppOpsManager @hide APIs" am: 55f45703ad
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1469126

Change-Id: I6222db7e8f966d7df17de9c46b5e26e715ecccf2
2020-11-05 08:45:52 +00:00
Paul Hu
9869d309a6 Merge "Replace Context @hide APIs" 2020-11-05 08:05:09 +00:00