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;
>  
> 
> 

Reply via email to