Send a probe request to our new AP when we are about to roam to it.
When the code modified below runs, we have just replaced ic_bss (ni)
with our new AP a few lines above.

Sending a probe request isn't strictly required but it might help to
initialize state in our AP in case our background scan was passive
(i.e. no probe requests were sent during the background scan).
Note that firmware might decide internally whether a given channel is
passive or not, without giving drivers control over this decision.

It might also help to initialize firmware state on the client side in case
firmware evaluates the probe response (beacon) which the AP should return.
This is known to happen in iwn/iwm/iwx firmware, at least.

ok?
 
diff 6ef004ad7244ea6e24d0c8fe19cc784f7a7c99d6 
10fe65f52d60daceea3a3690e6cc566759c1ab54
blob - 213ef3fc1c96f1aa330597972dab6783ad08399a
blob + 1434b7bf27cc81ed2bd1b2343480c9ec16fdfac1
--- sys/net80211/ieee80211_node.c
+++ sys/net80211/ieee80211_node.c
@@ -1272,8 +1272,11 @@ ieee80211_node_join_bss(struct ieee80211com *ic, struc
                 * ieee80211_new_state() try to re-auth and thus send
                 * an AUTH frame to our newly selected AP.
                 */
-               if (bgscan)
+               if (bgscan) {
+                       IEEE80211_SEND_MGMT(ic, ni,
+                           IEEE80211_FC0_SUBTYPE_PROBE_REQ, 0);
                        mgt = IEEE80211_FC0_SUBTYPE_DEAUTH;
+               }
                /*
                 * If we are trying another AP after the previous one
                 * failed (state transition AUTH->AUTH), ensure that

Reply via email to