INET Framework for OMNeT++/OMNEST
inet::physicallayer::Ieee80211VhtPreambleMode Class Reference

#include <Ieee80211VhtMode.h>

Inheritance diagram for inet::physicallayer::Ieee80211VhtPreambleMode:
inet::physicallayer::IIeee80211PreambleMode inet::physicallayer::Ieee80211HtTimingRelatedParametersBase inet::IPrintableObject

Public Types

enum  HighTroughputPreambleFormat { HT_PREAMBLE_MIXED, HT_PREAMBLE_GREENFIELD }
 
- Public Types inherited from inet::IPrintableObject
enum  PrintLevel {
  PRINT_LEVEL_TRACE, PRINT_LEVEL_DEBUG, PRINT_LEVEL_DETAIL, PRINT_LEVEL_INFO,
  PRINT_LEVEL_COMPLETE = INT_MIN
}
 
enum  PrintFlag { PRINT_FLAG_FORMATTED = (1 << 0), PRINT_FLAG_MULTILINE = (1 << 1) }
 

Public Member Functions

 Ieee80211VhtPreambleMode (const Ieee80211VhtSignalMode *highThroughputSignalMode, const Ieee80211OfdmSignalMode *legacySignalMode, HighTroughputPreambleFormat preambleFormat, unsigned int numberOfSpatialStream)
 
virtual ~Ieee80211VhtPreambleMode ()
 
HighTroughputPreambleFormat getPreambleFormat () const
 
virtual const Ieee80211VhtSignalModegetSignalMode () const
 
virtual const Ieee80211OfdmSignalModegetLegacySignalMode () const
 
virtual const Ieee80211VhtSignalModegetHighThroughputSignalMode () const
 
virtual const simtime_t getDoubleGIDuration () const
 
virtual const simtime_t getLSIGDuration () const
 
virtual const simtime_t getNonHTShortTrainingSequenceDuration () const
 
virtual const simtime_t getHTGreenfieldShortTrainingFieldDuration () const
 
virtual const simtime_t getNonHTLongTrainingFieldDuration () const
 
virtual const simtime_t getNonHTSignalField () const
 
virtual const simtime_t getVHTSignalFieldA () const
 
virtual const simtime_t getVHTShortTrainingFieldDuration () const
 
virtual const simtime_t getVHTSignalFieldB () const
 
virtual const simtime_t getFirstHTLongTrainingFieldDuration () const
 
virtual const simtime_t getSecondAndSubsequentHTLongTrainingFielDuration () const
 
virtual unsigned int getNumberOfHtLongTrainings () const
 
virtual const simtime_t getDuration () const override
 
virtual Ptr< Ieee80211PhyPreamblecreatePreamble () const override
 
- Public Member Functions inherited from inet::IPrintableObject
virtual ~IPrintableObject ()
 
virtual std::ostream & printToStream (std::ostream &stream, int level, int evFlags=0) const
 Prints this object to the provided output stream. More...
 
virtual std::string printToString () const
 
virtual std::string printToString (int level, int evFlags=0) const
 
virtual std::string getInfoStringRepresentation (int evFlags=0) const
 
virtual std::string getDetailStringRepresentation (int evFlags=0) const
 
virtual std::string getDebugStringRepresentation (int evFlags=0) const
 
virtual std::string getTraceStringRepresentation (int evFlags=0) const
 
virtual std::string getCompleteStringRepresentation (int evFlags=0) const
 

Protected Member Functions

virtual unsigned int computeNumberOfSpaceTimeStreams (unsigned int numberOfSpatialStreams) const
 
virtual unsigned int computeNumberOfHTLongTrainings (unsigned int numberOfSpaceTimeStreams) const
 

Protected Attributes

const Ieee80211VhtSignalModehighThroughputSignalMode
 
const Ieee80211OfdmSignalModelegacySignalMode
 
const HighTroughputPreambleFormat preambleFormat
 
const unsigned int numberOfHTLongTrainings
 

Member Enumeration Documentation

◆ HighTroughputPreambleFormat

Enumerator
HT_PREAMBLE_MIXED 
HT_PREAMBLE_GREENFIELD 
112  {
113  HT_PREAMBLE_MIXED, // can be received by non-HT STAs compliant with Clause 18 or Clause 19
114  HT_PREAMBLE_GREENFIELD // all of the non-HT fields are omitted
115  };

Constructor & Destructor Documentation

◆ Ieee80211VhtPreambleMode()

inet::physicallayer::Ieee80211VhtPreambleMode::Ieee80211VhtPreambleMode ( const Ieee80211VhtSignalMode highThroughputSignalMode,
const Ieee80211OfdmSignalMode legacySignalMode,
HighTroughputPreambleFormat  preambleFormat,
unsigned int  numberOfSpatialStream 
)

◆ ~Ieee80211VhtPreambleMode()

virtual inet::physicallayer::Ieee80211VhtPreambleMode::~Ieee80211VhtPreambleMode ( )
inlinevirtual
129 { delete highThroughputSignalMode; }

Member Function Documentation

◆ computeNumberOfHTLongTrainings()

