From patchwork Wed Jun 12 20:09:43 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ruth Mekonnen X-Patchwork-Id: 1947110 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; secure) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=bombadil.20210309 header.b=1soH4Y3C; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256 header.s=google header.b=S/Gnu1PP; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.infradead.org (client-ip=2607:7c80:54:3::133; helo=bombadil.infradead.org; envelope-from=hostap-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=patchwork.ozlabs.org) Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:3::133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4VzxW00Tmcz20Pb for ; Thu, 13 Jun 2024 06:10:49 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-ID:Date:Subject:Cc :To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=fakq1JKZHe0HEB9vcBJs5+LdKTmfPc3s7nh19TzYCZA=; b=1soH4Y3CWSTVdh EUCACC/4AYiusQLJTntecQascQAkj6AHbBPjZAmdL+5VK5HhZfz/81e495WFzDYvLI85wNQPTYXBF IoxKdtxBqlrXF0B5doew8VEVSyJmt6jD72IfO5pzrIsfG9/Nx2scT0bieIeQ/ionXrxL3YLNsNV8I y7jnJbkmd/tdkckPT4hYOMGouoTGlVLMFsyLd3lL2hfF448EtGshHDyZKFfCFSWQJLwbebnFWvlZG X02CIqlE6YwobVYr9Npchdscfq8UbTcCY6S5O2Lz0uNeKtA5dulpP/SWNbBBC5y63r7BGvOC6yJ9x HMeGLiGJHBDEf1iwmLKg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sHUIE-0000000DytK-3WiH; Wed, 12 Jun 2024 20:10:02 +0000 Received: from mail-pl1-x633.google.com ([2607:f8b0:4864:20::633]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sHUIB-0000000Dyrf-2FHn for hostap@lists.infradead.org; Wed, 12 Jun 2024 20:10:01 +0000 Received: by mail-pl1-x633.google.com with SMTP id d9443c01a7336-1f6fd08e0f2so2414445ad.3 for ; Wed, 12 Jun 2024 13:09:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1718222996; x=1718827796; darn=lists.infradead.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=nepWTA1GQ3grgjJKcXDnwp5r7G9DRreB+Q46/nj9mEM=; b=S/Gnu1PPJuT9OL4Yw++YtsD1o7tT3w2iFvHSFL1na3PCI1BC6bB4QpNr+Ay34zpY5E WyrHvkuSBdIDbvk8A+jbAL5YuQsX++5kGcUaDsA8DGI6PYMeHONxTEnLk8GbpPMXYtwq FKy5T6Y7P27IBZrNFSpXxam6BJ7RhR3GCe27Y= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718222996; x=1718827796; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=nepWTA1GQ3grgjJKcXDnwp5r7G9DRreB+Q46/nj9mEM=; b=gn/KjWN9djqDkBL505ZSgCPhKvr+CC1mQcr3D2o2I2qWmef1WPWxZhGfYoe/O4kxDS 4nPj3GfcOB/Ht29y3Ve2wzv30qt+dh9+TLsKvI9DYDNQHYI+vPoAe3OUacPTyKZffyhg XQO9OPPqNhq8I3iM/5Yi1BsO+8djgZdtliL8ZAx5MDbq0Wt092ivoZr5qWTiGLaXcp/s I68PRSlAam+p8DT5Wt1z/4PPlPuV4ozpGOv72JrrncSh0ssdxEUUoduT56/Dz8GSmvSI ZFTRsSlODwf7Z82JBJZLIgM0oichAjVpRdIxPBPZUdmvn46I1QagCgNZlAvMUURluIg+ teHQ== X-Gm-Message-State: AOJu0Yyo3hWb4jKqA8t62KdRp/SufWtEC8Cmd6g3a8bFuzQnd/G3QsE5 vOMdoPv+AttTNtGMAK4MvAQwaf4GzTwTRj2xak3rzl5o2v+K6MnEOfXMrHKOStCx/1y/+6F5ULk = X-Google-Smtp-Source: AGHT+IEXyRxs2TviFMhhtnI3KCMfOCH1fvCEETuyRaFKo5vZlPZgmAdUs/3S39kMeOCdiY9oudbtuA== X-Received: by 2002:a17:902:e88b:b0:1f7:eea:ebd9 with SMTP id d9443c01a7336-1f83b67794fmr33078075ad.37.1718222995749; Wed, 12 Jun 2024 13:09:55 -0700 (PDT) Received: from localhost (93.200.125.34.bc.googleusercontent.com. [34.125.200.93]) by smtp.gmail.com with UTF8SMTPSA id d9443c01a7336-1f6f0ff48b9sm88491355ad.258.2024.06.12.13.09.54 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 12 Jun 2024 13:09:55 -0700 (PDT) From: Ruth Mekonnen To: hostap@lists.infradead.org Cc: Ruth Mekonnen Subject: [PATCH v3] Emit ScanInProgress6GHz property Date: Wed, 12 Jun 2024 20:09:43 +0000 Message-ID: <20240612200948.3322887-1-rmekonnen@chromium.org> X-Mailer: git-send-email 2.45.2.627.g7a2c4fd464-goog MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240612_130959_625851_D6794EF6 X-CRM114-Status: GOOD ( 16.99 ) X-Spam-Score: -0.4 (/) X-Spam-Report: Spam detection software, running on the system "bombadil.infradead.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Expose whether a 6GHz scan is in progress with the ScanInProgress6GHz property and flush properties as soon as the property is updated, so that platforms can choose not to disconnect while a 6GHz scan [...] Content analysis details: (-0.4 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2607:f8b0:4864:20:0:0:0:633 listed in] [list.dnswl.org] -0.0 T_SCC_BODY_TEXT_LINE No description available. -0.1 DKIMWL_WL_HIGH DKIMwl.org - High trust sender X-BeenThere: hostap@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "Hostap" Errors-To: hostap-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org Expose whether a 6GHz scan is in progress with the ScanInProgress6GHz property and flush properties as soon as the property is updated, so that platforms can choose not to disconnect while a 6GHz scan is in progress. Once the 6GHz scan has completed and scan results have been received, the ScanInProgress6GHz property is reset to false. Signed-off-by: Ruth Mekonnen --- Changelog since v2: update scan_in_progress_6ghz_ to false later--after scan results are received doc/dbus.doxygen | 5 +++++ wpa_supplicant/dbus/dbus_new.c | 10 ++++++++++ wpa_supplicant/dbus/dbus_new.h | 1 + wpa_supplicant/dbus/dbus_new_handlers.c | 21 +++++++++++++++++++++ wpa_supplicant/dbus/dbus_new_handlers.h | 1 + wpa_supplicant/events.c | 8 ++++++++ wpa_supplicant/notify.c | 8 ++++++++ wpa_supplicant/notify.h | 1 + wpa_supplicant/wpa_supplicant_i.h | 1 + 9 files changed, 56 insertions(+) diff --git a/doc/dbus.doxygen b/doc/dbus.doxygen index 9f72614d4..3c689cf55 100644 --- a/doc/dbus.doxygen +++ b/doc/dbus.doxygen @@ -883,6 +883,11 @@ fi.w1.wpa_supplicant1.CreateInterface.

The most recent roam success or failure.

+
  • +

    ScanInProgress6GHz - b - (read)

    +

    Whether a 6GHz scan is currently in progress.

    +
  • +
  • SessionLength - u - (read)

    The most recent BSS session length in milliseconds.

    diff --git a/wpa_supplicant/dbus/dbus_new.c b/wpa_supplicant/dbus/dbus_new.c index ef7076934..b8d13e111 100644 --- a/wpa_supplicant/dbus/dbus_new.c +++ b/wpa_supplicant/dbus/dbus_new.c @@ -2396,6 +2396,10 @@ void wpas_dbus_signal_prop_changed(struct wpa_supplicant *wpa_s, case WPAS_DBUS_PROP_ROAM_COMPLETE: prop = "RoamComplete"; break; + case WPAS_DBUS_PROP_SCAN_IN_PROGRESS_6GHZ: + prop = "ScanInProgress6GHz"; + flush = TRUE; + break; case WPAS_DBUS_PROP_SESSION_LENGTH: prop = "SessionLength"; break; @@ -3983,6 +3987,12 @@ static const struct wpa_dbus_property_desc wpas_dbus_interface_properties[] = { NULL, NULL }, + { + "ScanInProgress6GHz", WPAS_DBUS_NEW_IFACE_INTERFACE, "b", + wpas_dbus_getter_scan_in_progress_6ghz, + NULL, + NULL + }, { "SessionLength", WPAS_DBUS_NEW_IFACE_INTERFACE, "u", wpas_dbus_getter_session_length, diff --git a/wpa_supplicant/dbus/dbus_new.h b/wpa_supplicant/dbus/dbus_new.h index 952bb422a..1db5fe8ae 100644 --- a/wpa_supplicant/dbus/dbus_new.h +++ b/wpa_supplicant/dbus/dbus_new.h @@ -36,6 +36,7 @@ enum wpas_dbus_prop { WPAS_DBUS_PROP_ASSOC_STATUS_CODE, WPAS_DBUS_PROP_ROAM_TIME, WPAS_DBUS_PROP_ROAM_COMPLETE, + WPAS_DBUS_PROP_SCAN_IN_PROGRESS_6GHZ, WPAS_DBUS_PROP_SESSION_LENGTH, WPAS_DBUS_PROP_BSS_TM_STATUS, WPAS_DBUS_PROP_MAC_ADDRESS, diff --git a/wpa_supplicant/dbus/dbus_new_handlers.c b/wpa_supplicant/dbus/dbus_new_handlers.c index 3897d98f4..ee8a7c4bd 100644 --- a/wpa_supplicant/dbus/dbus_new_handlers.c +++ b/wpa_supplicant/dbus/dbus_new_handlers.c @@ -3832,6 +3832,27 @@ dbus_bool_t wpas_dbus_getter_roam_complete( &roam_complete, error); } +/** + * wpas_dbus_getter_scan_in_progress_6ghz - Get whether a 6ghz scan is in + * progress + * @iter: Pointer to incoming dbus message iter + * @error: Location to store error on failure + * @user_data: Function specific data + * Returns: TRUE on success, FALSE on failure + * + * Getter function for "ScanInProgress6GHz" property. + */ +dbus_bool_t wpas_dbus_getter_scan_in_progress_6ghz( + const struct wpa_dbus_property_desc *property_desc, + DBusMessageIter *iter, DBusError *error, void *user_data) +{ + struct wpa_supplicant *wpa_s = user_data; + dbus_bool_t scan_in_progress_6ghz = wpa_s->scan_in_progress_6ghz ? TRUE : FALSE; + + return wpas_dbus_simple_property_getter(iter, DBUS_TYPE_BOOLEAN, + &scan_in_progress_6ghz, error); +} + /** * wpas_dbus_getter_session_length - Get most recent BSS session length diff --git a/wpa_supplicant/dbus/dbus_new_handlers.h b/wpa_supplicant/dbus/dbus_new_handlers.h index acd6af7ff..7faf70a77 100644 --- a/wpa_supplicant/dbus/dbus_new_handlers.h +++ b/wpa_supplicant/dbus/dbus_new_handlers.h @@ -173,6 +173,7 @@ DECLARE_ACCESSOR(wpas_dbus_getter_auth_status_code); DECLARE_ACCESSOR(wpas_dbus_getter_assoc_status_code); DECLARE_ACCESSOR(wpas_dbus_getter_roam_time); DECLARE_ACCESSOR(wpas_dbus_getter_roam_complete); +DECLARE_ACCESSOR(wpas_dbus_getter_scan_in_progress_6ghz); DECLARE_ACCESSOR(wpas_dbus_getter_session_length); DECLARE_ACCESSOR(wpas_dbus_getter_bss_tm_status); DECLARE_ACCESSOR(wpas_dbus_getter_bss_expire_age); diff --git a/wpa_supplicant/events.c b/wpa_supplicant/events.c index 447fc8fd8..a855d7cef 100644 --- a/wpa_supplicant/events.c +++ b/wpa_supplicant/events.c @@ -2414,6 +2414,12 @@ static int _wpa_supplicant_event_scan_results(struct wpa_supplicant *wpa_s, scan_res = wpa_supplicant_get_scan_results(wpa_s, data ? &data->scan_info : NULL, 1, NULL); + + if (wpa_s->scan_in_progress_6ghz) { + wpa_s->scan_in_progress_6ghz = false; + wpas_notify_scan_in_progress_6ghz(wpa_s); + } + if (scan_res == NULL) { if (wpa_s->conf->ap_scan == 2 || ap || wpa_s->scan_res_handler == scan_only_handler) @@ -2593,6 +2599,8 @@ static int wpas_trigger_6ghz_scan(struct wpa_supplicant *wpa_s, wpa_add_scan_freqs_list(wpa_s, HOSTAPD_MODE_IEEE80211A, ¶ms, true, !wpa_s->last_scan_non_coloc_6ghz, false); if (!wpa_supplicant_trigger_scan(wpa_s, ¶ms, true, true)) { + wpa_s->scan_in_progress_6ghz = true; + wpas_notify_scan_in_progress_6ghz(wpa_s); os_free(params.freqs); return 1; } diff --git a/wpa_supplicant/notify.c b/wpa_supplicant/notify.c index e967dc8ff..30c5b8b3f 100644 --- a/wpa_supplicant/notify.c +++ b/wpa_supplicant/notify.c @@ -167,6 +167,14 @@ void wpas_notify_roam_complete(struct wpa_supplicant *wpa_s) wpas_dbus_signal_prop_changed(wpa_s, WPAS_DBUS_PROP_ROAM_COMPLETE); } +void wpas_notify_scan_in_progress_6ghz(struct wpa_supplicant *wpa_s) +{ + if (wpa_s->p2p_mgmt) + return; + + wpas_dbus_signal_prop_changed(wpa_s, WPAS_DBUS_PROP_SCAN_IN_PROGRESS_6GHZ); +} + void wpas_notify_session_length(struct wpa_supplicant *wpa_s) { diff --git a/wpa_supplicant/notify.h b/wpa_supplicant/notify.h index f6c7ac4e2..9749e9cfc 100644 --- a/wpa_supplicant/notify.h +++ b/wpa_supplicant/notify.h @@ -30,6 +30,7 @@ void wpas_notify_auth_status_code(struct wpa_supplicant *wpa_s); void wpas_notify_assoc_status_code(struct wpa_supplicant *wpa_s); void wpas_notify_roam_time(struct wpa_supplicant *wpa_s); void wpas_notify_roam_complete(struct wpa_supplicant *wpa_s); +void wpas_notify_scan_in_progress_6ghz(struct wpa_supplicant *wpa_s); void wpas_notify_session_length(struct wpa_supplicant *wpa_s); void wpas_notify_bss_tm_status(struct wpa_supplicant *wpa_s); void wpas_notify_network_changed(struct wpa_supplicant *wpa_s); diff --git a/wpa_supplicant/wpa_supplicant_i.h b/wpa_supplicant/wpa_supplicant_i.h index 426d077d2..58c833e3e 100644 --- a/wpa_supplicant/wpa_supplicant_i.h +++ b/wpa_supplicant/wpa_supplicant_i.h @@ -1579,6 +1579,7 @@ struct wpa_supplicant { bool wps_scan_done; /* Set upon receiving scan results event */ bool supp_pbc_active; /* Set for interface when PBC is triggered */ bool wps_overlap; + bool scan_in_progress_6ghz; /* Set upon a 6GHz scan being triggered */ #ifdef CONFIG_PASN struct pasn_data pasn;