A Discrete-Event Network Simulator
API
ns3::OfdmPpdu Class Reference

OFDM PPDU (11a)OfdmPpdu stores a preamble, PHY headers and a PSDU of a PPDU with non-HT header, i.e., PPDU that uses OFDM modulation. More...

#include "ofdm-ppdu.h"

+ Inheritance diagram for ns3::OfdmPpdu:
+ Collaboration diagram for ns3::OfdmPpdu:

Classes

class  LSigHeader
 OFDM and ERP OFDM L-SIG PHY header. More...
 

Public Member Functions

 OfdmPpdu (Ptr< const WifiPsdu > psdu, const WifiTxVector &txVector, WifiPhyBand band, uint64_t uid, bool instantiateLSig=true)
 Create an OFDM PPDU. More...
 
virtual ~OfdmPpdu ()
 Destructor for OfdmPpdu. More...
 
virtual Ptr< WifiPpduCopy (void) const override
 Copy this instance. More...
 
virtual Time GetTxDuration (void) const override
 Get the total transmission duration of the PPDU. More...
 
- Public Member Functions inherited from ns3::WifiPpdu
 WifiPpdu (Ptr< const WifiPsdu > psdu, const WifiTxVector &txVector, uint64_t uid=UINT64_MAX)
 Create a PPDU storing a PSDU. More...
 
 WifiPpdu (const WifiConstPsduMap &psdus, const WifiTxVector &txVector, uint64_t uid)
 Create a PPDU storing a map of PSDUs. More...
 
virtual ~WifiPpdu ()
 Destructor for WifiPpdu. More...
 
WifiModulationClass GetModulation (void) const
 Get the modulation used for the PPDU. More...
 
WifiPreamble GetPreamble (void) const
 Get the preamble of the PPDU. More...
 
Ptr< const WifiPsduGetPsdu (void) const
 Get the payload of the PPDU. More...
 
virtual uint16_t GetStaId (void) const
 Get the ID of the STA that transmitted the PPDU for UL MU, SU_STA_ID otherwise. More...
 
WifiTxVector GetTxVector (void) const
 Get the TXVECTOR used to send the PPDU. More...
 
