From 8dbc887e9283fddd838622b0a8b579fc50b6b593 Mon Sep 17 00:00:00 2001 From: Stefano Avallone Date: Fri, 3 Mar 2023 16:31:23 +0100 Subject: [PATCH] wifi: AP records PM mode of STAs of non-AP MLD upon association --- src/wifi/model/ap-wifi-mac.cc | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/wifi/model/ap-wifi-mac.cc b/src/wifi/model/ap-wifi-mac.cc index d4f141410..b595c4f58 100644 --- a/src/wifi/model/ap-wifi-mac.cc +++ b/src/wifi/model/ap-wifi-mac.cc @@ -1442,7 +1442,17 @@ ApWifiMac::TxOk(Ptr mpdu) GetWifiRemoteStationManager(*linkId)->GetMldAddress(hdr.GetAddr1()); staMldAddress.has_value()) { - // the STA is affiliated with an MLD + /** + * The STA is affiliated with an MLD. From Sec. 35.3.7.1.4 of 802.11be D3.0: + * When a link becomes enabled for a non-AP STA that is affiliated with a non-AP MLD + * after successful association with an AP MLD with (Re)Association Request/Response + * frames transmitted on another link [...], the power management mode of the non-AP + * STA, immediately after the acknowledgement of the (Re)Association Response frame + * [...], is power save mode, and its power state is doze. + * + * Thus, STAs operating on all the links but the link used to establish association + * transition to power save mode. + */ for (uint8_t i = 0; i < GetNLinks(); i++) { auto stationManager = GetWifiRemoteStationManager(i); @@ -1453,6 +1463,7 @@ ApWifiMac::TxOk(Ptr mpdu) NS_LOG_DEBUG("AP=" << GetFrameExchangeManager(i)->GetAddress() << " associated with STA=" << *staAddress); stationManager->RecordGotAssocTxOk(*staAddress); + StaSwitchingToPsMode(*staAddress, i); } } }