Bug 842 - During retransmission of a BAR i must wait for a Block ack response and not for a normal ack

This commit is contained in:
Mirko Banchi
2010-08-05 15:32:06 +02:00
parent 635d67b66f
commit 3fc200bded
2 changed files with 8 additions and 4 deletions

View File

@@ -33,7 +33,6 @@
#include "msdu-aggregator.h"
#include "mgt-headers.h"
#include "qos-blocked-destinations.h"
#include "block-ack-manager.h"
NS_LOG_COMPONENT_DEFINE ("EdcaTxopN");
@@ -320,10 +319,9 @@ EdcaTxopN::NotifyAccessGranted (void)
NS_LOG_DEBUG ("queue is empty");
return;
}
struct Bar bar;
if (m_baManager->HasBar (bar))
if (m_baManager->HasBar (m_currentBar))
{
SendBlockAckRequest (bar);
SendBlockAckRequest (m_currentBar);
return;
}
/* check if packets need retransmission are stored in BlockAckManager */
@@ -378,6 +376,10 @@ EdcaTxopN::NotifyAccessGranted (void)
StartAccessIfNeeded ();
NS_LOG_DEBUG ("tx broadcast");
}
else if (m_currentHdr.GetType() == WIFI_MAC_CTL_BACKREQ)
{
SendBlockAckRequest (m_currentBar);
}
else
{
if (m_currentHdr.IsQosData () && m_currentHdr.IsQosBlockAck ())

View File

@@ -32,6 +32,7 @@
#include "qos-utils.h"
#include "dcf.h"
#include "ctrl-headers.h"
#include "block-ack-manager.h"
#include <map>
#include <list>
@@ -221,6 +222,7 @@ private:
enum BlockAckType m_blockAckType;
Time m_currentPacketTimestamp;
uint16_t m_blockAckInactivityTimeout;
struct Bar m_currentBar;
};
} //namespace ns3