VHT PPDU (11ac) More...
#include "vht-ppdu.h"
Inheritance diagram for ns3::VhtPpdu:
Collaboration diagram for ns3::VhtPpdu:Classes | |
| class | VhtSigHeader |
| VHT PHY header (VHT-SIG-A1/A2/B). More... | |
Public Member Functions | |
| VhtPpdu (Ptr< const WifiPsdu > psdu, const WifiTxVector &txVector, uint16_t txCenterFreq, Time ppduDuration, WifiPhyBand band, uint64_t uid) | |
| Create a VHT PPDU. More... | |
| Ptr< WifiPpdu > | Copy () const override |
| Copy this instance. More... | |
| Time | GetTxDuration () const override |
| Get the total transmission duration of the PPDU. More... | |
| WifiPpduType | GetType () const override |
| Return the PPDU type (. More... | |
Public Member Functions inherited from ns3::OfdmPpdu | |
| OfdmPpdu (Ptr< const WifiPsdu > psdu, const WifiTxVector &txVector, uint16_t txCenterFreq, WifiPhyBand band, uint64_t uid, bool instantiateLSig=true) | |
| Create an OFDM PPDU. More... | |
| Ptr< WifiPpdu > | Copy () const override |
| Copy this instance. More... | |
| Time | GetTxDuration () 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, uint16_t txCenterFreq, uint64_t uid) | |
| Create a PPDU storing a map of PSDUs. More... | |
| WifiPpdu (Ptr< const WifiPsdu > psdu, const WifiTxVector &txVector, uint16_t txCenterFreq, uint64_t uid=UINT64_MAX) | |
| Create a PPDU storing a PSDU. More... | |
| virtual | ~WifiPpdu () |
| Destructor for WifiPpdu. More... | |
| virtual Ptr< WifiPpdu > | Copy () const |
| Copy this instance. More... | |
| bool | DoesOverlapChannel (uint16_t minFreq, uint16_t maxFreq) const |
| Check whether the given PPDU overlaps a given channel. More... | |
| WifiModulationClass | GetModulation () const |
| Get the modulation used for the PPDU. More... | |
| WifiPreamble | GetPreamble () const |
| Get the preamble of the PPDU. More... | |
| Ptr< const WifiPsdu > | GetPsdu () const |
| Get the payload of the PPDU. More... | |
| virtual uint16_t | GetStaId () const |
| Get the ID of the STA that transmitted the PPDU for UL MU, SU_STA_ID otherwise. More... | |
| virtual uint16_t | GetTransmissionChannelWidth () const |
| Get the channel width over which the PPDU will effectively be transmitted. More... | |
| uint16_t | GetTxCenterFreq () const |
| virtual Time | GetTxDuration () const |
| Get the total transmission duration of the PPDU. More... | |
| const WifiTxVector & | GetTxVector () const |
| Get the TXVECTOR used to send the PPDU. More... | |
| virtual WifiPpduType | GetType () const |
| Return the PPDU type (. More... | |
| uint64_t | GetUid () const |
| Get the UID of the PPDU. More... | |
| bool | IsTruncatedTx () const |
| void | Print (std::ostream &os) const |
| Print the PPDU contents. More... | |
| void | ResetTxVector () const |
| Reset the TXVECTOR. More... | |
| void | SetTruncatedTx () |
| Indicate that the PPDU's transmission was aborted due to transmitter switch off. More... | |
| void | UpdateTxVector (const WifiTxVector &updatedTxVector) const |
| Update the TXVECTOR based on some information known at the receiver. More... | |
Public Member Functions inherited from ns3::SimpleRefCount< WifiPpdu > | |
| SimpleRefCount () | |
| Default constructor. More... | |
| SimpleRefCount (const SimpleRefCount &o) | |
| Copy constructor. More... | |
| uint32_t | GetReferenceCount () const |
| Get the reference count of the object. More... | |
| SimpleRefCount & | operator= (const SimpleRefCount &o) |
| Assignment operator. More... | |
| void | Ref () const |
| Increment the reference count. More... | |
| void | Unref () const |
| Decrement the reference count. More... | |
Private Member Functions | |
| WifiTxVector | DoGetTxVector () const override |
| Get the TXVECTOR used to send the PPDU. More... | |
| virtual void | SetLSigHeader (LSigHeader &lSig, Time ppduDuration) const |
| Fill in the L-SIG header. More... | |
| virtual void | SetPhyHeaders (const WifiTxVector &txVector, Time ppduDuration) |
| Fill in the PHY headers. More... | |
| void | SetTxVectorFromPhyHeaders (WifiTxVector &txVector, const LSigHeader &lSig, const VhtSigHeader &vhtSig) const |
| Fill in the TXVECTOR from PHY headers. More... | |
| void | SetVhtSigHeader (VhtSigHeader &vhtSig, const WifiTxVector &txVector, Time ppduDuration) const |
| Fill in the VHT-SIG header. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from ns3::WifiPpdu | |
| virtual std::string | PrintPayload () const |
| Print the payload of the PPDU. More... | |
Protected Attributes inherited from ns3::OfdmPpdu | |
| WifiPhyBand | m_band |
| the WifiPhyBand used to transmit that PPDU More... | |
Protected Attributes inherited from ns3::WifiPpdu | |
| WifiModulationClass | m_modulation |
| the modulation used for the transmission of this PPDU More... | |
| Ptr< Packet > | m_phyHeaders |
| the PHY headers contained in this PPDU More... | |
| WifiPreamble | m_preamble |
| the PHY preamble More... | |
| WifiConstPsduMap | m_psdus |
| the PSDUs contained in this PPDU More... | |
| uint16_t | m_txCenterFreq |
| the center frequency (MHz) used for the transmission of this PPDU More... | |
| std::optional< WifiTxVector > | m_txVector |
| the TXVECTOR at TX PHY or the reconstructed TXVECTOR at RX PHY (or std::nullopt if TXVECTOR has not been reconstructed yet) More... | |
| uint64_t | m_uid |
| the unique ID of this PPDU More... | |
VHT PPDU (11ac)
VhtPpdu stores a preamble, PHY headers and a PSDU of a PPDU with VHT header
Definition at line 44 of file vht-ppdu.h.
| ns3::VhtPpdu::VhtPpdu | ( | Ptr< const WifiPsdu > | psdu, |
| const WifiTxVector & | txVector, | ||
| uint16_t | txCenterFreq, | ||
| Time | ppduDuration, | ||
| WifiPhyBand | band, | ||
| uint64_t | uid | ||
| ) |
Create a VHT PPDU.
| psdu | the PHY payload (PSDU) |
| txVector | the TXVECTOR that was used for this PPDU |
| txCenterFreq | the center frequency (MHz) that was used for this PPDU |
| ppduDuration | the transmission duration of this PPDU |
| band | the WifiPhyBand used for the transmission of this PPDU |
| uid | the unique ID of this PPDU |
Definition at line 35 of file vht-ppdu.cc.
References NS_LOG_FUNCTION, and SetPhyHeaders().
Referenced by Copy().
Here is the call graph for this function:
Here is the caller graph for this function:Copy this instance.
Reimplemented from ns3::OfdmPpdu.
Definition at line 185 of file vht-ppdu.cc.
References VhtPpdu().
Here is the call graph for this function:
|
overrideprivatevirtual |
Get the TXVECTOR used to send the PPDU.
Reimplemented from ns3::OfdmPpdu.
Definition at line 104 of file vht-ppdu.cc.
References ns3::Packet::Copy(), ns3::WifiPpdu::m_phyHeaders, ns3::WifiPpdu::m_preamble, NS_FATAL_ERROR, ns3::WifiTxVector::SetPreambleType(), and SetTxVectorFromPhyHeaders().
Here is the call graph for this function:
|
overridevirtual |
Get the total transmission duration of the PPDU.
Reimplemented from ns3::OfdmPpdu.
Definition at line 145 of file vht-ppdu.cc.
References ns3::WifiPhy::CalculatePhyPreambleAndHeaderDuration(), ns3::Packet::Copy(), ns3::WifiTxVector::GetGuardInterval(), ns3::OfdmPpdu::LSigHeader::GetLength(), ns3::Time::GetNanoSeconds(), ns3::VhtPpdu::VhtSigHeader::GetShortGuardInterval(), ns3::VhtPpdu::VhtSigHeader::GetShortGuardIntervalDisambiguation(), ns3::WifiPpdu::GetTxVector(), ns3::WifiPpdu::m_phyHeaders, ns3::MicroSeconds(), ns3::NanoSeconds(), and ns3::Seconds().
Here is the call graph for this function:
|
overridevirtual |
Return the PPDU type (.
Reimplemented from ns3::WifiPpdu.
Definition at line 191 of file vht-ppdu.cc.
References ns3::WifiPpdu::m_preamble, ns3::WIFI_PPDU_TYPE_DL_MU, ns3::WIFI_PPDU_TYPE_SU, and ns3::WIFI_PREAMBLE_VHT_MU.
|
privatevirtual |
Fill in the L-SIG header.
| lSig | the L-SIG header to fill in |
| ppduDuration | the transmission duration of this PPDU |
Definition at line 73 of file vht-ppdu.cc.
References ns3::Time::GetNanoSeconds(), and ns3::OfdmPpdu::LSigHeader::SetLength().
Referenced by SetPhyHeaders().
Here is the call graph for this function:
Here is the caller graph for this function:
|
privatevirtual |
Fill in the PHY headers.
| txVector | the TXVECTOR that was used for this PPDU |
| ppduDuration | the transmission duration of this PPDU |
Definition at line 53 of file vht-ppdu.cc.
References ns3::Packet::AddHeader(), ns3::WifiPpdu::m_phyHeaders, NS_LOG_FUNCTION, SetLSigHeader(), and SetVhtSigHeader().
Referenced by VhtPpdu().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Fill in the TXVECTOR from PHY headers.
| txVector | the TXVECTOR to fill in |
| lSig | the L-SIG header |
| vhtSig | the VHT-SIG header |
Definition at line 133 of file vht-ppdu.cc.
References ns3::VhtPpdu::VhtSigHeader::GetChannelWidth(), ns3::VhtPpdu::VhtSigHeader::GetNStreams(), ns3::WifiPpdu::GetPsdu(), ns3::VhtPpdu::VhtSigHeader::GetShortGuardInterval(), ns3::VhtPpdu::VhtSigHeader::GetSuMcs(), ns3::VhtPhy::GetVhtMcs(), ns3::WifiTxVector::SetAggregation(), ns3::WifiTxVector::SetChannelWidth(), ns3::WifiTxVector::SetGuardInterval(), ns3::WifiTxVector::SetMode(), and ns3::WifiTxVector::SetNss().
Referenced by DoGetTxVector().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Fill in the VHT-SIG header.
| vhtSig | the VHT-SIG header to fill in |
| txVector | the TXVECTOR that was used for this PPDU |
| ppduDuration | the transmission duration of this PPDU |
Definition at line 83 of file vht-ppdu.cc.
References ns3::WifiPhy::CalculatePhyPreambleAndHeaderDuration(), ns3::WifiTxVector::GetChannelWidth(), ns3::WifiTxVector::GetGuardInterval(), ns3::WifiMode::GetMcsValue(), ns3::WifiTxVector::GetMode(), ns3::WifiTxVector::GetNss(), ns3::WifiPpdu::m_preamble, ns3::VhtPpdu::VhtSigHeader::SetChannelWidth(), ns3::VhtPpdu::VhtSigHeader::SetMuFlag(), ns3::VhtPpdu::VhtSigHeader::SetNStreams(), ns3::VhtPpdu::VhtSigHeader::SetShortGuardInterval(), ns3::VhtPpdu::VhtSigHeader::SetShortGuardIntervalDisambiguation(), ns3::VhtPpdu::VhtSigHeader::SetSuMcs(), and ns3::WIFI_PREAMBLE_VHT_MU.
Referenced by SetPhyHeaders().
Here is the call graph for this function:
Here is the caller graph for this function: