On Mon, Nov 08, 2021 at 01:07:58PM +0100, Stefan Sperling wrote: > The last_rx timestamp which controls timeout of an Rx block ack > session is not updated when a frame is received. > This can result in the session timing out too early. > > Not a huge deal because the AP will simply request a new session when > it has more data to send. And many APs do not even enable session > timeouts in which case our timeout handler remains inactive, too. > > But we should handle negotiated session timeouts correctly. > > ok?
Ping. > diff 02c3ac519701a4fe198f8ee3de592b34a39ee6f7 > d1e8e8a7b10a061d0364e3a63366e646218124a7 > blob - 92f77754c4dd9d8a340a24bc2ce6f89ca77e0f84 > blob + 983c18557ae9bef84372346fd4833c530994faa3 > --- sys/dev/pci/if_iwm.c > +++ sys/dev/pci/if_iwm.c > @@ -5121,6 +5121,9 @@ iwm_rx_reorder(struct iwm_softc *sc, struct mbuf *m, i > if (rxba == NULL || tid != rxba->tid || rxba->sta_id != IWM_STATION_ID) > return 0; > > + if (rxba->timeout != 0) > + getmicrouptime(&rxba->last_rx); > + > /* Bypass A-MPDU re-ordering in net80211. */ > rxi->rxi_flags |= IEEE80211_RXI_AMPDU_DONE; > > blob - 5cac83fd48ebe997a4cd7842730b0cb05f7c28ee > blob + 1ac1ad3b420a9de838df6e2fc30d21c5bcb8661f > --- sys/dev/pci/if_iwx.c > +++ sys/dev/pci/if_iwx.c > @@ -4202,6 +4202,9 @@ iwx_rx_reorder(struct iwx_softc *sc, struct mbuf *m, i > if (rxba == NULL || tid != rxba->tid || rxba->sta_id != IWX_STATION_ID) > return 0; > > + if (rxba->timeout != 0) > + getmicrouptime(&rxba->last_rx); > + > /* Bypass A-MPDU re-ordering in net80211. */ > rxi->rxi_flags |= IEEE80211_RXI_AMPDU_DONE; > > >