HE PPDU (11ax) More...
#include "he-ppdu.h"
Classes | |
struct | HeMuSigHeader |
HE-SIG PHY header for HE MU PPDUs (HE-SIG-A1/A2/B) More... | |
struct | HeSigBUserSpecificField |
User Specific Fields in HE-SIG-Bs. More... | |
struct | HeSuSigHeader |
HE-SIG PHY header for HE SU PPDUs (HE-SIG-A1/A2) More... | |
struct | HeTbSigHeader |
HE-SIG PHY header for HE TB PPDUs (HE-SIG-A1/A2) More... | |
Public Types | |
using | HeSigBContentChannels = std::vector< std::vector< HeSigBUserSpecificField > > |
HE SIG-B Content Channels. More... | |
using | HeSigHeader = std::variant< std::monostate, HeSuSigHeader, HeTbSigHeader, HeMuSigHeader > |
type of the HE-SIG PHY header More... | |
enum | TxPsdFlag { PSD_NON_HE_PORTION , PSD_HE_PORTION } |
The transmit power spectral density flag, namely used to correctly build PSDs for pre-HE and HE portions. More... | |
Public Member Functions | |
HePpdu (const WifiConstPsduMap &psdus, const WifiTxVector &txVector, const WifiPhyOperatingChannel &channel, Time ppduDuration, uint64_t uid, TxPsdFlag flag) | |
Create an MU HE PPDU, storing a map of PSDUs. More... | |
HePpdu (Ptr< const WifiPsdu > psdu, const WifiTxVector &txVector, const WifiPhyOperatingChannel &channel, Time ppduDuration, uint64_t uid) | |
Create an SU HE PPDU, storing a PSDU. More... | |
Ptr< WifiPpdu > | Copy () const override |
Copy this instance. More... | |
Ptr< const WifiPsdu > | GetPsdu (uint8_t bssColor, uint16_t staId=SU_STA_ID) const |
Get the payload of the PPDU. More... | |
uint16_t | GetStaId () const override |
Get the ID of the STA that transmitted the PPDU for UL MU, SU_STA_ID otherwise. More... | |
uint16_t | GetTxChannelWidth () const override |
Get the channel width over which the PPDU will effectively be transmitted. More... | |
Time | GetTxDuration () const override |
Get the total transmission duration of the PPDU. More... | |
TxPsdFlag | GetTxPsdFlag () const |
WifiPpduType | GetType () const override |
Return the PPDU type (. More... | |
void | SetTxPsdFlag (TxPsdFlag flag) const |
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 from the PHY headers but it requires information from the TRIGVECTOR of the AP expecting these HE TB PPDUs. More... | |
Public Member Functions inherited from ns3::OfdmPpdu | |
OfdmPpdu (Ptr< const WifiPsdu > psdu, const WifiTxVector &txVector, const WifiPhyOperatingChannel &channel, 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, const WifiPhyOperatingChannel &channel, uint64_t uid) | |
Create a PPDU storing a map of PSDUs. More... | |
WifiPpdu (Ptr< const WifiPsdu > psdu, const WifiTxVector &txVector, const WifiPhyOperatingChannel &channel, uint64_t uid=UINT64_MAX) | |
Create a PPDU storing a PSDU. More... | |
virtual | ~WifiPpdu () |
Destructor for WifiPpdu. 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... | |
uint16_t | GetTxCenterFreq () const |
const WifiTxVector & | GetTxVector () const |
Get the TXVECTOR used to send the PPDU. 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[[maybe_unused]]) | |
Copy constructor. More... | |
uint32_t | GetReferenceCount () const |
Get the reference count of the object. More... | |
SimpleRefCount & | operator= (const SimpleRefCount &o[[maybe_unused]]) |
Assignment operator. More... | |
void | Ref () const |
Increment the reference count. More... | |
void | Unref () const |
Decrement the reference count. More... | |
Static Public Member Functions | |
static HeSigBContentChannels | GetHeSigBContentChannels (const WifiTxVector &txVector, uint8_t p20Index) |
Get the HE SIG-B content channels for a given PPDU IEEE 802.11ax-2021 27.3.11.8.2 HE-SIG-B content channels. More... | |
static std::pair< std::size_t, std::size_t > | GetNumRusPerHeSigBContentChannel (uint16_t channelWidth, const RuAllocation &ruAllocation, bool sigBCompression, uint8_t numMuMimoUsers) |
Get the number of STAs per HE-SIG-B content channel. More... | |
static uint32_t | GetSigBFieldSize (uint16_t channelWidth, const RuAllocation &ruAllocation, bool sigBCompression, std::size_t numMuMimoUsers) |
Get variable length HE SIG-B field size. More... | |
Protected Member Functions | |
void | SetHeMuUserInfos (WifiTxVector &txVector, const RuAllocation &ruAllocation, const HeSigBContentChannels &contentChannels, bool sigBCompression, uint8_t numMuMimoUsers) const |
Reconstruct HeMuUserInfoMap from HE-SIG-B header. More... | |
virtual void | SetTxVectorFromPhyHeaders (WifiTxVector &txVector) const |
Fill in the TXVECTOR from PHY headers. More... | |
Static Protected Member Functions | |
static uint8_t | GetChannelWidthEncodingFromMhz (uint16_t channelWidth) |
Convert channel width expressed in MHz to bandwidth field encoding in HE-SIG-A. More... | |
static uint16_t | GetChannelWidthMhzFromEncoding (uint8_t bandwidth) |
Convert channel width expressed in MHz from bandwidth field encoding in HE-SIG-A. More... | |
static uint8_t | GetGuardIntervalAndNltfEncoding (uint16_t gi, uint8_t nltf) |
Convert guard interval (in ns) and NLTF to its encoding in HE-SIG-A. More... | |
static uint16_t | GetGuardIntervalFromEncoding (uint8_t giAndNltfSize) |
Convert guard interval (in ns) from its encoding in HE-SIG-A. More... | |
static uint8_t | GetMuMimoUsersEncoding (uint8_t nUsers) |
Convert number of MU-MIMO users to its encoding in HE-SIG-A. More... | |
static uint8_t | GetMuMimoUsersFromEncoding (uint8_t encoding) |
Convert number of MU-MIMO users from its encoding in HE-SIG-A. More... | |
static uint8_t | GetNssFromNstsEncoding (uint8_t nsts) |
Convert number of spatial streams from NSTS field encoding in HE-SIG-A. More... | |
static uint8_t | GetNstsEncodingFromNss (uint8_t nss) |
Convert number of spatial streams to NSTS field encoding in HE-SIG-A. More... | |
Protected Attributes | |
TxPsdFlag | m_txPsdFlag |
the transmit power spectral density flag More... | |
Protected Attributes inherited from ns3::OfdmPpdu | |
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... | |
const WifiPhyOperatingChannel & | m_operatingChannel |
the operating channel of the PHY 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... | |
Private Member Functions | |
WifiTxVector | DoGetTxVector () const override |
Get the TXVECTOR used to send the PPDU. More... | |
virtual bool | IsDlMu () const |
Return true if the PPDU is a DL MU PPDU. More... | |
virtual bool | IsMu () const |
Return true if the PPDU is a MU PPDU. More... | |
virtual bool | IsUlMu () const |
Return true if the PPDU is an UL MU PPDU. More... | |
std::string | PrintPayload () const override |
Print the payload of the PPDU. More... | |
void | SetHeSigHeader (const WifiTxVector &txVector) |
Fill in the HE-SIG header. More... | |
void | SetLSigHeader (Time ppduDuration) |
Fill in the L-SIG header. More... | |
void | SetPhyHeaders (const WifiTxVector &txVector, Time ppduDuration) |
Fill in the PHY headers. More... | |
Private Attributes | |
HeSigHeader | m_heSig |
the HE-SIG PHY header More... | |
HE PPDU (11ax)
HePpdu stores a preamble, PHY headers and a map of PSDUs of a PPDU with HE header
using ns3::HePpdu::HeSigBContentChannels = std::vector<std::vector<HeSigBUserSpecificField> > |
using ns3::HePpdu::HeSigHeader = std::variant<std::monostate, HeSuSigHeader, HeTbSigHeader, HeMuSigHeader> |
ns3::HePpdu::HePpdu | ( | Ptr< const WifiPsdu > | psdu, |
const WifiTxVector & | txVector, | ||
const WifiPhyOperatingChannel & | channel, | ||
Time | ppduDuration, | ||
uint64_t | uid | ||
) |
Create an SU HE PPDU, storing a PSDU.
psdu | the PHY payload (PSDU) |
txVector | the TXVECTOR that was used for this PPDU |
channel | the operating channel of the PHY used to transmit this PPDU |
ppduDuration | the transmission duration of this PPDU |
uid | the unique ID of this PPDU |
Definition at line 76 of file he-ppdu.cc.
References third::channel, IsMu(), NS_ASSERT, NS_LOG_FUNCTION, and SetPhyHeaders().
ns3::HePpdu::HePpdu | ( | const WifiConstPsduMap & | psdus, |
const WifiTxVector & | txVector, | ||
const WifiPhyOperatingChannel & | channel, | ||
Time | ppduDuration, | ||
uint64_t | uid, | ||
TxPsdFlag | flag | ||
) |
Create an MU HE PPDU, storing a map of PSDUs.
This PPDU can either be UL or DL.
psdus | the PHY payloads (PSDUs) |
txVector | the TXVECTOR that was used for this PPDU |
channel | the operating channel of the PHY used to transmit this PPDU |
ppduDuration | the transmission duration of this PPDU |
uid | the unique ID of this PPDU or of the triggering PPDU if this is an HE TB PPDU |
flag | the flag indicating the type of Tx PSD to build |
Definition at line 54 of file he-ppdu.cc.
References third::channel, ns3::WifiPpdu::m_psdus, NS_LOG_FUNCTION, and SetPhyHeaders().
Copy this instance.
Reimplemented from ns3::WifiPpdu.
Definition at line 336 of file he-ppdu.cc.
|
overrideprivatevirtual |
Get the TXVECTOR used to send the PPDU.
Reimplemented from ns3::WifiPpdu.
Definition at line 167 of file he-ppdu.cc.
References ns3::WifiPpdu::m_preamble, ns3::WifiTxVector::SetPreambleType(), and SetTxVectorFromPhyHeaders().
|
staticprotected |
Convert channel width expressed in MHz to bandwidth field encoding in HE-SIG-A.
channelWidth | the channel width in MHz |
Definition at line 695 of file he-ppdu.cc.
Referenced by ns3::EhtPpdu::SetEhtPhyHeader(), and SetHeSigHeader().
|
staticprotected |
Convert channel width expressed in MHz from bandwidth field encoding in HE-SIG-A.
bandwidth | the value of the bandwidth field in HE-SIG-A |
Definition at line 716 of file he-ppdu.cc.
Referenced by SetTxVectorFromPhyHeaders(), and ns3::EhtPpdu::SetTxVectorFromPhyHeaders().
|
staticprotected |
Convert guard interval (in ns) and NLTF to its encoding in HE-SIG-A.
gi | the guard interval in nanoseconds |
nltf | the the number of long training symbols |
Definition at line 737 of file he-ppdu.cc.
Referenced by ns3::EhtPpdu::SetEhtPhyHeader(), and SetHeSigHeader().
|
staticprotected |
Convert guard interval (in ns) from its encoding in HE-SIG-A.
giAndNltfSize | the value used to encode the guard interval and NLTF field in HE-SIG-A |
Definition at line 758 of file he-ppdu.cc.
Referenced by SetTxVectorFromPhyHeaders(), and ns3::EhtPpdu::SetTxVectorFromPhyHeaders().
|
static |
Get the HE SIG-B content channels for a given PPDU IEEE 802.11ax-2021 27.3.11.8.2 HE-SIG-B content channels.
txVector | the TXVECTOR used for the PPDU |
p20Index | the index of the primary20 channel |
Definition at line 554 of file he-ppdu.cc.
References ns3::WifiTxVector::GetChannelWidth(), ns3::WifiTxVector::GetHeMuUserInfo(), ns3::WifiTxVector::GetHeMuUserInfoMap(), ns3::WifiTxVector::GetRuAllocation(), ns3::WifiTxVector::GetUserInfoMapOrderedByRus(), ns3::WifiTxVector::IsSigBCompression(), ns3::NO_USER_STA_ID, and NS_ASSERT.
Referenced by ns3::EhtPpdu::GetEhtSigContentChannels(), and SetHeSigHeader().
|
staticprotected |
Convert number of MU-MIMO users to its encoding in HE-SIG-A.
nUsers | the number of MU-MIMO users |
Definition at line 789 of file he-ppdu.cc.
References NS_ASSERT.
Referenced by SetHeSigHeader().
|
staticprotected |
Convert number of MU-MIMO users from its encoding in HE-SIG-A.
encoding | the number of MU-MIMO users encoded in HE-SIG-A |
Definition at line 796 of file he-ppdu.cc.
References two-ray-to-three-gpp-ch-calibration::encoding.
Referenced by SetTxVectorFromPhyHeaders().
|
staticprotected |
Convert number of spatial streams from NSTS field encoding in HE-SIG-A.
nsts | the value of the NSTS field in HE-SIG-A |
Definition at line 783 of file he-ppdu.cc.
Referenced by SetTxVectorFromPhyHeaders().
|
staticprotected |
Convert number of spatial streams to NSTS field encoding in HE-SIG-A.
nss | the number of spatial streams |
Definition at line 776 of file he-ppdu.cc.
References NS_ASSERT.
Referenced by SetHeSigHeader().
|
static |
Get the number of STAs per HE-SIG-B content channel.
This is applicable only for MU. See section 27.3.10.8.3 of IEEE 802.11ax draft 4.0.
channelWidth | the channel width occupied by the PPDU (in MHz) |
ruAllocation | 8 bit RU_ALLOCATION per 20 MHz |
sigBCompression | flag whether SIG-B compression is used by the PPDU |
numMuMimoUsers | the number of MU-MIMO users addressed by the PPDU |
Definition at line 486 of file he-ppdu.cc.
References NS_ASSERT_MSG.
Referenced by ns3::EhtPpdu::GetNumRusPerEhtSigBContentChannel().
Get the payload of the PPDU.
bssColor | the BSS color of the PHY calling this function. |
staId | the STA-ID of the PHY calling this function. |
Definition at line 374 of file he-ppdu.cc.
References ns3::IsMu(), ns3::IsUlMu(), NS_ASSERT, and ns3::SU_STA_ID.
|
static |
Get variable length HE SIG-B field size.
channelWidth | the channel width occupied by the PPDU (in MHz) |
ruAllocation | 8 bit RU_ALLOCATION per 20 MHz |
sigBCompression | flag whether SIG-B compression is used by the PPDU |
numMuMimoUsers | the number of MU-MIMO users addressed by the PPDU |
Definition at line 639 of file he-ppdu.cc.
References max.
Referenced by ns3::HePhy::GetSigBSize().
|
overridevirtual |
Get the ID of the STA that transmitted the PPDU for UL MU, SU_STA_ID otherwise.
Reimplemented from ns3::WifiPpdu.
Definition at line 411 of file he-ppdu.cc.
References ns3::IsUlMu(), and NS_ASSERT.
|
overridevirtual |
Get the channel width over which the PPDU will effectively be transmitted.
Reimplemented from ns3::WifiPpdu.
Definition at line 418 of file he-ppdu.cc.
References NS_LOG_INFO, and ns3::SU_STA_ID.
|
overridevirtual |
Get the total transmission duration of the PPDU.
Reimplemented from ns3::WifiPpdu.
Definition at line 314 of file he-ppdu.cc.
References ns3::IsDlMu(), two-ray-to-three-gpp-ch-calibration::m, ns3::MicroSeconds(), ns3::NanoSeconds(), NS_ASSERT, ns3::Seconds(), and ns3::WIFI_PHY_BAND_2_4GHZ.
HePpdu::TxPsdFlag ns3::HePpdu::GetTxPsdFlag | ( | ) | const |
Definition at line 437 of file he-ppdu.cc.
|
overridevirtual |
Return the PPDU type (.
Reimplemented from ns3::WifiPpdu.
Definition at line 342 of file he-ppdu.cc.
References ns3::WIFI_PPDU_TYPE_DL_MU, ns3::WIFI_PPDU_TYPE_SU, ns3::WIFI_PPDU_TYPE_UL_MU, ns3::WIFI_PREAMBLE_HE_MU, and ns3::WIFI_PREAMBLE_HE_TB.
|
privatevirtual |
Return true if the PPDU is a DL MU PPDU.
Reimplemented in ns3::EhtPpdu.
Definition at line 362 of file he-ppdu.cc.
References ns3::WIFI_PREAMBLE_HE_MU.
Referenced by SetLSigHeader(), and SetTxVectorFromPhyHeaders().
|
privatevirtual |
Return true if the PPDU is a MU PPDU.
Definition at line 356 of file he-ppdu.cc.
References ns3::IsDlMu(), and ns3::IsUlMu().
Referenced by HePpdu(), and SetTxVectorFromPhyHeaders().
|
privatevirtual |
Return true if the PPDU is an UL MU PPDU.
Reimplemented in ns3::EhtPpdu.
Definition at line 368 of file he-ppdu.cc.
References ns3::WIFI_PREAMBLE_HE_TB.
Referenced by SetTxVectorFromPhyHeaders().
|
overrideprivatevirtual |
Print the payload of the PPDU.
Reimplemented from ns3::WifiPpdu.
Definition at line 679 of file he-ppdu.cc.
References ns3::IsMu(), and ns3::SU_STA_ID.
|
protected |
Reconstruct HeMuUserInfoMap from HE-SIG-B header.
txVector | the TXVECTOR to set its HeMuUserInfoMap |
ruAllocation | the RU_ALLOCATION per 20 MHz |
contentChannels | the HE-SIG-B content channels |
sigBCompression | flag whether SIG-B compression is used by the PPDU |
numMuMimoUsers | the number of MU-MIMO users addressed by the PPDU |
Definition at line 225 of file he-ppdu.cc.
References ns3::HeRu::GetBandwidth(), ns3::WifiTxVector::GetChannelWidth(), ns3::HeRu::GetRusOfType(), ns3::HeRu::GetRuSpecs(), ns3::WifiTxVector::IsAllocated(), max, ns3::NO_USER_STA_ID, NS_ASSERT, ns3::HeRu::RU_2x996_TONE, ns3::HeRu::RU_996_TONE, and ns3::WifiTxVector::SetHeMuUserInfo().
Referenced by SetTxVectorFromPhyHeaders(), and ns3::EhtPpdu::SetTxVectorFromPhyHeaders().
|
private |
Fill in the HE-SIG header.
txVector | the TXVECTOR that was used for this PPDU |
Definition at line 121 of file he-ppdu.cc.
References ns3::WifiTxVector::GetBssColor(), ns3::WifiTxVector::GetCenter26ToneRuIndication(), ns3::WifiTxVector::GetChannelWidth(), GetChannelWidthEncodingFromMhz(), ns3::WifiTxVector::GetGuardInterval(), GetGuardIntervalAndNltfEncoding(), ns3::WifiTxVector::GetHeMuUserInfoMap(), GetHeSigBContentChannels(), ns3::WifiMode::GetMcsValue(), ns3::WifiTxVector::GetMode(), GetMuMimoUsersEncoding(), ns3::WifiTxVector::GetNss(), GetNstsEncodingFromNss(), ns3::WifiPhyOperatingChannel::GetPrimaryChannelIndex(), ns3::WifiTxVector::GetRuAllocation(), ns3::WifiTxVector::GetSigBMode(), ns3::IsDlMu(), ns3::WifiTxVector::IsSigBCompression(), ns3::IsUlMu(), ns3::HePpdu::HeSuSigHeader::m_bssColor, ns3::HePpdu::HeTbSigHeader::m_bssColor, ns3::HePpdu::HeMuSigHeader::m_bssColor, m_heSig, ns3::WifiPpdu::m_operatingChannel, ns3::WifiPpdu::m_preamble, and NS_ASSERT.
Referenced by SetPhyHeaders().
|
private |
Fill in the L-SIG header.
ppduDuration | the transmission duration of this PPDU |
Definition at line 102 of file he-ppdu.cc.
References ns3::Time::GetNanoSeconds(), ns3::WifiPhyOperatingChannel::GetPhyBand(), IsDlMu(), ns3::WifiPhyOperatingChannel::IsSet(), two-ray-to-three-gpp-ch-calibration::m, ns3::OfdmPpdu::m_lSig, ns3::WifiPpdu::m_operatingChannel, NS_ASSERT, ns3::OfdmPpdu::LSigHeader::SetLength(), and ns3::WIFI_PHY_BAND_2_4GHZ.
Referenced by SetPhyHeaders().
|
private |
Fill in the PHY headers.
txVector | the TXVECTOR that was used for this PPDU |
ppduDuration | the transmission duration of this PPDU |
Definition at line 94 of file he-ppdu.cc.
References NS_LOG_FUNCTION, SetHeSigHeader(), and SetLSigHeader().
Referenced by HePpdu().
void ns3::HePpdu::SetTxPsdFlag | ( | TxPsdFlag | flag | ) | const |
flag | the transmit PSD flag set for this PPDU |
Definition at line 443 of file he-ppdu.cc.
References NS_LOG_FUNCTION.
|
protectedvirtual |
Fill in the TXVECTOR from PHY headers.
txVector | the TXVECTOR to fill in |
Reimplemented in ns3::EhtPpdu.
Definition at line 176 of file he-ppdu.cc.
References GetChannelWidthMhzFromEncoding(), GetGuardIntervalFromEncoding(), ns3::HePhy::GetHeMcs(), ns3::WifiTxVector::GetHeMuUserInfoMap(), ns3::OfdmPpdu::LSigHeader::GetLength(), GetMuMimoUsersFromEncoding(), GetNssFromNstsEncoding(), ns3::WifiPhyOperatingChannel::GetPrimaryChannelIndex(), ns3::VhtPhy::GetVhtMcs(), IsDlMu(), IsMu(), IsUlMu(), m_heSig, ns3::OfdmPpdu::m_lSig, ns3::WifiPpdu::m_operatingChannel, ns3::WifiPpdu::m_psdus, ns3::WifiTxVector::m_ruAllocation, NS_ASSERT, ns3::WifiTxVector::SetAggregation(), ns3::WifiTxVector::SetBssColor(), ns3::WifiTxVector::SetCenter26ToneRuIndication(), ns3::WifiTxVector::SetChannelWidth(), ns3::WifiTxVector::SetGuardInterval(), SetHeMuUserInfos(), ns3::WifiTxVector::SetLength(), ns3::WifiTxVector::SetMode(), ns3::WifiTxVector::SetNss(), ns3::WifiTxVector::SetRuAllocation(), and ns3::WifiTxVector::SetSigBMode().
Referenced by DoGetTxVector().
void ns3::HePpdu::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 from the PHY headers but it requires information from the TRIGVECTOR of the AP expecting these HE TB PPDUs.
trigVector | the TRIGVECTOR or std::nullopt if no TRIGVECTOR is available at the caller |
Definition at line 450 of file he-ppdu.cc.
References NS_ASSERT, NS_LOG_FUNCTION, ns3::WIFI_MOD_CLASS_HE, and ns3::WIFI_PPDU_TYPE_UL_MU.
|
private |
the HE-SIG PHY header
Definition at line 366 of file he-ppdu.h.
Referenced by SetHeSigHeader(), and SetTxVectorFromPhyHeaders().
|
mutableprotected |