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

#include <Ieee80211HtMode.h>

Inheritance diagram for inet::physicallayer::Ieee80211HtMode:
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

 Ieee80211HtMode (const char *name, const Ieee80211HtPreambleMode *preambleMode, const Ieee80211HtDataMode *dataMode, const BandMode centerFrequencyMode)
 
virtual ~Ieee80211HtMode ()
 
virtual const Ieee80211HtDataModegetDataMode () const override
 
virtual const Ieee80211HtPreambleModegetPreambleMode () const override
 
virtual const Ieee80211HtSignalModegetHeaderMode () 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 dataLength) 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 Ieee80211HtPreambleModepreambleMode
 
const Ieee80211HtDataModedataMode
 
const BandMode centerFrequencyMode
 

Member Enumeration Documentation

◆ BandMode

Enumerator
BAND_2_4GHZ 
BAND_5GHZ 
222  {
223  BAND_2_4GHZ,
224  BAND_5GHZ
225  };

Constructor & Destructor Documentation

◆ Ieee80211HtMode()

inet::physicallayer::Ieee80211HtMode::Ieee80211HtMode ( const char *  name,
const Ieee80211HtPreambleMode preambleMode,
const Ieee80211HtDataMode dataMode,
const BandMode  centerFrequencyMode 
)

◆ ~Ieee80211HtMode()

virtual inet::physicallayer::Ieee80211HtMode::~Ieee80211HtMode ( )
inlinevirtual
238 { delete preambleMode; delete dataMode; }

Member Function Documentation

◆ getCcaTime()

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

Implements inet::physicallayer::IIeee80211Mode.

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

◆ getCenterFrequencyMode()

virtual BandMode inet::physicallayer::Ieee80211HtMode::getCenterFrequencyMode ( ) const
inlinevirtual
256 { return centerFrequencyMode; }

◆ getDataMode()

virtual const Ieee80211HtDataMode* inet::physicallayer::Ieee80211HtMode::getDataMode ( ) const
inlineoverridevirtual

Implements inet::physicallayer::IIeee80211Mode.

240 { return dataMode; }

◆ getDuration()

virtual const simtime_t inet::physicallayer::Ieee80211HtMode::getDuration ( b  dataLength) const
inlineoverridevirtual

Implements inet::physicallayer::IIeee80211Mode.

258 { return preambleMode->getDuration() + dataMode->getDuration(dataLength); }

◆ getHeaderMode()

virtual const Ieee80211HtSignalMode* inet::physicallayer::Ieee80211HtMode::getHeaderMode ( ) const
inlineoverridevirtual

◆ getLegacyCwMax()

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

Implements inet::physicallayer::IIeee80211Mode.

234 { return 1023; }

◆ getLegacyCwMin()

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

Implements inet::physicallayer::IIeee80211Mode.

233 { return 15; }

◆ getLegacySignalMode()

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

◆ getMpduMaxLength()

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

Implements inet::physicallayer::IIeee80211Mode.

255 { return 65535; } // in octets

◆ getPhyRxStartDelay()

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

Implements inet::physicallayer::IIeee80211Mode.

251 { return 33E-6; }

◆ getPlcpHeaderLength()

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

Implements inet::physicallayer::IIeee80211Mode.

254 { return 4E-6; }

◆ getPreambleLength()

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

Implements inet::physicallayer::IIeee80211Mode.

253 { return 16E-6; }

◆ getPreambleMode()

virtual const Ieee80211HtPreambleMode* inet::physicallayer::Ieee80211HtMode::getPreambleMode ( ) const
inlineoverridevirtual

Implements inet::physicallayer::IIeee80211Mode.

241 { return preambleMode; }

◆ getRifsTime()

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

Implements inet::physicallayer::IIeee80211Mode.

249 { return 2E-6; }

◆ getRxTxTurnaroundTime()

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

Implements inet::physicallayer::IIeee80211Mode.

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

◆ getShortSlotTime()

const simtime_t inet::physicallayer::Ieee80211HtMode::getShortSlotTime ( ) const
virtual
305 {
307  return 9E-6;
308  else
309  throw cRuntimeError("Short slot time is not defined for this carrier frequency"); // TODO
310 }

◆ getSifsTime()

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

Implements inet::physicallayer::IIeee80211Mode.

295 {
297  return 10E-6;
298  else if (centerFrequencyMode == BAND_5GHZ)
299  return 16E-6;
300  else
301  throw cRuntimeError("Sifs time is not defined for this carrier frequency"); // TODO
302 }

◆ getSlotTime()

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

Implements inet::physicallayer::IIeee80211Mode.

285 {
287  return 20E-6;
288  else if (centerFrequencyMode == BAND_5GHZ)
289  return 9E-6;
290  else
291  throw cRuntimeError("Unsupported carrier frequency");
292 }

Member Data Documentation

◆ centerFrequencyMode

const BandMode inet::physicallayer::Ieee80211HtMode::centerFrequencyMode
protected

◆ dataMode

const Ieee80211HtDataMode* inet::physicallayer::Ieee80211HtMode::dataMode
protected

◆ preambleMode

const Ieee80211HtPreambleMode* inet::physicallayer::Ieee80211HtMode::preambleMode
protected

The documentation for this class was generated from the following files:
inet::physicallayer::Ieee80211HtMode::BAND_5GHZ
@ BAND_5GHZ
Definition: Ieee80211HtMode.h:224
inet::physicallayer::Ieee80211HtPreambleMode::getLegacySignalMode
virtual const Ieee80211OfdmSignalMode * getLegacySignalMode() const
Definition: Ieee80211HtMode.h:142
inet::physicallayer::Ieee80211HtDataMode::getDuration
virtual const simtime_t getDuration(b dataLength) const override
Definition: Ieee80211HtMode.cc:274
inet::physicallayer::Ieee80211ModeBase::name
std::string name
Definition: Ieee80211ModeBase.h:19
inet::physicallayer::Ieee80211HtMode::preambleMode
const Ieee80211HtPreambleMode * preambleMode
Definition: Ieee80211HtMode.h:228
inet::physicallayer::Ieee80211HtPreambleMode::getDuration
virtual const simtime_t getDuration() const override
Definition: Ieee80211HtMode.cc:147
inet::physicallayer::Ieee80211HtPreambleMode::getSignalMode
virtual const Ieee80211HtSignalMode * getSignalMode() const
Definition: Ieee80211HtMode.h:141
inet::physicallayer::Ieee80211ModeBase::Ieee80211ModeBase
Ieee80211ModeBase(const char *name)
Definition: Ieee80211ModeBase.h:22
inet::physicallayer::Ieee80211HtMode::dataMode
const Ieee80211HtDataMode * dataMode
Definition: Ieee80211HtMode.h:229
inet::physicallayer::Ieee80211HtMode::BAND_2_4GHZ
@ BAND_2_4GHZ
Definition: Ieee80211HtMode.h:223
inet::physicallayer::Ieee80211HtMode::centerFrequencyMode
const BandMode centerFrequencyMode
Definition: Ieee80211HtMode.h:230