set the retry bit and use it to filter duplicates

This commit is contained in:
Mathieu Lacage
2007-11-09 09:35:13 +01:00
parent 95596a53b0
commit f5772f0423
2 changed files with 7 additions and 7 deletions

View File

@@ -402,8 +402,8 @@ DcaTxop::AccessGrantedNow (void)
m_slrc = 0;
m_fragmentNumber = 0;
NS_LOG_DEBUG ("dequeued size="<<m_currentPacket.GetSize ()<<
", to="<<m_currentHdr.GetAddr1 ()<<
", seq="<<m_currentHdr.GetSequenceControl ());
", to="<<m_currentHdr.GetAddr1 ()<<
", seq="<<m_currentHdr.GetSequenceControl ());
}
MacLowTransmissionParameters params;
params.DisableOverrideDurationId ();
@@ -535,8 +535,7 @@ DcaTxop::MissedAck (void)
}
else
{
// XXX
//SetRetry (m_currentTxPacket);
m_currentHdr.SetRetry ();
if (!m_txFailedCallback.IsNull ())
{
m_txFailedCallback (m_currentHdr);

View File

@@ -186,9 +186,10 @@ MacRxMiddle::Lookup (WifiMacHeader const *hdr)
bool
MacRxMiddle::IsDuplicate (WifiMacHeader const*hdr,
OriginatorRxStatus *originator) const
OriginatorRxStatus *originator) const
{
if (originator->GetLastSequenceControl () == hdr->GetSequenceControl ())
if (hdr->IsRetry () &&
originator->GetLastSequenceControl () == hdr->GetSequenceControl ())
{
return true;
}
@@ -265,7 +266,7 @@ MacRxMiddle::Receive (Packet packet, WifiMacHeader const *hdr)
if (hdr->IsData ())
{
NS_ASSERT (SequenceControlSmaller (originator->GetLastSequenceControl (),
hdr->GetSequenceControl ()));
hdr->GetSequenceControl ()));
// filter duplicates.
if (IsDuplicate (hdr, originator))
{