25 #include "ns3/ofdm-ppdu.h"
62 void Print(std::ostream& os)
const override;
173 uint16_t txCenterFreq,
192 uint16_t txCenterFreq,
260 const LSigHeader& lSig,
261 const HeSigHeader& heSig)
const;
263 #ifndef NS3_BUILD_PROFILE_DEBUG
284 virtual bool IsMu()
const;
290 virtual bool IsDlMu()
const;
296 virtual bool IsUlMu()
const;
iterator in a Buffer instance
void SetTxPsdFlag(TxPsdFlag flag) const
WifiTxVector DoGetTxVector() const override
Get the TXVECTOR used to send the PPDU.
void UpdateTxVectorForUlMu(const std::optional< WifiTxVector > &trigVector) const
Update the TXVECTOR for HE TB PPDUs, since the information to decode HE TB PPDUs is not available fro...
Ptr< WifiPpdu > Copy() const override
Copy this instance.
virtual void SetTxVectorFromPhyHeaders(WifiTxVector &txVector, const LSigHeader &lSig, const HeSigHeader &heSig) const
Fill in the TXVECTOR from PHY headers.
TxPsdFlag
The transmit power spectral density flag, namely used to correctly build PSDs for pre-HE and HE porti...
@ PSD_HE_PORTION
HE portion of an HE PPDU.
@ PSD_NON_HE_PORTION
Non-HE portion of an HE PPDU.
virtual bool IsDlMu() const
Return true if the PPDU is a DL MU PPDU.
Time GetTxDuration() const override
Get the total transmission duration of the PPDU.
virtual bool IsUlMu() const
Return true if the PPDU is an UL MU PPDU.
ContentChannelAllocation m_contentChannelAlloc
HE SIG-B Content Channel allocation (to be removed once HE-SIG-B headers are implemented)
WifiTxVector::HeMuUserInfoMap m_muUserInfos
HE MU specific per-user information (to be removed once HE-SIG-B headers are implemented)
virtual void SetPhyHeaders(const WifiTxVector &txVector, Time ppduDuration)
Fill in the PHY headers.
bool IsAllocated(uint16_t staId) const
Check if STA ID is allocated.
std::string PrintPayload() const override
Print the payload of the PPDU.
uint16_t GetStaId() const override
Get the ID of the STA that transmitted the PPDU for UL MU, SU_STA_ID otherwise.
WifiPpduType GetType() const override
Return the PPDU type (.
TxPsdFlag GetTxPsdFlag() const
HePpdu(Ptr< const WifiPsdu > psdu, const WifiTxVector &txVector, uint16_t txCenterFreq, Time ppduDuration, WifiPhyBand band, uint64_t uid)
Create an SU HE PPDU, storing a PSDU.
virtual bool IsMu() const
Return true if the PPDU is a MU PPDU.
RuAllocation m_ruAllocation
RU_ALLOCATION in SIG-B common field (to be removed once HE-SIG-B headers are implemented)
virtual void SetLSigHeader(LSigHeader &lSig, Time ppduDuration) const
Fill in the L-SIG header.
bool IsStaInContentChannel(uint16_t staId, size_t channelId) const
Check if STA ID is in HE SIG-B Content Channel ID.
TxPsdFlag m_txPsdFlag
the transmit power spectral density flag
void SetHeSigHeader(HeSigHeader &heSig, const WifiTxVector &txVector) const
Fill in the HE-SIG header.
uint16_t GetTransmissionChannelWidth() const override
Get the channel width over which the PPDU will effectively be transmitted.
Simulation virtual time values and global simulation resolution.
a unique identifier for an interface.
Ptr< const WifiPsdu > GetPsdu() const
Get the payload of the PPDU.
This class mimics the TXVECTOR which is to be passed to the PHY in order to define the parameters whi...
std::map< uint16_t, HeMuUserInfo > HeMuUserInfoMap
map of HE MU specific user info parameters indexed by STA-ID
WifiPhyBand
Identifies the PHY band.
WifiPpduType
The type of PPDU (SU, DL MU, or UL MU)
Every class exported by the ns3 library is enclosed in the ns3 namespace.
std::unordered_map< uint16_t, Ptr< const WifiPsdu > > WifiConstPsduMap
Map of const PSDUs indexed by STA-ID.
std::vector< std::vector< uint16_t > > ContentChannelAllocation
HE SIG-B Content Channels STA ID Allocation.
std::vector< uint8_t > RuAllocation
8 bit RU_ALLOCATION per 20 MHz
std::ostream & operator<<(std::ostream &os, const Angles &a)