A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
ns3::EmlsrCtsAfterRtsTimeoutTrace Struct Reference

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"

+ Inheritance diagram for ns3::EmlsrCtsAfterRtsTimeoutTrace:
+ Collaboration diagram for ns3::EmlsrCtsAfterRtsTimeoutTrace:

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.
 
- Public Member Functions inherited from ns3::EmlsrMainPhySwitchTraceImpl< EmlsrCtsAfterRtsTimeoutTrace >
std::shared_ptr< EmlsrMainPhySwitchTraceClone () const override
 
std::string_view GetName () const override
 
- Public Member Functions inherited from ns3::EmlsrMainPhySwitchTrace
virtual ~EmlsrMainPhySwitchTrace ()=default
 

Public Attributes

Time sinceCtsTimeout
 time elapsed since CTS timeout occurred
 
- Public Attributes inherited from ns3::EmlsrMainPhySwitchTrace
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
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ EmlsrCtsAfterRtsTimeoutTrace()

ns3::EmlsrCtsAfterRtsTimeoutTrace::EmlsrCtsAfterRtsTimeoutTrace ( const Time & elapsed)
inline

Constructor provided because this struct is not an aggregate (it has a base struct), hence we cannot use designated initializers.

Parameters
elapsedthe value for the sinceCtsTimeout field

Definition at line 782 of file emlsr-manager.h.

Member Data Documentation

◆ m_name

std::string_view ns3::EmlsrCtsAfterRtsTimeoutTrace::m_name = "CtsAfterRtsTimeout"
staticconstexpr

trace name

Definition at line 772 of file emlsr-manager.h.

◆ sinceCtsTimeout

Time ns3::EmlsrCtsAfterRtsTimeoutTrace::sinceCtsTimeout

time elapsed since CTS timeout occurred

Definition at line 774 of file emlsr-manager.h.


The documentation for this struct was generated from the following file: