On Mon, Oct 14, 2019 at 02:22:24PM +0200, Stefan Sperling wrote:
> Is anyone running this already? OK?

I run the diff without any noticeable problems.
Run this with iwm and wpa-enterprise.

iwm0 at pci1 dev 0 function 0 "Intel Dual Band Wireless-AC 8265" rev 0x78, msi

Seems to work for me.

bye,
Jan

> On Mon, Oct 07, 2019 at 04:41:37PM +0200, Stefan Sperling wrote:
> > Frequent background scans are known to cause packet loss with
> > some types of APs (e.g. old Apple APs and some Android phones).
> > 
> > There is already a heuristic to make bgscans less frequent if we
> > keep choosing the same AP. However, the current backoff interval 
> > keeps increasing in tiny steps of 500ms, so problems caused by
> > background scans remain noticable for some time after association
> > to a problematic AP.
> > 
> > This diff increases the hgscan backoff timer such that the interval
> > keeps doubling each time we choose the same AP again. I hope this will
> > help in situations where a single AP is used and frequent bgscans are
> > causing trouble.
> >  
> > diff e17574f85785da4fa4073c8b9a00d8d738f3298f 
> > c6d97512c3c477464b2407c31d85add72ed1df9f
> > blob - 313d7249f09646a2eeabc21e9e760c9debcdf790
> > blob + dde43eda321beaa949255c143b249339c39f027c
> > --- sys/net80211/ieee80211_node.c
> > +++ sys/net80211/ieee80211_node.c
> > @@ -1421,8 +1421,12 @@ ieee80211_end_scan(struct ifnet *ifp)
> >              * and make background scans less frequent.
> >              */
> >             if (selbs == curbs) {
> > -                   if (ic->ic_bgscan_fail < IEEE80211_BGSCAN_FAIL_MAX)
> > -                           ic->ic_bgscan_fail++;
> > +                   if (ic->ic_bgscan_fail < IEEE80211_BGSCAN_FAIL_MAX) {
> > +                           if (ic->ic_bgscan_fail <= 0)
> > +                                   ic->ic_bgscan_fail = 1;
> > +                           else
> > +                                   ic->ic_bgscan_fail *= 2;
> > +                   }
> >                     ic->ic_flags &= ~IEEE80211_F_BGSCAN;
> >                     return;
> >             }
> > blob - 0f2072288232ac276c2979b799b03c37e0ca8032
> > blob + b475001b14ddb11c5c1713d072358ef2b9e2736d
> > --- sys/net80211/ieee80211_var.h
> > +++ sys/net80211/ieee80211_var.h
> > @@ -62,7 +62,7 @@
> >  #define IEEE80211_RSSI_THRES_RATIO_2GHZ            60      /* in percent */
> >  #define IEEE80211_RSSI_THRES_RATIO_5GHZ            50      /* in percent */
> >  
> > -#define IEEE80211_BGSCAN_FAIL_MAX          360     /* units of 500 msec */
> > +#define IEEE80211_BGSCAN_FAIL_MAX          512     /* units of 500 msec */
> >  
> >  enum ieee80211_phytype {
> >     IEEE80211_T_DS,                 /* direct sequence spread spectrum */
> > 
> 

Reply via email to