Commit Graph

42925 Commits

Author SHA1 Message Date
Hungming Chen
5dbbd2f132 Refactor the offload permission check and add tests am: b344870ea0
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1803422

Change-Id: I857de882e6f613d3bf57d271532f761be10bf988
2021-08-27 05:02:15 +00:00
Hungming Chen
b344870ea0 Refactor the offload permission check and add tests
- Rename the conntrack destination port check function
- Use CollectionUtils.contains to check the denied ports
- Add tests for the streams with ftp and pptp tcp port are
  not able to be offloaded

Bug: 195914327
Test: atest TetheringCoverageTests
Change-Id: I7e2591bea1f6db46271efb0c30970fb8d4efe1e4
2021-08-26 21:21:05 +08:00
Orion Hodson
89213602ee Merge "Fix IpSecAlgorithmTest on S" am: 0084591e94
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1806806

Change-Id: I152aaf741e474f9cf6d39a86be9ff4800a83b1b4
2021-08-26 07:59:21 +00:00
Orion Hodson
0084591e94 Merge "Fix IpSecAlgorithmTest on S" 2021-08-26 07:47:33 +00:00
Remi NGUYEN VAN
ae7508f9b5 Fix IpSecAlgorithmTest on S
The test may be run on S builds older than itself, in which case the
resource ID may not match. Query the resource ID dynamically instead of
using the constant.

IpSecAlgorithm is not updatable in S, which is why it can use
hidden/unstable platform resources, so the test could also be skipped
altogether on S. But considering that keeping it around is not very
costly yet, this change fixes it for running on S.

Bug: 197489543
Test: atest IpSecAlgorithmTest
Change-Id: I533eede3a360a8db9089e65e017b9d7453b35539
2021-08-25 18:10:22 +09:00
Maciej Żenczykowski
e953144055 Merge "Tethering/bpf_progs/offload - replace all TC_ACT_OK with TC_ACT_PIPE" am: dc8388ca08
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1807971

Change-Id: Iad650917305d67b799d059e4b285af5fd3f54709
2021-08-25 07:37:55 +00:00
Maciej Żenczykowski
dc8388ca08 Merge "Tethering/bpf_progs/offload - replace all TC_ACT_OK with TC_ACT_PIPE" 2021-08-25 07:19:28 +00:00
Maciej Żenczykowski
6e66a36367 Tethering/bpf_progs/offload - replace all TC_ACT_OK with TC_ACT_PIPE
The correct return code to keep on processing any further TC
attached programs is 'TC_ACT_PIPE' and not 'TC_ACT_OK' (which
is terminal).

Without this the ipv6 tether offload program causes termination
of processing and the ipv6 clatd offload program never actually
handles any packets (while tethering is active).

This results in lack of bpf xlat64 offloading for tethered ipv4
traffic on an ipv6-only (cellular) network.

This in turn means incoming TCP packets get GRO'ed, do not get
bpf offloaded, and get delivered to the clat daemon, which
due to them being bigger than the mtu (due to gro) cannot
handle them and discards them.

This results in poor performance, since tcp falls back to 1 mss/mtu
sized packet per rtt.

Tested via tethering a linux laptop on an ipv6-only cellular connection
and downloading the linux kernel from kernel.org via 'wget -6' and 'wget -4'.
Before:
  IPv6: over 2MB/s, observed:
    5805 packets, including 4 sackOK
  IPv4: under 1MB/s, observed:
    9300 packets, including 8 sackOK, 387 sack 1, 501 sack 2, 2310 sack 3
After:
  IPv6: over 7MB/s, observed:
    16702 packets, including 4 sackOK
  IPv4: over 9MB/s, observed:
    32755 packets, including 2 sackOK

Test: builds, TreeHugger, see above
Bug: 195624908
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I623dacb5a37dc689cea34499c3906c11fcaf946c
2021-08-24 23:24:19 +00:00
Lorenzo Colitti
c1256c4cf3 Give EthernetTetheringTest the restricted networks permission. am: 8fbadf4ac5
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1807157

Change-Id: I13defb1e00586393e91ca19100cf437482a64090
2021-08-24 08:54:53 +00:00
Lorenzo Colitti
8fbadf4ac5 Give EthernetTetheringTest the restricted networks permission.
This test fails on devices where physical Ethernet interfaces are
available but marked restricted, like cuttlefish.