unsigned int inet::physicallayer::Ieee80211VhtPreambleMode::computeNumberOfHTLongTrainings ( unsigned int  numberOfSpaceTimeStreams) const
protectedvirtual
242 {
243  // If the transmitter is providing training for exactly the space-time
244  // streams (spatial mapper inputs) used for the transmission of the PSDU,
245  // the number of training symbols, N_LTF, is equal to the number of space-time
246  // streams, N STS, except that for three space-time streams, four training symbols
247  // are required.
248  return numberOfSpaceTimeStreams == 3 ? 4 : numberOfSpaceTimeStreams;
249 }

◆ computeNumberOfSpaceTimeStreams()

unsigned int inet::physicallayer::Ieee80211VhtPreambleMode::computeNumberOfSpaceTimeStreams ( unsigned int  numberOfSpatialStreams) const
protectedvirtual
236 {
237  // Table 20-12—Determining the number of space-time streams
238  return numberOfSpatialStreams + highThroughputSignalMode->getSTBC();
239 }

◆ createPreamble()

virtual Ptr<Ieee80211PhyPreamble> inet::physicallayer::Ieee80211VhtPreambleMode::createPreamble ( ) const
inlineoverridevirtual

Implements inet::physicallayer::IIeee80211PreambleMode.

152 { return makeShared<Ieee80211VhtPhyPreamble>(); }

◆ getDoubleGIDuration()

virtual const simtime_t inet::physicallayer::Ieee80211VhtPreambleMode::getDoubleGIDuration ( ) const
inlinevirtual
136 { return 2 * getGIDuration(); } // GI2

◆ getDuration()

const simtime_t inet::physicallayer::Ieee80211VhtPreambleMode::getDuration ( ) const
overridevirtual

◆ getFirstHTLongTrainingFieldDuration()

const simtime_t inet::physicallayer::Ieee80211VhtPreambleMode::getFirstHTLongTrainingFieldDuration ( ) const
virtual
231 {
232  return simtime_t(8E-6);
233 }

◆ getHighThroughputSignalMode()

virtual const Ieee80211VhtSignalMode* inet::physicallayer::Ieee80211VhtPreambleMode::getHighThroughputSignalMode ( ) const
inlinevirtual
134 { return highThroughputSignalMode; }

◆ getHTGreenfieldShortTrainingFieldDuration()

virtual const simtime_t inet::physicallayer::Ieee80211VhtPreambleMode::getHTGreenfieldShortTrainingFieldDuration ( ) const
inlinevirtual
139 { return 10 * getDFTPeriod() / 4; } // HT-GF-STF

◆ getLegacySignalMode()

virtual const Ieee80211OfdmSignalMode* inet::physicallayer::Ieee80211VhtPreambleMode::getLegacySignalMode ( ) const
inlinevirtual

◆ getLSIGDuration()

virtual const simtime_t inet::physicallayer::Ieee80211VhtPreambleMode::getLSIGDuration ( ) const
inlinevirtual
137 { return getSymbolInterval(); } // L-SIG

Referenced by getDuration().

◆ getNonHTLongTrainingFieldDuration()

virtual const simtime_t inet::physicallayer::Ieee80211VhtPreambleMode::getNonHTLongTrainingFieldDuration ( ) const
inlinevirtual
140 { return 2 * getDFTPeriod() + getDoubleGIDuration(); } // L-LTF

Referenced by getDuration().

◆ getNonHTShortTrainingSequenceDuration()

virtual const simtime_t inet::physicallayer::Ieee80211VhtPreambleMode::getNonHTShortTrainingSequenceDuration ( ) const
inlinevirtual
138 { return 10 * getDFTPeriod() / 4; } // L-STF

Referenced by getDuration().

◆ getNonHTSignalField()

virtual const simtime_t inet::physicallayer::Ieee80211VhtPreambleMode::getNonHTSignalField ( ) const
inlinevirtual
141 { return 4E-6; } // L-SIG

◆ getNumberOfHtLongTrainings()

virtual unsigned int inet::physicallayer::Ieee80211VhtPreambleMode::getNumberOfHtLongTrainings ( ) const
inlinevirtual
148 { return numberOfHTLongTrainings; }

◆ getPreambleFormat()

HighTroughputPreambleFormat inet::physicallayer::Ieee80211VhtPreambleMode::getPreambleFormat ( ) const
inline
131 { return preambleFormat; }

◆ getSecondAndSubsequentHTLongTrainingFielDuration()

virtual const simtime_t inet::physicallayer::Ieee80211VhtPreambleMode::getSecondAndSubsequentHTLongTrainingFielDuration ( ) const
inlinevirtual
147 { return 4E-6; } // HT-LTFs, s = 2,3,..,n

Referenced by getDuration().

◆ getSignalMode()

virtual const Ieee80211VhtSignalMode* inet::physicallayer::Ieee80211VhtPreambleMode::getSignalMode ( ) const
inlinevirtual

◆ getVHTShortTrainingFieldDuration()

