From bf2c4986427711ba71c0eb6bcaa4fc5f10f34dd0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20=C5=BBenczykowski?= Date: Mon, 10 Mar 2025 13:57:07 -0700 Subject: [PATCH] testTetherBpfOffloadUdpV4: disable on S/Sv2 with old DnsResolver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This mirrors the bpf_existence_test check: https://source.corp.google.com/h/android/platform/superproject/main/+/main:packages/modules/Connectivity/bpf/tests/mts/bpf_existence_test.cpp;drc=0b477491fb95c04d908ef83d683c42db9102cf40;l=203 Bug: 401312619 Test: TreeHugger, atest EthernetTetheringTest Signed-off-by: Maciej Żenczykowski Change-Id: I95020580655f8ff6b1e8c26bc3f26b4823716dd5 --- .../src/android/net/EthernetTetheringTest.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Tethering/tests/integration/src/android/net/EthernetTetheringTest.java b/Tethering/tests/integration/src/android/net/EthernetTetheringTest.java index 5c8d347164..3a5728ecf8 100644 --- a/Tethering/tests/integration/src/android/net/EthernetTetheringTest.java +++ b/Tethering/tests/integration/src/android/net/EthernetTetheringTest.java @@ -64,6 +64,7 @@ import androidx.annotation.Nullable; import androidx.test.filters.LargeTest; import androidx.test.runner.AndroidJUnit4; +import com.android.modules.utils.build.SdkLevel; import com.android.net.module.util.BpfDump; import com.android.net.module.util.Ipv6Utils; import com.android.net.module.util.Struct; @@ -89,6 +90,7 @@ import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; +import java.io.File; import java.io.FileDescriptor; import java.net.Inet4Address; import java.net.Inet6Address; @@ -1051,6 +1053,16 @@ public class EthernetTetheringTest extends EthernetTetheringTestBase { assertEquals(0, statsValue.txErrors); } + // on S/Sv2 without a new enough DnsResolver apex, NetBpfLoad does not + // get triggered, and thus no mainline programs get loaded. + private boolean isNetBpfLoadEnabled() { + if (SdkLevel.isAtLeastT()) return true; + if (!SdkLevel.isAtLeastS()) return false; + + File f = new File("/apex/com.android.resolv/NetBpfLoad-S.flag"); + return f.isFile(); + } + /** * BPF offload IPv4 UDP tethering test. Verify that UDP tethered packets are offloaded by BPF. * Minimum test requirement: @@ -1065,6 +1077,7 @@ public class EthernetTetheringTest extends EthernetTetheringTestBase { public void testTetherBpfOffloadUdpV4() throws Exception { assumeTrue("Tethering config disabled BPF offload", isTetherConfigBpfOffloadEnabled()); assumeKernelSupportBpfOffloadUdpV4(); + assumeTrue("Mainline NetBpfLoad not available", isNetBpfLoadEnabled()); runUdp4Test(); }