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

Struct to trace that main PHY switched when a (DL or UL) TXOP ended. More...

#include "emlsr-manager.h"

+ Inheritance diagram for ns3::EmlsrTxopEndedTrace:
+ Collaboration diagram for ns3::EmlsrTxopEndedTrace:

Public Member Functions

 EmlsrTxopEndedTrace (const Time &t)
 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< EmlsrTxopEndedTrace >
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 remTime
 the remaining time (at TXOP end) until the main PHY completes the channel switch, in case the main PHY is completing a previous switch when the TXOP ends
 
- 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 = "TxopEnded"
 trace name
 

Detailed Description

Struct to trace that main PHY switched when a (DL or UL) TXOP ended.

This trace is normally called when aux PHYs do not switch link and the main PHY switches back to the preferred link when a TXOP carried out on another link ends. In such a case, the remTime field is set to zero.

Note that the main PHY may be already switching when the TXOP ends; this happens, e.g., when the main PHY starts switching to a link on which an aux PHY gained a TXOP and sent an RTS, but the CTS is not received and the UL TXOP ends before the main PHY channel switch is completed. In this case, the main PHY switch is postponed until the previous switch is completed and the remTime field is set to the remaining channel switch delay at the time the TXOP ends:

                           |-- main PHY switch --|
                           |----- to link 1 -----|
                                     ┌───────────┐
                                     │    CTS    │

────────────────────────┬───────────┬───┴X──────────┴───────────────────────────── [link 1] │ RTS │ │-remTime-│ └───────────┘ │ |– main PHY switch –| │ |- to preferred link -| CTS timeout

Note also 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 the TXOP ends, the previous switch is interrupted and the main PHY starts switching to the preferred link (in this case, the remTime field indicates the time that was left to complete the previous switch). Also note that, with the Advanced EMLSR manager, this trace may also be called when aux PHYs switch link. This happens when the TXOP ends while the main PHY is switching; in this case, the previous switch is interrupted and the main PHY returns to the link on which it was operating before the previous switch.

                           |-- main PHY switch --|
                           |----- to link 1 -----|(interrupted)
                                     ┌───────────┐
                                     │    CTS    │

────────────────────────┬───────────┬───┴X──────────┴───────────────────────────── [link 1] │ RTS │ │-remTime-│ └───────────┘ │– main PHY switch –| │- to preferred link -| CTS timeout

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

Constructor & Destructor Documentation

◆ EmlsrTxopEndedTrace()

ns3::EmlsrTxopEndedTrace::EmlsrTxopEndedTrace ( const Time & t)
inline

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

Parameters
tthe value for the sinceTxopEnd field

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

Member Data Documentation

◆ m_name

std::string_view ns3::EmlsrTxopEndedTrace::m_name = "TxopEnded"
staticconstexpr

trace name

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

◆ remTime

Time ns3::EmlsrTxopEndedTrace::remTime

the remaining time (at TXOP end) until the main PHY completes the channel switch, in case the main PHY is completing a previous switch when the TXOP ends

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


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