src/wifi/model/mac-low.cc
changeset 11440 af3a3d5dcc21
parent 11432 d2656819dd54
child 11450 9f4ae69f12b7
--- a/src/wifi/model/mac-low.cc	Fri Jun 12 20:14:31 2015 +0200
+++ b/src/wifi/model/mac-low.cc	Fri Jun 12 20:58:01 2015 +0200
@@ -68,14 +68,12 @@
 MacLowDcfListener::~MacLowDcfListener ()
 {
 }
-
 MacLowAggregationCapableTransmissionListener::MacLowAggregationCapableTransmissionListener ()
 {
 }
 MacLowAggregationCapableTransmissionListener::~MacLowAggregationCapableTransmissionListener ()
 {
 }
-
 void MacLowAggregationCapableTransmissionListener::SetAmpdu (bool ampdu)
 {
 }
@@ -429,7 +427,7 @@
   m_sendDataEvent.Cancel ();
   m_waitSifsEvent.Cancel ();
   m_endTxNoAckEvent.Cancel ();
-   m_waitRifsEvent.Cancel();
+  m_waitRifsEvent.Cancel();
   m_phy = 0;
   m_stationManager = 0;
   if (m_phyMacLowListener != 0)
@@ -523,11 +521,13 @@
   m_phy->SetReceiveErrorCallback (MakeCallback (&MacLow::ReceiveError, this));
   SetupPhyMacLowListener (phy);
 }
+
 Ptr<WifiPhy>
 MacLow::GetPhy (void) const
 {
   return m_phy;
 }
+
 void
 MacLow::ResetPhy (void)
 {
@@ -536,6 +536,7 @@
   RemovePhyMacLowListener (m_phy);
   m_phy = 0;
 }
+
 void
 MacLow::SetWifiRemoteStationManager (Ptr<WifiRemoteStationManager> manager)
 {
@@ -547,116 +548,139 @@
 {
   m_self = ad;
 }
+
 void
 MacLow::SetAckTimeout (Time ackTimeout)
 {
   m_ackTimeout = ackTimeout;
 }
+
 void
 MacLow::SetBasicBlockAckTimeout (Time blockAckTimeout)
 {
   m_basicBlockAckTimeout = blockAckTimeout;
 }
+
 void
 MacLow::SetCompressedBlockAckTimeout (Time blockAckTimeout)
 {
   m_compressedBlockAckTimeout = blockAckTimeout;
 }
+
 void
 MacLow::SetCtsToSelfSupported (bool enable)
 {
   m_ctsToSelfSupported = enable;
 }
+
 bool
 MacLow::GetCtsToSelfSupported () const
 {
   return m_ctsToSelfSupported;
 }
+
 void
 MacLow::SetCtsTimeout (Time ctsTimeout)
 {
   m_ctsTimeout = ctsTimeout;
 }
+
 void
 MacLow::SetSifs (Time sifs)
 {
   m_sifs = sifs;
 }
+
 void
 MacLow::SetSlotTime (Time slotTime)
 {
   m_slotTime = slotTime;
 }
+
 void
 MacLow::SetPifs (Time pifs)
 {
   m_pifs = pifs;
 }
+
 void
 MacLow::SetRifs (Time rifs)
 {
   m_rifs = rifs;
 }
+
 void
 MacLow::SetBssid (Mac48Address bssid)
 {
   m_bssid = bssid;
 }
+
 void
 MacLow::SetPromisc (void)
 {
   m_promisc = true;
 }
+
 Mac48Address
 MacLow::GetAddress (void) const
 {
   return m_self;
 }
+
 Time
 MacLow::GetAckTimeout (void) const
 {
   return m_ackTimeout;
 }
+
 Time
 MacLow::GetBasicBlockAckTimeout () const
 {
   return m_basicBlockAckTimeout;
 }
+
 Time
 MacLow::GetCompressedBlockAckTimeout () const
 {
   return m_compressedBlockAckTimeout;
 }
+
 Time
 MacLow::GetCtsTimeout (void) const
 {
   return m_ctsTimeout;
 }
+
 Time
 MacLow::GetSifs (void) const
 {
   return m_sifs;
 }
+
 Time
 MacLow::GetRifs (void) const
 {
   return m_rifs;
 }
+
 Time
 MacLow::GetSlotTime (void) const
 {
   return m_slotTime;
 }
+
 Time
 MacLow::GetPifs (void) const
 {
   return m_pifs;
 }
+
 Mac48Address
 MacLow::GetBssid (void) const
 {
   return m_bssid;
 }
+
 bool
 MacLow::IsPromisc (void) const
 {
@@ -664,10 +688,11 @@
 }
 
 void
-MacLow::SetRxCallback (Callback<void,Ptr<Packet>,const WifiMacHeader *> callback)
+MacLow::SetRxCallback (Callback<void, Ptr<Packet>, const WifiMacHeader *> callback)
 {
   m_rxCallback = callback;
 }
+
 void
 MacLow::RegisterDcfListener (MacLowDcfListener *listener)
 {
@@ -705,7 +730,7 @@
    * expired. This means that one of these timers is still
    * running. They are all cancelled below anyway by the
    * call to CancelAllEvents (because of at least one
-   * of these two timer) which will trigger a call to the
+   * of these two timers) which will trigger a call to the
    * previous listener's cancel method.
    *
    * This typically happens because the high-priority
@@ -717,8 +742,6 @@
   m_listener = listener;
   m_txParams = params;
 
-  //NS_ASSERT (m_phy->IsStateIdle ());
-
   if(m_aggregateQueue->GetSize () == 0)
   {
     m_currentPacket = packet->Copy ();
@@ -758,12 +781,14 @@
   /* When this method completes, we have taken ownership of the medium. */
   NS_ASSERT (m_phy->IsStateTx ());
 }
+
 bool
 MacLow::NeedCtsToSelf (void)
 {
   WifiTxVector dataTxVector = GetDataTxVector (m_currentPacket, &m_currentHdr);
   return m_stationManager->NeedCtsToSelf (dataTxVector);
 }
+
 void
 MacLow::ReceiveError (Ptr<const Packet> packet, double rxSnr)
 {
@@ -775,7 +800,7 @@
 
   if(isInAmpdu && m_receivedAtLeastOneMpdu && (ampdu.GetNoOfMpdus() == 1))
     {
-      MpduAggregator::DeaggregatedMpdus packets =  MpduAggregator::Deaggregate (pkt);
+      MpduAggregator::DeaggregatedMpdus packets = MpduAggregator::Deaggregate (pkt);
       MpduAggregator::DeaggregatedMpdusCI n = packets.begin ();
       WifiMacHeader hdr;
       (*n).first->PeekHeader(hdr);
@@ -784,15 +809,15 @@
           NS_LOG_DEBUG ("last a-mpdu subframe detected/sendImmediateBlockAck from=" << hdr.GetAddr2 ());
           m_sendAckEvent = Simulator::Schedule (GetSifs (),
                                                 &MacLow::SendBlockAckAfterAmpdu, this,
-                                                hdr.GetQosTid(),
+                                                hdr.GetQosTid (),
                                                 hdr.GetAddr2 (),
                                                 hdr.GetDuration (),
                                                 m_currentTxVector);
         }
       else if (hdr.IsBlockAckReq())
         {
- 	  NS_LOG_DEBUG("last a-mpdu subframe is BAR");
-  	}
+ 	      NS_LOG_DEBUG("last a-mpdu subframe is BAR");
+     	}
       m_receivedAtLeastOneMpdu = false;
     }
   else if (m_txParams.MustWaitFastAck ())
