From 380f5bab86164976ecdaff30dbb9e53dff22a519 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C5=A0tetiar?= Date: Fri, 17 Jan 2025 10:09:38 +0000 Subject: [PATCH] PROVISORY: ci: cdrouter: OSPv1: workaround EAPOL 4-way handshake instability by disabling wifi_10 test MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We have been running CDRouter wireless tests on the 2.4GHz band, using default settings except for changing the SSID to prplOS-2g-6 and channel to 6. In multiple test loops, the majority of observed failures occur specifically in CDRouter’s wifi_10 test when running on the OSPv1 board. Removing the wifi_10 test, however, leads to near 100% passing results, indicating that the issue is specifically tied to how the AP handles the 4-way EAPOL handshake under wifi_10. Packet captures and hostapd logs suggest the AP resets its handshake state machine prematurely, returning to PTKSTART and eventually causing deauthentication (reason code 15). This breaks the test procedure and leads to a high failure rate on OSPv1. Analysis shows that other boards (e.g., MXL25641-HDK-6, Haze, Freedom) do not exhibit the same level of instability. For OSPv1 (URX851-HDK-3), the failure rate can reach about 40-78% during wifi_10 runs. Removing wifi_10 reduces failures drastically. Until the root cause in the EAPOL 4-way handshake process is identified and resolved, we will remove the wifi_10 test from the test suite. Doing so mitigates the frequent failures and allows the rest of the suite to execute reliably. References: PCF-1586 Signed-off-by: Petr Štetiar --- .gitlab/cdrouter/urx851-hdk-3.yml | 2 +- .../packages/CDRouter-Wireless-OSPv1.gz | Bin 0 -> 17907 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 .testbed/cdrouter/packages/CDRouter-Wireless-OSPv1.gz diff --git a/.gitlab/cdrouter/urx851-hdk-3.yml b/.gitlab/cdrouter/urx851-hdk-3.yml index 3dafa426ff..7383634e5a 100644 --- a/.gitlab/cdrouter/urx851-hdk-3.yml +++ b/.gitlab/cdrouter/urx851-hdk-3.yml @@ -31,7 +31,7 @@ CDRouter-Top-100+mDNS-OSP URX851-HDK-3 PPPoE WAN eMMC: .gitlab/scripts/dut-init/cdrouter-dut-configure-dyndns.sh .gitlab/scripts/dut-init/cdrouter-dut-enable-pppoe.sh -CDRouter-Wireless URX851-HDK-3 eMMC: +CDRouter-Wireless-OSPv1 URX851-HDK-3 eMMC: <<: *urx851_cdrouter variables: CDROUTER_TEST_CONFIG: wireless diff --git a/.testbed/cdrouter/packages/CDRouter-Wireless-OSPv1.gz b/.testbed/cdrouter/packages/CDRouter-Wireless-OSPv1.gz new file mode 100644 index 0000000000000000000000000000000000000000..2f89d4e245e491ef4b0d945c1c1263c957e10f4c GIT binary patch literal 17907 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 F004o{e|G=? literal 0 HcmV?d00001