Struct to trace that main PHY started switching after a CTS timeout occurred on the link on which an RTS was transmitted to start an UL TXOP. More...
#include "emlsr-manager.h"
Public Member Functions | |
EmlsrCtsAfterRtsTimeoutTrace (const Time &elapsed) | |
Constructor provided because this struct is not an aggregate (it has a base struct), hence we cannot use designated initializers. | |
![]() | |
std::shared_ptr< EmlsrMainPhySwitchTrace > | Clone () const override |
std::string_view | GetName () const override |
![]() | |
virtual | ~EmlsrMainPhySwitchTrace ()=default |
Public Attributes | |
Time | sinceCtsTimeout |
time elapsed since CTS timeout occurred | |
![]() | |
std::optional< uint8_t > | fromLinkId |
ID of the link the main PHY is moving from (if any) | |
uint8_t | toLinkId {WIFI_LINKID_UNDEFINED} |
ID of the link the main PHY is moving to. | |
Static Public Attributes | |
static constexpr std::string_view | m_name = "CtsAfterRtsTimeout" |
trace name | |
Struct to trace that main PHY started switching after a CTS timeout occurred on the link on which an RTS was transmitted to start an UL TXOP.
Provides the time elapsed since the CTS timeout occurred.
|-- main PHY switch --| |----- to link 1 -----| ┌───────────┐ │ CTS │
────────────────────────┬───────────┬───┴X──────────┴───────────────────────────── [link 1] │ RTS │ │-elapsed-│ └───────────┘ │– time–|– main PHY switch –| │ |- to preferred link -| CTS timeout
Normally, this trace is called when aux PHYs do not switch links, because the main PHY has to return to the preferred link upon CTS timeout, because a TXOP did not start. In some cases, the main PHY may be switching when CTS timeout occurs; this happens when an aux PHY that is TX capable transmits an RTS and the main PHY starts switching to the aux PHY link (the start time of the main PHY switch is computed such that the main PHY switch ends slightly after the reception of the CTS). In such a case, the main PHY completes the current link switch and then it starts switching to return back to the preferred link.
Note that the Advanced EMLSR manager may allow a main PHY switch to be interrupted. If this option is enabled and the main PHY is switching when CTS timeout occurs, the previous switch is interrupted and the main PHY starts switching to the previous link (in this case, the time elapsed since the CTS timeout occurred is zero). This holds true for both the case aux PHYs do not switch link and the case aux PHYs switch link.
Definition at line 769 of file emlsr-manager.h.
|
inline |
Constructor provided because this struct is not an aggregate (it has a base struct), hence we cannot use designated initializers.
elapsed | the value for the sinceCtsTimeout field |
Definition at line 782 of file emlsr-manager.h.
|
staticconstexpr |
trace name
Definition at line 772 of file emlsr-manager.h.
Time ns3::EmlsrCtsAfterRtsTimeoutTrace::sinceCtsTimeout |
time elapsed since CTS timeout occurred
Definition at line 774 of file emlsr-manager.h.