@@ -860,7 +885,7 @@
        */
       if (ampduSubframe)
         {
-           NS_FATAL_ERROR ("Received RTS as part of an A-MPDU");
+          NS_FATAL_ERROR ("Received RTS as part of an A-MPDU");
         }
       else
         {
@@ -893,7 +918,9 @@
         {
           NS_FATAL_ERROR ("Received CTS as part of an A-MPDU");
         }
+        
       NS_LOG_DEBUG ("receive cts from=" << m_currentHdr.GetAddr1 ());
+      
       SnrTag tag;
       packet->RemovePacketTag (tag);
       m_stationManager->ReportRxOk (m_currentHdr.GetAddr1 (), &m_currentHdr,
@@ -925,8 +952,9 @@
       m_stationManager->ReportDataOk (m_currentHdr.GetAddr1 (), &m_currentHdr,
                                       rxSnr, txVector.GetMode (), tag.Get ());
 
-      FlushAggregateQueue();
+      FlushAggregateQueue ();
       bool gotAck = false;
+      
       if (m_txParams.MustWaitNormalAck ()
           && m_normalAckTimeoutEvent.IsRunning ())
         {
@@ -963,7 +991,7 @@
       m_listener->GotBlockAck (&blockAck, hdr.GetAddr2 (), txVector.GetMode ());
       m_sentMpdus = 0;
       m_ampdu = false;
-      FlushAggregateQueue();
+      FlushAggregateQueue ();
     }
   else if (hdr.IsBlockAckReq () && hdr.GetAddr1 () == m_self)
     {
@@ -1077,7 +1105,7 @@
         }
       else if (hdr.IsData () || hdr.IsMgt ())
         {
-          if (hdr.IsMgt() && ampduSubframe)
+          if (hdr.IsMgt () && ampduSubframe)
             {
               NS_FATAL_ERROR ("Received management packet as part of an A-MPDU");
             }
@@ -1145,7 +1173,7 @@
     {
       CtrlBAckRequestHeader baReqHdr;
       packet->PeekHeader (baReqHdr);
-      tid = baReqHdr.GetTidInfo();
+      tid = baReqHdr.GetTidInfo ();
      }
   else if (hdr.IsBlockAck ())
     {
@@ -1163,6 +1191,7 @@
   ack.SetType (WIFI_MAC_CTL_ACK);
   return ack.GetSize () + 4;
 }
+
 uint32_t
 MacLow::GetBlockAckSize (enum BlockAckType type) const
 {
@@ -1184,6 +1213,7 @@
     }
   return hdr.GetSize () + blockAck.GetSerializedSize () + 4;
 }
+
 uint32_t
 MacLow::GetRtsSize (void) const
 {
@@ -1191,18 +1221,21 @@
   rts.SetType (WIFI_MAC_CTL_RTS);
   return rts.GetSize () + 4;
 }
+
 Time
 MacLow::GetAckDuration (Mac48Address to, WifiTxVector dataTxVector) const
 {
   WifiTxVector ackTxVector = GetAckTxVectorForData (to, dataTxVector.GetMode ());
   return GetAckDuration (ackTxVector);
 }
+
 Time
 MacLow::GetAckDuration (WifiTxVector ackTxVector) const
 {
   NS_ASSERT (ackTxVector.GetMode ().GetModulationClass () != WIFI_MOD_CLASS_HT); // ACK should always use non-HT PPDU (HT PPDU cases not supported yet)
   return m_phy->CalculateTxDuration (GetAckSize (), ackTxVector, WIFI_PREAMBLE_LONG, m_phy->GetFrequency(), 0, 0);
 }
+
 Time
 MacLow::GetBlockAckDuration (Mac48Address to, WifiTxVector blockAckReqTxVector, enum BlockAckType type) const
 {
@@ -1212,11 +1245,12 @@
    */
   WifiPreamble preamble;
   if (blockAckReqTxVector.GetMode ().GetModulationClass () == WIFI_MOD_CLASS_HT && type == BASIC_BLOCK_ACK)
-    preamble= WIFI_PREAMBLE_HT_MF;
+    preamble = WIFI_PREAMBLE_HT_MF;
   else
-    preamble=WIFI_PREAMBLE_LONG;
-  return m_phy->CalculateTxDuration (GetBlockAckSize (type), blockAckReqTxVector, preamble, m_phy->GetFrequency(), 0, 0);
+    preamble = WIFI_PREAMBLE_LONG;
+  return m_phy->CalculateTxDuration (GetBlockAckSize (type), blockAckReqTxVector, preamble, m_phy->GetFrequency (), 0, 0);
 }
+
 Time
 MacLow::GetCtsDuration (Mac48Address to, WifiTxVector rtsTxVector) const
 {
@@ -1228,8 +1262,9 @@
 MacLow::GetCtsDuration (WifiTxVector ctsTxVector) const
 {
   NS_ASSERT (ctsTxVector.GetMode ().GetModulationClass () != WIFI_MOD_CLASS_HT); // CTS should always use non-HT PPDU (HT PPDU cases not supported yet)
-  return m_phy->CalculateTxDuration (GetCtsSize (), ctsTxVector, WIFI_PREAMBLE_LONG, m_phy->GetFrequency(), 0, 0);
+  return m_phy->CalculateTxDuration (GetCtsSize (), ctsTxVector, WIFI_PREAMBLE_LONG, m_phy->GetFrequency (), 0, 0);
 }
+
 uint32_t
 MacLow::GetCtsSize (void) const
 {
@@ -1237,6 +1272,7 @@
   cts.SetType (WIFI_MAC_CTL_CTS);
   return cts.GetSize () + 4;
 }
+
 uint32_t
 MacLow::GetSize (Ptr<const Packet> packet, const WifiMacHeader *hdr) const
 {
@@ -1261,6 +1297,7 @@
   Mac48Address to = hdr->GetAddr1 ();
   return m_stationManager->GetRtsTxVector (to, hdr, packet);
 }
+
 WifiTxVector
 MacLow::GetDataTxVector (Ptr<const Packet> packet, const WifiMacHeader *hdr) const
 {
@@ -1270,16 +1307,19 @@
   //size is not used in anything!! will not worry about aggregation
   return m_stationManager->GetDataTxVector (to, hdr, packet, size);
 }
+
 WifiTxVector
 MacLow::GetCtsTxVector (Mac48Address to, WifiMode rtsTxMode) const
 {
   return m_stationManager->GetCtsTxVector (to, rtsTxMode);
 }
+
 WifiTxVector
 MacLow::GetAckTxVector (Mac48Address to, WifiMode dataTxMode) const
 {
   return m_stationManager->GetAckTxVector (to, dataTxMode);
 }
+
 WifiTxVector
 MacLow::GetBlockAckTxVector (Mac48Address to, WifiMode dataTxMode) const
 {
@@ -1291,13 +1331,13 @@
 {
   return GetCtsTxVector (to, rtsTxMode);
 }
+
 WifiTxVector
 MacLow::GetAckTxVectorForData (Mac48Address to, WifiMode dataTxMode) const
 {
   return GetAckTxVector (to, dataTxMode);
 }
 
-
 Time
 MacLow::CalculateOverallTxTime (Ptr<const Packet> packet,
                                 const WifiMacHeader* hdr,
@@ -1318,19 +1358,19 @@
           //Otherwise, RTS should always use non-HT PPDU (HT PPDU cases not supported yet)
           preamble = WIFI_PREAMBLE_LONG;
         }
-      txTime += m_phy->CalculateTxDuration (GetRtsSize (), rtsTxVector, preamble, m_phy->GetFrequency(), 0, 0);
+      txTime += m_phy->CalculateTxDuration (GetRtsSize (), rtsTxVector, preamble, m_phy->GetFrequency (), 0, 0);
       txTime += GetCtsDuration (hdr->GetAddr1 (), rtsTxVector);
       txTime += Time (GetSifs () * 2);
     }
   WifiTxVector dataTxVector = GetDataTxVector (packet, hdr);
   if (m_phy->GetGreenfield () && m_stationManager->GetGreenfieldSupported (m_currentHdr.GetAddr1 ()))
     preamble = WIFI_PREAMBLE_HT_GF;
-  else if (dataTxVector.GetMode().GetModulationClass () == WIFI_MOD_CLASS_HT)
+  else if (dataTxVector.GetMode ().GetModulationClass () == WIFI_MOD_CLASS_HT)
     preamble = WIFI_PREAMBLE_HT_MF;
   else
     preamble = WIFI_PREAMBLE_LONG;
   uint32_t dataSize = GetSize (packet, hdr);
-  txTime += m_phy->CalculateTxDuration (dataSize, dataTxVector, preamble, m_phy->GetFrequency(), 0, 0);
+  txTime += m_phy->CalculateTxDuration (dataSize, dataTxVector, preamble, m_phy->GetFrequency (), 0, 0);
   if (params.MustWaitAck ())
     {
       txTime += GetSifs ();
@@ -1356,7 +1396,7 @@
       else
         preamble = WIFI_PREAMBLE_LONG;
       txTime += GetSifs ();
-      txTime += m_phy->CalculateTxDuration (params.GetNextPacketSize (), dataTxVector, preamble, m_phy->GetFrequency(), 0, 0);
+      txTime += m_phy->CalculateTxDuration (params.GetNextPacketSize (), dataTxVector, preamble, m_phy->GetFrequency (), 0, 0);
     }
   return txTime;
 }
@@ -1394,7 +1434,7 @@
           cts.SetType (WIFI_MAC_CTL_CTS);
           WifiTxVector txVector=GetRtsTxVector (packet, &hdr);
           Time navCounterResetCtsMissedDelay =
-            m_phy->CalculateTxDuration (cts.GetSerializedSize (), txVector, preamble, m_phy->GetFrequency(), 0, 0) +
+            m_phy->CalculateTxDuration (cts.GetSerializedSize (), txVector, preamble, m_phy->GetFrequency (), 0, 0) +
             Time (2 * GetSifs ()) + Time (2 * GetSlotTime ());
           m_navCounterResetCtsMissed = Simulator::Schedule (navCounterResetCtsMissedDelay,
                                                             &MacLow::NavCounterResetCtsMissed, this,
@@ -1422,6 +1462,7 @@
   m_lastNavStart = Simulator::Now ();
   m_lastNavStart = duration;
 }
+
 bool
 MacLow::DoNavStartNow (Time duration)
 {
@@ -1439,6 +1480,7 @@
     }
   return false;
 }
+
 void
 MacLow::NotifyAckTimeoutStartNow (Time duration)
 {
@@ -1447,6 +1489,7 @@
       (*i)->AckTimeoutStart (duration);
     }
 }
