Avoid unexpected requests to DCF when packets get queued during EdcaTxopN::MissedAck or during EdcaTxopN::MissedCts

This commit is contained in:
Sébastien Deronne
2015-09-14 19:07:10 +02:00
parent 7bfa2bb5eb
commit 0c915b3b38

View File

@@ -669,7 +669,7 @@ EdcaTxopN::MissedCts (void)
if (!NeedRtsRetransmission ())
{
NS_LOG_DEBUG ("Cts Fail");
m_currentPacket = 0;
bool resetCurrentPacket = true;
m_stationManager->ReportFinalRtsFailed (m_currentHdr.GetAddr1 (), &m_currentHdr);
if (!m_txFailedCallback.IsNull ())
{
@@ -711,9 +711,14 @@ EdcaTxopN::MissedCts (void)
hdr.SetNoMoreFragments ();
m_currentPacket = request.bar;
m_currentHdr = hdr;
resetCurrentPacket = false;
}
}
//to reset the dcf.
if (resetCurrentPacket == true)
{
m_currentPacket = 0;
}
m_dcf->ResetCw ();
}
else
@@ -817,8 +822,7 @@ EdcaTxopN::MissedAck (void)
{
NS_LOG_DEBUG ("Ack Fail");
m_stationManager->ReportFinalDataFailed (m_currentHdr.GetAddr1 (), &m_currentHdr);
//to reset the dcf.
m_currentPacket = 0;
bool resetCurrentPacket = true;
if (!m_txFailedCallback.IsNull ())
{
m_txFailedCallback (m_currentHdr);
@@ -859,8 +863,14 @@ EdcaTxopN::MissedAck (void)
hdr.SetNoMoreFragments ();
m_currentPacket = request.bar;
m_currentHdr = hdr;
resetCurrentPacket = false;
}
}
//to reset the dcf.
if (resetCurrentPacket == true)
{
m_currentPacket = 0;
}
m_dcf->ResetCw ();
}
else