From 336cbc6a9dd77f89fb838737ff0b2f9ff5e30b9e Mon Sep 17 00:00:00 2001 From: Stefano Avallone Date: Fri, 24 Apr 2020 23:20:10 +0200 Subject: [PATCH] wifi: WifiRemoteStationManager makes use of WifiMacQueueItems --- src/wifi/model/mac-low.cc | 8 +- src/wifi/model/qos-txop.cc | 46 +++--- src/wifi/model/txop.cc | 41 +++-- src/wifi/model/wifi-remote-station-manager.cc | 146 +++++++++--------- src/wifi/model/wifi-remote-station-manager.h | 74 +++------ src/wifi/test/power-rate-adaptation-test.cc | 101 ++++++------ 6 files changed, 192 insertions(+), 224 deletions(-) diff --git a/src/wifi/model/mac-low.cc b/src/wifi/model/mac-low.cc index 77c25ecf5..5470724d3 100644 --- a/src/wifi/model/mac-low.cc +++ b/src/wifi/model/mac-low.cc @@ -823,7 +823,7 @@ MacLow::ReceiveOk (Ptr mpdu, double rxSnr, WifiTxVector txVect packet->RemovePacketTag (tag); m_stationManager->ReportRxOk (m_currentPacket->GetAddr1 (), rxSnr, txVector.GetMode ()); - m_stationManager->ReportRtsOk (m_currentPacket->GetAddr1 (), &m_currentPacket->GetHeader (0), + m_stationManager->ReportRtsOk (m_currentPacket->GetHeader (0), rxSnr, txVector.GetMode (), tag.Get ()); m_ctsTimeoutEvent.Cancel (); @@ -846,9 +846,9 @@ MacLow::ReceiveOk (Ptr mpdu, double rxSnr, WifiTxVector txVect { m_stationManager->ReportRxOk (m_currentPacket->GetAddr1 (), rxSnr, txVector.GetMode ()); - m_stationManager->ReportDataOk (m_currentPacket->GetAddr1 (), &m_currentPacket->GetHeader (0), + m_stationManager->ReportDataOk (*m_currentPacket->begin (), rxSnr, txVector.GetMode (), tag.Get (), - m_currentTxVector, m_currentPacket->GetSize ()); + m_currentTxVector); } // cancel the Normal Ack timer m_normalAckTimeoutEvent.Cancel (); @@ -1500,7 +1500,7 @@ MacLow::CtsTimeout (void) /// \todo should check that there was no RX start before now. /// we should restart a new CTS timeout now until the expected /// end of RX if there was a RX start before now. - m_stationManager->ReportRtsFailed (m_currentPacket->GetAddr1 (), &m_currentPacket->GetHeader (0)); + m_stationManager->ReportRtsFailed (m_currentPacket->GetHeader (0)); Ptr qosTxop = DynamicCast (m_currentTxop); if (qosTxop != 0) diff --git a/src/wifi/model/qos-txop.cc b/src/wifi/model/qos-txop.cc index 2acdb4241..8bd719693 100644 --- a/src/wifi/model/qos-txop.cc +++ b/src/wifi/model/qos-txop.cc @@ -656,11 +656,11 @@ void QosTxop::NotifyInternalCollision (void) if (!NeedRtsRetransmission (packet, header)) { resetTxop = true; - m_stationManager->ReportFinalRtsFailed (header.GetAddr1 (), &header); + m_stationManager->ReportFinalRtsFailed (header); } else { - m_stationManager->ReportRtsFailed (header.GetAddr1 (), &header); + m_stationManager->ReportRtsFailed (header); } } else if (header.GetAddr1 () == Mac48Address::GetBroadcast ()) @@ -672,11 +672,11 @@ void QosTxop::NotifyInternalCollision (void) if (!NeedDataRetransmission (packet, header)) { resetTxop = true; - m_stationManager->ReportFinalDataFailed (header.GetAddr1 (), &header, packet->GetSize ()); + m_stationManager->ReportFinalDataFailed (Create (packet, header)); } else { - m_stationManager->ReportDataFailed (header.GetAddr1 (), &header, packet->GetSize ()); + m_stationManager->ReportDataFailed (Create (packet, header)); } } if (resetTxop) @@ -717,7 +717,7 @@ QosTxop::NotifyMissedCts (std::list> mpduList) if (!NeedRtsRetransmission (m_currentPacket, m_currentHdr)) { NS_LOG_DEBUG ("Cts Fail"); - m_stationManager->ReportFinalRtsFailed (m_currentHdr.GetAddr1 (), &m_currentHdr); + m_stationManager->ReportFinalRtsFailed (m_currentHdr); if (!m_txFailedCallback.IsNull ()) { m_txFailedCallback (m_currentHdr); @@ -822,8 +822,8 @@ QosTxop::MissedAck (void) if (!NeedDataRetransmission (m_currentPacket, m_currentHdr)) { NS_LOG_DEBUG ("Ack Fail"); - m_stationManager->ReportFinalDataFailed (m_currentHdr.GetAddr1 (), &m_currentHdr, - m_currentPacket->GetSize ()); + m_stationManager->ReportFinalDataFailed (Create (m_currentPacket, + m_currentHdr)); if (!m_txFailedCallback.IsNull ()) { m_txFailedCallback (m_currentHdr); @@ -854,8 +854,8 @@ QosTxop::MissedAck (void) else { NS_LOG_DEBUG ("Retransmit"); - m_stationManager->ReportDataFailed (m_currentHdr.GetAddr1 (), &m_currentHdr, - m_currentPacket->GetSize ()); + m_stationManager->ReportDataFailed (Create (m_currentPacket, + m_currentHdr)); m_currentHdr.SetRetry (); if (m_currentHdr.IsQosData () && GetBaAgreementEstablished (m_currentHdr.GetAddr1 (), m_currentHdr.GetQosTid ())) { @@ -905,8 +905,8 @@ QosTxop::MissedBlockAck (uint8_t nMpdus) NS_LOG_DEBUG ("Block Ack Request Fail"); // if a BA agreement exists, we can get here if there is no outstanding // MPDU whose lifetime has not expired yet. - m_stationManager->ReportFinalDataFailed (m_currentHdr.GetAddr1 (), &m_currentHdr, - m_currentPacket->GetSize ()); + m_stationManager->ReportFinalDataFailed (Create (m_currentPacket, + m_currentHdr)); if (m_baManager->ExistsAgreementInState (m_currentHdr.GetAddr1 (), tid, OriginatorBlockAckAgreement::ESTABLISHED)) { @@ -942,8 +942,8 @@ QosTxop::MissedBlockAck (uint8_t nMpdus) if (!NeedDataRetransmission (m_currentPacket, m_currentHdr)) { NS_LOG_DEBUG ("Block Ack Fail"); - m_stationManager->ReportFinalDataFailed (m_currentHdr.GetAddr1 (), &m_currentHdr, - m_currentPacket->GetSize ()); + m_stationManager->ReportFinalDataFailed (Create (m_currentPacket, + m_currentHdr)); if (!m_txFailedCallback.IsNull ()) { m_txFailedCallback (m_currentHdr); @@ -972,7 +972,7 @@ QosTxop::MissedBlockAck (uint8_t nMpdus) else { NS_LOG_DEBUG ("Retransmit"); - m_stationManager->ReportDataFailed (m_currentHdr.GetAddr1 (), &m_currentHdr, m_currentPacket->GetSize ()); + m_stationManager->ReportDataFailed (Create (m_currentPacket, m_currentHdr)); m_baManager->NotifyMissedBlockAck (m_currentHdr.GetAddr1 (), tid); m_currentPacket = 0; UpdateFailedCw (); @@ -1202,7 +1202,7 @@ QosTxop::NeedFragmentation (void) const { needTxopFragmentation = (GetLow ()->CalculateOverallTxTime (m_currentPacket, &m_currentHdr, m_currentParams) > GetTxopLimit ()); } - return (needTxopFragmentation || m_stationManager->NeedFragmentation (m_currentHdr.GetAddr1 (), &m_currentHdr, m_currentPacket)); + return (needTxopFragmentation || m_stationManager->NeedFragmentation (Create (m_currentPacket, m_currentHdr))); } bool @@ -1212,8 +1212,8 @@ QosTxop::IsTxopFragmentation (void) const { return false; } - if (!m_stationManager->NeedFragmentation (m_currentHdr.GetAddr1 (), &m_currentHdr, m_currentPacket) - || (GetTxopFragmentSize () < m_stationManager->GetFragmentSize (m_currentHdr.GetAddr1 (), &m_currentHdr,m_currentPacket, 0))) + if (!m_stationManager->NeedFragmentation (Create (m_currentPacket, m_currentHdr)) + || (GetTxopFragmentSize () < m_stationManager->GetFragmentSize (Create (m_currentPacket, m_currentHdr), 0))) { return true; } @@ -1321,7 +1321,7 @@ QosTxop::GetFragmentSize (void) const } else { - size = m_stationManager->GetFragmentSize (m_currentHdr.GetAddr1 (), &m_currentHdr,m_currentPacket, m_fragmentNumber); + size = m_stationManager->GetFragmentSize (Create (m_currentPacket, m_currentHdr), m_fragmentNumber); } return size; } @@ -1336,7 +1336,7 @@ QosTxop::GetNextFragmentSize (void) const } else { - size = m_stationManager->GetFragmentSize (m_currentHdr.GetAddr1 (), &m_currentHdr,m_currentPacket, m_fragmentNumber + 1); + size = m_stationManager->GetFragmentSize (Create (m_currentPacket, m_currentHdr), m_fragmentNumber + 1); } return size; } @@ -1351,8 +1351,8 @@ QosTxop::GetFragmentOffset (void) const } else { - offset = m_stationManager->GetFragmentOffset (m_currentHdr.GetAddr1 (), &m_currentHdr, - m_currentPacket, m_fragmentNumber); + offset = m_stationManager->GetFragmentOffset (Create (m_currentPacket, + m_currentHdr), m_fragmentNumber); } return offset; } @@ -1367,8 +1367,8 @@ QosTxop::IsLastFragment (void) const } else { - isLastFragment = m_stationManager->IsLastFragment (m_currentHdr.GetAddr1 (), &m_currentHdr, - m_currentPacket, m_fragmentNumber); + isLastFragment = m_stationManager->IsLastFragment (Create (m_currentPacket, + m_currentHdr), m_fragmentNumber); } return isLastFragment; } diff --git a/src/wifi/model/txop.cc b/src/wifi/model/txop.cc index 7f7223a3f..aad31bf0d 100644 --- a/src/wifi/model/txop.cc +++ b/src/wifi/model/txop.cc @@ -381,22 +381,21 @@ bool Txop::NeedRtsRetransmission (Ptr packet, const WifiMacHeader &hdr) { NS_LOG_FUNCTION (this); - return m_stationManager->NeedRetransmission (hdr.GetAddr1 (), &hdr, packet); + return m_stationManager->NeedRetransmission (Create (packet, hdr)); } bool Txop::NeedDataRetransmission (Ptr packet, const WifiMacHeader &hdr) { NS_LOG_FUNCTION (this); - return m_stationManager->NeedRetransmission (hdr.GetAddr1 (), &hdr, packet); + return m_stationManager->NeedRetransmission (Create (packet, hdr)); } bool Txop::NeedFragmentation (void) const { NS_LOG_FUNCTION (this); - return m_stationManager->NeedFragmentation (m_currentHdr.GetAddr1 (), &m_currentHdr, - m_currentPacket); + return m_stationManager->NeedFragmentation (Create (m_currentPacket, m_currentHdr)); } void @@ -410,32 +409,32 @@ uint32_t Txop::GetFragmentSize (void) const { NS_LOG_FUNCTION (this); - return m_stationManager->GetFragmentSize (m_currentHdr.GetAddr1 (), &m_currentHdr, - m_currentPacket, m_fragmentNumber); + return m_stationManager->GetFragmentSize (Create (m_currentPacket, + m_currentHdr), m_fragmentNumber); } bool Txop::IsLastFragment (void) const { NS_LOG_FUNCTION (this); - return m_stationManager->IsLastFragment (m_currentHdr.GetAddr1 (), &m_currentHdr, - m_currentPacket, m_fragmentNumber); + return m_stationManager->IsLastFragment (Create (m_currentPacket, + m_currentHdr), m_fragmentNumber); } uint32_t Txop::GetNextFragmentSize (void) const { NS_LOG_FUNCTION (this); - return m_stationManager->GetFragmentSize (m_currentHdr.GetAddr1 (), &m_currentHdr, - m_currentPacket, m_fragmentNumber + 1); + return m_stationManager->GetFragmentSize (Create (m_currentPacket, + m_currentHdr), m_fragmentNumber + 1); } uint32_t Txop::GetFragmentOffset (void) const { NS_LOG_FUNCTION (this); - return m_stationManager->GetFragmentOffset (m_currentHdr.GetAddr1 (), &m_currentHdr, - m_currentPacket, m_fragmentNumber); + return m_stationManager->GetFragmentOffset (Create (m_currentPacket, + m_currentHdr), m_fragmentNumber); } Ptr @@ -615,7 +614,7 @@ Txop::MissedCts (void) if (!NeedRtsRetransmission (m_currentPacket, m_currentHdr)) { NS_LOG_DEBUG ("Cts Fail"); - m_stationManager->ReportFinalRtsFailed (m_currentHdr.GetAddr1 (), &m_currentHdr); + m_stationManager->ReportFinalRtsFailed (m_currentHdr); if (!m_txFailedCallback.IsNull ()) { m_txFailedCallback (m_currentHdr); @@ -670,8 +669,8 @@ Txop::MissedAck (void) if (!NeedDataRetransmission (m_currentPacket, m_currentHdr)) { NS_LOG_DEBUG ("Ack Fail"); - m_stationManager->ReportFinalDataFailed (m_currentHdr.GetAddr1 (), &m_currentHdr, - m_currentPacket->GetSize ()); + m_stationManager->ReportFinalDataFailed (Create (m_currentPacket, + m_currentHdr)); if (!m_txFailedCallback.IsNull ()) { m_txFailedCallback (m_currentHdr); @@ -684,8 +683,8 @@ Txop::MissedAck (void) else { NS_LOG_DEBUG ("Retransmit"); - m_stationManager->ReportDataFailed (m_currentHdr.GetAddr1 (), &m_currentHdr, - m_currentPacket->GetSize ()); + m_stationManager->ReportDataFailed (Create (m_currentPacket, + m_currentHdr)); m_currentHdr.SetRetry (); UpdateFailedCw (); m_cwTrace = GetCw (); @@ -718,8 +717,8 @@ Txop::MissedCfPollResponse (bool expectedCfAck) if (!NeedDataRetransmission (m_currentPacket, m_currentHdr)) { NS_LOG_DEBUG ("Ack Fail"); - m_stationManager->ReportFinalDataFailed (m_currentHdr.GetAddr1 (), &m_currentHdr, - m_currentPacket->GetSize ()); + m_stationManager->ReportFinalDataFailed (Create (m_currentPacket, + m_currentHdr)); m_currentPacket = 0; } else @@ -788,8 +787,8 @@ Txop::SendCfFrame (WifiMacType frameType, Mac48Address addr) { if (!NeedDataRetransmission (m_currentPacket, m_currentHdr)) { - m_stationManager->ReportFinalDataFailed (m_currentHdr.GetAddr1 (), &m_currentHdr, - m_currentPacket->GetSize ()); + m_stationManager->ReportFinalDataFailed (Create (m_currentPacket, + m_currentHdr)); m_currentPacket = 0; } else diff --git a/src/wifi/model/wifi-remote-station-manager.cc b/src/wifi/model/wifi-remote-station-manager.cc index 808409cef..4e8f5ed44 100644 --- a/src/wifi/model/wifi-remote-station-manager.cc +++ b/src/wifi/model/wifi-remote-station-manager.cc @@ -27,6 +27,7 @@ #include "wifi-phy.h" #include "wifi-mac.h" #include "wifi-mac-header.h" +#include "wifi-mac-queue-item.h" #include "wifi-mac-trailer.h" #include "ht-configuration.h" #include "vht-configuration.h" @@ -799,24 +800,23 @@ WifiRemoteStationManager::GetControlAnswerMode (WifiMode reqMode) const } void -WifiRemoteStationManager::ReportRtsFailed (Mac48Address address, const WifiMacHeader *header) +WifiRemoteStationManager::ReportRtsFailed (const WifiMacHeader& header) { - NS_LOG_FUNCTION (this << address << *header); - NS_ASSERT (!address.IsGroup ()); - AcIndex ac = QosUtilsMapTidToAc ((header->IsQosData ()) ? header->GetQosTid () : 0); + NS_LOG_FUNCTION (this << header); + NS_ASSERT (!header.GetAddr1 ().IsGroup ()); + AcIndex ac = QosUtilsMapTidToAc ((header.IsQosData ()) ? header.GetQosTid () : 0); m_ssrc[ac]++; - m_macTxRtsFailed (address); - DoReportRtsFailed (Lookup (address)); + m_macTxRtsFailed (header.GetAddr1 ()); + DoReportRtsFailed (Lookup (header.GetAddr1 ())); } void -WifiRemoteStationManager::ReportDataFailed (Mac48Address address, const WifiMacHeader *header, - uint32_t packetSize) +WifiRemoteStationManager::ReportDataFailed (Ptr mpdu) { - NS_LOG_FUNCTION (this << address << *header); - NS_ASSERT (!address.IsGroup ()); - AcIndex ac = QosUtilsMapTidToAc ((header->IsQosData ()) ? header->GetQosTid () : 0); - bool longMpdu = (packetSize + header->GetSize () + WIFI_MAC_FCS_LENGTH) > m_rtsCtsThreshold; + NS_LOG_FUNCTION (this << *mpdu); + NS_ASSERT (!mpdu->GetHeader ().GetAddr1 ().IsGroup ()); + AcIndex ac = QosUtilsMapTidToAc ((mpdu->GetHeader ().IsQosData ()) ? mpdu->GetHeader ().GetQosTid () : 0); + bool longMpdu = (mpdu->GetSize () > m_rtsCtsThreshold); if (longMpdu) { m_slrc[ac]++; @@ -825,33 +825,33 @@ WifiRemoteStationManager::ReportDataFailed (Mac48Address address, const WifiMacH { m_ssrc[ac]++; } - m_macTxDataFailed (address); - DoReportDataFailed (Lookup (address)); + m_macTxDataFailed (mpdu->GetHeader ().GetAddr1 ()); + DoReportDataFailed (Lookup (mpdu->GetHeader ().GetAddr1 ())); } void -WifiRemoteStationManager::ReportRtsOk (Mac48Address address, const WifiMacHeader *header, +WifiRemoteStationManager::ReportRtsOk (const WifiMacHeader& header, double ctsSnr, WifiMode ctsMode, double rtsSnr) { - NS_LOG_FUNCTION (this << address << *header << ctsSnr << ctsMode << rtsSnr); - NS_ASSERT (!address.IsGroup ()); - WifiRemoteStation *station = Lookup (address); - AcIndex ac = QosUtilsMapTidToAc ((header->IsQosData ()) ? header->GetQosTid () : 0); + NS_LOG_FUNCTION (this << header << ctsSnr << ctsMode << rtsSnr); + NS_ASSERT (!header.GetAddr1 ().IsGroup ()); + WifiRemoteStation *station = Lookup (header.GetAddr1 ()); + AcIndex ac = QosUtilsMapTidToAc ((header.IsQosData ()) ? header.GetQosTid () : 0); station->m_state->m_info.NotifyTxSuccess (m_ssrc[ac]); m_ssrc[ac] = 0; DoReportRtsOk (station, ctsSnr, ctsMode, rtsSnr); } void -WifiRemoteStationManager::ReportDataOk (Mac48Address address, const WifiMacHeader *header, - double ackSnr, WifiMode ackMode, double dataSnr, - WifiTxVector dataTxVector, uint32_t packetSize) +WifiRemoteStationManager::ReportDataOk (Ptr mpdu, double ackSnr, + WifiMode ackMode, double dataSnr, WifiTxVector dataTxVector) { - NS_LOG_FUNCTION (this << address << *header << ackSnr << ackMode << dataSnr << dataTxVector << packetSize); - NS_ASSERT (!address.IsGroup ()); - WifiRemoteStation *station = Lookup (address); - AcIndex ac = QosUtilsMapTidToAc ((header->IsQosData ()) ? header->GetQosTid () : 0); - bool longMpdu = (packetSize + header->GetSize () + WIFI_MAC_FCS_LENGTH) > m_rtsCtsThreshold; + NS_LOG_FUNCTION (this << *mpdu << ackSnr << ackMode << dataSnr << dataTxVector); + const WifiMacHeader& hdr = mpdu->GetHeader (); + NS_ASSERT (!hdr.GetAddr1 ().IsGroup ()); + WifiRemoteStation *station = Lookup (hdr.GetAddr1 ()); + AcIndex ac = QosUtilsMapTidToAc ((hdr.IsQosData ()) ? hdr.GetQosTid () : 0); + bool longMpdu = (mpdu->GetSize () > m_rtsCtsThreshold); if (longMpdu) { station->m_state->m_info.NotifyTxSuccess (m_slrc[ac]); @@ -866,28 +866,27 @@ WifiRemoteStationManager::ReportDataOk (Mac48Address address, const WifiMacHeade } void -WifiRemoteStationManager::ReportFinalRtsFailed (Mac48Address address, const WifiMacHeader *header) +WifiRemoteStationManager::ReportFinalRtsFailed (const WifiMacHeader& header) { - NS_LOG_FUNCTION (this << address << *header); - NS_ASSERT (!address.IsGroup ()); - WifiRemoteStation *station = Lookup (address); - AcIndex ac = QosUtilsMapTidToAc ((header->IsQosData ()) ? header->GetQosTid () : 0); + NS_LOG_FUNCTION (this << header); + NS_ASSERT (!header.GetAddr1 ().IsGroup ()); + WifiRemoteStation *station = Lookup (header.GetAddr1 ()); + AcIndex ac = QosUtilsMapTidToAc ((header.IsQosData ()) ? header.GetQosTid () : 0); station->m_state->m_info.NotifyTxFailed (); m_ssrc[ac] = 0; - m_macTxFinalRtsFailed (address); + m_macTxFinalRtsFailed (header.GetAddr1 ()); DoReportFinalRtsFailed (station); } void -WifiRemoteStationManager::ReportFinalDataFailed (Mac48Address address, const WifiMacHeader *header, - uint32_t packetSize) +WifiRemoteStationManager::ReportFinalDataFailed (Ptr mpdu) { - NS_LOG_FUNCTION (this << address << *header); - NS_ASSERT (!address.IsGroup ()); - WifiRemoteStation *station = Lookup (address); - AcIndex ac = QosUtilsMapTidToAc ((header->IsQosData ()) ? header->GetQosTid () : 0); + NS_LOG_FUNCTION (this << *mpdu); + NS_ASSERT (!mpdu->GetHeader ().GetAddr1 ().IsGroup ()); + WifiRemoteStation *station = Lookup (mpdu->GetHeader ().GetAddr1 ()); + AcIndex ac = QosUtilsMapTidToAc ((mpdu->GetHeader ().IsQosData ()) ? mpdu->GetHeader ().GetQosTid () : 0); station->m_state->m_info.NotifyTxFailed (); - bool longMpdu = (packetSize + header->GetSize () + WIFI_MAC_FCS_LENGTH) > m_rtsCtsThreshold; + bool longMpdu = (mpdu->GetSize () > m_rtsCtsThreshold); if (longMpdu) { m_slrc[ac] = 0; @@ -896,7 +895,7 @@ WifiRemoteStationManager::ReportFinalDataFailed (Mac48Address address, const Wif { m_ssrc[ac] = 0; } - m_macTxFinalDataFailed (address); + m_macTxFinalDataFailed (mpdu->GetHeader ().GetAddr1 ()); DoReportFinalDataFailed (station); } @@ -1052,13 +1051,12 @@ WifiRemoteStationManager::GetUseGreenfieldProtection (void) const } bool -WifiRemoteStationManager::NeedRetransmission (Mac48Address address, const WifiMacHeader *header, - Ptr packet) +WifiRemoteStationManager::NeedRetransmission (Ptr mpdu) { - NS_LOG_FUNCTION (this << address << packet << *header); - NS_ASSERT (!address.IsGroup ()); - AcIndex ac = QosUtilsMapTidToAc ((header->IsQosData ()) ? header->GetQosTid () : 0); - bool longMpdu = (packet->GetSize () + header->GetSize () + WIFI_MAC_FCS_LENGTH) > m_rtsCtsThreshold; + NS_LOG_FUNCTION (this << *mpdu); + NS_ASSERT (!mpdu->GetHeader ().GetAddr1 ().IsGroup ()); + AcIndex ac = QosUtilsMapTidToAc ((mpdu->GetHeader ().IsQosData ()) ? mpdu->GetHeader ().GetQosTid () : 0); + bool longMpdu = (mpdu->GetSize () > m_rtsCtsThreshold); uint32_t retryCount, maxRetryCount; if (longMpdu) { @@ -1072,21 +1070,20 @@ WifiRemoteStationManager::NeedRetransmission (Mac48Address address, const WifiMa } bool normally = retryCount < maxRetryCount; NS_LOG_DEBUG ("WifiRemoteStationManager::NeedRetransmission count: " << retryCount << " result: " << std::boolalpha << normally); - return DoNeedRetransmission (Lookup (address), packet, normally); + return DoNeedRetransmission (Lookup (mpdu->GetHeader ().GetAddr1 ()), mpdu->GetPacket (), normally); } bool -WifiRemoteStationManager::NeedFragmentation (Mac48Address address, const WifiMacHeader *header, - Ptr packet) +WifiRemoteStationManager::NeedFragmentation (Ptr mpdu) { - NS_LOG_FUNCTION (this << address << packet << *header); - if (address.IsGroup ()) + NS_LOG_FUNCTION (this << *mpdu); + if (mpdu->GetHeader ().GetAddr1 ().IsGroup ()) { return false; } - bool normally = (packet->GetSize () + header->GetSize () + WIFI_MAC_FCS_LENGTH) > GetFragmentationThreshold (); + bool normally = mpdu->GetSize () > GetFragmentationThreshold (); NS_LOG_DEBUG ("WifiRemoteStationManager::NeedFragmentation result: " << std::boolalpha << normally); - return DoNeedFragmentation (Lookup (address), packet, normally); + return DoNeedFragmentation (Lookup (mpdu->GetHeader ().GetAddr1 ()), mpdu->GetPacket (), normally); } void @@ -1132,14 +1129,14 @@ WifiRemoteStationManager::DoGetFragmentationThreshold (void) const } uint32_t -WifiRemoteStationManager::GetNFragments (const WifiMacHeader *header, Ptr packet) +WifiRemoteStationManager::GetNFragments (Ptr mpdu) { - NS_LOG_FUNCTION (this << *header << packet); + NS_LOG_FUNCTION (this << *mpdu); //The number of bytes a fragment can support is (Threshold - WIFI_HEADER_SIZE - WIFI_FCS). - uint32_t nFragments = (packet->GetSize () / (GetFragmentationThreshold () - header->GetSize () - WIFI_MAC_FCS_LENGTH)); + uint32_t nFragments = (mpdu->GetPacket ()->GetSize () / (GetFragmentationThreshold () - mpdu->GetHeader ().GetSize () - WIFI_MAC_FCS_LENGTH)); //If the size of the last fragment is not 0. - if ((packet->GetSize () % (GetFragmentationThreshold () - header->GetSize () - WIFI_MAC_FCS_LENGTH)) > 0) + if ((mpdu->GetPacket ()->GetSize () % (GetFragmentationThreshold () - mpdu->GetHeader ().GetSize () - WIFI_MAC_FCS_LENGTH)) > 0) { nFragments++; } @@ -1148,12 +1145,11 @@ WifiRemoteStationManager::GetNFragments (const WifiMacHeader *header, Ptr packet, uint32_t fragmentNumber) +WifiRemoteStationManager::GetFragmentSize (Ptr mpdu, uint32_t fragmentNumber) { - NS_LOG_FUNCTION (this << address << *header << packet << fragmentNumber); - NS_ASSERT (!address.IsGroup ()); - uint32_t nFragment = GetNFragments (header, packet); + NS_LOG_FUNCTION (this << *mpdu << fragmentNumber); + NS_ASSERT (!mpdu->GetHeader ().GetAddr1 ().IsGroup ()); + uint32_t nFragment = GetNFragments (mpdu); if (fragmentNumber >= nFragment) { NS_LOG_DEBUG ("WifiRemoteStationManager::GetFragmentSize returning 0"); @@ -1162,38 +1158,36 @@ WifiRemoteStationManager::GetFragmentSize (Mac48Address address, const WifiMacHe //Last fragment if (fragmentNumber == nFragment - 1) { - uint32_t lastFragmentSize = packet->GetSize () - (fragmentNumber * (GetFragmentationThreshold () - header->GetSize () - WIFI_MAC_FCS_LENGTH)); + uint32_t lastFragmentSize = mpdu->GetPacket ()->GetSize () - (fragmentNumber * (GetFragmentationThreshold () - mpdu->GetHeader ().GetSize () - WIFI_MAC_FCS_LENGTH)); NS_LOG_DEBUG ("WifiRemoteStationManager::GetFragmentSize returning " << lastFragmentSize); return lastFragmentSize; } //All fragments but the last, the number of bytes is (Threshold - WIFI_HEADER_SIZE - WIFI_FCS). else { - uint32_t fragmentSize = GetFragmentationThreshold () - header->GetSize () - WIFI_MAC_FCS_LENGTH; + uint32_t fragmentSize = GetFragmentationThreshold () - mpdu->GetHeader ().GetSize () - WIFI_MAC_FCS_LENGTH; NS_LOG_DEBUG ("WifiRemoteStationManager::GetFragmentSize returning " << fragmentSize); return fragmentSize; } } uint32_t -WifiRemoteStationManager::GetFragmentOffset (Mac48Address address, const WifiMacHeader *header, - Ptr packet, uint32_t fragmentNumber) +WifiRemoteStationManager::GetFragmentOffset (Ptr mpdu, uint32_t fragmentNumber) { - NS_LOG_FUNCTION (this << address << *header << packet << fragmentNumber); - NS_ASSERT (!address.IsGroup ()); - NS_ASSERT (fragmentNumber < GetNFragments (header, packet)); - uint32_t fragmentOffset = fragmentNumber * (GetFragmentationThreshold () - header->GetSize () - WIFI_MAC_FCS_LENGTH); + NS_LOG_FUNCTION (this << *mpdu << fragmentNumber); + NS_ASSERT (!mpdu->GetHeader ().GetAddr1 ().IsGroup ()); + NS_ASSERT (fragmentNumber < GetNFragments (mpdu)); + uint32_t fragmentOffset = fragmentNumber * (GetFragmentationThreshold () - mpdu->GetHeader ().GetSize () - WIFI_MAC_FCS_LENGTH); NS_LOG_DEBUG ("WifiRemoteStationManager::GetFragmentOffset returning " << fragmentOffset); return fragmentOffset; } bool -WifiRemoteStationManager::IsLastFragment (Mac48Address address, const WifiMacHeader *header, - Ptr packet, uint32_t fragmentNumber) +WifiRemoteStationManager::IsLastFragment (Ptr mpdu, uint32_t fragmentNumber) { - NS_LOG_FUNCTION (this << address << *header << packet << fragmentNumber); - NS_ASSERT (!address.IsGroup ()); - bool isLast = fragmentNumber == (GetNFragments (header, packet) - 1); + NS_LOG_FUNCTION (this << *mpdu << fragmentNumber); + NS_ASSERT (!mpdu->GetHeader ().GetAddr1 ().IsGroup ()); + bool isLast = fragmentNumber == (GetNFragments (mpdu) - 1); NS_LOG_DEBUG ("WifiRemoteStationManager::IsLastFragment returning " << std::boolalpha << isLast); return isLast; } diff --git a/src/wifi/model/wifi-remote-station-manager.h b/src/wifi/model/wifi-remote-station-manager.h index f57e53aa7..baac63512 100644 --- a/src/wifi/model/wifi-remote-station-manager.h +++ b/src/wifi/model/wifi-remote-station-manager.h @@ -40,6 +40,7 @@ class WifiPhy; class WifiMac; class WifiMacHeader; class Packet; +class WifiMacQueueItem; class WifiTxVector; struct WifiRemoteStationState; @@ -715,67 +716,54 @@ public: * Should be invoked whenever the RtsTimeout associated to a transmission * attempt expires. * - * \param address the address of the receiver * \param header MAC header of the DATA packet */ - void ReportRtsFailed (Mac48Address address, const WifiMacHeader *header); + void ReportRtsFailed (const WifiMacHeader& header); /** * Should be invoked whenever the AckTimeout associated to a transmission * attempt expires. * - * \param address the address of the receiver - * \param header MAC header of the DATA packet - * \param packetSize the size of the DATA packet + * \param mpdu the MPDU whose transmission failed */ - void ReportDataFailed (Mac48Address address, const WifiMacHeader *header, - uint32_t packetSize); + void ReportDataFailed (Ptr mpdu); /** * Should be invoked whenever we receive the CTS associated to an RTS * we just sent. Note that we also get the SNR of the RTS we sent since * the receiver put a SnrTag in the CTS. * - * \param address the address of the receiver * \param header MAC header of the DATA packet * \param ctsSnr the SNR of the CTS we received * \param ctsMode the WifiMode the receiver used to send the CTS * \param rtsSnr the SNR of the RTS we sent */ - void ReportRtsOk (Mac48Address address, const WifiMacHeader *header, + void ReportRtsOk (const WifiMacHeader& header, double ctsSnr, WifiMode ctsMode, double rtsSnr); /** * Should be invoked whenever we receive the ACK associated to a data packet * we just sent. * - * \param address the address of the receiver - * \param header MAC header of the DATA packet + * \param mpdu the MPDU * \param ackSnr the SNR of the ACK we received * \param ackMode the WifiMode the receiver used to send the ACK * \param dataSnr the SNR of the DATA we sent * \param dataTxVector the TXVECTOR of the DATA we sent - * \param packetSize the size of the DATA packet */ - void ReportDataOk (Mac48Address address, const WifiMacHeader *header, - double ackSnr, WifiMode ackMode, - double dataSnr, WifiTxVector dataTxVector, - uint32_t packetSize); + void ReportDataOk (Ptr mpdu, double ackSnr, + WifiMode ackMode, double dataSnr, WifiTxVector dataTxVector); /** * Should be invoked after calling ReportRtsFailed if * NeedRetransmission returns false * - * \param address the address of the receiver * \param header MAC header of the DATA packet */ - void ReportFinalRtsFailed (Mac48Address address, const WifiMacHeader *header); + void ReportFinalRtsFailed (const WifiMacHeader& header); /** * Should be invoked after calling ReportDataFailed if * NeedRetransmission returns false * - * \param address the address of the receiver - * \param header MAC header of the DATA packet - * \param packetSize the size of the DATA packet + * \param mpdu the MPDU which was discarded */ - void ReportFinalDataFailed (Mac48Address address, const WifiMacHeader *header, - uint32_t packetSize); + void ReportFinalDataFailed (Ptr mpdu); /** * Typically called per A-MPDU, either when a Block ACK was successfully * received or when a BlockAckTimeout has elapsed. @@ -819,55 +807,40 @@ public: bool NeedCtsToSelf (WifiTxVector txVector); /** - * \param address remote address - * \param header MAC header - * \param packet the packet to send + * \param mpdu the MPDU to send * * \return true if we want to resend a packet after a failed transmission attempt, * false otherwise. */ - bool NeedRetransmission (Mac48Address address, const WifiMacHeader *header, - Ptr packet); + bool NeedRetransmission (Ptr mpdu); /** - * \param address remote address - * \param header MAC header - * \param packet the packet to send + * \param mpdu the MPDU to send * * \return true if this packet should be fragmented, * false otherwise. */ - bool NeedFragmentation (Mac48Address address, const WifiMacHeader *header, - Ptr packet); + bool NeedFragmentation (Ptr mpdu); /** - * \param address remote address - * \param header MAC header - * \param packet the packet to send + * \param mpdu the MPDU to send * \param fragmentNumber the fragment index of the next fragment to send (starts at zero). * * \return the size of the corresponding fragment. */ - uint32_t GetFragmentSize (Mac48Address address, const WifiMacHeader *header, - Ptr packet, uint32_t fragmentNumber); + uint32_t GetFragmentSize (Ptr mpdu, uint32_t fragmentNumber); /** - * \param address remote address - * \param header MAC header - * \param packet the packet to send + * \param mpdu the packet to send * \param fragmentNumber the fragment index of the next fragment to send (starts at zero). * * \return the offset within the original packet where this fragment starts. */ - uint32_t GetFragmentOffset (Mac48Address address, const WifiMacHeader *header, - Ptr packet, uint32_t fragmentNumber); + uint32_t GetFragmentOffset (Ptr mpdu, uint32_t fragmentNumber); /** - * \param address remote address - * \param header MAC header - * \param packet the packet to send + * \param mpdu the packet to send * \param fragmentNumber the fragment index of the next fragment to send (starts at zero). * * \return true if this is the last fragment, false otherwise. */ - bool IsLastFragment (Mac48Address address, const WifiMacHeader *header, - Ptr packet, uint32_t fragmentNumber); + bool IsLastFragment (Ptr mpdu, uint32_t fragmentNumber); /** * \return the default transmission power @@ -1277,12 +1250,11 @@ private: /** * Return the number of fragments needed for the given packet. * - * \param header MAC header - * \param packet the packet to be fragmented + * \param mpdu the packet to be fragmented * * \return the number of fragments needed */ - uint32_t GetNFragments (const WifiMacHeader *header, Ptr packet); + uint32_t GetNFragments (Ptr mpdu); /** * This is a pointer to the WifiPhy associated with this diff --git a/src/wifi/test/power-rate-adaptation-test.cc b/src/wifi/test/power-rate-adaptation-test.cc index 6c011463a..faf8beae1 100644 --- a/src/wifi/test/power-rate-adaptation-test.cc +++ b/src/wifi/test/power-rate-adaptation-test.cc @@ -140,6 +140,7 @@ PowerRateAdaptationTest::TestParf () packetHeader.SetType (WIFI_MAC_DATA); packetHeader.SetQosTid (0); Ptr packet = Create (10); + Ptr mpdu = Create (packet, packetHeader); WifiMode ackMode; /* @@ -168,7 +169,7 @@ PowerRateAdaptationTest::TestParf () */ for (int i = 0; i < 10; i++) { - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, txVector, packet->GetSize ()); + manager->ReportDataOk (mpdu, 0, ackMode, 0, txVector); } txVector = manager->GetDataTxVector (packetHeader); @@ -184,7 +185,7 @@ PowerRateAdaptationTest::TestParf () * As we are using recovery power, one failure make power increase. * */ - manager->ReportDataFailed (remoteAddress, &packetHeader, packet->GetSize ()); + manager->ReportDataFailed (mpdu); txVector = manager->GetDataTxVector (packetHeader); mode = txVector.GetMode (); @@ -201,10 +202,10 @@ PowerRateAdaptationTest::TestParf () */ for (int i = 0; i < 7; i++) { - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, txVector, packet->GetSize ()); - manager->ReportDataFailed (remoteAddress, &packetHeader, packet->GetSize ()); + manager->ReportDataOk (mpdu, 0, ackMode, 0, txVector); + manager->ReportDataFailed (mpdu); } - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, txVector, packet->GetSize ()); + manager->ReportDataOk (mpdu, 0, ackMode, 0, txVector); txVector = manager->GetDataTxVector (packetHeader); mode = txVector.GetMode (); @@ -219,7 +220,7 @@ PowerRateAdaptationTest::TestParf () * As we are using recovery power, one failure make power increase. recoveryPower=false. */ - manager->ReportDataFailed (remoteAddress, &packetHeader, packet->GetSize ()); + manager->ReportDataFailed (mpdu); txVector = manager->GetDataTxVector (packetHeader); mode = txVector.GetMode (); @@ -234,8 +235,8 @@ PowerRateAdaptationTest::TestParf () * After two consecutive fails the rate is decreased or the power increased. * As we are at maximal power, the rate should be decreased. */ - manager->ReportDataFailed (remoteAddress, &packetHeader, packet->GetSize ()); - manager->ReportDataFailed (remoteAddress, &packetHeader, packet->GetSize ()); + manager->ReportDataFailed (mpdu); + manager->ReportDataFailed (mpdu); txVector = manager->GetDataTxVector (packetHeader); mode = txVector.GetMode (); @@ -252,7 +253,7 @@ PowerRateAdaptationTest::TestParf () */ for (int i = 0; i < 10; i++) { - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, txVector, packet->GetSize ()); + manager->ReportDataOk (mpdu, 0, ackMode, 0, txVector); } txVector = manager->GetDataTxVector (packetHeader); @@ -268,7 +269,7 @@ PowerRateAdaptationTest::TestParf () * As we are using recovery rate, one failure make rate decrease. recoveryRate=false. */ - manager->ReportDataFailed (remoteAddress, &packetHeader, packet->GetSize ()); + manager->ReportDataFailed (mpdu); txVector = manager->GetDataTxVector (packetHeader); mode = txVector.GetMode (); @@ -285,7 +286,7 @@ PowerRateAdaptationTest::TestParf () */ for (int i = 0; i < 10; i++) { - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, txVector, packet->GetSize ()); + manager->ReportDataOk (mpdu, 0, ackMode, 0, txVector); } txVector = manager->GetDataTxVector (packetHeader); @@ -303,7 +304,7 @@ PowerRateAdaptationTest::TestParf () */ for (int i = 0; i < 10; i++) { - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, txVector, packet->GetSize ()); + manager->ReportDataOk (mpdu, 0, ackMode, 0, txVector); } txVector = manager->GetDataTxVector (packetHeader); @@ -319,11 +320,11 @@ PowerRateAdaptationTest::TestParf () * One successful transmissions after a power decrease make recoverPower=false. * So we need two consecutive failures to increase power again. */ - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, txVector, packet->GetSize ()); + manager->ReportDataOk (mpdu, 0, ackMode, 0, txVector); for (int i = 0; i < 2; i++) { - manager->ReportDataFailed (remoteAddress,&packetHeader, packet->GetSize ()); + manager->ReportDataFailed (mpdu); } txVector = manager->GetDataTxVector (packetHeader); @@ -361,6 +362,7 @@ PowerRateAdaptationTest::TestAparf () packetHeader.SetType (WIFI_MAC_DATA); packetHeader.SetQosTid (0); Ptr packet = Create (10); + Ptr mpdu = Create (packet, packetHeader); WifiMode ackMode; /* @@ -390,7 +392,7 @@ PowerRateAdaptationTest::TestAparf () */ for (int i = 0; i < 3; i++) { - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, txVector, packet->GetSize ()); + manager->ReportDataOk (mpdu, 0, ackMode, 0, txVector); } txVector = manager->GetDataTxVector (packetHeader); @@ -406,7 +408,7 @@ PowerRateAdaptationTest::TestAparf () * One failure make the power to be increased again. * Change to state Low. */ - manager->ReportDataFailed (remoteAddress, &packetHeader, packet->GetSize ()); + manager->ReportDataFailed (mpdu); txVector = manager->GetDataTxVector (packetHeader); mode = txVector.GetMode (); @@ -424,7 +426,7 @@ PowerRateAdaptationTest::TestAparf () */ for (int i = 0; i < 10; i++) { - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, txVector, packet->GetSize ()); + manager->ReportDataOk (mpdu, 0, ackMode, 0, txVector); } txVector = manager->GetDataTxVector (packetHeader); @@ -443,7 +445,7 @@ PowerRateAdaptationTest::TestAparf () for (int i = 0; i < 3; i++) { - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, txVector, packet->GetSize ()); + manager->ReportDataOk (mpdu, 0, ackMode, 0, txVector); } txVector = manager->GetDataTxVector (packetHeader); @@ -461,7 +463,7 @@ PowerRateAdaptationTest::TestAparf () */ for (int i = 0; i < 16 * 3; i++) { - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, txVector, packet->GetSize ()); + manager->ReportDataOk (mpdu, 0, ackMode, 0, txVector); } txVector = manager->GetDataTxVector (packetHeader); @@ -477,7 +479,7 @@ PowerRateAdaptationTest::TestAparf () * After one fail the rate is decreased or the power increased. * As we are at minimal power, the power should be increased. */ - manager->ReportDataFailed (remoteAddress,&packetHeader, packet->GetSize ()); + manager->ReportDataFailed (mpdu); txVector = manager->GetDataTxVector (packetHeader); mode = txVector.GetMode (); @@ -494,7 +496,7 @@ PowerRateAdaptationTest::TestAparf () */ for (int i = 0; i < 16; i++) { - manager->ReportDataFailed (remoteAddress,&packetHeader, packet->GetSize ()); + manager->ReportDataFailed (mpdu); } txVector = manager->GetDataTxVector (packetHeader); @@ -511,7 +513,7 @@ PowerRateAdaptationTest::TestAparf () * As we are at maximal power, the rate should be decreased. * Set critical rate to 54 Mbps. */ - manager->ReportDataFailed (remoteAddress,&packetHeader, packet->GetSize ()); + manager->ReportDataFailed (mpdu); txVector = manager->GetDataTxVector (packetHeader); mode = txVector.GetMode (); @@ -528,7 +530,7 @@ PowerRateAdaptationTest::TestAparf () */ for (int i = 0; i < 3; i++) { - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, txVector, packet->GetSize ()); + manager->ReportDataOk (mpdu, 0, ackMode, 0, txVector); } txVector = manager->GetDataTxVector (packetHeader); @@ -548,7 +550,7 @@ PowerRateAdaptationTest::TestAparf () */ for (int i = 0; i < 9 * 3; i++) { - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, txVector, packet->GetSize ()); + manager->ReportDataOk (mpdu, 0, ackMode, 0, txVector); } txVector = manager->GetDataTxVector (packetHeader); @@ -560,7 +562,7 @@ PowerRateAdaptationTest::TestAparf () for (int i = 0; i < 3; i++) { - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, txVector, packet->GetSize ()); + manager->ReportDataOk (mpdu, 0, ackMode, 0, txVector); } txVector = manager->GetDataTxVector (packetHeader); @@ -604,6 +606,7 @@ PowerRateAdaptationTest::TestRrpaa () packetHeader.SetType (WIFI_MAC_DATA); packetHeader.SetQosTid (0); Ptr packet = Create (10); + Ptr mpdu = Create (packet, packetHeader); WifiMode ackMode; /* @@ -662,7 +665,7 @@ PowerRateAdaptationTest::TestRrpaa () */ for (int i = 0; i < 6; i++) { - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, txVector, packet->GetSize ()); + manager->ReportDataOk (mpdu, 0, ackMode, 0, txVector); } txVector = manager->GetDataTxVector (packetHeader); @@ -675,7 +678,7 @@ PowerRateAdaptationTest::TestRrpaa () /** * Test that 7 is enough. */ - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, txVector, packet->GetSize ()); + manager->ReportDataOk (mpdu, 0, ackMode, 0, txVector); txVector = manager->GetDataTxVector (packetHeader); mode = txVector.GetMode (); @@ -692,7 +695,7 @@ PowerRateAdaptationTest::TestRrpaa () */ for (int i = 0; i < 4; i++) { - manager->ReportDataFailed (remoteAddress,&packetHeader, packet->GetSize ()); + manager->ReportDataFailed (mpdu); } txVector = manager->GetDataTxVector (packetHeader); @@ -702,7 +705,7 @@ PowerRateAdaptationTest::TestRrpaa () NS_TEST_ASSERT_MSG_EQ (mode.GetDataRate (txVector.GetChannelWidth (), txVector.GetGuardInterval (), 1), 9000000, "RRPAA: Incorrect vale of data rate"); NS_TEST_ASSERT_MSG_EQ (power, 17, "RRPAA: Incorrect value of power level"); - manager->ReportDataFailed (remoteAddress,&packetHeader, packet->GetSize ()); + manager->ReportDataFailed (mpdu); txVector = manager->GetDataTxVector (packetHeader); mode = txVector.GetMode (); @@ -719,7 +722,7 @@ PowerRateAdaptationTest::TestRrpaa () for (int i = 0; i < 7; i++) { - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, txVector, packet->GetSize ()); + manager->ReportDataOk (mpdu, 0, ackMode, 0, txVector); } txVector = manager->GetDataTxVector (packetHeader); @@ -731,7 +734,7 @@ PowerRateAdaptationTest::TestRrpaa () for (int i = 0; i < 10; i++) { - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, txVector, packet->GetSize ()); + manager->ReportDataOk (mpdu, 0, ackMode, 0, txVector); } txVector = manager->GetDataTxVector (packetHeader); @@ -743,7 +746,7 @@ PowerRateAdaptationTest::TestRrpaa () for (int i = 0; i < 13; i++) { - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, txVector, packet->GetSize ()); + manager->ReportDataOk (mpdu, 0, ackMode, 0, txVector); } txVector = manager->GetDataTxVector (packetHeader); @@ -755,7 +758,7 @@ PowerRateAdaptationTest::TestRrpaa () for (int i = 0; i < 19; i++) { - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, txVector, packet->GetSize ()); + manager->ReportDataOk (mpdu, 0, ackMode, 0, txVector); } txVector = manager->GetDataTxVector (packetHeader); @@ -767,7 +770,7 @@ PowerRateAdaptationTest::TestRrpaa () for (int i = 0; i < 23; i++) { - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, txVector, packet->GetSize ()); + manager->ReportDataOk (mpdu, 0, ackMode, 0, txVector); } txVector = manager->GetDataTxVector (packetHeader); @@ -779,7 +782,7 @@ PowerRateAdaptationTest::TestRrpaa () for (int i = 0; i < 33; i++) { - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, txVector, packet->GetSize ()); + manager->ReportDataOk (mpdu, 0, ackMode, 0, txVector); } txVector = manager->GetDataTxVector (packetHeader); @@ -791,7 +794,7 @@ PowerRateAdaptationTest::TestRrpaa () for (int i = 0; i < 43; i++) { - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, txVector, packet->GetSize ()); + manager->ReportDataOk (mpdu, 0, ackMode, 0, txVector); } txVector = manager->GetDataTxVector (packetHeader); @@ -811,7 +814,7 @@ PowerRateAdaptationTest::TestRrpaa () for (int i = 0; i < 49; i++) { - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, txVector, packet->GetSize ()); + manager->ReportDataOk (mpdu, 0, ackMode, 0, txVector); } txVector = manager->GetDataTxVector (packetHeader); @@ -821,7 +824,7 @@ PowerRateAdaptationTest::TestRrpaa () NS_TEST_ASSERT_MSG_EQ (mode.GetDataRate (txVector.GetChannelWidth (), txVector.GetGuardInterval (), 1), 54000000, "RRPAA: Incorrect vale of data rate"); NS_TEST_ASSERT_MSG_EQ (power, 17, "RRPAA: Incorrect value of power level"); - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, txVector, packet->GetSize ()); + manager->ReportDataOk (mpdu, 0, ackMode, 0, txVector); txVector = manager->GetDataTxVector (packetHeader); mode = txVector.GetMode (); @@ -839,7 +842,7 @@ PowerRateAdaptationTest::TestRrpaa () for (int i = 0; i < 16 * 50; i++) { - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, txVector, packet->GetSize ()); + manager->ReportDataOk (mpdu, 0, ackMode, 0, txVector); } txVector = manager->GetDataTxVector (packetHeader); @@ -857,7 +860,7 @@ PowerRateAdaptationTest::TestRrpaa () for (int i = 0; i < 6; i++) { - manager->ReportDataFailed (remoteAddress,&packetHeader, packet->GetSize ()); + manager->ReportDataFailed (mpdu); } txVector = manager->GetDataTxVector (packetHeader); @@ -875,7 +878,7 @@ PowerRateAdaptationTest::TestRrpaa () for (int i = 0; i < 16 * 6; i++) { - manager->ReportDataFailed (remoteAddress,&packetHeader, packet->GetSize ()); + manager->ReportDataFailed (mpdu); } txVector = manager->GetDataTxVector (packetHeader); @@ -893,7 +896,7 @@ PowerRateAdaptationTest::TestRrpaa () for (int i = 0; i < 6; i++) { - manager->ReportDataFailed (remoteAddress,&packetHeader, packet->GetSize ()); + manager->ReportDataFailed (mpdu); } txVector = manager->GetDataTxVector (packetHeader); @@ -909,7 +912,7 @@ PowerRateAdaptationTest::TestRrpaa () for (int i = 0; i < 11; i++) { - manager->ReportDataFailed (remoteAddress,&packetHeader, packet->GetSize ()); + manager->ReportDataFailed (mpdu); } txVector = manager->GetDataTxVector (packetHeader); @@ -929,7 +932,7 @@ PowerRateAdaptationTest::TestRrpaa () for (int i = 0; i < 25; i++) { - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, txVector, packet->GetSize ()); + manager->ReportDataOk (mpdu, 0, ackMode, 0, txVector); } txVector = manager->GetDataTxVector (packetHeader); @@ -941,7 +944,7 @@ PowerRateAdaptationTest::TestRrpaa () for (int i = 0; i < 5; i++) { - manager->ReportDataFailed (remoteAddress,&packetHeader, packet->GetSize ()); + manager->ReportDataFailed (mpdu); } txVector = manager->GetDataTxVector (packetHeader); @@ -953,7 +956,7 @@ PowerRateAdaptationTest::TestRrpaa () for (int i = 0; i < 5; i++) { - manager->ReportDataFailed (remoteAddress,&packetHeader, packet->GetSize ()); + manager->ReportDataFailed (mpdu); } txVector = manager->GetDataTxVector (packetHeader); @@ -965,7 +968,7 @@ PowerRateAdaptationTest::TestRrpaa () for (int i = 0; i < 25; i++) { - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, txVector, packet->GetSize ()); + manager->ReportDataOk (mpdu, 0, ackMode, 0, txVector); } txVector = manager->GetDataTxVector (packetHeader); @@ -985,12 +988,12 @@ PowerRateAdaptationTest::TestRrpaa () { for (int j = 0; j < 25; j++) { - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, txVector, packet->GetSize ()); + manager->ReportDataOk (mpdu, 0, ackMode, 0, txVector); } for (int j = 0; j < 5; j++) { - manager->ReportDataFailed (remoteAddress,&packetHeader, packet->GetSize ()); + manager->ReportDataFailed (mpdu); } }