+
 void
 MacLow::NotifyAckTimeoutResetNow ()
 {
@@ -1455,6 +1498,7 @@
       (*i)->AckTimeoutReset ();
     }
 }
+
 void
 MacLow::NotifyCtsTimeoutStartNow (Time duration)
 {
@@ -1463,6 +1507,7 @@
       (*i)->CtsTimeoutStart (duration);
     }
 }
+
 void
 MacLow::NotifyCtsTimeoutResetNow ()
 {
@@ -1493,7 +1538,7 @@
       Ptr <const Packet> dequeuedPacket;
       WifiMacHeader newHdr;
       WifiMacTrailer fcs;
-        uint32_t queueSize = m_aggregateQueue->GetSize ();
+      uint32_t queueSize = m_aggregateQueue->GetSize ();
       bool last = false;
       uint8_t packetType = 0;
       //Add packet tag
@@ -1527,7 +1572,7 @@
               Simulator::Schedule (delay, &MacLow::SendPacket, this, newPacket, txVector, preamble, packetType);
             }
           if(queueSize > 1)
-            delay = delay + m_phy->CalculateTxDuration (GetSize (newPacket, &newHdr), txVector, preamble, m_phy->GetFrequency(), packetType, 0);
+            delay = delay + m_phy->CalculateTxDuration (GetSize (newPacket, &newHdr), txVector, preamble, m_phy->GetFrequency (), packetType, 0);
           preamble = WIFI_PREAMBLE_NONE;
         }
     }
