OFDM PPDU (11a) More...
#include "ofdm-ppdu.h"
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... | |
Ptr< WifiPpdu > | Copy (void) const override |
Copy this instance. More... | |
Time | GetTxDuration (void) const override |
Get the total transmission duration of the PPDU. More... | |
Public Member Functions inherited from ns3::WifiPpdu | |
WifiPpdu (const WifiConstPsduMap &psdus, const WifiTxVector &txVector, uint64_t uid) | |
Create a PPDU storing a map of PSDUs. More... | |
WifiPpdu (Ptr< const WifiPsdu > psdu, const WifiTxVector &txVector, uint64_t uid=UINT64_MAX) | |
Create a PPDU storing a PSDU. More... | |
virtual | ~WifiPpdu () |
Destructor for WifiPpdu. More... | |
virtual bool | CanBeReceived (uint16_t txCenterFreq, uint16_t p20MinFreq, uint16_t p20MaxFreq) const |
Check whether the given PPDU can be received on the specified primary channel. 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 WifiPsdu > | GetPsdu (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... | |
virtual uint16_t | GetTransmissionChannelWidth (void) const |
Get the channel width over which the PPDU will effectively be transmitted. 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[[maybe_unused]]) | |
Copy constructor. More... | |
uint32_t | GetReferenceCount (void) const |
Get the reference count of the object. More... | |
SimpleRefCount & | operator= ([[maybe_unused]] 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 | |
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... | |
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.
ns3::OfdmPpdu::OfdmPpdu | ( | Ptr< const WifiPsdu > | psdu, |
const WifiTxVector & | txVector, | ||
WifiPhyBand | band, | ||
uint64_t | uid, | ||
bool | instantiateLSig = true |
||
) |
Create an OFDM PPDU.
psdu | the PHY payload (PSDU) |
txVector | the TXVECTOR that was used for this PPDU |
band | the WifiPhyBand used for the transmission of this PPDU |
uid | the unique ID of this PPDU |
instantiateLSig | flag 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().
|
virtual |
Destructor for OfdmPpdu.
Definition at line 48 of file ofdm-ppdu.cc.
Copy this instance.
Reimplemented from ns3::WifiPpdu.
Reimplemented in ns3::VhtPpdu.
Definition at line 74 of file ofdm-ppdu.cc.
References ns3::WifiPpdu::GetPsdu(), ns3::WifiPpdu::GetTxVector(), m_band, and ns3::WifiPpdu::m_uid.
|
overrideprivatevirtual |
Get the TXVECTOR used to send the PPDU.
Reimplemented from ns3::WifiPpdu.
Reimplemented in ns3::VhtPpdu.
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().
|
overridevirtual |
Get the total transmission duration of the PPDU.
Reimplemented from ns3::WifiPpdu.
Reimplemented in ns3::VhtPpdu.
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().
|
protected |
the WifiPhyBand used to transmit that PPDU
Definition at line 126 of file ofdm-ppdu.h.
Referenced by ns3::HtPpdu::HtPpdu(), ns3::HtPpdu::Copy(), ns3::ErpOfdmPpdu::Copy(), Copy(), ns3::VhtPpdu::Copy(), ns3::HePpdu::GetTxDuration(), ns3::HtPpdu::GetTxDuration(), GetTxDuration(), and ns3::HePpdu::SetPhyHeaders().
|
protected |
the channel width used to transmit that PPDU in MHz
Definition at line 127 of file ofdm-ppdu.h.
Referenced by ns3::HtPpdu::HtPpdu(), OfdmPpdu(), ns3::VhtPpdu::VhtPpdu(), ns3::ErpOfdmPpdu::DoGetTxVector(), DoGetTxVector(), and ns3::HePpdu::SetPhyHeaders().
|
protected |
the L-SIG PHY header
Definition at line 128 of file ofdm-ppdu.h.
Referenced by ns3::HtPpdu::HtPpdu(), OfdmPpdu(), ns3::VhtPpdu::VhtPpdu(), ns3::HePpdu::DoGetTxVector(), ns3::ErpOfdmPpdu::DoGetTxVector(), DoGetTxVector(), ns3::HePpdu::GetTxDuration(), GetTxDuration(), ns3::VhtPpdu::GetTxDuration(), and ns3::HePpdu::SetPhyHeaders().