virtual const simtime_t inet::physicallayer::Ieee80211VhtPreambleMode::getVHTShortTrainingFieldDuration ( ) const
inlinevirtual
143 { return 4E-6; } // VHT-STF

Referenced by getDuration().

◆ getVHTSignalFieldA()

virtual const simtime_t inet::physicallayer::Ieee80211VhtPreambleMode::getVHTSignalFieldA ( ) const
inlinevirtual
142 { return 8E-6; } // VHT-SIG-A

Referenced by getDuration().

◆ getVHTSignalFieldB()

virtual const simtime_t inet::physicallayer::Ieee80211VhtPreambleMode::getVHTSignalFieldB ( ) const
inlinevirtual
144 { return 4E-6; } // VHT-SIG-A

Referenced by getDuration().

Member Data Documentation

◆ highThroughputSignalMode

const Ieee80211VhtSignalMode* inet::physicallayer::Ieee80211VhtPreambleMode::highThroughputSignalMode
protected

◆ legacySignalMode

const Ieee80211OfdmSignalMode* inet::physicallayer::Ieee80211VhtPreambleMode::legacySignalMode
protected

◆ numberOfHTLongTrainings

const unsigned int inet::physicallayer::Ieee80211VhtPreambleMode::numberOfHTLongTrainings
protected

Referenced by getDuration().

◆ preambleFormat

const HighTroughputPreambleFormat inet::physicallayer::Ieee80211VhtPreambleMode::preambleFormat
protected

The documentation for this class was generated from the following files:
inet::physicallayer::Ieee80211VhtPreambleMode::computeNumberOfSpaceTimeStreams
virtual unsigned int computeNumberOfSpaceTimeStreams(unsigned int numberOfSpatialStreams) const
Definition: Ieee80211VhtMode.cc:235
inet::physicallayer::Ieee80211VhtPreambleMode::preambleFormat
const HighTroughputPreambleFormat preambleFormat
Definition: Ieee80211VhtMode.h:120
inet::physicallayer::Ieee80211VhtPreambleMode::getNonHTLongTrainingFieldDuration
virtual const simtime_t getNonHTLongTrainingFieldDuration() const
Definition: Ieee80211VhtMode.h:140
inet::physicallayer::Ieee80211VhtPreambleMode::legacySignalMode
const Ieee80211OfdmSignalMode * legacySignalMode
Definition: Ieee80211VhtMode.h:119
inet::physicallayer::Ieee80211VhtPreambleMode::HT_PREAMBLE_GREENFIELD
@ HT_PREAMBLE_GREENFIELD
Definition: Ieee80211VhtMode.h:114
inet::physicallayer::Ieee80211VhtPreambleMode::getNonHTShortTrainingSequenceDuration
virtual const simtime_t getNonHTShortTrainingSequenceDuration() const
Definition: Ieee80211VhtMode.h:138
inet::physicallayer::Ieee80211VhtPreambleMode::numberOfHTLongTrainings
const unsigned int numberOfHTLongTrainings
Definition: Ieee80211VhtMode.h:121
inet::physicallayer::Ieee80211VhtSignalMode::getSTBC
virtual unsigned int getSTBC() const
Definition: Ieee80211VhtMode.h:90
inet::physicallayer::Ieee80211VhtPreambleMode::HT_PREAMBLE_MIXED
@ HT_PREAMBLE_MIXED
Definition: Ieee80211VhtMode.h:113
inet::physicallayer::Ieee80211VhtPreambleMode::getLSIGDuration
virtual const simtime_t getLSIGDuration() const
Definition: Ieee80211VhtMode.h:137
inet::physicallayer::Ieee80211VhtPreambleMode::getVHTSignalFieldB
virtual const simtime_t getVHTSignalFieldB() const
Definition: Ieee80211VhtMode.h:144
inet::physicallayer::Ieee80211VhtPreambleMode::getVHTSignalFieldA
virtual const simtime_t getVHTSignalFieldA() const
Definition: Ieee80211VhtMode.h:142
inet::physicallayer::Ieee80211VhtPreambleMode::computeNumberOfHTLongTrainings
virtual unsigned int computeNumberOfHTLongTrainings(unsigned int numberOfSpaceTimeStreams) const
Definition: Ieee80211VhtMode.cc:241
inet::physicallayer::Ieee80211VhtPreambleMode::getVHTShortTrainingFieldDuration
virtual const simtime_t getVHTShortTrainingFieldDuration() const
Definition: Ieee80211VhtMode.h:143
inet::physicallayer::Ieee80211VhtPreambleMode::getSecondAndSubsequentHTLongTrainingFielDuration
virtual const simtime_t getSecondAndSubsequentHTLongTrainingFielDuration() const
Definition: Ieee80211VhtMode.h:147
inet::physicallayer::Ieee80211VhtPreambleMode::highThroughputSignalMode
const Ieee80211VhtSignalMode * highThroughputSignalMode
Definition: Ieee80211VhtMode.h:118
inet::physicallayer::Ieee80211VhtPreambleMode::getDoubleGIDuration
virtual const simtime_t getDoubleGIDuration() const
Definition: Ieee80211VhtMode.h:136