testTetherBpfOffloadUdpV4: disable on S/Sv2 with old DnsResolver
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 <maze@google.com>
Change-Id: I95020580655f8ff6b1e8c26bc3f26b4823716dd5
diff --git a/Tethering/tests/integration/src/android/net/EthernetTetheringTest.java b/Tethering/tests/integration/src/android/net/EthernetTetheringTest.java
index 5c8d347..3a5728e 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.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.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 @@
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 void testTetherBpfOffloadUdpV4() throws Exception {
assumeTrue("Tethering config disabled BPF offload", isTetherConfigBpfOffloadEnabled());
assumeKernelSupportBpfOffloadUdpV4();
+ assumeTrue("Mainline NetBpfLoad not available", isNetBpfLoadEnabled());
runUdp4Test();
}