A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
CcaTestPhyListener Class Reference

PHY listener for CCA tests. More...

Inheritance diagram for CcaTestPhyListener:
Collaboration diagram for CcaTestPhyListener:

Public Member Functions

 CcaTestPhyListener ()=default
void NotifyCcaBusyStart (Time duration, WifiChannelListType channelType, const std::vector< Time > &per20MhzDurations) override
void NotifyOff () override
 Notify listeners that we went to switch off.
void NotifyOn () override
 Notify listeners that we went to switch on.
void NotifyRxEndError (const WifiTxVector &txVector) override
void NotifyRxEndOk () override
 We have received the last bit of a packet for which NotifyRxStart was invoked first and, the packet has been successfully received.
void NotifyRxStart (Time duration) override
void NotifySleep () override
 Notify listeners that we went to sleep.
void NotifySwitchingStart (Time duration) override
void NotifyTxStart (Time duration, dBm_u txPower) override
void NotifyWakeup () override
 Notify listeners that we woke up.
void Reset ()
 Reset function.
Public Member Functions inherited from ns3::WifiPhyListener
virtual ~WifiPhyListener ()

Public Attributes

Time m_endCcaBusy {}
 End of the CCA-BUSY duration.
WifiChannelListType m_lastCcaBusyChannelType
 Channel type indication for the last CCA-BUSY notification.
std::vector< Timem_lastPer20MhzCcaBusyDurations {}
 End of the CCA-BUSY durations per 20 MHz.
std::size_t m_notifications {0}
 Number of CCA notifications.
Time m_startCcaBusy {}
 Start of the CCA-BUSY duration.

Detailed Description

PHY listener for CCA tests.

Definition at line 803 of file wifi-phy-cca-test.cc.

Constructor & Destructor Documentation

◆ CcaTestPhyListener()

CcaTestPhyListener::CcaTestPhyListener ( )
default

Member Function Documentation

◆ NotifyCcaBusyStart()

void CcaTestPhyListener::NotifyCcaBusyStart ( Time duration,
WifiChannelListType channelType,
const std::vector< Time > & per20MhzDurations )
inlineoverridevirtual
Parameters
durationthe expected busy duration.
channelTypethe channel type for which the CCA busy state is reported.
per20MhzDurationsvector that indicates for how long each 20 MHz subchannel (corresponding to the index of the element in the vector) is busy and where a zero duration indicates that the subchannel is idle. The vector is non-empty if the PHY supports 802.11ax or later and if the operational channel width is larger than 20 MHz.

This method does not really report a real state change as opposed to the other methods in this class. It merely reports that, unless the medium is reported busy through NotifyTxStart or NotifyRxStart/End, it will be busy as defined by the currently selected CCA mode.

Typical client code which wants to have a clear picture of the CCA state will need to keep track of the time at which the last NotifyCcaBusyStart method is called and what duration it reported.

Implements ns3::WifiPhyListener.

Definition at line 828 of file wifi-phy-cca-test.cc.

References ns3::Time::IsPositive(), m_endCcaBusy, m_lastCcaBusyChannelType, m_lastPer20MhzCcaBusyDurations, m_notifications, m_startCcaBusy, ns3::Simulator::Now(), NS_ASSERT, and NS_LOG_FUNCTION.

Here is the call graph for this function:

◆ NotifyOff()

void CcaTestPhyListener::NotifyOff ( )
inlineoverridevirtual

Notify listeners that we went to switch off.

Implements ns3::WifiPhyListener.

Definition at line 853 of file wifi-phy-cca-test.cc.

◆ NotifyOn()

void CcaTestPhyListener::NotifyOn ( )
inlineoverridevirtual

Notify listeners that we went to switch on.

Implements ns3::WifiPhyListener.

Definition at line 861 of file wifi-phy-cca-test.cc.

◆ NotifyRxEndError()

void CcaTestPhyListener::NotifyRxEndError ( const WifiTxVector & txVector)
inlineoverridevirtual
Parameters
txVectorthe TXVECTOR used for transmission

We have received the last bit of a packet for which NotifyRxStart was invoked first and, the packet has not been successfully received.