@@ -1559,6 +1604,7 @@
   m_ampdu = false;
   listener->MissedCts ();
 }
+
 void
 MacLow::NormalAckTimeout (void)
 {
@@ -1572,9 +1618,10 @@
   m_listener = 0;
   m_sentMpdus = 0;
   m_ampdu = false;
-  FlushAggregateQueue();
+  FlushAggregateQueue ();
   listener->MissedAck ();
 }
+
 void
 MacLow::FastAckTimeout (void)
 {
@@ -1592,6 +1639,7 @@
       NS_LOG_DEBUG ("fast Ack ok");
     }
 }
+
 void
 MacLow::BlockAckTimeout (void)
 {
@@ -1606,6 +1654,7 @@
   FlushAggregateQueue();
   listener->MissedBlockAck ();
 }
+
 void
 MacLow::SuperFastAckTimeout ()
 {
@@ -1659,16 +1708,16 @@
       duration += GetCtsDuration (m_currentHdr.GetAddr1 (), rtsTxVector);
       duration += GetSifs ();
       duration += m_phy->CalculateTxDuration (GetSize (m_currentPacket, &m_currentHdr),
-                                              dataTxVector, preamble, m_phy->GetFrequency(), 0, 0);
+                                              dataTxVector, preamble, m_phy->GetFrequency (), 0, 0);
       duration += GetSifs ();
       if (m_txParams.MustWaitBasicBlockAck ())
         {
-          WifiTxVector blockAckReqTxVector = GetBlockAckTxVector (m_currentHdr.GetAddr2(), dataTxVector.GetMode  ());
+          WifiTxVector blockAckReqTxVector = GetBlockAckTxVector (m_currentHdr.GetAddr2 (), dataTxVector.GetMode ());
           duration += GetBlockAckDuration (m_currentHdr.GetAddr1 (), blockAckReqTxVector, BASIC_BLOCK_ACK);
         }
       else if (m_txParams.MustWaitCompressedBlockAck ())
         {
-          WifiTxVector blockAckReqTxVector = GetBlockAckTxVector (m_currentHdr.GetAddr2(), dataTxVector.GetMode  ());
+          WifiTxVector blockAckReqTxVector = GetBlockAckTxVector (m_currentHdr.GetAddr2 (), dataTxVector.GetMode ());
           duration += GetBlockAckDuration (m_currentHdr.GetAddr1 (), blockAckReqTxVector, COMPRESSED_BLOCK_ACK);
         }
       else if (m_txParams.MustWaitAck ())
