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

#include <Ieee80211VhtMode.h>

Inheritance diagram for inet::physicallayer::Ieee80211VhtMode:
inet::physicallayer::Ieee80211ModeBase inet::physicallayer::IIeee80211Mode inet::IPrintableObject

Public Types

enum  BandMode { BAND_2_4GHZ, BAND_5GHZ }
 
- 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

 Ieee80211VhtMode (const char *name, const Ieee80211VhtPreambleMode *preambleMode, const Ieee80211VhtDataMode *dataMode, const BandMode centerFrequencyMode)
 
virtual ~Ieee80211VhtMode ()
 
virtual const Ieee80211VhtDataModegetDataMode () const override
 
virtual const Ieee80211VhtPreambleModegetPreambleMode () const override
 
virtual const Ieee80211VhtSignalModegetHeaderMode () const override
 
virtual const Ieee80211OfdmSignalModegetLegacySignalMode () const
 
virtual const simtime_t getSlotTime () const override
 
virtual const simtime_t getShortSlotTime () const
 
virtual const simtime_t getSifsTime () const override
 
virtual const simtime_t getRifsTime () const override
 
virtual const simtime_t getCcaTime () const override
 
virtual const simtime_t getPhyRxStartDelay () const override
 
virtual const simtime_t getRxTxTurnaroundTime () const override
 
virtual const simtime_t getPreambleLength () const override
 
virtual const simtime_t getPlcpHeaderLength () const override
 
virtual int getMpduMaxLength () const override
 
virtual BandMode getCenterFrequencyMode () const
 
virtual const simtime_t getDuration (b dataBitLength) const override
 
- Public Member Functions inherited from inet::physicallayer::Ieee80211ModeBase
 Ieee80211ModeBase (const char *name)
 
virtual const char * getName () const override
 
- Public Member Functions inherited from inet::physicallayer::IIeee80211Mode
IIeee80211PreambleMode_getPreambleMode () const
 
IIeee80211HeaderMode_getHeaderMode () const
 
IIeee80211DataMode_getDataMode () const
 
- 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 int getLegacyCwMin () const override
 
virtual int getLegacyCwMax () const override
 

Protected Attributes

const Ieee80211VhtPreambleModepreambleMode
 
const Ieee80211VhtDataModedataMode
 
const BandMode centerFrequencyMode
 

Member Enumeration Documentation

◆ BandMode

Enumerator
BAND_2_4GHZ 
BAND_5GHZ 
241  {
242  BAND_2_4GHZ,
243  BAND_5GHZ
244  };

Constructor & Destructor Documentation

◆ Ieee80211VhtMode()

inet::physicallayer::Ieee80211VhtMode::Ieee80211VhtMode ( const char *  name,
const Ieee80211VhtPreambleMode preambleMode,
const Ieee80211VhtDataMode dataMode,
const BandMode  centerFrequencyMode 
)

◆ ~Ieee80211VhtMode()

virtual inet::physicallayer::Ieee80211VhtMode::~Ieee80211VhtMode ( )
inlinevirtual
257 { delete preambleMode; delete dataMode; }

Member Function Documentation

◆ getCcaTime()

virtual const simtime_t inet::physicallayer::Ieee80211VhtMode::getCcaTime ( ) const
inlineoverridevirtual

Implements inet::physicallayer::IIeee80211Mode.

269 { return 4E-6; } // < 4

◆ getCenterFrequencyMode()

virtual BandMode inet::physicallayer::Ieee80211VhtMode::getCenterFrequencyMode ( ) const
inlinevirtual
275 { return centerFrequencyMode; }

◆ getDataMode()

virtual const Ieee80211VhtDataMode* inet::physicallayer::Ieee80211VhtMode::getDataMode ( ) const
inlineoverridevirtual

Implements inet::physicallayer::IIeee80211Mode.

259 { return dataMode; }

◆ getDuration()

virtual const simtime_t inet::physicallayer::Ieee80211VhtMode::getDuration ( b  dataBitLength) const
inlineoverridevirtual

Implements inet::physicallayer::IIeee80211Mode.

277 { return preambleMode->getDuration() + dataMode->getDuration(dataBitLength); }

◆ getHeaderMode()

virtual const Ieee80211VhtSignalMode* inet::physicallayer::Ieee80211VhtMode::getHeaderMode ( ) const
inlineoverridevirtual

◆ getLegacyCwMax()

virtual int inet::physicallayer::Ieee80211VhtMode::getLegacyCwMax ( ) const
inlineoverrideprotectedvirtual

Implements inet::physicallayer::IIeee80211Mode.

253 { return 1023; }

◆ getLegacyCwMin()

virtual int inet::physicallayer::Ieee80211VhtMode::getLegacyCwMin ( ) const
inlineoverrideprotectedvirtual

Implements inet::physicallayer::IIeee80211Mode.

252 { return 15; }

◆ getLegacySignalMode()

virtual const Ieee80211OfdmSignalMode* inet::physicallayer::Ieee80211VhtMode::getLegacySignalMode ( ) const
inlinevirtual
262 { return preambleMode->getLegacySignalMode(); }

◆ getMpduMaxLength()

