Skip to content

Conversation

@smuppand
Copy link
Contributor

Flaky first-attempt network bring-ups (esp. Wi-Fi) caused intermittent failures in tests that fetch media or artifacts. This PR strengthens ensure_network_online in utils/functestlib.sh with bounded retries, better Ethernet/Wi-Fi sequencing, and an automatic fallback from nmcli to wpa_supplicant when needed—while preserving existing tri-state return semantics.

What changed

  • Fast-path: If already online, return immediately and sync clock via ensure_reasonable_clock.

Ethernet first:

  • Snapshot interface state → link check → bringup_interface → run_dhcp_client/try_dhcp_client_safe.
  • Re-check connectivity and classify: 0=online, 2=has IP but no internet, 1=no IP.

Wi-Fi with bounded retries:

  • Detect iface via get_wifi_interface; bring up iface.
  • Obtain creds via get_wifi_credentials when available.
  • Attempt nmcli association; if still offline, fallback to wpa_supplicant + DHCP`.
  • Re-check connectivity and classify as above.

udhcpc repair path (if ensure_udhcpc_script is available): refresh leases/routes/DNS, then re-check.

Return codes preserved: 0 online, 2 IP but no internet, 1 offline.

No new globals; logs are structured ([NET] …) and CI-friendly.

Deprecates the need for a separate wifi_connect_with_retry helper (can remain as a thin shim for legacy callers).

… nmcli→wpa_supplicant fallback

This change hardens connectivity bring-up for flaky first-attempt failures:
- Keep fast-path: return immediately if already online; sync clock when ok.
- Ethernet first: link check, interface bring-up, DHCP, status triage (0/2/1).
- Wi-Fi path adds bounded retries with cooldowns and cleanup between tries.
- Prefer nmcli; on failure, fall back to wpa_supplicant + DHCP automatically.
- Refresh udhcpc default.script if present to repair route/DNS, then recheck.
- Preserve tri-state semantics: 0=online, 2=IP but no internet, 1=offline.

Signed-off-by: Srikanth Muppandam <[email protected]>
@smuppand smuppand requested a review from vnarapar October 30, 2025 10:59
Copy link
Contributor

@vnarapar vnarapar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@vnarapar vnarapar merged commit da98ae3 into qualcomm-linux:main Nov 4, 2025
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants