set the retry bit and use it to filter duplicates
authorMathieu Lacage <mathieu.lacage@sophia.inria.fr>
Fri, 09 Nov 2007 09:35:13 +0100
changeset 2092 885ebd975e88
parent 2091 9ef23a8f0980
child 2093 a4211cfa45a7
set the retry bit and use it to filter duplicates
src/devices/wifi/dca-txop.cc
src/devices/wifi/mac-rx-middle.cc
--- 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)) 
         {