diff mbox series

Question on "mac80211: HE STA disassoc due to QOS NULL not sent"

Message ID 3c89f6f5-f094-4d1a-f254-6ca7483b54e5@candelatech.com (mailing list archive)
State Not Applicable
Delegated to: Johannes Berg
Headers show
Series Question on "mac80211: HE STA disassoc due to QOS NULL not sent" | expand

Commit Message

Ben Greear March 30, 2021, 11:23 p.m. UTC
While debugging a station polling issue.  Should it maybe send
a probe request instead of just not probing at all?

commit f39b07fdfb688724fedabf5507e15eaf398f2500
Author: Shay Bar <shay.bar@celeno.com>
Date:   Wed Jul 3 16:18:48 2019 +0300

     mac80211: HE STA disassoc due to QOS NULL not sent

     In case of HE AP-STA link, ieee80211_send_nullfunc() will not
     send the QOS NULL packet to check if AP is still associated.

     In this case, probe_send_count will be non-zero and
     ieee80211_sta_work() will later disassociate the AP, even
     though no packet was ever sent.

     Fix this by decrementing probe_send_count and not calling
     ieee80211_send_nullfunc() in case of HE link, so that we
     still wait for some time for the AP beacon to reappear and
     don't disconnect right away.

     Signed-off-by: Shay Bar <shay.bar@celeno.com>
     Link: https://lore.kernel.org/r/20190703131848.22879-1-shay.bar@celeno.com
     [clarify commit message]
     Signed-off-by: Johannes Berg <johannes.berg@intel.com>


Thanks,
Ben

Comments

Johannes Berg April 8, 2021, 12:55 p.m. UTC | #1
On Tue, 2021-03-30 at 16:23 -0700, Ben Greear wrote:
> While debugging a station polling issue.  Should it maybe send
> a probe request instead of just not probing at all?
> 
> commit f39b07fdfb688724fedabf5507e15eaf398f2500
> Author: Shay Bar <shay.bar@celeno.com>
> Date:   Wed Jul 3 16:18:48 2019 +0300
> 
>      mac80211: HE STA disassoc due to QOS NULL not sent
> 
>      In case of HE AP-STA link, ieee80211_send_nullfunc() will not
>      send the QOS NULL packet to check if AP is still associated.

Quite possibly we should just fix this - I think there was a recent
discussion on that here on the list?

johannes
diff mbox series

Patch

diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index 225633d9e2d4bd..e89ed800f01259 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -2512,7 +2512,10 @@  static void ieee80211_mgd_probe_ap_send(struct ieee80211_sub_if_data *sdata)

         if (ieee80211_hw_check(&sdata->local->hw, REPORTS_TX_ACK_STATUS)) {
                 ifmgd->nullfunc_failed = false;
-               ieee80211_send_nullfunc(sdata->local, sdata, false);
+               if (!(ifmgd->flags & IEEE80211_STA_DISABLE_HE))
+                       ifmgd->probe_send_count--;
+               else
+                       ieee80211_send_nullfunc(sdata->local, sdata, false);
         } else {
                 int ssid_len;