Bug: 197462993
Test: test-only change
Change-Id: I15c991b2e43e2d5e823dcdcfbd74adfd9b2f6f08
2021-08-24 15:18:54 +09:00
Chalard Jean
72ed43d6dc Merge "Fix an infinite loop with network offers" am: 77992bbfbb
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1800007

Change-Id: I1fe463232308fbc73753dc8d19f269142f6f8776
2021-08-20 06:39:30 +00:00
Chalard Jean
77992bbfbb Merge "Fix an infinite loop with network offers" 2021-08-20 06:17:31 +00:00
Lorenzo Colitti
b6ea38e832 Merge "bpf: don't offload IPv4 packets with TCP port 21 (ftp) and 1723 (pptp)" am: ad8fb7fce4
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1802476

Change-Id: I2ca694a0154b3043092890cfd272e7b86cca3fb5
2021-08-20 03:39:28 +00:00
Lorenzo Colitti
ad8fb7fce4 Merge "bpf: don't offload IPv4 packets with TCP port 21 (ftp) and 1723 (pptp)" 2021-08-20 03:24:09 +00:00
Hungming Chen
bc85178435 bpf: don't offload IPv4 packets with TCP port 21 (ftp) and 1723 (pptp)
Bypass the IPv4 TCP packets with port 21 (ftp) and 1723 (pptp) from
BPF offload because these packets need the netfilter conntrack helper.

Bug: 195914327
Test: manual test as the follows
1. Connect to ftp.slackware.com with port 21 in active mode.
2. Check the PORT command success.
   Command:  PORT 192,168,62,128,174,17
   Response: 200 PORT command successful.
3. Download a file.

Change-Id: I8e3b8d9323eb0e572f20c74442b55d4ee95abc2f
2021-08-19 14:29:25 +00:00
Chalard Jean
bb902a5fee Fix an infinite loop with network offers
When the avoidBadWifi configuration is false and not overridden,
a WiFi network that was validated in the past but becomes
unvalidated needs to outscore a cell network that is validated.
This is happening correctly when the stack compares two networks.
However, when the stack compares an existing network to an offer
for a cellular network, the offer was automatically considered
not to yield. This would mean the stack would be requesting cell
out of the telephony factory, only for that network to lose to
WiFi and be discarded immediately, then recreated again etc.

When there is some other reason cell should be up (such as the
"mobile always on" setting being active), this would not be
visible because the cell network would have another reason not
to be torn down.

Have offers correctly account for the current value of the
configuration and setting. This has the ranking of the offer
lose against WiFi like the actual network loses, meaning the
offer is not needed.

This also requires updating the offers whenever the value of
the setting changes.

Test: new test for this, also ConnectivityServiceTest
Bug: 195441367
Change-Id: I4fe5de98bc15bcf9bbbe25c6c7c8a7ba382f8db7
2021-08-19 22:53:41 +09:00
Aaron Huang
d347dad799 Merge "Bypass cellular battery stats test if telephony is not supported" am: 1c603e7ec3
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1796589

Change-Id: I2e10702cee72d81da0564fb29f5fcddc465775c9
2021-08-19 05:54:28 +00:00
Aaron Huang
1c603e7ec3 Merge "Bypass cellular battery stats test if telephony is not supported" 2021-08-19 05:37:59 +00:00
Aaron Huang
171905cb5f [automerger skipped] Merge "Skip wifi stats test if link layer stats is not supported" am: cf79fcba3b -s ours
am skip reason: Merged-In I592dd5f1d6e13b020beadb11b9d913857a82e524 with SHA-1 58b493abf6 is already in history

Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1796372

Change-Id: Ie00207c8598911d6d4af814909bbd74ff209edc2
2021-08-19 03:36:54 +00:00
Aaron Huang
cf79fcba3b Merge "Skip wifi stats test if link layer stats is not supported" 2021-08-19 03:23:22 +00:00
Xin Li
e534ce4c55 Merge "Merge sc-dev-plus-aosp-without-vendor@7634622" into stage-aosp-master 2021-08-17 18:15:09 +00:00
Aaron Huang
1e49ed0e84 Bypass cellular battery stats test if telephony is not supported
This test requires a cell network so the test will be failed if
the device does not support telephony. Add a condition to check
if the device supports telephony and skip cellular battery stats
test if telephony is not supported.

