set the retry bit and use it to filter duplicates
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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))
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user