]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
nl80211: Send bssid info as parameter to nl80211_get_link_signal()
authorVeerendranath Jakkam <quic_vjakkam@quicinc.com>
Thu, 8 Sep 2022 14:44:19 +0000 (20:14 +0530)
committerJouni Malinen <j@w1.fi>
Thu, 15 Sep 2022 13:00:51 +0000 (16:00 +0300)
Add bssid as parameter to nl80211_get_link_signal() instead of using
bssid from driver structure. This is useful for calling the function
per-MLO link.

Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
src/drivers/driver_nl80211.c
src/drivers/driver_nl80211.h
src/drivers/driver_nl80211_event.c

index 5765c626ed2c61b778ca80184409b8e1f22acbee..00879abea4f02c5056fb651f2025d316ba60f908 100644 (file)
@@ -1699,7 +1699,7 @@ static int get_link_signal(struct nl_msg *msg, void *arg)
 
 
 int nl80211_get_link_signal(struct wpa_driver_nl80211_data *drv,
-                           struct wpa_signal_info *sig)
+                           const u8 *bssid, struct wpa_signal_info *sig)
 {
        struct nl_msg *msg;
 
@@ -1707,7 +1707,7 @@ int nl80211_get_link_signal(struct wpa_driver_nl80211_data *drv,
        sig->current_txrate = 0;
 
        if (!(msg = nl80211_drv_msg(drv, 0, NL80211_CMD_GET_STATION)) ||
-           nla_put(msg, NL80211_ATTR_MAC, ETH_ALEN, drv->bssid)) {
+           nla_put(msg, NL80211_ATTR_MAC, ETH_ALEN, bssid)) {
                nlmsg_free(msg);
                return -ENOBUFS;
        }
@@ -8759,7 +8759,7 @@ static int nl80211_signal_poll(void *priv, struct wpa_signal_info *si)
        int res;
 
        os_memset(si, 0, sizeof(*si));
-       res = nl80211_get_link_signal(drv, si);
+       res = nl80211_get_link_signal(drv, drv->bssid, si);
        if (res) {
                if (drv->nlmode != NL80211_IFTYPE_ADHOC &&
                    drv->nlmode != NL80211_IFTYPE_MESH_POINT)
index c84b21974e0c7cdc76cca881ad1fb189b0c5d4a5..3eb2a74ab4930fca4823cc1b66ecd45511c39f0f 100644 (file)
@@ -269,7 +269,7 @@ int is_ap_interface(enum nl80211_iftype nlmode);
 int is_sta_interface(enum nl80211_iftype nlmode);
 int wpa_driver_nl80211_authenticate_retry(struct wpa_driver_nl80211_data *drv);
 int nl80211_get_link_signal(struct wpa_driver_nl80211_data *drv,
-                           struct wpa_signal_info *sig);
+                           const u8 *bssid, struct wpa_signal_info *sig);
 int nl80211_get_link_noise(struct wpa_driver_nl80211_data *drv,
                           struct wpa_signal_info *sig_change);
 int nl80211_get_wiphy_index(struct i802_bss *bss);
index a7fc4b355f0562de7fd1c25aa070c619803a880c..60f1accaaf093cd15d30e3b50766018da16905b1 100644 (file)
@@ -1606,7 +1606,7 @@ static void nl80211_cqm_event(struct wpa_driver_nl80211_data *drv,
         * nl80211_get_link_signal() and nl80211_get_link_noise() set default
         * values in case querying the driver fails.
         */
-       res = nl80211_get_link_signal(drv, &ed.signal_change);
+       res = nl80211_get_link_signal(drv, drv->bssid, &ed.signal_change);
        if (res == 0) {
                wpa_printf(MSG_DEBUG, "nl80211: Signal: %d dBm  txrate: %d",
                           ed.signal_change.current_signal,