Bug: 196231205
Test: atest CtsNetTestCases:BatteryStatsManagerTest
Change-Id: I9ddc1da2a3f83f3fd2ab59059185f2f7a8d08701
2021-08-17 07:13:16 +00:00
Aaron Huang
114a5b2fd3 Skip wifi stats test if link layer stats is not supported
Wifi link layer is an optional feature so this test will be
failed on wifi stats check if a device does not support it.
Add a check to know if the  device supports wifi link layer
stats and skip it if it is not supported.

Bug: 195518957
Test: CtsNetTestCases:BatteryStatsManagerTest
Change-Id: I592dd5f1d6e13b020beadb11b9d913857a82e524
Merged-In: I592dd5f1d6e13b020beadb11b9d913857a82e524
2021-08-17 07:12:54 +00:00
Remi NGUYEN VAN
6180b47f92 Merge "Fix NetworkCapabilities MTS on S, CTS on S+module" am: 7262180c07
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1796369

Change-Id: Id701a83c714eba3d8f56401c6bb8c91a02687d27
2021-08-17 02:54:25 +00:00
Remi NGUYEN VAN
7262180c07 Merge "Fix NetworkCapabilities MTS on S, CTS on S+module" 2021-08-17 02:34:44 +00:00
Treehugger Robot
eabf1851e8 Merge "Add a unit test for a bug in registerDefaultNetworkCallback." am: b8178678df
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1796367

Change-Id: I409ec9838a208647604d8975135bb408ae54c575
2021-08-17 01:47:05 +00:00
Treehugger Robot
b8178678df Merge "Add a unit test for a bug in registerDefaultNetworkCallback." 2021-08-17 01:32:39 +00:00
Lorenzo Colitti
bbadec37d2 Add a unit test for a bug in registerDefaultNetworkCallback.
Currently, when a VPN app calls registerDefaultNetworkCallback,
it will always get its own VPN, even if the VPN app called
VpnService.Builder#addDisallowedApplication to take itself out
of the VPN's UID ranges.

Add a test for the current incorrect behaviour.

Also fix an indentation error elsewhere.

Bug: 195265065
Test: test-only change
Change-Id: Id9648ea71fc7ae10855aa311beeb7975569d17f2
2021-08-17 01:36:54 +09:00
Treehugger Robot
56ee46f814 Merge "Fix ConnectivityDiagnosticsManagerTest for MTS" am: 3d45c4e432
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1793509

Change-Id: I18e5cc4fc8f5174682164911844d9d961948f937
2021-08-16 11:00:54 +00:00
Treehugger Robot
3d45c4e432 Merge "Fix ConnectivityDiagnosticsManagerTest for MTS" 2021-08-16 10:51:19 +00:00
Treehugger Robot
79b4f30495 Merge "Fix a flake in ConnectivityDiagnostics" am: 1ac3e27399
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1796368

Change-Id: If68391d8131cb0d64fe7bfcfdea192fadc24d1cf
2021-08-16 09:12:48 +00:00
Remi NGUYEN VAN
5b8e2e9935 Fix NetworkCapabilities MTS on S, CTS on S+module
restrictCapabilitiesForTestNetwork was renamed after S release to be
included in a mainline release, but this causes the MTS test to fail on
S if the Connectivity module is not updated, and CTS to fail if the
connectivity module is updated.

Mark the test as @ConnectivityModuleTest so it can be skipped on
non-connectivity module MTS tests (such as NetworkStack tests), and add
back the previous method name to keep CTS passing.

Bug: 196755836
Test: atest NetworkCapabilitiesTest
Change-Id: Ibd6c2e62e5949ec6d93e9f6e4fc05129c29b94f8
2021-08-16 18:03:37 +09:00
Treehugger Robot
1ac3e27399 Merge "Fix a flake in ConnectivityDiagnostics" 2021-08-16 09:01:58 +00:00
Chalard Jean
4da146bd2f Fix a flake in ConnectivityDiagnostics
Bug: none
Test: ConnectivityServiceTest
Change-Id: I9242226be976e7c346addcbaf7e2b0154a3829f7
2021-08-16 16:05:06 +09:00
Treehugger Robot
48181ab964 Merge "Remove unused directories in Connectivity" am: 381ea1f1b1
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1793470