@@ -1678,7 +1727,7 @@
       if (m_txParams.HasNextPacket ())
         {
           duration += m_phy->CalculateTxDuration (m_txParams.GetNextPacketSize (),
-                                                  dataTxVector, preamble, m_phy->GetFrequency(), 0, 0);
+                                                  dataTxVector, preamble, m_phy->GetFrequency (), 0, 0);
           if (m_txParams.MustWaitAck ())
             {
               duration += GetSifs ();
@@ -1688,7 +1737,7 @@
     }
   rts.SetDuration (duration);
 
-  Time txDuration = m_phy->CalculateTxDuration (GetRtsSize (), rtsTxVector, preamble, m_phy->GetFrequency(), 0, 0);
+  Time txDuration = m_phy->CalculateTxDuration (GetRtsSize (), rtsTxVector, preamble, m_phy->GetFrequency (), 0, 0);
   Time timerDelay = txDuration + GetCtsTimeout ();
 
   NS_ASSERT (m_ctsTimeoutEvent.IsExpired ());
@@ -1716,7 +1765,7 @@
   else
     preamble = WIFI_PREAMBLE_LONG;
  
-  Time txDuration = m_phy->CalculateTxDuration (GetSize (m_currentPacket, &m_currentHdr), dataTxVector, preamble, m_phy->GetFrequency(), 0, 0);
+  Time txDuration = m_phy->CalculateTxDuration (GetSize (m_currentPacket, &m_currentHdr), dataTxVector, preamble, m_phy->GetFrequency (), 0, 0);
   if (m_txParams.MustWaitNormalAck ())
     {
       Time timerDelay = txDuration + GetAckTimeout ();
@@ -1821,7 +1870,7 @@
         {
           duration += GetSifs ();
           duration += m_phy->CalculateTxDuration (m_txParams.GetNextPacketSize (),
-                                                  dataTxVector, preamble, m_phy->GetFrequency(), 0, 0);
+                                                  dataTxVector, preamble, m_phy->GetFrequency (), 0, 0);
           if (m_txParams.MustWaitAck ())
             {
               duration += GetSifs ();
@@ -1885,7 +1934,7 @@
       WifiTxVector dataTxVector = GetDataTxVector (m_currentPacket, &m_currentHdr);
       duration += GetSifs ();
       duration += m_phy->CalculateTxDuration (GetSize (m_currentPacket,&m_currentHdr),
-                                              dataTxVector, preamble, m_phy->GetFrequency(), 0, 0);
+                                              dataTxVector, preamble, m_phy->GetFrequency (), 0, 0);
       if (m_txParams.MustWaitBasicBlockAck ())
         {
           
@@ -1908,7 +1957,7 @@
         {
           duration += GetSifs ();
           duration += m_phy->CalculateTxDuration (m_txParams.GetNextPacketSize (),
-                                                  dataTxVector, preamble, m_phy->GetFrequency(), 0, 0);
+                                                  dataTxVector, preamble, m_phy->GetFrequency (), 0, 0);
           if (m_txParams.MustWaitCompressedBlockAck ())
             {
               duration += GetSifs ();
@@ -1932,7 +1981,7 @@
 
   ForwardDown (packet, &cts, ctsTxVector,preamble);
 
-  Time txDuration = m_phy->CalculateTxDuration (GetCtsSize (), ctsTxVector, preamble, m_phy->GetFrequency(), 0, 0);
+  Time txDuration = m_phy->CalculateTxDuration (GetCtsSize (), ctsTxVector, preamble, m_phy->GetFrequency (), 0, 0);
   txDuration += GetSifs ();
   NS_ASSERT (m_sendDataEvent.IsExpired ());
   
@@ -1991,7 +2040,7 @@
     {
       uint8_t tid = GetTid (m_txPackets.at(i).packet, m_txPackets.at(i).hdr);
       AcIndex ac = QosUtilsMapTidToAc (tid);
-      std::map<AcIndex, MacLowAggregationCapableTransmissionListener*>::const_iterator listenerIt= m_edcaListeners.find(ac);
+      std::map<AcIndex, MacLowAggregationCapableTransmissionListener*>::const_iterator listenerIt = m_edcaListeners.find (ac);
       
       listenerIt->second->CompleteMpduTx (m_txPackets.at(i).packet, m_txPackets.at(i).hdr, m_txPackets.at(i).timestamp);
     }
@@ -2029,7 +2078,7 @@
   if (m_txParams.HasNextPacket ())
     {
       newDuration += GetSifs ();
-      newDuration += m_phy->CalculateTxDuration (m_txParams.GetNextPacketSize (), dataTxVector, preamble, m_phy->GetFrequency(), 0, 0);
+      newDuration += m_phy->CalculateTxDuration (m_txParams.GetNextPacketSize (), dataTxVector, preamble, m_phy->GetFrequency (), 0, 0);
       if (m_txParams.MustWaitCompressedBlockAck ())
         {
            newDuration += GetSifs ();
@@ -2043,7 +2092,7 @@
         }
     }
 
-  Time txDuration = m_phy->CalculateTxDuration (GetSize (m_currentPacket, &m_currentHdr),dataTxVector, preamble, m_phy->GetFrequency(), 0, 0);
+  Time txDuration = m_phy->CalculateTxDuration (GetSize (m_currentPacket, &m_currentHdr), dataTxVector, preamble, m_phy->GetFrequency (), 0, 0);
   duration -= txDuration;
   duration -= GetSifs ();
 
@@ -2058,7 +2107,7 @@
     m_currentPacket->AddTrailer (fcs);
   }
 
-  ForwardDown (m_currentPacket, &m_currentHdr, dataTxVector,preamble);
+  ForwardDown (m_currentPacket, &m_currentHdr, dataTxVector, preamble);
   m_currentPacket = 0;
 }
 
@@ -2122,7 +2171,7 @@
 bool
 MacLow::IsInWindow (uint16_t seq, uint16_t winstart, uint16_t winsize)
 {
-  return ((seq - winstart+ 4096) % 4096) < winsize;
+  return ((seq - winstart + 4096) % 4096) < winsize;
 }
 
 bool 
@@ -2144,7 +2193,7 @@
               StoreMpduIfNeeded (packet, hdr);
               if (!IsInWindow(hdr.GetSequenceNumber (), (*it).second.first.GetStartingSequence (), (*it).second.first.GetBufferSize ()))
                 {
-                  uint16_t delta = (seqNumber - (*it).second.first.GetWinEnd()+ 4096) % 4096;
+                  uint16_t delta = (seqNumber - (*it).second.first.GetWinEnd() + 4096) % 4096;
                   if (delta > 1)
                     {
                      (*it).second.first.SetWinEnd (seqNumber);
@@ -2156,14 +2205,14 @@
                    } 
                }
               RxCompleteBufferedPacketsUntilFirstLost (originator, tid); //forwards up packets starting from winstart and set winstart to last +1
-             (*it).second.first.SetWinEnd(((*it).second.first.GetStartingSequence()+(*it).second.first.GetBufferSize()-1)%4096);  
+             (*it).second.first.SetWinEnd (((*it).second.first.GetStartingSequence()+(*it).second.first.GetBufferSize() - 1) % 4096);
            }
           return true;
         }  
       return false;
     }
  else
