diff --git a/src/wifi/model/aarf-wifi-manager.cc b/src/wifi/model/aarf-wifi-manager.cc index 0cfe1134d..1018ff63b 100644 --- a/src/wifi/model/aarf-wifi-manager.cc +++ b/src/wifi/model/aarf-wifi-manager.cc @@ -213,9 +213,10 @@ AarfWifiManager::DoReportRtsOk (WifiRemoteStation *station, void AarfWifiManager::DoReportDataOk (WifiRemoteStation *st, - double ackSnr, WifiMode ackMode, double dataSnr) + double ackSnr, WifiMode ackMode, + double dataSnr, uint16_t dataChannelWidth) { - NS_LOG_FUNCTION (this << st << ackSnr << ackMode << dataSnr); + NS_LOG_FUNCTION (this << st << ackSnr << ackMode << dataSnr << dataChannelWidth); AarfWifiRemoteStation *station = static_cast (st); station->m_timer++; station->m_success++; diff --git a/src/wifi/model/aarf-wifi-manager.h b/src/wifi/model/aarf-wifi-manager.h index 73a53396d..0e0b9a5fa 100644 --- a/src/wifi/model/aarf-wifi-manager.h +++ b/src/wifi/model/aarf-wifi-manager.h @@ -62,7 +62,8 @@ private: void DoReportRtsOk (WifiRemoteStation *station, double ctsSnr, WifiMode ctsMode, double rtsSnr); void DoReportDataOk (WifiRemoteStation *station, - double ackSnr, WifiMode ackMode, double dataSnr); + double ackSnr, WifiMode ackMode, + double dataSnr, uint16_t dataChannelWidth); void DoReportFinalRtsFailed (WifiRemoteStation *station); void DoReportFinalDataFailed (WifiRemoteStation *station); WifiTxVector DoGetDataTxVector (WifiRemoteStation *station); diff --git a/src/wifi/model/aarfcd-wifi-manager.cc b/src/wifi/model/aarfcd-wifi-manager.cc index dd08914a4..ebaa17837 100644 --- a/src/wifi/model/aarfcd-wifi-manager.cc +++ b/src/wifi/model/aarfcd-wifi-manager.cc @@ -271,9 +271,10 @@ AarfcdWifiManager::DoReportRtsOk (WifiRemoteStation *st, void AarfcdWifiManager::DoReportDataOk (WifiRemoteStation *st, - double ackSnr, WifiMode ackMode, double dataSnr) + double ackSnr, WifiMode ackMode, + double dataSnr, uint16_t dataChannelWidth) { - NS_LOG_FUNCTION (this << st << ackSnr << ackMode << dataSnr); + NS_LOG_FUNCTION (this << st << ackSnr << ackMode << dataSnr << dataChannelWidth); AarfcdWifiRemoteStation *station = static_cast (st); station->m_timer++; station->m_success++; diff --git a/src/wifi/model/aarfcd-wifi-manager.h b/src/wifi/model/aarfcd-wifi-manager.h index 5cd65ca8f..f7db62b6a 100644 --- a/src/wifi/model/aarfcd-wifi-manager.h +++ b/src/wifi/model/aarfcd-wifi-manager.h @@ -76,7 +76,8 @@ private: void DoReportRtsOk (WifiRemoteStation *station, double ctsSnr, WifiMode ctsMode, double rtsSnr); void DoReportDataOk (WifiRemoteStation *station, - double ackSnr, WifiMode ackMode, double dataSnr); + double ackSnr, WifiMode ackMode, + double dataSnr, uint16_t dataChannelWidth); void DoReportFinalRtsFailed (WifiRemoteStation *station); void DoReportFinalDataFailed (WifiRemoteStation *station); WifiTxVector DoGetDataTxVector (WifiRemoteStation *station); diff --git a/src/wifi/model/amrr-wifi-manager.cc b/src/wifi/model/amrr-wifi-manager.cc index 221551034..6fee038ba 100644 --- a/src/wifi/model/amrr-wifi-manager.cc +++ b/src/wifi/model/amrr-wifi-manager.cc @@ -169,9 +169,10 @@ AmrrWifiManager::DoReportRtsOk (WifiRemoteStation *st, void AmrrWifiManager::DoReportDataOk (WifiRemoteStation *st, - double ackSnr, WifiMode ackMode, double dataSnr) + double ackSnr, WifiMode ackMode, + double dataSnr, uint16_t dataChannelWidth) { - NS_LOG_FUNCTION (this << st << ackSnr << ackMode << dataSnr); + NS_LOG_FUNCTION (this << st << ackSnr << ackMode << dataSnr << dataChannelWidth); AmrrWifiRemoteStation *station = static_cast (st); station->m_retry = 0; station->m_tx_ok++; diff --git a/src/wifi/model/amrr-wifi-manager.h b/src/wifi/model/amrr-wifi-manager.h index 86ca0b7cf..6377d3bec 100644 --- a/src/wifi/model/amrr-wifi-manager.h +++ b/src/wifi/model/amrr-wifi-manager.h @@ -65,7 +65,8 @@ private: void DoReportRtsOk (WifiRemoteStation *station, double ctsSnr, WifiMode ctsMode, double rtsSnr); void DoReportDataOk (WifiRemoteStation *station, - double ackSnr, WifiMode ackMode, double dataSnr); + double ackSnr, WifiMode ackMode, + double dataSnr, uint16_t dataChannelWidth); void DoReportFinalRtsFailed (WifiRemoteStation *station); void DoReportFinalDataFailed (WifiRemoteStation *station); WifiTxVector DoGetDataTxVector (WifiRemoteStation *station); diff --git a/src/wifi/model/aparf-wifi-manager.cc b/src/wifi/model/aparf-wifi-manager.cc index e38d277cb..8cffe237f 100644 --- a/src/wifi/model/aparf-wifi-manager.cc +++ b/src/wifi/model/aparf-wifi-manager.cc @@ -255,10 +255,11 @@ AparfWifiManager::DoReportRtsOk (WifiRemoteStation *station, double ctsSnr, } void -AparfWifiManager::DoReportDataOk (WifiRemoteStation *st, double ackSnr, - WifiMode ackMode, double dataSnr) +AparfWifiManager::DoReportDataOk (WifiRemoteStation *st, + double ackSnr, WifiMode ackMode, + double dataSnr, uint16_t dataChannelWidth) { - NS_LOG_FUNCTION (this << st << ackSnr << ackMode << dataSnr); + NS_LOG_FUNCTION (this << st << ackSnr << ackMode << dataSnr << dataChannelWidth); AparfWifiRemoteStation *station = static_cast (st); CheckInit (station); station->m_nSuccess++; diff --git a/src/wifi/model/aparf-wifi-manager.h b/src/wifi/model/aparf-wifi-manager.h index 85bfe7de9..ff93c02ce 100644 --- a/src/wifi/model/aparf-wifi-manager.h +++ b/src/wifi/model/aparf-wifi-manager.h @@ -78,7 +78,8 @@ private: void DoReportRtsOk (WifiRemoteStation *station, double ctsSnr, WifiMode ctsMode, double rtsSnr); void DoReportDataOk (WifiRemoteStation *station, - double ackSnr, WifiMode ackMode, double dataSnr); + double ackSnr, WifiMode ackMode, + double dataSnr, uint16_t dataChannelWidth); void DoReportFinalRtsFailed (WifiRemoteStation *station); void DoReportFinalDataFailed (WifiRemoteStation *station); WifiTxVector DoGetDataTxVector (WifiRemoteStation *station); diff --git a/src/wifi/model/arf-wifi-manager.cc b/src/wifi/model/arf-wifi-manager.cc index f1b993bcd..db80bd11d 100644 --- a/src/wifi/model/arf-wifi-manager.cc +++ b/src/wifi/model/arf-wifi-manager.cc @@ -190,9 +190,10 @@ void ArfWifiManager::DoReportRtsOk (WifiRemoteStation *station, } void ArfWifiManager::DoReportDataOk (WifiRemoteStation *st, - double ackSnr, WifiMode ackMode, double dataSnr) + double ackSnr, WifiMode ackMode, + double dataSnr, uint16_t dataChannelWidth) { - NS_LOG_FUNCTION (this << st << ackSnr << ackMode << dataSnr); + NS_LOG_FUNCTION (this << st << ackSnr << ackMode << dataSnr << dataChannelWidth); ArfWifiRemoteStation *station = static_cast (st); station->m_timer++; station->m_success++; diff --git a/src/wifi/model/arf-wifi-manager.h b/src/wifi/model/arf-wifi-manager.h index dad25955b..523df4b0d 100644 --- a/src/wifi/model/arf-wifi-manager.h +++ b/src/wifi/model/arf-wifi-manager.h @@ -68,7 +68,8 @@ private: void DoReportRtsOk (WifiRemoteStation *station, double ctsSnr, WifiMode ctsMode, double rtsSnr); void DoReportDataOk (WifiRemoteStation *station, - double ackSnr, WifiMode ackMode, double dataSnr); + double ackSnr, WifiMode ackMode, + double dataSnr, uint16_t dataChannelWidth); void DoReportFinalRtsFailed (WifiRemoteStation *station); void DoReportFinalDataFailed (WifiRemoteStation *station); WifiTxVector DoGetDataTxVector (WifiRemoteStation *station); diff --git a/src/wifi/model/cara-wifi-manager.cc b/src/wifi/model/cara-wifi-manager.cc index 879e7d187..2770f67a0 100644 --- a/src/wifi/model/cara-wifi-manager.cc +++ b/src/wifi/model/cara-wifi-manager.cc @@ -163,9 +163,10 @@ CaraWifiManager::DoReportRtsOk (WifiRemoteStation *st, void CaraWifiManager::DoReportDataOk (WifiRemoteStation *st, - double ackSnr, WifiMode ackMode, double dataSnr) + double ackSnr, WifiMode ackMode, + double dataSnr, uint16_t dataChannelWidth) { - NS_LOG_FUNCTION (this << st << ackSnr << ackMode << dataSnr); + NS_LOG_FUNCTION (this << st << ackSnr << ackMode << dataSnr << dataChannelWidth); CaraWifiRemoteStation *station = static_cast (st); station->m_timer++; station->m_success++; diff --git a/src/wifi/model/cara-wifi-manager.h b/src/wifi/model/cara-wifi-manager.h index 4cace9371..b58734b89 100644 --- a/src/wifi/model/cara-wifi-manager.h +++ b/src/wifi/model/cara-wifi-manager.h @@ -64,7 +64,8 @@ private: void DoReportRtsOk (WifiRemoteStation *station, double ctsSnr, WifiMode ctsMode, double rtsSnr); void DoReportDataOk (WifiRemoteStation *station, - double ackSnr, WifiMode ackMode, double dataSnr); + double ackSnr, WifiMode ackMode, + double dataSnr, uint16_t dataChannelWidth); void DoReportFinalRtsFailed (WifiRemoteStation *station); void DoReportFinalDataFailed (WifiRemoteStation *station); WifiTxVector DoGetDataTxVector (WifiRemoteStation *station); diff --git a/src/wifi/model/constant-rate-wifi-manager.cc b/src/wifi/model/constant-rate-wifi-manager.cc index fd1fb6755..83931e7c3 100644 --- a/src/wifi/model/constant-rate-wifi-manager.cc +++ b/src/wifi/model/constant-rate-wifi-manager.cc @@ -97,9 +97,10 @@ ConstantRateWifiManager::DoReportRtsOk (WifiRemoteStation *st, void ConstantRateWifiManager::DoReportDataOk (WifiRemoteStation *st, - double ackSnr, WifiMode ackMode, double dataSnr) + double ackSnr, WifiMode ackMode, + double dataSnr, uint16_t dataChannelWidth) { - NS_LOG_FUNCTION (this << st << ackSnr << ackMode << dataSnr); + NS_LOG_FUNCTION (this << st << ackSnr << ackMode << dataSnr << dataChannelWidth); } void diff --git a/src/wifi/model/constant-rate-wifi-manager.h b/src/wifi/model/constant-rate-wifi-manager.h index e22b12ce4..ceacd3738 100644 --- a/src/wifi/model/constant-rate-wifi-manager.h +++ b/src/wifi/model/constant-rate-wifi-manager.h @@ -54,7 +54,8 @@ private: void DoReportRtsOk (WifiRemoteStation *station, double ctsSnr, WifiMode ctsMode, double rtsSnr); void DoReportDataOk (WifiRemoteStation *station, - double ackSnr, WifiMode ackMode, double dataSnr); + double ackSnr, WifiMode ackMode, + double dataSnr, uint16_t dataChannelWidth); void DoReportFinalRtsFailed (WifiRemoteStation *station); void DoReportFinalDataFailed (WifiRemoteStation *station); WifiTxVector DoGetDataTxVector (WifiRemoteStation *station); diff --git a/src/wifi/model/ideal-wifi-manager.cc b/src/wifi/model/ideal-wifi-manager.cc index 071e484ad..a78b6fae2 100644 --- a/src/wifi/model/ideal-wifi-manager.cc +++ b/src/wifi/model/ideal-wifi-manager.cc @@ -259,9 +259,10 @@ IdealWifiManager::DoReportRtsOk (WifiRemoteStation *st, void IdealWifiManager::DoReportDataOk (WifiRemoteStation *st, - double ackSnr, WifiMode ackMode, double dataSnr) + double ackSnr, WifiMode ackMode, + double dataSnr, uint16_t dataChannelWidth) { - NS_LOG_FUNCTION (this << st << ackSnr << ackMode.GetUniqueName () << dataSnr); + NS_LOG_FUNCTION (this << st << ackSnr << ackMode.GetUniqueName () << dataSnr << dataChannelWidth); IdealWifiRemoteStation *station = static_cast (st); if (dataSnr == 0) { diff --git a/src/wifi/model/ideal-wifi-manager.h b/src/wifi/model/ideal-wifi-manager.h index 80543507b..bd4c48b88 100644 --- a/src/wifi/model/ideal-wifi-manager.h +++ b/src/wifi/model/ideal-wifi-manager.h @@ -66,7 +66,8 @@ private: void DoReportRtsOk (WifiRemoteStation *station, double ctsSnr, WifiMode ctsMode, double rtsSnr); void DoReportDataOk (WifiRemoteStation *station, - double ackSnr, WifiMode ackMode, double dataSnr); + double ackSnr, WifiMode ackMode, + double dataSnr, uint16_t dataChannelWidth); void DoReportAmpduTxStatus (WifiRemoteStation *station, uint8_t nSuccessfulMpdus, uint8_t nFailedMpdus, double rxSnr, double dataSnr); diff --git a/src/wifi/model/mac-low.cc b/src/wifi/model/mac-low.cc index ca91bdc2d..6278c66ad 100644 --- a/src/wifi/model/mac-low.cc +++ b/src/wifi/model/mac-low.cc @@ -909,6 +909,7 @@ MacLow::ReceiveOk (Ptr mpdu, double rxSnr, WifiTxVector txVect rxSnr, txVector.GetMode ()); m_stationManager->ReportDataOk (m_currentPacket->GetAddr1 (), &m_currentPacket->GetHeader (0), rxSnr, txVector.GetMode (), tag.Get (), + m_currentTxVector.GetChannelWidth (), m_currentPacket->GetSize ()); } // cancel the Normal Ack timer diff --git a/src/wifi/model/minstrel-ht-wifi-manager.cc b/src/wifi/model/minstrel-ht-wifi-manager.cc index 4d9bfbece..857f446c3 100644 --- a/src/wifi/model/minstrel-ht-wifi-manager.cc +++ b/src/wifi/model/minstrel-ht-wifi-manager.cc @@ -519,9 +519,11 @@ MinstrelHtWifiManager::DoReportDataFailed (WifiRemoteStation *st) } void -MinstrelHtWifiManager::DoReportDataOk (WifiRemoteStation *st, double ackSnr, WifiMode ackMode, double dataSnr) +MinstrelHtWifiManager::DoReportDataOk (WifiRemoteStation *st, + double ackSnr, WifiMode ackMode, + double dataSnr, uint16_t dataChannelWidth) { - NS_LOG_FUNCTION (this << st << ackSnr << ackMode << dataSnr); + NS_LOG_FUNCTION (this << st << ackSnr << ackMode << dataSnr << dataChannelWidth); MinstrelHtWifiRemoteStation *station = static_cast (st); CheckInit (station); diff --git a/src/wifi/model/minstrel-ht-wifi-manager.h b/src/wifi/model/minstrel-ht-wifi-manager.h index cf29a2d4a..a910c3d8b 100644 --- a/src/wifi/model/minstrel-ht-wifi-manager.h +++ b/src/wifi/model/minstrel-ht-wifi-manager.h @@ -230,7 +230,8 @@ private: void DoReportRtsOk (WifiRemoteStation *station, double ctsSnr, WifiMode ctsMode, double rtsSnr); void DoReportDataOk (WifiRemoteStation *station, - double ackSnr, WifiMode ackMode, double dataSnr); + double ackSnr, WifiMode ackMode, + double dataSnr, uint16_t dataChannelWidth); void DoReportFinalRtsFailed (WifiRemoteStation *station); void DoReportFinalDataFailed (WifiRemoteStation *station); WifiTxVector DoGetDataTxVector (WifiRemoteStation *station); diff --git a/src/wifi/model/minstrel-wifi-manager.cc b/src/wifi/model/minstrel-wifi-manager.cc index 787cae3c0..7c461a2e4 100644 --- a/src/wifi/model/minstrel-wifi-manager.cc +++ b/src/wifi/model/minstrel-wifi-manager.cc @@ -757,9 +757,10 @@ MinstrelWifiManager::DoReportDataFailed (WifiRemoteStation *st) void MinstrelWifiManager::DoReportDataOk (WifiRemoteStation *st, - double ackSnr, WifiMode ackMode, double dataSnr) + double ackSnr, WifiMode ackMode, + double dataSnr, uint16_t dataChannelWidth) { - NS_LOG_FUNCTION (this << st << ackSnr << ackMode << dataSnr); + NS_LOG_FUNCTION (this << st << ackSnr << ackMode << dataSnr << dataChannelWidth); MinstrelWifiRemoteStation *station = static_cast (st); CheckInit (station); diff --git a/src/wifi/model/minstrel-wifi-manager.h b/src/wifi/model/minstrel-wifi-manager.h index 45f05a267..99c8c0ae8 100644 --- a/src/wifi/model/minstrel-wifi-manager.h +++ b/src/wifi/model/minstrel-wifi-manager.h @@ -265,7 +265,8 @@ private: void DoReportRtsOk (WifiRemoteStation *station, double ctsSnr, WifiMode ctsMode, double rtsSnr); void DoReportDataOk (WifiRemoteStation *station, - double ackSnr, WifiMode ackMode, double dataSnr); + double ackSnr, WifiMode ackMode, + double dataSnr, uint16_t dataChannelWidth); void DoReportFinalRtsFailed (WifiRemoteStation *station); void DoReportFinalDataFailed (WifiRemoteStation *station); WifiTxVector DoGetDataTxVector (WifiRemoteStation *station); diff --git a/src/wifi/model/onoe-wifi-manager.cc b/src/wifi/model/onoe-wifi-manager.cc index a1a6d8dca..3bbaec98b 100644 --- a/src/wifi/model/onoe-wifi-manager.cc +++ b/src/wifi/model/onoe-wifi-manager.cc @@ -152,9 +152,11 @@ OnoeWifiManager::DoReportRtsOk (WifiRemoteStation *station, double ctsSnr, WifiM } void -OnoeWifiManager::DoReportDataOk (WifiRemoteStation *st, double ackSnr, WifiMode ackMode, double dataSnr) +OnoeWifiManager::DoReportDataOk (WifiRemoteStation *st, + double ackSnr, WifiMode ackMode, + double dataSnr, uint16_t dataChannelWidth) { - NS_LOG_FUNCTION (this << st << ackSnr << ackMode << dataSnr); + NS_LOG_FUNCTION (this << st << ackSnr << ackMode << dataSnr << dataChannelWidth); OnoeWifiRemoteStation *station = static_cast (st); UpdateRetry (station); station->m_tx_ok++; diff --git a/src/wifi/model/onoe-wifi-manager.h b/src/wifi/model/onoe-wifi-manager.h index a6a0bbde0..4539fd6a1 100644 --- a/src/wifi/model/onoe-wifi-manager.h +++ b/src/wifi/model/onoe-wifi-manager.h @@ -66,7 +66,8 @@ private: void DoReportRtsOk (WifiRemoteStation *station, double ctsSnr, WifiMode ctsMode, double rtsSnr); void DoReportDataOk (WifiRemoteStation *station, - double ackSnr, WifiMode ackMode, double dataSnr); + double ackSnr, WifiMode ackMode, + double dataSnr, uint16_t dataChannelWidth); void DoReportFinalRtsFailed (WifiRemoteStation *station); void DoReportFinalDataFailed (WifiRemoteStation *station); WifiTxVector DoGetDataTxVector (WifiRemoteStation *station); diff --git a/src/wifi/model/parf-wifi-manager.cc b/src/wifi/model/parf-wifi-manager.cc index 81a269972..a98f78693 100644 --- a/src/wifi/model/parf-wifi-manager.cc +++ b/src/wifi/model/parf-wifi-manager.cc @@ -259,9 +259,10 @@ void ParfWifiManager::DoReportRtsOk (WifiRemoteStation *station, } void ParfWifiManager::DoReportDataOk (WifiRemoteStation *st, - double ackSnr, WifiMode ackMode, double dataSnr) + double ackSnr, WifiMode ackMode, + double dataSnr, uint16_t dataChannelWidth) { - NS_LOG_FUNCTION (this << st << ackSnr << ackMode << dataSnr); + NS_LOG_FUNCTION (this << st << ackSnr << ackMode << dataSnr << dataChannelWidth); ParfWifiRemoteStation *station = static_cast (st); CheckInit (station); station->m_nAttempt++; diff --git a/src/wifi/model/parf-wifi-manager.h b/src/wifi/model/parf-wifi-manager.h index fb2c7373f..5e94e7d12 100644 --- a/src/wifi/model/parf-wifi-manager.h +++ b/src/wifi/model/parf-wifi-manager.h @@ -66,7 +66,8 @@ private: void DoReportRtsOk (WifiRemoteStation *station, double ctsSnr, WifiMode ctsMode, double rtsSnr); void DoReportDataOk (WifiRemoteStation *station, - double ackSnr, WifiMode ackMode, double dataSnr); + double ackSnr, WifiMode ackMode, + double dataSnr, uint16_t dataChannelWidth); void DoReportFinalRtsFailed (WifiRemoteStation *station); void DoReportFinalDataFailed (WifiRemoteStation *station); WifiTxVector DoGetDataTxVector (WifiRemoteStation *station); diff --git a/src/wifi/model/rraa-wifi-manager.cc b/src/wifi/model/rraa-wifi-manager.cc index 68d6a3b64..f4866d0b7 100644 --- a/src/wifi/model/rraa-wifi-manager.cc +++ b/src/wifi/model/rraa-wifi-manager.cc @@ -324,9 +324,10 @@ RraaWifiManager::DoReportRtsOk (WifiRemoteStation *st, void RraaWifiManager::DoReportDataOk (WifiRemoteStation *st, - double ackSnr, WifiMode ackMode, double dataSnr) + double ackSnr, WifiMode ackMode, + double dataSnr, uint16_t dataChannelWidth) { - NS_LOG_FUNCTION (this << st << ackSnr << ackMode << dataSnr); + NS_LOG_FUNCTION (this << st << ackSnr << ackMode << dataSnr << dataChannelWidth); RraaWifiRemoteStation *station = static_cast (st); station->m_lastFrameFail = false; CheckTimeout (station); diff --git a/src/wifi/model/rraa-wifi-manager.h b/src/wifi/model/rraa-wifi-manager.h index f6fe3df3e..2003d5db5 100644 --- a/src/wifi/model/rraa-wifi-manager.h +++ b/src/wifi/model/rraa-wifi-manager.h @@ -83,7 +83,8 @@ private: void DoReportRtsOk (WifiRemoteStation *station, double ctsSnr, WifiMode ctsMode, double rtsSnr); void DoReportDataOk (WifiRemoteStation *station, - double ackSnr, WifiMode ackMode, double dataSnr); + double ackSnr, WifiMode ackMode, + double dataSnr, uint16_t dataChannelWidth); void DoReportFinalRtsFailed (WifiRemoteStation *station); void DoReportFinalDataFailed (WifiRemoteStation *station); WifiTxVector DoGetDataTxVector (WifiRemoteStation *station); diff --git a/src/wifi/model/rrpaa-wifi-manager.cc b/src/wifi/model/rrpaa-wifi-manager.cc index 3c35938c3..09dea2bcf 100644 --- a/src/wifi/model/rrpaa-wifi-manager.cc +++ b/src/wifi/model/rrpaa-wifi-manager.cc @@ -367,9 +367,10 @@ RrpaaWifiManager::DoReportRtsOk (WifiRemoteStation *st, void RrpaaWifiManager::DoReportDataOk (WifiRemoteStation *st, - double ackSnr, WifiMode ackMode, double dataSnr) + double ackSnr, WifiMode ackMode, + double dataSnr, uint16_t dataChannelWidth) { - NS_LOG_FUNCTION (this << st << ackSnr << ackMode << dataSnr); + NS_LOG_FUNCTION (this << st << ackSnr << ackMode << dataSnr << dataChannelWidth); RrpaaWifiRemoteStation *station = static_cast (st); CheckInit (station); station->m_lastFrameFail = false; diff --git a/src/wifi/model/rrpaa-wifi-manager.h b/src/wifi/model/rrpaa-wifi-manager.h index 4e350b815..045d105ec 100644 --- a/src/wifi/model/rrpaa-wifi-manager.h +++ b/src/wifi/model/rrpaa-wifi-manager.h @@ -108,7 +108,8 @@ private: virtual void DoReportRtsOk (WifiRemoteStation *station, double ctsSnr, WifiMode ctsMode, double rtsSnr); virtual void DoReportDataOk (WifiRemoteStation *station, - double ackSnr, WifiMode ackMode, double dataSnr); + double ackSnr, WifiMode ackMode, + double dataSnr, uint16_t dataChannelWidth); virtual void DoReportFinalRtsFailed (WifiRemoteStation *station); virtual void DoReportFinalDataFailed (WifiRemoteStation *station); virtual WifiTxVector DoGetDataTxVector (WifiRemoteStation *station); diff --git a/src/wifi/model/wifi-remote-station-manager.cc b/src/wifi/model/wifi-remote-station-manager.cc index 586878166..e32e49790 100644 --- a/src/wifi/model/wifi-remote-station-manager.cc +++ b/src/wifi/model/wifi-remote-station-manager.cc @@ -726,9 +726,9 @@ WifiRemoteStationManager::ReportRtsOk (Mac48Address address, const WifiMacHeader void WifiRemoteStationManager::ReportDataOk (Mac48Address address, const WifiMacHeader *header, double ackSnr, WifiMode ackMode, double dataSnr, - uint32_t packetSize) + uint16_t dataChannelWidth, uint32_t packetSize) { - NS_LOG_FUNCTION (this << address << *header << ackSnr << ackMode << dataSnr); + NS_LOG_FUNCTION (this << address << *header << ackSnr << ackMode << dataSnr << dataChannelWidth << packetSize); NS_ASSERT (!address.IsGroup ()); WifiRemoteStation *station = Lookup (address); AcIndex ac = QosUtilsMapTidToAc ((header->IsQosData ()) ? header->GetQosTid () : 0); @@ -743,7 +743,7 @@ WifiRemoteStationManager::ReportDataOk (Mac48Address address, const WifiMacHeade station->m_state->m_info.NotifyTxSuccess (m_ssrc[ac]); m_ssrc[ac] = 0; } - DoReportDataOk (station, ackSnr, ackMode, dataSnr); + DoReportDataOk (station, ackSnr, ackMode, dataSnr, dataChannelWidth); } void diff --git a/src/wifi/model/wifi-remote-station-manager.h b/src/wifi/model/wifi-remote-station-manager.h index 2a0dea370..8f2147784 100644 --- a/src/wifi/model/wifi-remote-station-manager.h +++ b/src/wifi/model/wifi-remote-station-manager.h @@ -739,10 +739,12 @@ public: * \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 dataChannelWidth the channel width (in MHz) 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, + double ackSnr, WifiMode ackMode, + double dataSnr, uint16_t dataChannelWidth, uint32_t packetSize); /** * Should be invoked after calling ReportRtsFailed if @@ -1181,9 +1183,11 @@ private: * \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 dataChannelWidth the channel width (in MHz) of the DATA we sent */ virtual void DoReportDataOk (WifiRemoteStation *station, - double ackSnr, WifiMode ackMode, double dataSnr) = 0; + double ackSnr, WifiMode ackMode, + double dataSnr, uint16_t dataChannelWidth) = 0; /** * This method is a pure virtual method that must be implemented by the sub-class. * This allows different types of WifiRemoteStationManager to respond differently, diff --git a/src/wifi/test/power-rate-adaptation-test.cc b/src/wifi/test/power-rate-adaptation-test.cc index 2b08e8b49..52061fbc5 100644 --- a/src/wifi/test/power-rate-adaptation-test.cc +++ b/src/wifi/test/power-rate-adaptation-test.cc @@ -167,7 +167,7 @@ PowerRateAdaptationTest::TestParf () */ for (int i = 0; i < 10; i++) { - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet->GetSize ()); + manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, 20, packet->GetSize ()); } txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet); @@ -200,10 +200,10 @@ PowerRateAdaptationTest::TestParf () */ for (int i = 0; i < 7; i++) { - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet->GetSize ()); + manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, 20, packet->GetSize ()); manager->ReportDataFailed (remoteAddress, &packetHeader, packet->GetSize ()); } - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet->GetSize ()); + manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, 20, packet->GetSize ()); txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet); mode = txVector.GetMode (); @@ -251,7 +251,7 @@ PowerRateAdaptationTest::TestParf () */ for (int i = 0; i < 10; i++) { - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet->GetSize ()); + manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, 20, packet->GetSize ()); } txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet); @@ -284,7 +284,7 @@ PowerRateAdaptationTest::TestParf () */ for (int i = 0; i < 10; i++) { - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet->GetSize ()); + manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, 20, packet->GetSize ()); } txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet); @@ -302,7 +302,7 @@ PowerRateAdaptationTest::TestParf () */ for (int i = 0; i < 10; i++) { - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet->GetSize ()); + manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, 20, packet->GetSize ()); } txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet); @@ -318,7 +318,7 @@ 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, packet->GetSize ()); + manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, 20, packet->GetSize ()); for (int i = 0; i < 2; i++) { @@ -388,7 +388,7 @@ PowerRateAdaptationTest::TestAparf () */ for (int i = 0; i < 3; i++) { - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet->GetSize ()); + manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, 20, packet->GetSize ()); } txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet); @@ -422,7 +422,7 @@ PowerRateAdaptationTest::TestAparf () */ for (int i = 0; i < 10; i++) { - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet->GetSize ()); + manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, 20, packet->GetSize ()); } txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet); @@ -441,7 +441,7 @@ PowerRateAdaptationTest::TestAparf () for (int i = 0; i < 3; i++) { - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet->GetSize ()); + manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, 20, packet->GetSize ()); } txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet); @@ -459,7 +459,7 @@ PowerRateAdaptationTest::TestAparf () */ for (int i = 0; i < 16 * 3; i++) { - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet->GetSize ()); + manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, 20, packet->GetSize ()); } txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet); @@ -526,7 +526,7 @@ PowerRateAdaptationTest::TestAparf () */ for (int i = 0; i < 3; i++) { - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet->GetSize ()); + manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, 20, packet->GetSize ()); } txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet); @@ -546,7 +546,7 @@ PowerRateAdaptationTest::TestAparf () */ for (int i = 0; i < 9 * 3; i++) { - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet->GetSize ()); + manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, 20, packet->GetSize ()); } txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet); @@ -558,7 +558,7 @@ PowerRateAdaptationTest::TestAparf () for (int i = 0; i < 3; i++) { - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet->GetSize ()); + manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, 20, packet->GetSize ()); } txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet); @@ -659,7 +659,7 @@ PowerRateAdaptationTest::TestRrpaa () */ for (int i = 0; i < 6; i++) { - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet->GetSize ()); + manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, 20, packet->GetSize ()); } txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet); @@ -672,7 +672,7 @@ PowerRateAdaptationTest::TestRrpaa () /** * Test that 7 is enough. */ - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet->GetSize ()); + manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, 20, packet->GetSize ()); txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet); mode = txVector.GetMode (); @@ -716,7 +716,7 @@ PowerRateAdaptationTest::TestRrpaa () for (int i = 0; i < 7; i++) { - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet->GetSize ()); + manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, 20, packet->GetSize ()); } txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet); @@ -728,7 +728,7 @@ PowerRateAdaptationTest::TestRrpaa () for (int i = 0; i < 10; i++) { - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet->GetSize ()); + manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, 20, packet->GetSize ()); } txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet); @@ -740,7 +740,7 @@ PowerRateAdaptationTest::TestRrpaa () for (int i = 0; i < 13; i++) { - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet->GetSize ()); + manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, 20, packet->GetSize ()); } txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet); @@ -752,7 +752,7 @@ PowerRateAdaptationTest::TestRrpaa () for (int i = 0; i < 19; i++) { - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet->GetSize ()); + manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, 20, packet->GetSize ()); } txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet); @@ -764,7 +764,7 @@ PowerRateAdaptationTest::TestRrpaa () for (int i = 0; i < 23; i++) { - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet->GetSize ()); + manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, 20, packet->GetSize ()); } txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet); @@ -776,7 +776,7 @@ PowerRateAdaptationTest::TestRrpaa () for (int i = 0; i < 33; i++) { - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet->GetSize ()); + manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, 20, packet->GetSize ()); } txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet); @@ -788,7 +788,7 @@ PowerRateAdaptationTest::TestRrpaa () for (int i = 0; i < 43; i++) { - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet->GetSize ()); + manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, 20, packet->GetSize ()); } txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet); @@ -808,7 +808,7 @@ PowerRateAdaptationTest::TestRrpaa () for (int i = 0; i < 49; i++) { - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet->GetSize ()); + manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, 20, packet->GetSize ()); } txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet); @@ -818,7 +818,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, packet->GetSize ()); + manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, 20, packet->GetSize ()); txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet); mode = txVector.GetMode (); @@ -836,7 +836,7 @@ PowerRateAdaptationTest::TestRrpaa () for (int i = 0; i < 16 * 50; i++) { - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet->GetSize ()); + manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, 20, packet->GetSize ()); } txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet); @@ -926,7 +926,7 @@ PowerRateAdaptationTest::TestRrpaa () for (int i = 0; i < 25; i++) { - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet->GetSize ()); + manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, 20, packet->GetSize ()); } txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet); @@ -962,7 +962,7 @@ PowerRateAdaptationTest::TestRrpaa () for (int i = 0; i < 25; i++) { - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet->GetSize ()); + manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, 20, packet->GetSize ()); } txVector = manager->GetDataTxVector (remoteAddress, &packetHeader, packet); @@ -982,7 +982,7 @@ PowerRateAdaptationTest::TestRrpaa () { for (int j = 0; j < 25; j++) { - manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, packet->GetSize ()); + manager->ReportDataOk (remoteAddress, &packetHeader, 0, ackMode, 0, 20, packet->GetSize ()); } for (int j = 0; j < 5; j++)