--- a/src/devices/wifi/dca-txop.cc Fri Nov 09 08:44:03 2007 +0100
+++ b/src/devices/wifi/dca-txop.cc Fri Nov 09 09:35:13 2007 +0100
@@ -402,8 +402,8 @@
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 @@
}
else
{
- // XXX
- //SetRetry (m_currentTxPacket);
+ m_currentHdr.SetRetry ();
if (!m_txFailedCallback.IsNull ())
{
m_txFailedCallback (m_currentHdr);
--- a/src/devices/wifi/mac-rx-middle.cc Fri Nov 09 08:44:03 2007 +0100
+++ b/src/devices/wifi/mac-rx-middle.cc Fri Nov 09 09:35:13 2007 +0100
@@ -186,9 +186,10 @@
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 @@
if (hdr->IsData ())
{
NS_ASSERT (SequenceControlSmaller (originator->GetLastSequenceControl (),
- hdr->GetSequenceControl ()));
+ hdr->GetSequenceControl ()));
// filter duplicates.
if (IsDuplicate (hdr, originator))
{