Change-Id: I2d9d147016b4fc4060a4b04b75a4a00c10876847
2021-08-16 06:57:16 +00:00
Treehugger Robot
381ea1f1b1 Merge "Remove unused directories in Connectivity" 2021-08-16 06:43:07 +00:00
Xin Li
3ec4468fb7 Merge sc-dev-plus-aosp-without-vendor@7634622
Merged-In: I5a33f959c8ae5a34584f57508f392038e44062e7
Change-Id: Ib4e5e75ee8bbe19806bdc2f69590d164fb75774b
2021-08-14 06:31:05 +00:00
Benedict Wong
5c5ff18089 Merge "Prevent NPEs when registering/unregistering ConnDiags CBs." am: 5805d3cfd2
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1761210

Change-Id: I0b39f045a4f0b51b278bf182ce36fbcf9c7fb8ca
2021-08-12 20:46:41 +00:00
Benedict Wong
5805d3cfd2 Merge "Prevent NPEs when registering/unregistering ConnDiags CBs." 2021-08-12 20:35:39 +00:00
markchien
682e38c9e8 Use SdkLevel util instead of explicitly checking the version am: 932df54493
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1793481

Change-Id: I3e3670e2f4c11901a8d3dbbb31f2b277b255d0b6
2021-08-12 14:07:29 +00:00
markchien
932df54493 Use SdkLevel util instead of explicitly checking the version
There are IpServerTest test case fail because the code check the wrong
code name for T pre-release builds.

Bug: 194812819
Test: atest TetheringTests

Change-Id: I73bf58c60b6e790fe0060b60c023c10f5d8cbfa8
2021-08-12 07:08:34 +00:00
Chiachang Wang
b266811ecf Merge "The net cap value should be bit shifted before &ing" am: 43dd35b6fc
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1790357

Change-Id: I0f62958c27de0e3b87b57012a75cc38c2a3ae692
2021-08-12 05:31:28 +00:00
Chiachang Wang
43dd35b6fc Merge "The net cap value should be bit shifted before &ing" 2021-08-12 05:12:19 +00:00
Remi NGUYEN VAN
61eb78e1ee Merge "Mock connectivity resources in integration tests" am: d21f0426e7
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1785907

Change-Id: I66252bef31ecb412b5e44ff95711ce8eba3e55e8
2021-08-12 04:26:18 +00:00
Remi NGUYEN VAN
d21f0426e7 Merge "Mock connectivity resources in integration tests" 2021-08-12 04:13:57 +00:00
Remi NGUYEN VAN
b2d47200c7 Remove unused directories in Connectivity
The directories were imported by mistake from old git log in the
frameworks/base repository, and are unused.

Bug: 192995539
Test: m
Merged-In: I0d4bd06e79adedbf582d2fed551d9f1bde521fd1
Merged-In: Ie3a058b904cb2e3704c3a0725c8f720f81bb235e
Change-Id: Ic3ed5d6d25fd87b136d9ae359e7444c4b1289744
2021-08-12 10:15:10 +09:00
Remi NGUYEN VAN
7b2e5fe68e Fix ConnectivityDiagnosticsManagerTest for MTS
When run as part of NetworkStack MTS, ConnectivityDiagnosticsManagerTest
may fail as it verifies behavior that is only present will the latest
tethering (connectivity) module installed.

There is no guarantee that connectivity will be up-to-date for a given
NetworkStack version, especially considering that on R->S device upgrade
NetworkStack is likely to have been updated, but connectivity will be
the factory version. Therefore NetworkStack tests need to cover devices
that do not have an up-to-date connectivity module.

Fix the test by observing that at least on T both module will have newer
behavior. On S, accept both factory and updated behavior.

Bug: 195727283
Test: atest ConnectivityDiagnosticsManagerTest
Change-Id: Ifc0b09c884419d28817cfe619940c979ee1b0b9e
2021-08-11 21:31:37 +09:00
Chiachang Wang
c07315aa08 The net cap value should be bit shifted before &ing
The check intends to do the bit & operation. The net cap value
should be shifted against the original capabilities.

Also fix the typo in the method name.

Bug: 191918212
Test: atest FrameworksNetTests
Change-Id: I98396b2538f36fe8b29d27a544a2dfb3060bc9c5
2021-08-11 14:55:00 +08:00
Aaron Huang
17bc178920 Merge "Skip wifi stats test if link layer stats is not supported" into sc-dev am: 9ac9c1d575
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/15479880

Change-Id: I5a33f959c8ae5a34584f57508f392038e44062e7
2021-08-11 03:51:12 +00:00
Aaron Huang
9ac9c1d575 Merge "Skip wifi stats test if link layer stats is not supported" into sc-dev 2021-08-11 03:33:53 +00:00