diff --git a/src/wifi/model/block-ack-manager.cc b/src/wifi/model/block-ack-manager.cc index 55b37a860..5bba846fa 100644 --- a/src/wifi/model/block-ack-manager.cc +++ b/src/wifi/model/block-ack-manager.cc @@ -785,6 +785,20 @@ bool BlockAckManager::NeedBarRetransmission (uint8_t tid, uint16_t seqNumber, Ma { return false; } + else if (it->second.first.m_inactivityEvent.IsExpired ()) + { + /* + * According to "11.5.4 Error recovery upon a peer failure", + * DELBA should be issued after inactivity timeout, + * so block ack request should not be retransmitted anymore. + * + * Otherwise we risk retransmitting BAR forever if condition + * above is never met and the STA is not available. + * + * See https://www.nsnam.org/bugzilla/show_bug.cgi?id=2928 for details. + */ + return false; + } else { return true;