Helper to statically setup wifi devices without actually exchanging management frames over the air: More...
#include "wifi-static-setup-helper.h"
Static Public Member Functions | |
static MgtAssocRequestHeader | GetAssocReq (Ptr< StaWifiMac > staMac, linkId_t staLinkId, bool isMldAssoc) |
Get Association Request for input STA link address. | |
static MgtAssocResponseHeader | GetAssocResp (Mac48Address staLinkAddr, Ptr< ApWifiMac > apMac, linkId_t apLinkId, bool isMldAssoc) |
Get Association Response for input STA link address from AP MAC including Multi-link Element if MLD Association. | |
static WifiMacHeader | GetAssocRespMacHdr (Mac48Address staLinkAddr, Ptr< ApWifiMac > apMac, linkId_t apLinkId) |
Get Association Response MAC Header for input STA link address from AP MAC including Multi-link Element if MLD Association. | |
static Mac48Address | GetBaOriginatorAddr (Ptr< WifiMac > originatorMac, Ptr< WifiMac > recipientMac) |
Get Block ACK originator address based on devices MAC config. | |
static Mac48Address | GetBaRecipientAddr (Ptr< WifiMac > originatorMac, Ptr< WifiMac > recipientMac) |
Get Block ACK recipient address based on devices MAC config. | |
static std::map< linkId_t, linkId_t > | GetLinkIdMap (Ptr< ApWifiMac > apMac, Ptr< StaWifiMac > staMac) |
Construct non-AP MLD link ID to AP MLD link ID mapping based on PHY channel settings It is required that for each STA affiliated with the non-AP MLD there exists an AP affiliated with the AP MLD that operates on a channel having the same primary20 as the channel on which the STA operates. | |
static std::map< linkId_t, linkId_t > | GetLinkIdMap (Ptr< WifiNetDevice > apDev, Ptr< WifiNetDevice > clientDev) |
Construct non-AP MLD link ID to AP MLD link ID mapping based on PHY channel settings. | |
static void | SetStaticAssociation (Ptr< WifiNetDevice > bssDev, const NetDeviceContainer &clientDevs) |
Bypass static capabilities exchange for input devices. | |
static void | SetStaticAssociation (Ptr< WifiNetDevice > bssDev, Ptr< WifiNetDevice > clientDev) |
Bypass static capabilities exchange for input devices. | |
static void | SetStaticAssocPostInit (Ptr< ApWifiMac > apMac, Ptr< StaWifiMac > clientMac) |
Perform static Association Request/Response exchange for input devices post initialization at runtime begin. | |
static void | SetStaticAssocPostInit (Ptr< WifiNetDevice > bssDev, Ptr< WifiNetDevice > clientDev) |
Perform static Association Request/Response exchange for input devices post initialization at runtime begin. | |
static void | SetStaticBlockAck (Ptr< WifiNetDevice > apDev, const NetDeviceContainer &clientDevs, const std::set< tid_t > &tids, std::optional< Mac48Address > gcrGroupAddr=std::nullopt) |
Bypass ADDBA Request-Response exchange sequence between AP and STAs for given TIDs. | |
static void | SetStaticBlockAck (Ptr< WifiNetDevice > originatorDev, Ptr< WifiNetDevice > recipientDev, tid_t tid, std::optional< Mac48Address > gcrGroupAddr=std::nullopt) |
Bypass ADDBA Request-Response exchange sequence between input devices for given TID. | |
static void | SetStaticBlockAckPostInit (Ptr< WifiNetDevice > originatorDev, Ptr< WifiNetDevice > recipientDev, tid_t tid, std::optional< Mac48Address > gcrGroupAddr=std::nullopt) |
Perform ADDBA Request-Response exchange sequence between input devices for given TID post initialization at runtime begin. | |
static void | SetStaticEmlsr (Ptr< WifiNetDevice > apDev, const NetDeviceContainer &clientDevs) |
Bypass EML Operating Mode Notification exchange sequence between AP MLD and input non-AP devices. | |
static void | SetStaticEmlsr (Ptr< WifiNetDevice > apDev, Ptr< WifiNetDevice > clientDev) |
Bypass EML Operating Mode Notification exchange sequence between AP MLD and non-AP MLD to enable EMLSR mode on the links specified via the EmlsrManager::EmlsrLinkSet attribute. | |
static void | SetStaticEmlsrPostInit (Ptr< WifiNetDevice > apDev, Ptr< WifiNetDevice > clientDev) |
Perform EML Operating Mode Notification exchange sequence between AP MLD and non-AP MLD to enable EMLSR mode on the links specified via the EmlsrManager::EmlsrLinkSet attribute post initialization at runtime begin. | |
Helper to statically setup wifi devices without actually exchanging management frames over the air:
Definition at line 37 of file wifi-static-setup-helper.h.
|
static |
Get Association Request for input STA link address.
staMac | STA MAC |
staLinkId | ID of link used for Assoc request |
isMldAssoc | true if MLD association, false otherwise |
Definition at line 258 of file wifi-static-setup-helper.cc.
References NS_ASSERT_MSG.
Referenced by SetStaticAssocPostInit().
|
static |
Get Association Response for input STA link address from AP MAC including Multi-link Element if MLD Association.
staLinkAddr | STA link MAC address |
apMac | AP MAC |
apLinkId | ID of link used for Assoc response |
isMldAssoc | true if MLD association, false otherwise |
Definition at line 241 of file wifi-static-setup-helper.cc.
References ns3::WIFI_MAC_MGT_ASSOCIATION_RESPONSE.
Referenced by SetStaticAssocPostInit().
|
static |
Get Association Response MAC Header for input STA link address from AP MAC including Multi-link Element if MLD Association.
staLinkAddr | STA link MAC address |
apMac | AP MAC |
apLinkId | Link ID of link used for Assoc response |
Definition at line 228 of file wifi-static-setup-helper.cc.
References ns3::WifiMacHeader::SetAddr1(), ns3::WifiMacHeader::SetAddr2(), ns3::WifiMacHeader::SetAddr3(), and ns3::WIFI_MAC_MGT_ASSOCIATION_RESPONSE.
Referenced by SetStaticAssocPostInit().
|
static |
Get Block ACK originator address based on devices MAC config.
originatorMac | originator MAC |
recipientMac | recipient MAC |
Definition at line 411 of file wifi-static-setup-helper.cc.
References ns3::DynamicCast(), and NS_ASSERT_MSG.
Referenced by GetBaRecipientAddr(), and SetStaticBlockAckPostInit().
|
static |
Get Block ACK recipient address based on devices MAC config.
originatorMac | originator MAC |
recipientMac | recipient MAC |
Definition at line 463 of file wifi-static-setup-helper.cc.
References GetBaOriginatorAddr().
Referenced by SetStaticBlockAckPostInit().
|
static |
Construct non-AP MLD link ID to AP MLD link ID mapping based on PHY channel settings It is required that for each STA affiliated with the non-AP MLD there exists an AP affiliated with the AP MLD that operates on a channel having the same primary20 as the channel on which the STA operates.
apMac | AP MAC |
staMac | STA MAC |
Definition at line 182 of file wifi-static-setup-helper.cc.
References NS_ASSERT, NS_ASSERT_MSG, and NS_LOG_DEBUG.
|
static |
Construct non-AP MLD link ID to AP MLD link ID mapping based on PHY channel settings.
It is required that for each STA affiliated with the non-AP MLD there exists an AP affiliated with the AP MLD that operates on a channel having the same primary20 as the channel on which the STA operates.
Definition at line 172 of file wifi-static-setup-helper.cc.
References ns3::DynamicCast(), GetLinkIdMap(), and NS_ASSERT_MSG.
Referenced by GetLinkIdMap(), and SetStaticAssocPostInit().
|
static |
Bypass static capabilities exchange for input devices.
bssDev | BSS advertising device (AP) |
clientDevs | client devices |
Definition at line 35 of file wifi-static-setup-helper.cc.
References ns3::NetDeviceContainer::Begin(), ns3::DynamicCast(), ns3::NetDeviceContainer::End(), NS_ASSERT_MSG, NS_LOG_FUNCTION_NOARGS, and SetStaticAssociation().
Referenced by WifiStaticEmlsrTest::DoSetup(), WifiStaticInfraBssTest::DoSetup(), and SetStaticAssociation().
|
static |
Bypass static capabilities exchange for input devices.
bssDev | BSS advertising device (AP) |
clientDev | client device |
Definition at line 49 of file wifi-static-setup-helper.cc.
References NS_LOG_FUNCTION_NOARGS, ns3::Simulator::ScheduleNow(), and SetStaticAssocPostInit().
|
static |
Perform static Association Request/Response exchange for input devices post initialization at runtime begin.
apMac | AP MAC |
clientMac | client MAC |
Definition at line 71 of file wifi-static-setup-helper.cc.
References ns3::Create(), ns3::DOWNLINK, GetAssocReq(), GetAssocResp(), GetAssocRespMacHdr(), GetLinkIdMap(), NS_ASSERT_MSG, NS_LOG_DEBUG, NS_LOG_FUNCTION_NOARGS, ns3::WifiMacHeader::SetAddr2(), ns3::UPLINK, ns3::StaWifiMac::WAIT_ASSOC_RESP, ns3::WIFI_MAC_MGT_ASSOCIATION_REQUEST, and ns3::WIFI_MAC_MGT_BEACON.
|
static |
Perform static Association Request/Response exchange for input devices post initialization at runtime begin.
bssDev | BSS advertising device (AP) |
clientDev | client device |
Definition at line 58 of file wifi-static-setup-helper.cc.
References ns3::DynamicCast(), NS_ABORT_MSG_IF, NS_LOG_FUNCTION_NOARGS, and SetStaticAssocPostInit().
Referenced by SetStaticAssociation(), and SetStaticAssocPostInit().
|
static |
Bypass ADDBA Request-Response exchange sequence between AP and STAs for given TIDs.
Static setup will be performed in both uplink and downlink.
apDev | AP device |
clientDevs | STA devices |
tids | the set of TIDs corresponding to Block ACK agreements |
gcrGroupAddr | MAC address of the GCR group (GCR Group Address) |
Definition at line 285 of file wifi-static-setup-helper.cc.
References ns3::NetDeviceContainer::Begin(), ns3::DynamicCast(), ns3::NetDeviceContainer::End(), NS_ASSERT_MSG, NS_LOG_FUNCTION_NOARGS, and SetStaticBlockAck().
Referenced by WifiStaticInfraBssTest::DoSetup(), and SetStaticBlockAck().
|
static |
Bypass ADDBA Request-Response exchange sequence between input devices for given TID.
originatorDev | originator device of Block ACK agreement |
recipientDev | recipient device of Block ACK agreement |
tid | TID corresponding to Block ACK agreement |
gcrGroupAddr | MAC address of the GCR group (GCR Group Address) |
Definition at line 310 of file wifi-static-setup-helper.cc.
References NS_LOG_FUNCTION_NOARGS, ns3::Simulator::ScheduleNow(), and SetStaticBlockAckPostInit().
|
static |
Perform ADDBA Request-Response exchange sequence between input devices for given TID post initialization at runtime begin.
originatorDev | originator device of Block ACK agreement |
recipientDev | recipient device of Block ACK agreement |
tid | TID corresponding to Block ACK agreement |
gcrGroupAddr | MAC address of the GCR group (GCR Group Address) |
Definition at line 325 of file wifi-static-setup-helper.cc.
References ns3::DynamicCast(), GetBaOriginatorAddr(), GetBaRecipientAddr(), ns3::MgtAddBaRequestHeader::GetBufferSize(), ns3::MgtAddBaRequestHeader::GetGcrGroupAddress(), ns3::MgtAddBaRequestHeader::GetStartingSequence(), NS_ASSERT_MSG, NS_LOG_FUNCTION_NOARGS, ns3::MgtAddBaRequestHeader::SetAmsduSupport(), ns3::MgtAddBaResponseHeader::SetAmsduSupport(), ns3::MgtAddBaRequestHeader::SetBufferSize(), ns3::MgtAddBaResponseHeader::SetBufferSize(), ns3::MgtAddBaRequestHeader::SetGcrGroupAddress(), ns3::MgtAddBaResponseHeader::SetGcrGroupAddress(), ns3::MgtAddBaRequestHeader::SetImmediateBlockAck(), ns3::MgtAddBaResponseHeader::SetImmediateBlockAck(), ns3::MgtAddBaRequestHeader::SetStartingSequence(), ns3::MgtAddBaResponseHeader::SetStatusCode(), ns3::StatusCode::SetSuccess(), ns3::MgtAddBaRequestHeader::SetTid(), ns3::MgtAddBaResponseHeader::SetTid(), ns3::MgtAddBaRequestHeader::SetTimeout(), and ns3::MgtAddBaResponseHeader::SetTimeout().
Referenced by SetStaticBlockAck().
|
static |
Bypass EML Operating Mode Notification exchange sequence between AP MLD and input non-AP devices.
apDev | AP MLD |
clientDevs | Non-AP devices |
Definition at line 512 of file wifi-static-setup-helper.cc.
References ns3::NetDeviceContainer::Begin(), ns3::DynamicCast(), ns3::NetDeviceContainer::End(), NS_ASSERT_MSG, NS_LOG_DEBUG, NS_LOG_FUNCTION_NOARGS, and SetStaticEmlsr().
Referenced by WifiStaticEmlsrTest::DoSetup(), and SetStaticEmlsr().
|
static |
Bypass EML Operating Mode Notification exchange sequence between AP MLD and non-AP MLD to enable EMLSR mode on the links specified via the EmlsrManager::EmlsrLinkSet attribute.
apDev | AP MLD |
clientDev | Non-AP MLD |
Definition at line 469 of file wifi-static-setup-helper.cc.
References NS_LOG_FUNCTION_NOARGS, ns3::Simulator::ScheduleNow(), and SetStaticEmlsrPostInit().
|
static |
Perform EML Operating Mode Notification exchange sequence between AP MLD and non-AP MLD to enable EMLSR mode on the links specified via the EmlsrManager::EmlsrLinkSet attribute post initialization at runtime begin.
apDev | AP MLD |
clientDev | Non-AP MLD |
Definition at line 477 of file wifi-static-setup-helper.cc.
References ns3::DynamicCast(), NS_ASSERT_MSG, NS_LOG_DEBUG, and NS_LOG_FUNCTION_NOARGS.
Referenced by SetStaticEmlsr().