Skip to content

wifi: Fix NeedBarRetransmission logic

As noted by @link2xt in bug report 2928, the checks performed in BlockAckManager::NeedBarRetransmission can cause a station to get stuck retransmitting a Block Ack Request forever. Also, the erroneous checks make the inactivity timeout not to work as expected.

This MR fixes this issue by having NeedBarRetransmission() return true only when a BAR needs to be transmitted, i.e., a BA agreement is established and there is at least one outstanding MPDU whose lifetime is not expired. We found a test case where the outstanding MPDUs expired all at once and verified that the proposed patches enable to avoid that a station gets stuck retransmitting a BAR forever.

The second commit fixes crashes occurring with a non-null inactivity timeout.

Merge request reports