diff --git a/src/wifi/model/he/he-frame-exchange-manager.cc b/src/wifi/model/he/he-frame-exchange-manager.cc index 92e3d6699..c10e8d896 100644 --- a/src/wifi/model/he/he-frame-exchange-manager.cc +++ b/src/wifi/model/he/he-frame-exchange-manager.cc @@ -1830,9 +1830,11 @@ HeFrameExchangeManager::SendQosNullFramesInTbPpdu(const CtrlTriggerHeader& trigg return; } + const auto addr1 = + GetWifiRemoteStationManager()->GetMldAddress(hdr.GetAddr2()).value_or(hdr.GetAddr2()); WifiMacHeader header(WIFI_MAC_QOSDATA_NULL); - header.SetAddr1(hdr.GetAddr2()); - header.SetAddr2(m_self); + header.SetAddr1(addr1); + header.SetAddr2(m_mac->GetAddress()); header.SetAddr3(hdr.GetAddr2()); header.SetDsTo(); header.SetDsNotFrom(); @@ -1869,6 +1871,7 @@ HeFrameExchangeManager::SendQosNullFramesInTbPpdu(const CtrlTriggerHeader& trigg // TX parameters below. header.SetQosTid(tid); auto mpdu = Create(Create(), header); + mpdu = CreateAliasIfNeeded(mpdu); txParams.AddMpdu(mpdu); UpdateTxDuration(header.GetAddr1(), txParams); diff --git a/src/wifi/model/wifi-mpdu.cc b/src/wifi/model/wifi-mpdu.cc index 4634fbd87..143649e3a 100644 --- a/src/wifi/model/wifi-mpdu.cc +++ b/src/wifi/model/wifi-mpdu.cc @@ -64,8 +64,6 @@ WifiMpdu::CreateAlias(uint8_t linkId) const NS_LOG_FUNCTION(this << +linkId); NS_ABORT_MSG_IF(!std::holds_alternative(m_instanceInfo), "This method can only be called on the original version of the MPDU"); - NS_ABORT_MSG_IF(!IsQueued(), - "This method can only be called if the MPDU is stored in a MAC queue"); auto alias = Ptr(new WifiMpdu, false);