virtual int inet::physicallayer::Ieee80211VhtMode::getMpduMaxLength ( ) const
inlineoverridevirtual

Implements inet::physicallayer::IIeee80211Mode.

274 { return 65535; } // in octets

◆ getPhyRxStartDelay()

virtual const simtime_t inet::physicallayer::Ieee80211VhtMode::getPhyRxStartDelay ( ) const
inlineoverridevirtual

Implements inet::physicallayer::IIeee80211Mode.

270 { return 33E-6; }

◆ getPlcpHeaderLength()

virtual const simtime_t inet::physicallayer::Ieee80211VhtMode::getPlcpHeaderLength ( ) const
inlineoverridevirtual

Implements inet::physicallayer::IIeee80211Mode.

273 { return 4E-6; }

◆ getPreambleLength()

virtual const simtime_t inet::physicallayer::Ieee80211VhtMode::getPreambleLength ( ) const
inlineoverridevirtual

Implements inet::physicallayer::IIeee80211Mode.

272 { return 16E-6; }

◆ getPreambleMode()

virtual const Ieee80211VhtPreambleMode* inet::physicallayer::Ieee80211VhtMode::getPreambleMode ( ) const
inlineoverridevirtual

Implements inet::physicallayer::IIeee80211Mode.

260 { return preambleMode; }

◆ getRifsTime()

virtual const simtime_t inet::physicallayer::Ieee80211VhtMode::getRifsTime ( ) const
inlineoverridevirtual

Implements inet::physicallayer::IIeee80211Mode.

268 { return 2E-6; }

◆ getRxTxTurnaroundTime()

virtual const simtime_t inet::physicallayer::Ieee80211VhtMode::getRxTxTurnaroundTime ( ) const
inlineoverridevirtual

Implements inet::physicallayer::IIeee80211Mode.

271 { return 2E-6; } // < 2

◆ getShortSlotTime()

const simtime_t inet::physicallayer::Ieee80211VhtMode::getShortSlotTime ( ) const
virtual
666 {
667  return 9E-6;
668 }

◆ getSifsTime()

const simtime_t inet::physicallayer::Ieee80211VhtMode::getSifsTime ( ) const
inlineoverridevirtual

Implements inet::physicallayer::IIeee80211Mode.

658 {
660  return 16E-6;
661  else
662  throw cRuntimeError("Sifs time is not defined for this carrier frequency"); // TODO
663 }

◆ getSlotTime()

const simtime_t inet::physicallayer::Ieee80211VhtMode::getSlotTime ( ) const
overridevirtual

Implements inet::physicallayer::IIeee80211Mode.

650 {
652  return 9E-6;
653  else
654  throw cRuntimeError("Unsupported carrier frequency");
655 }

Member Data Documentation

◆ centerFrequencyMode

const BandMode inet::physicallayer::Ieee80211VhtMode::centerFrequencyMode
protected

Referenced by getSifsTime(), and getSlotTime().

◆ dataMode

const Ieee80211VhtDataMode* inet::physicallayer::Ieee80211VhtMode::dataMode
protected

◆ preambleMode

const Ieee80211VhtPreambleMode* inet::physicallayer::Ieee80211VhtMode::preambleMode
protected

The documentation for this class was generated from the following files:
inet::physicallayer::Ieee80211VhtPreambleMode::getSignalMode
virtual const Ieee80211VhtSignalMode * getSignalMode() const
Definition: Ieee80211VhtMode.h:132
inet::physicallayer::Ieee80211VhtMode::dataMode
const Ieee80211VhtDataMode * dataMode
Definition: Ieee80211VhtMode.h:248
inet::physicallayer::Ieee80211VhtPreambleMode::getLegacySignalMode
virtual const Ieee80211OfdmSignalMode * getLegacySignalMode() const
Definition: Ieee80211VhtMode.h:133
inet::physicallayer::Ieee80211ModeBase::name
std::string name
Definition: Ieee80211ModeBase.h:19
inet::physicallayer::Ieee80211VhtMode::preambleMode
const Ieee80211VhtPreambleMode * preambleMode
Definition: Ieee80211VhtMode.h:247
inet::physicallayer::Ieee80211ModeBase::Ieee80211ModeBase
Ieee80211ModeBase(const char *name)
Definition: Ieee80211ModeBase.h:22
inet::physicallayer::Ieee80211VhtMode::centerFrequencyMode
const BandMode centerFrequencyMode
Definition: Ieee80211VhtMode.h:249
inet::physicallayer::Ieee80211VhtPreambleMode::getDuration
virtual const simtime_t getDuration() const override
Definition: Ieee80211VhtMode.cc:251
inet::physicallayer::Ieee80211VhtDataMode::getDuration
virtual const simtime_t getDuration(b dataLength) const override
Definition: Ieee80211VhtMode.cc:639
inet::physicallayer::Ieee80211VhtMode::BAND_5GHZ
@ BAND_5GHZ
Definition: Ieee80211VhtMode.h:243
inet::physicallayer::Ieee80211VhtMode::BAND_2_4GHZ
@ BAND_2_4GHZ
Definition: Ieee80211VhtMode.h:242