diff --git a/src/wifi/model/frame-exchange-manager.cc b/src/wifi/model/frame-exchange-manager.cc index 5cc63b5f3..cbbdd555d 100644 --- a/src/wifi/model/frame-exchange-manager.cc +++ b/src/wifi/model/frame-exchange-manager.cc @@ -525,6 +525,7 @@ FrameExchangeManager::ForwardMpduDown(Ptr mpdu, WifiTxVector& txVector auto psdu = Create(mpdu, false); FinalizeMacHeader(psdu); + m_allowedWidth = std::min(m_allowedWidth, txVector.GetChannelWidth()); m_phy->Send(psdu, txVector); } diff --git a/src/wifi/model/he/he-frame-exchange-manager.cc b/src/wifi/model/he/he-frame-exchange-manager.cc index f3ce49f81..9fd93a896 100644 --- a/src/wifi/model/he/he-frame-exchange-manager.cc +++ b/src/wifi/model/he/he-frame-exchange-manager.cc @@ -918,6 +918,8 @@ HeFrameExchangeManager::ForwardPsduMapDown(WifiConstPsduMap psduMap, WifiTxVecto FinalizeMacHeader(psdu); NotifyTxToEdca(psdu); } + m_allowedWidth = std::min(m_allowedWidth, txVector.GetChannelWidth()); + if (psduMap.size() > 1 || psduMap.begin()->second->IsAggregate() || psduMap.begin()->second->IsSingle()) { diff --git a/src/wifi/model/ht/ht-frame-exchange-manager.cc b/src/wifi/model/ht/ht-frame-exchange-manager.cc index 4ea4465f7..0c5b38e5a 100644 --- a/src/wifi/model/ht/ht-frame-exchange-manager.cc +++ b/src/wifi/model/ht/ht-frame-exchange-manager.cc @@ -1131,6 +1131,7 @@ HtFrameExchangeManager::ForwardPsduDown(Ptr psdu, WifiTxVector& NS_LOG_DEBUG("Transmitting a PSDU: " << *psdu << " TXVECTOR: " << txVector); FinalizeMacHeader(psdu); NotifyTxToEdca(psdu); + m_allowedWidth = std::min(m_allowedWidth, txVector.GetChannelWidth()); if (psdu->IsAggregate()) {