Merge "Test testTetherUdpV4AfterR only verify bpf in precise kernel range" am: 875daa69eb
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/2108068 Change-Id: I12bad86d8a0ea584527eeebfdf823573fa0c6f98 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -36,9 +36,11 @@ import static com.android.net.module.util.HexDump.dumpHexString;
|
|||||||
import static com.android.net.module.util.NetworkStackConstants.ETHER_TYPE_IPV4;
|
import static com.android.net.module.util.NetworkStackConstants.ETHER_TYPE_IPV4;
|
||||||
import static com.android.net.module.util.NetworkStackConstants.ETHER_TYPE_IPV6;
|
import static com.android.net.module.util.NetworkStackConstants.ETHER_TYPE_IPV6;
|
||||||
import static com.android.net.module.util.NetworkStackConstants.ICMPV6_ROUTER_ADVERTISEMENT;
|
import static com.android.net.module.util.NetworkStackConstants.ICMPV6_ROUTER_ADVERTISEMENT;
|
||||||
|
import static com.android.testutils.DeviceInfoUtils.KVersion;
|
||||||
import static com.android.testutils.TestNetworkTrackerKt.initTestNetwork;
|
import static com.android.testutils.TestNetworkTrackerKt.initTestNetwork;
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
|
import static org.junit.Assert.assertFalse;
|
||||||
import static org.junit.Assert.assertNotNull;
|
import static org.junit.Assert.assertNotNull;
|
||||||
import static org.junit.Assert.assertNull;
|
import static org.junit.Assert.assertNull;
|
||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
@@ -1067,23 +1069,43 @@ public class EthernetTetheringTest {
|
|||||||
false /* usingBpf */);
|
false /* usingBpf */);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static boolean isUdpOffloadSupportedByKernel() {
|
private static boolean isUdpOffloadSupportedByKernel(final String kernelVersion) {
|
||||||
final String kVersionString = VintfRuntimeInfo.getKernelVersion();
|
final KVersion current = DeviceInfoUtils.getMajorMinorSubminorVersion(kernelVersion);
|
||||||
// Kernel version which is older than 4.14 doesn't support UDP offload absolutely. Kernel
|
return current.isInRange(new KVersion(4, 14, 222), new KVersion(4, 19, 0))
|
||||||
// version which is between 4.14 and 5.8 support UDP offload probably. Simply apply kernel
|
|| current.isInRange(new KVersion(4, 19, 176), new KVersion(5, 4, 0))
|
||||||
// 4.14 to be threshold first and monitor on what devices tests fail for improving the
|
|| current.isAtLeast(new KVersion(5, 4, 98));
|
||||||
// offload support checking.
|
|
||||||
return DeviceInfoUtils.compareMajorMinorVersion(kVersionString, "4.14") >= 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testIsUdpOffloadSupportedByKernel() throws Exception {
|
||||||
|
assertFalse(isUdpOffloadSupportedByKernel("4.14.221"));
|
||||||
|
assertTrue(isUdpOffloadSupportedByKernel("4.14.222"));
|
||||||
|
assertTrue(isUdpOffloadSupportedByKernel("4.16.0"));
|
||||||
|
assertTrue(isUdpOffloadSupportedByKernel("4.18.0"));
|
||||||
|
assertFalse(isUdpOffloadSupportedByKernel("4.19.0"));
|
||||||
|
|
||||||
|
assertFalse(isUdpOffloadSupportedByKernel("4.19.175"));
|
||||||
|
assertTrue(isUdpOffloadSupportedByKernel("4.19.176"));
|
||||||
|
assertTrue(isUdpOffloadSupportedByKernel("5.2.0"));
|
||||||
|
assertTrue(isUdpOffloadSupportedByKernel("5.3.0"));
|
||||||
|
assertFalse(isUdpOffloadSupportedByKernel("5.4.0"));
|
||||||
|
|
||||||
|
assertFalse(isUdpOffloadSupportedByKernel("5.4.97"));
|
||||||
|
assertTrue(isUdpOffloadSupportedByKernel("5.4.98"));
|
||||||
|
assertTrue(isUdpOffloadSupportedByKernel("5.10.0"));
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: refactor test testTetherUdpV4* into IPv4 UDP non-offload and offload tests.
|
||||||
|
// That can be easier to know which feature is verified from test results.
|
||||||
@Test
|
@Test
|
||||||
@IgnoreUpTo(Build.VERSION_CODES.R)
|
@IgnoreUpTo(Build.VERSION_CODES.R)
|
||||||
public void testTetherUdpV4AfterR() throws Exception {
|
public void testTetherUdpV4AfterR() throws Exception {
|
||||||
initializeTethering();
|
initializeTethering();
|
||||||
boolean usingBpf = isUdpOffloadSupportedByKernel();
|
final String kernelVersion = VintfRuntimeInfo.getKernelVersion();
|
||||||
|
boolean usingBpf = isUdpOffloadSupportedByKernel(kernelVersion);
|
||||||
if (!usingBpf) {
|
if (!usingBpf) {
|
||||||
Log.i(TAG, "testTetherUdpV4AfterR will skip BPF offload test for kernel "
|
Log.i(TAG, "testTetherUdpV4AfterR will skip BPF offload test for kernel "
|
||||||
+ VintfRuntimeInfo.getKernelVersion());
|
+ kernelVersion);
|
||||||
}
|
}
|
||||||
runUdp4Test(new TetheringTester(mDownstreamReader), new RemoteResponder(mUpstreamReader),
|
runUdp4Test(new TetheringTester(mDownstreamReader), new RemoteResponder(mUpstreamReader),
|
||||||
usingBpf);
|
usingBpf);
|
||||||
|
|||||||
Reference in New Issue
Block a user