Implements ns3::WifiPhyListener.

Definition at line 818 of file wifi-phy-cca-test.cc.

References NS_LOG_FUNCTION.

◆ NotifyRxEndOk()

void CcaTestPhyListener::NotifyRxEndOk ( )
inlineoverridevirtual

We have received the last bit of a packet for which NotifyRxStart was invoked first and, the packet has been successfully received.

Implements ns3::WifiPhyListener.

Definition at line 813 of file wifi-phy-cca-test.cc.

References NS_LOG_FUNCTION.

◆ NotifyRxStart()

void CcaTestPhyListener::NotifyRxStart ( Time duration)
inlineoverridevirtual
Parameters
durationthe expected duration of the packet reception.

We have received the first bit of a packet. We decided that we could synchronize on this packet. It does not mean we will be able to successfully receive completely the whole packet. It means that we will report a BUSY status until one of the following happens:

  • NotifyRxEndOk
  • NotifyRxEndError
  • NotifyTxStart

Implements ns3::WifiPhyListener.

Definition at line 808 of file wifi-phy-cca-test.cc.

References NS_LOG_FUNCTION.

◆ NotifySleep()

void CcaTestPhyListener::NotifySleep ( )
inlineoverridevirtual

Notify listeners that we went to sleep.

Implements ns3::WifiPhyListener.

Definition at line 849 of file wifi-phy-cca-test.cc.

◆ NotifySwitchingStart()

void CcaTestPhyListener::NotifySwitchingStart ( Time duration)
inlineoverridevirtual
Parameters
durationthe expected channel switching duration.

We do not send any event to notify the end of channel switching. Listeners should assume that the channel implicitly reverts to the idle or busy states.

Implements ns3::WifiPhyListener.

Definition at line 845 of file wifi-phy-cca-test.cc.

◆ NotifyTxStart()

void CcaTestPhyListener::NotifyTxStart ( Time duration,
dBm_u txPower )
inlineoverridevirtual
Parameters
durationthe expected transmission duration.
txPowerthe nominal TX power

We are about to send the first bit of the packet. We do not send any event to notify the end of transmission. Listeners should assume that the channel implicitly reverts to the idle state unless they have received a CCA busy report.

Implements ns3::WifiPhyListener.

Definition at line 823 of file wifi-phy-cca-test.cc.

References NS_LOG_FUNCTION.

◆ NotifyWakeup()

void CcaTestPhyListener::NotifyWakeup ( )
inlineoverridevirtual

Notify listeners that we woke up.

Implements ns3::WifiPhyListener.

Definition at line 857 of file wifi-phy-cca-test.cc.

◆ Reset()

void CcaTestPhyListener::Reset ( )
inline

Member Data Documentation

◆ m_endCcaBusy

Time CcaTestPhyListener::m_endCcaBusy {}

End of the CCA-BUSY duration.

Definition at line 879 of file wifi-phy-cca-test.cc.

Referenced by NotifyCcaBusyStart(), and Reset().

◆ m_lastCcaBusyChannelType

WifiChannelListType CcaTestPhyListener::m_lastCcaBusyChannelType
Initial value:

Channel type indication for the last CCA-BUSY notification.

Definition at line 880 of file wifi-phy-cca-test.cc.

Referenced by NotifyCcaBusyStart(), and Reset().

◆ m_lastPer20MhzCcaBusyDurations

std::vector<Time> CcaTestPhyListener::m_lastPer20MhzCcaBusyDurations {}

End of the CCA-BUSY durations per 20 MHz.

Definition at line 883 of file wifi-phy-cca-test.cc.

Referenced by NotifyCcaBusyStart(), and Reset().

◆ m_notifications

std::size_t CcaTestPhyListener::m_notifications {0}

Number of CCA notifications.

Definition at line 877 of file wifi-phy-cca-test.cc.

Referenced by NotifyCcaBusyStart(), and Reset().

◆ m_startCcaBusy

Time CcaTestPhyListener::m_startCcaBusy {}

Start of the CCA-BUSY duration.

Definition at line 878 of file wifi-phy-cca-test.cc.

Referenced by NotifyCcaBusyStart(), and Reset().


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