--- 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();