diff --git a/src/wifi/model/eht/default-emlsr-manager.cc b/src/wifi/model/eht/default-emlsr-manager.cc index 1030ed4d6..67aa52ef8 100644 --- a/src/wifi/model/eht/default-emlsr-manager.cc +++ b/src/wifi/model/eht/default-emlsr-manager.cc @@ -23,6 +23,7 @@ #include "ns3/channel-access-manager.h" #include "ns3/log.h" #include "ns3/wifi-mpdu.h" +#include "ns3/wifi-net-device.h" #include "ns3/wifi-phy.h" namespace ns3 @@ -133,6 +134,7 @@ DefaultEmlsrManager::DoNotifyTxopEnd(uint8_t linkId) SwitchMainPhy(*m_linkIdForMainPhyAfterTxop, false); // Reconnect the aux PHY to its original link Simulator::ScheduleNow(&StaWifiMac::NotifySwitchingEmlsrLink, GetStaMac(), phy, linkId); + SetCcaEdThresholdOnLinkSwitch(phy, linkId); } m_linkIdForMainPhyAfterTxop.reset(); } diff --git a/src/wifi/model/eht/emlsr-manager.cc b/src/wifi/model/eht/emlsr-manager.cc index ac2b0703a..a052faefd 100644 --- a/src/wifi/model/eht/emlsr-manager.cc +++ b/src/wifi/model/eht/emlsr-manager.cc @@ -137,6 +137,10 @@ EmlsrManager::DoDispose() MakeCallback(&EmlsrManager::TxDropped, this)); m_staMac = nullptr; m_transitionTimeoutEvent.Cancel(); + for (auto& [id, status] : m_mediumSyncDelayStatus) + { + status.timer.Cancel(); + } Object::DoDispose(); } @@ -201,6 +205,17 @@ EmlsrManager::GetEhtFem(uint8_t linkId) const return StaticCast(m_staMac->GetFrameExchangeManager(linkId)); } +std::optional