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().
Here is the caller graph for this function:
|
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().
Here is the caller graph for this function:
|
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().
Here is the call graph for this function:
Here is the caller graph for this function:
|
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().
Here is the call graph for this function:
Here is the caller graph for this function:
|
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().
Here is the call graph for this function:
Here is the caller graph for this function:
|
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().
Here is the call graph for this function:
Here is the caller graph for this function:
|
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().
Here is the call graph for this function:
Here is the caller graph for this function:
|
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().
Here is the call graph for this function:
|
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.
Here is the call graph for this function:
|
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().
Here is the call graph for this function:
Here is the caller graph for this function:
|
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().
Here is the call graph for this function:
Here is the caller graph for this function:
|
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().
Here is the call graph for this function:
|
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().
Here is the call graph for this function:
Here is the caller graph for this function:
|
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().
Here is the call graph for this function:
Here is the caller graph for this function:
|
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().
Here is the call graph for this function:
|
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().
Here is the call graph for this function:
Here is the caller graph for this function: