From f7e98e7230f5508763b46d4ee5faae7991a8f323 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Deronne?= Date: Sat, 19 Oct 2024 08:34:06 +0200 Subject: [PATCH] wifi: Check TXVECTOR is valid when computing duration --- src/wifi/model/wifi-phy.cc | 2 ++ src/wifi/test/tx-duration-test.cc | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/wifi/model/wifi-phy.cc b/src/wifi/model/wifi-phy.cc index 1cd24c186..220607388 100644 --- a/src/wifi/model/wifi-phy.cc +++ b/src/wifi/model/wifi-phy.cc @@ -1564,6 +1564,7 @@ WifiPhy::CalculateTxDuration(uint32_t size, WifiPhyBand band, uint16_t staId) { + NS_ASSERT(txVector.IsValid(band)); Time duration = CalculatePhyPreambleAndHeaderDuration(txVector) + GetPayloadDuration(size, txVector, band, NORMAL_MPDU, staId); NS_ASSERT(duration.IsStrictlyPositive()); @@ -1583,6 +1584,7 @@ WifiPhy::CalculateTxDuration(const WifiConstPsduMap& psduMap, const WifiTxVector& txVector, WifiPhyBand band) { + NS_ASSERT(txVector.IsValid(band)); return GetStaticPhyEntity(txVector.GetModulationClass()) ->CalculateTxDuration(psduMap, txVector, band); } diff --git a/src/wifi/test/tx-duration-test.cc b/src/wifi/test/tx-duration-test.cc index 197bddfcf..38b62e133 100644 --- a/src/wifi/test/tx-duration-test.cc +++ b/src/wifi/test/tx-duration-test.cc @@ -155,7 +155,8 @@ TxDurationTest::CheckPayloadDuration(uint32_t size, { testedBands.push_back(WIFI_PHY_BAND_6GHZ); } - if (payloadMode.GetModulationClass() != WIFI_MOD_CLASS_VHT) + if ((payloadMode.GetModulationClass() != WIFI_MOD_CLASS_OFDM) && + (payloadMode.GetModulationClass() != WIFI_MOD_CLASS_VHT) && (channelWidth < 80)) { testedBands.push_back(WIFI_PHY_BAND_2_4GHZ); } @@ -207,7 +208,8 @@ TxDurationTest::CheckTxDuration(uint32_t size, { testedBands.push_back(WIFI_PHY_BAND_6GHZ); } - if (payloadMode.GetModulationClass() != WIFI_MOD_CLASS_VHT) + if ((payloadMode.GetModulationClass() != WIFI_MOD_CLASS_OFDM) && + (payloadMode.GetModulationClass() != WIFI_MOD_CLASS_VHT) && (channelWidth < 80)) { testedBands.push_back(WIFI_PHY_BAND_2_4GHZ); }