CVSROOT:        /cvs
Module name:    src
Changes by:     s...@cvs.openbsd.org    2019/11/06 07:52:35

Modified files:
        sys/dev/pci    : if_iwn.c 

Log message:
Make iwn(4) flush remaining frames on the Tx aggregation queue when
Tx aggregation is stopped. Fixes a bug where outstanding frames on
the aggregation queue interfere with roaming to another AP.

net80211 will only roam once all outstanding frames destined for the
old AP have been sent, i.e. once that AP node's Tx refcount goes to 0.
Any outstanding frames sitting in the Tx aggregation queue, waiting to
be ACKed, will keep this refcount above zero.
To make roaming work reliably in combination with Tx aggregation, the
driver must ensure that ieee80211_release_node() gets called for each
frame on the queue when Tx aggregation is stopped.

Problem observed by tobhe@
Fix tested + ok tobhe@ jca@

Reply via email to