From d7b64588e1de0c08cc095a96998c5189a5c2a5fc Mon Sep 17 00:00:00 2001 From: Stefano Avallone Date: Wed, 21 May 2025 17:53:22 +0200 Subject: [PATCH] wifi: EMLSR clients switch to listening with the MAC header of broadcast frames other than TF and Multi-STA BA --- RELEASE_NOTES.md | 1 + src/wifi/model/eht/advanced-emlsr-manager.cc | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index be23651fd..8d1478249 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -40,6 +40,7 @@ ns-3 has switched to the C++23 standard by default. - (internet) #1251 - Added check for longest prefix match in GlobalRouting - (wifi) Block transmission on other EMLSR links as soon as it is detected that the main PHY is receiving an A-MPDU, to prevent that the EMLSR client starts an UL TXOP before the end of the A-MPDU +- (wifi) EMLSR clients can switch to listening operations when receiving the MAC header of a broadcast frame that is not a Trigger Frame nor a Multi-STA BA ## Release 3.45 diff --git a/src/wifi/model/eht/advanced-emlsr-manager.cc b/src/wifi/model/eht/advanced-emlsr-manager.cc index 3577be0a4..9f9d02b98 100644 --- a/src/wifi/model/eht/advanced-emlsr-manager.cc +++ b/src/wifi/model/eht/advanced-emlsr-manager.cc @@ -332,7 +332,7 @@ AdvancedEmlsrManager::ReceivedMacHdr(Ptr phy, const auto isMainPhy = (phy->GetPhyId() == GetMainPhyId()); if (ongoingTxopEnd.IsPending() && macHdr.GetAddr1() != GetEhtFem(*linkId)->GetAddress() && - !macHdr.GetAddr1().IsBroadcast() && + !macHdr.IsTrigger() && !macHdr.IsBlockAck() && !(macHdr.IsCts() && macHdr.GetAddr1() == GetEhtFem(*linkId)->GetBssid() /* CTS-to-self */)) { // the EMLSR client is no longer involved in the TXOP and switching to listening mode