virtual WifiPpduType GetType (void) const
 Return the PPDU type (. More...
 
uint64_t GetUid (void) const
 Get the UID of the PPDU. More...
 
bool IsTruncatedTx (void) const
 
void Print (std::ostream &os) const
 Print the PPDU contents. More...
 
void SetTruncatedTx (void)
 Indicate that the PPDU's transmission was aborted due to transmitter switch off. More...
 
- Public Member Functions inherited from ns3::SimpleRefCount< WifiPpdu >
 SimpleRefCount ()
 Default constructor. More...
 
 SimpleRefCount (const SimpleRefCount &o)
 Copy constructor. More...
 
uint32_t GetReferenceCount (void) const
 Get the reference count of the object. More...
 
SimpleRefCountoperator= (const SimpleRefCount &o)
 Assignment operator. More...
 
void Ref (void) const
 Increment the reference count. More...
 
void Unref (void) const
 Decrement the reference count. More...
 

Protected Attributes

WifiPhyBand m_band
 the WifiPhyBand used to transmit that PPDU More...
 
uint16_t m_channelWidth
 the channel width used to transmit that PPDU in MHz More...
 
LSigHeader m_lSig
 the L-SIG PHY header More...
 
- Protected Attributes inherited from ns3::WifiPpdu
WifiModulationClass m_modulation
 the modulation used for the transmission of this PPDU More...
 
WifiPreamble m_preamble
 the PHY preamble More...
 
WifiConstPsduMap m_psdus
 the PSDUs contained in this PPDU More...
 
uint64_t m_uid
 the unique ID of this PPDU More...
 

Private Member Functions

virtual WifiTxVector DoGetTxVector (void) const override
 Get the TXVECTOR used to send the PPDU. More...
 

Additional Inherited Members

- Protected Member Functions inherited from ns3::WifiPpdu
virtual std::string PrintPayload (void) const
 Print the payload of the PPDU. More...
 

Detailed Description

OFDM PPDU (11a)

OfdmPpdu stores a preamble, PHY headers and a PSDU of a PPDU with non-HT header, i.e., PPDU that uses OFDM modulation.

Definition at line 47 of file ofdm-ppdu.h.

Constructor & Destructor Documentation

◆ OfdmPpdu()

ns3::OfdmPpdu::OfdmPpdu ( Ptr< const WifiPsdu psdu,
const WifiTxVector txVector,
WifiPhyBand  band,
uint64_t  uid,
bool  instantiateLSig = true 
)

Create an OFDM PPDU.

Parameters
psduthe PHY payload (PSDU)
txVectorthe TXVECTOR that was used for this PPDU
bandthe WifiPhyBand used for the transmission of this PPDU
uidthe unique ID of this PPDU
instantiateLSigflag used to instantiate LSigHeader (set LSigHeader's rate and length), should be disabled by child classes

Definition at line 33 of file ofdm-ppdu.cc.

References ns3::WifiMode::GetDataRate(), ns3::WifiTxVector::GetMode(), ns3::WifiPsdu::GetSize(), m_channelWidth, m_lSig, NS_LOG_FUNCTION, ns3::OfdmPpdu::LSigHeader::SetLength(), and ns3::OfdmPpdu::LSigHeader::SetRate().

+ Here is the call graph for this function:

◆ ~OfdmPpdu()

ns3::OfdmPpdu::~OfdmPpdu ( )
virtual

Destructor for OfdmPpdu.

Definition at line 48 of file ofdm-ppdu.cc.

Member Function Documentation

◆ Copy()

Ptr< WifiPpdu > ns3::OfdmPpdu::Copy ( void  ) const
overridevirtual

Copy this instance.

Returns
a Ptr to a copy of this instance.

Reimplemented from ns3::WifiPpdu.

Reimplemented in ns3::HePpdu, ns3::VhtPpdu, ns3::HtPpdu, and ns3::ErpOfdmPpdu.

Definition at line 74 of file ofdm-ppdu.cc.

References ns3::WifiPpdu::GetPsdu(), ns3::WifiPpdu::GetTxVector(), m_band, and ns3::WifiPpdu::m_uid.

+ Here is the call graph for this function:

◆ DoGetTxVector()

WifiTxVector ns3::OfdmPpdu::DoGetTxVector ( void  ) const
overrideprivatevirtual

Get the TXVECTOR used to send the PPDU.

This method should be overridden by child classes.

Returns
the TXVECTOR of the PPDU.

Reimplemented from ns3::WifiPpdu.

Reimplemented in ns3::HePpdu, ns3::VhtPpdu, ns3::HtPpdu, and ns3::ErpOfdmPpdu.

Definition at line 53 of file ofdm-ppdu.cc.

References ns3::OfdmPhy::GetOfdmRate(), ns3::OfdmPpdu::LSigHeader::GetRate(), m_channelWidth, m_lSig, ns3::WifiPpdu::m_preamble, ns3::WifiTxVector::SetChannelWidth(), ns3::WifiTxVector::SetMode(), and ns3::WifiTxVector::SetPreambleType().

+ Here is the call graph for this function:

◆ GetTxDuration()

Time ns3::OfdmPpdu::GetTxDuration ( void  ) const
overridevirtual

Get the total transmission duration of the PPDU.

This method is overridden by child classes.

Returns
the transmission duration of the PPDU

Reimplemented from ns3::WifiPpdu.

Reimplemented in ns3::HePpdu, ns3::VhtPpdu, and ns3::HtPpdu.

Definition at line 65 of file ofdm-ppdu.cc.

References ns3::WifiPhy::CalculateTxDuration(), ns3::OfdmPpdu::LSigHeader::GetLength(), ns3::WifiPpdu::GetTxVector(), m_band, m_lSig, and ns3::Seconds().

+ Here is the call graph for this function:

Member Data Documentation

◆ m_band

◆ m_channelWidth

uint16_t ns3::OfdmPpdu::m_channelWidth
protected

the channel width used to transmit that PPDU in MHz

Definition at line 129 of file ofdm-ppdu.h.

Referenced by ns3::ErpOfdmPpdu::DoGetTxVector(), DoGetTxVector(), ns3::HtPpdu::HtPpdu(), OfdmPpdu(), ns3::HePpdu::SetPhyHeaders(), and ns3::VhtPpdu::VhtPpdu().

◆ m_lSig


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