-   return StoreMpduIfNeeded (packet,hdr);
+   return StoreMpduIfNeeded (packet, hdr);
 }
 
 bool
@@ -2270,7 +2319,7 @@
         }
       BufferedPacketI i = (*it).second.second.begin ();
       for (; i != (*it).second.second.end ()
-           && QosUtilsMapSeqControlToUniqueInteger ((*i).second.GetSequenceNumber (), endSequence) < mappedStart;)
+           && QosUtilsMapSeqControlToUniqueInteger ((*i).second.GetSequenceNumber (), endSequence) < mappedStart; )
         {
           if (guard == (*i).second.GetSequenceControl ())
             {
@@ -2478,11 +2527,11 @@
             {
               if (!QosUtilsIsOldPacket ((*it).second.first.GetStartingSequence(), reqHdr.GetStartingSequence ()))
                 { 
-                  (*it).second.first.SetStartingSequence(reqHdr.GetStartingSequence ());
-                  (*it).second.first.SetWinEnd(((*it).second.first.GetStartingSequence()+(*it).second.first.GetBufferSize()-1) % 4096);
+                  (*it).second.first.SetStartingSequence (reqHdr.GetStartingSequence ());
+                  (*it).second.first.SetWinEnd (((*it).second.first.GetStartingSequence()+(*it).second.first.GetBufferSize() - 1) % 4096);
                   RxCompleteBufferedPacketsWithSmallerSequence (reqHdr.GetStartingSequence (), originator, tid);
                   RxCompleteBufferedPacketsUntilFirstLost (originator, tid);
-                  (*it).second.first.SetWinEnd(((*it).second.first.GetStartingSequence()+(*it).second.first.GetBufferSize()-1) % 4096);
+                  (*it).second.first.SetWinEnd (((*it).second.first.GetStartingSequence()+(*it).second.first.GetBufferSize() - 1) % 4096);
                 }
             }
         }
@@ -2508,9 +2557,6 @@
       agreement.m_inactivityEvent.Cancel ();
       Time timeout = MicroSeconds (1024 * agreement.GetTimeout ());
       AcIndex ac = QosUtilsMapTidToAc (agreement.GetTid ());
-      //std::map<AcIndex, MacLowTransmissionListener*>::iterator it = m_edcaListeners.find (ac);
-      //NS_ASSERT (it != m_edcaListeners.end ());
-
       agreement.m_inactivityEvent = Simulator::Schedule (timeout,
                                                          &MacLowAggregationCapableTransmissionListener::BlockAckInactivityTimeout,
                                                          m_edcaListeners[ac],
@@ -2541,13 +2587,14 @@
   if (aggregatedPacket->RemovePacketTag(ampdu))
     {
       ampduSubframe = true;
-      MpduAggregator::DeaggregatedMpdus packets =  MpduAggregator::Deaggregate (aggregatedPacket);
+      MpduAggregator::DeaggregatedMpdus packets = MpduAggregator::Deaggregate (aggregatedPacket);
       MpduAggregator::DeaggregatedMpdusCI n = packets.begin ();
 
       WifiMacHeader firsthdr;
-      (*n).first->PeekHeader(firsthdr);
+      (*n).first->PeekHeader (firsthdr);
       NS_LOG_DEBUG ("duration/id=" << firsthdr.GetDuration ());
       NotifyNav ((*n).first, firsthdr, preamble);
+      
       if (firsthdr.GetAddr1 () == m_self)
         {
           m_receivedAtLeastOneMpdu = true;
@@ -2555,7 +2602,7 @@
               ReceiveOk ((*n).first, rxSnr, txVector, preamble, ampduSubframe);
           else if (firsthdr.IsData () || firsthdr.IsQosData ())
             {
-              NS_LOG_DEBUG ("Deaagregate packet with sequence=" << firsthdr.GetSequenceNumber ());
+              NS_LOG_DEBUG ("Deaggregate packet with sequence=" << firsthdr.GetSequenceNumber ());
               ReceiveOk ((*n).first, rxSnr, txVector, preamble, ampduSubframe);
               if (firsthdr.IsQosAck ())
                 {
@@ -2584,7 +2631,7 @@
               NS_LOG_DEBUG ("rx A-MPDU/sendImmediateBlockAck from=" << firsthdr.GetAddr2 ());
               m_sendAckEvent = Simulator::Schedule (GetSifs (),
                                                     &MacLow::SendBlockAckAfterAmpdu, this,
-                                                    firsthdr.GetQosTid(),
+                                                    firsthdr.GetQosTid (),
                                                     firsthdr.GetAddr2 (),
                                                     firsthdr.GetDuration (),
                                                     txVector);
@@ -2618,7 +2665,7 @@
         return true;
     
     //An HT STA shall not transmit a PPDU that has a duration that is greater than aPPDUMaxTime (10 milliseconds)
-    if(m_phy->CalculateTxDuration (aggregatedPacket->GetSize () + peekedPacket->GetSize () + peekedHdr.GetSize () + WIFI_MAC_FCS_LENGTH, dataTxVector, preamble, m_phy->GetFrequency(), 0, 0) > MilliSeconds(10))
+    if(m_phy->CalculateTxDuration (aggregatedPacket->GetSize () + peekedPacket->GetSize () + peekedHdr.GetSize () + WIFI_MAC_FCS_LENGTH, dataTxVector, preamble, m_phy->GetFrequency (), 0, 0) > MilliSeconds(10))
         return true;
     
     if (!m_mpduAggregator->CanBeAggregated (peekedPacket->GetSize () + peekedHdr.GetSize () + WIFI_MAC_FCS_LENGTH, aggregatedPacket, size))
@@ -2756,7 +2803,7 @@
                           InsertInTxQueue (packet, hdr, tstamp);
                         }
                       }
-                      NS_LOG_DEBUG ("Adding packet with Sequence number " << peekedHdr.GetSequenceNumber()<<" to A-MPDU, packet size = " << newPacket->GetSize ()<< ", A-MPDU size = " << currentAggregatedPacket->GetSize ());
+                      NS_LOG_DEBUG ("Adding packet with Sequence number " << peekedHdr.GetSequenceNumber () <<" to A-MPDU, packet size = " << newPacket->GetSize ()<< ", A-MPDU size = " << currentAggregatedPacket->GetSize ());
                       i++;
                       isAmpdu = true;
                       m_sentMpdus++;
@@ -2769,7 +2816,7 @@
                         InsertInTxQueue (peekedPacket, peekedHdr, tstamp);
                       }
                       if (retry)
-                          listenerIt->second->RemoveFromBaQueue(tid, hdr.GetAddr1 (), peekedHdr.GetSequenceNumber ());
+                          listenerIt->second->RemoveFromBaQueue (tid, hdr.GetAddr1 (), peekedHdr.GetSequenceNumber ());
                       else
                           queue->Remove (peekedPacket);
                       newPacket = 0;
@@ -2792,7 +2839,7 @@
                               
                               if (listenerIt->second->GetMsduAggregator () != 0)
                               {
-                                tempPacket = PerformMsduAggregation(peekedPacket, &peekedHdr, &tstamp, currentAggregatedPacket, blockAckSize);
+                                tempPacket = PerformMsduAggregation (peekedPacket, &peekedHdr, &tstamp, currentAggregatedPacket, blockAckSize);
                                 if (tempPacket != 0) //MSDU aggregation
                                   peekedPacket = tempPacket->Copy();
                               }
@@ -2812,7 +2859,7 @@
                           
                           if (listenerIt->second->GetMsduAggregator () != 0 && IsInWindow (currentSequenceNumber, startingSequenceNumber, 64))
                           {
-                            tempPacket = PerformMsduAggregation(peekedPacket, &peekedHdr, &tstamp, currentAggregatedPacket, blockAckSize);
+                            tempPacket = PerformMsduAggregation (peekedPacket, &peekedHdr, &tstamp, currentAggregatedPacket, blockAckSize);
                             if (tempPacket != 0) //MSDU aggregation
                               peekedPacket = tempPacket->Copy();
                           }
@@ -2834,7 +2881,7 @@
                     }
                   if (qosPolicy==0)
                     {
-                         listenerIt->second->CompleteTransfer(hdr.GetAddr1 (),tid);
+                         listenerIt->second->CompleteTransfer (hdr.GetAddr1 (), tid);
                     }
                   //Add packet tag
                   AmpduTag ampdutag;
@@ -2895,7 +2942,7 @@
 
   Ptr<WifiMacQueue> queue;
   AcIndex ac = QosUtilsMapTidToAc (GetTid (packet, *hdr));
-  std::map<AcIndex, MacLowAggregationCapableTransmissionListener*>::const_iterator listenerIt= m_edcaListeners.find(ac);
+  std::map<AcIndex, MacLowAggregationCapableTransmissionListener*>::const_iterator listenerIt = m_edcaListeners.find (ac);
   NS_ASSERT (listenerIt != m_edcaListeners.end ());
   queue = listenerIt->second->GetQueue();