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

#include <Ieee80211VhtMode.h>

Inheritance diagram for inet::physicallayer::Ieee80211VhtDataMode:
inet::physicallayer::IIeee80211DataMode inet::physicallayer::Ieee80211VhtModeBase inet::physicallayer::Ieee80211HtTimingRelatedParametersBase inet::IPrintableObject

Public Member Functions

 Ieee80211VhtDataMode (const Ieee80211Vhtmcs *modulationAndCodingScheme, const Hz bandwidth, GuardIntervalType guardIntervalType)
 
b getServiceFieldLength () const
 
b getTailFieldLength () const
 
virtual int getNumberOfSpatialStreams () const override
 
virtual Hz getBandwidth () const override
 
virtual b getPaddingLength (b dataLength) const override
 
virtual b getCompleteLength (b dataLength) const override
 
virtual const simtime_t getDuration (b dataLength) const override
 
virtual bps getNetBitrate () const override
 
virtual bps getGrossBitrate () const override
 
virtual const Ieee80211VhtmcsgetModulationAndCodingScheme () const
 
virtual const Ieee80211VhtCodegetCode () const
 
virtual const Ieee80211OfdmModulationgetModulation () 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
 
- Public Member Functions inherited from inet::physicallayer::Ieee80211VhtModeBase
 Ieee80211VhtModeBase (unsigned int modulationAndCodingScheme, unsigned int numberOfSpatialStreams, const Hz bandwidth, GuardIntervalType guardIntervalType)
 
virtual int getNumberOfDataSubcarriers () const
 
virtual int getNumberOfPilotSubcarriers () const
 
virtual int getNumberOfTotalSubcarriers () const
 
virtual GuardIntervalType getGuardIntervalType () const
 
virtual unsigned int getMcsIndex () const
 

Protected Member Functions

bps computeGrossBitrate () const override
 
bps computeNetBitrate () const override
 
unsigned int computeNumberOfSpatialStreams (const Ieee80211Vhtmcs *) const
 
unsigned int computeNumberOfCodedBitsPerSubcarrierSum () const
 
unsigned int computeNumberOfBccEncoders () const
 
unsigned int getNumberOfBccEncoders20MHz () const
 
unsigned int getNumberOfBccEncoders40MHz () const
 
unsigned int getNumberOfBccEncoders80MHz () const
 
unsigned int getNumberOfBccEncoders160MHz () const
 

Protected Attributes

const Ieee80211VhtmcsmodulationAndCodingScheme
 
const unsigned int numberOfBccEncoders
 
- Protected Attributes inherited from inet::physicallayer::Ieee80211VhtModeBase
const Hz bandwidth
 
const GuardIntervalType guardIntervalType
 
const unsigned int mcsIndex
 
const unsigned int numberOfSpatialStreams
 
bps netBitrate
 
bps grossBitrate
 

Additional Inherited Members

- 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 Types inherited from inet::physicallayer::Ieee80211VhtModeBase
enum  GuardIntervalType { HT_GUARD_INTERVAL_SHORT, HT_GUARD_INTERVAL_LONG }
 

Constructor & Destructor Documentation

◆ Ieee80211VhtDataMode()

inet::physicallayer::Ieee80211VhtDataMode::Ieee80211VhtDataMode ( const Ieee80211Vhtmcs modulationAndCodingScheme,
const Hz  bandwidth,
GuardIntervalType  guardIntervalType 
)

Member Function Documentation

◆ computeGrossBitrate()

bps inet::physicallayer::Ieee80211VhtDataMode::computeGrossBitrate ( ) const
overrideprotectedvirtual

Implements inet::physicallayer::Ieee80211VhtModeBase.

292 {
293  unsigned int numberOfCodedBitsPerSubcarrierSum = computeNumberOfCodedBitsPerSubcarrierSum();
294  unsigned int numberOfCodedBitsPerSymbol = numberOfCodedBitsPerSubcarrierSum * getNumberOfDataSubcarriers();
296  return bps(numberOfCodedBitsPerSymbol / getSymbolInterval());
298  return bps(numberOfCodedBitsPerSymbol / getShortGISymbolInterval());
299  else
300  throw cRuntimeError("Unknown guard interval type");
301 }

◆ computeNetBitrate()

bps inet::physicallayer::Ieee80211VhtDataMode::computeNetBitrate ( ) const
overrideprotectedvirtual

◆ computeNumberOfBccEncoders()

unsigned int inet::physicallayer::Ieee80211VhtDataMode::computeNumberOfBccEncoders ( ) const
protected
620 {
621  // When the BCC FEC encoder is used, a single encoder is used, except that two encoders
622  // are used when the selected MCS has a PHY rate greater than 300 Mb/s (see 20.6).
623  if (getBandwidth() == MHz(20)) {
625  }
626  else if (getBandwidth() == MHz(40)) {
628  }
629  else if (getBandwidth() == MHz(80)) {
631  }
632  else if (getBandwidth() == MHz(160)) {
634  }
635  else
636  throw cRuntimeError("Invalid bandwidth evaluating NumberOfBccEncoders");
637 }

◆ computeNumberOfCodedBitsPerSubcarrierSum()

unsigned int inet::physicallayer::Ieee80211VhtDataMode::computeNumberOfCodedBitsPerSubcarrierSum ( ) const
protected

◆ computeNumberOfSpatialStreams()

unsigned int inet::physicallayer::Ieee80211VhtDataMode::computeNumberOfSpatialStreams ( const Ieee80211Vhtmcs vhtmcs) const
protected
359 {
360  if (vhtmcs == nullptr)
361  throw cRuntimeError("Invalid MCS mode");
362  return vhtmcs->getNumNss();
363 }

◆ getBandwidth()

virtual Hz inet::physicallayer::Ieee80211VhtDataMode::getBandwidth ( ) const
inlineoverridevirtual

Reimplemented from inet::physicallayer::Ieee80211VhtModeBase.

227 { return bandwidth; }

Referenced by computeNumberOfBccEncoders().

◆ getCode()

virtual const Ieee80211VhtCode* inet::physicallayer::Ieee80211VhtDataMode::getCode ( ) const
inlinevirtual
234 { return modulationAndCodingScheme->getCode(); }

Referenced by computeNetBitrate(), and getDuration().

◆ getCompleteLength()

b inet::physicallayer::Ieee80211VhtDataMode::getCompleteLength ( b  dataLength) const
overridevirtual

Implements inet::physicallayer::IIeee80211DataMode.

354 {
355  return getServiceFieldLength() + getTailFieldLength() + dataLength; // TODO padding?
356 }

Referenced by getDuration().

◆ getDuration()

const simtime_t inet::physicallayer::Ieee80211VhtDataMode::getDuration ( b  dataLength) const
overridevirtual

Implements inet::physicallayer::IIeee80211DataMode.

640 {
641  unsigned int numberOfCodedBitsPerSubcarrierSum = computeNumberOfCodedBitsPerSubcarrierSum();
642  unsigned int numberOfCodedBitsPerSymbol = numberOfCodedBitsPerSubcarrierSum * getNumberOfDataSubcarriers();
643  const IForwardErrorCorrection *forwardErrorCorrection = getCode() ? getCode()->getForwardErrorCorrection() : nullptr;
644  unsigned int dataBitsPerSymbol = forwardErrorCorrection ? forwardErrorCorrection->getDecodedLength(numberOfCodedBitsPerSymbol) : numberOfCodedBitsPerSymbol;
645  int numberOfSymbols = lrint(ceil((double)getCompleteLength(dataLength).get() / dataBitsPerSymbol)); // TODO getBitLength(dataBitLength) should be divisible by dataBitsPerSymbol
646  return numberOfSymbols * getSymbolInterval();
647 }

Referenced by inet::physicallayer::Ieee80211VhtMode::getDuration().

◆ getGrossBitrate()

virtual bps inet::physicallayer::Ieee80211VhtDataMode::getGrossBitrate ( ) const
inlineoverridevirtual

◆ getModulation()

virtual const Ieee80211OfdmModulation* inet::physicallayer::Ieee80211VhtDataMode::getModulation ( ) const
inlineoverridevirtual

◆ getModulationAndCodingScheme()

virtual const Ieee80211Vhtmcs* inet::physicallayer::Ieee80211VhtDataMode::getModulationAndCodingScheme ( ) const
inlinevirtual
233 { return modulationAndCodingScheme; }

◆ getNetBitrate()

virtual bps inet::physicallayer::Ieee80211VhtDataMode::getNetBitrate ( ) const
inlineoverridevirtual

◆ getNumberOfBccEncoders160MHz()

unsigned int inet::physicallayer::Ieee80211VhtDataMode::getNumberOfBccEncoders160MHz ( ) const
protected
508 {
509  switch (getNumberOfSpatialStreams()) {
510  case 1:
511  if (getMcsIndex() > 6)
512  return 2;
513  else
514  return 1;
515  break;
516  break;
517  case 2:
518  if (getMcsIndex() < 4)
519  return 1;
520  else if (getMcsIndex() < 7)
521  return 2;
522  else
523  return 3;
524  break;
525  case 3:
526  if (getMcsIndex() < 3)
527  return 1;
528  else if (getMcsIndex() < 5)
529  return 2;
530  else if (getMcsIndex() < 7)
531  return 3;
532  else
533  return 4;
534  break;
535  case 4:
536  if (getMcsIndex() < 2)
537  return 1;
538  else if (getMcsIndex() < 4)
539  return 2;
540  else if (getMcsIndex() < 5)
541  return 3;
542  else if (getMcsIndex() < 7)
543  return 4;
544  else
545  return 6;
546  break;
547  case 5:
548  if (getMcsIndex() < 1)
549  return 1;
550  else if (getMcsIndex() < 3)
551  return 2;
552  else if (getMcsIndex() < 4)
553  return 3;
554  else if (getMcsIndex() < 5)
555  return 4;
556  else if (getMcsIndex() < 7)
557  return 5;
558  else if (getMcsIndex() < 8)
559  return 6;
560  else
561  return 8;
562  break;
563  case 6:
564  if (getMcsIndex() < 1)
565  return 1;
566  else if (getMcsIndex() < 3)
567  return 2;
568  else if (getMcsIndex() < 4)
569  return 3;
570  else if (getMcsIndex() < 5)
571  return 4;
572  else if (getMcsIndex() < 7)
573  return 6;
574  else if (getMcsIndex() < 9)
575  return 8;
576  else
577  return 9;
578  break;
579  case 7:
580  if (getMcsIndex() < 1)
581  return 1;
582  else if (getMcsIndex() < 2)
583  return 2;
584  else if (getMcsIndex() < 3)
585  return 3;
586  else if (getMcsIndex() < 4)
587  return 4;
588  else if (getMcsIndex() < 5)
589  return 6;
590  else if (getMcsIndex() < 7)
591  return 7;
592  else if (getMcsIndex() < 8)
593  return 9;
594  else
595  return 12;
596  break;
597  case 8:
598  if (getMcsIndex() < 1)
599  return 1;
600  else if (getMcsIndex() < 2)
601  return 2;
602  else if (getMcsIndex() < 3)
603  return 3;
604  else if (getMcsIndex() < 4)
605  return 4;
606  else if (getMcsIndex() < 5)
607  return 6;
608  else if (getMcsIndex() < 7)
609  return 8;
610  else if (getMcsIndex() < 8)
611  return 9;
612  else
613  return 12;
614  default:
615  throw cRuntimeError("Invalid MCS mode");
616  }
617 }

Referenced by computeNumberOfBccEncoders().

◆ getNumberOfBccEncoders20MHz()

unsigned int inet::physicallayer::Ieee80211VhtDataMode::getNumberOfBccEncoders20MHz ( ) const
protected
378 {
379  if (getNumberOfSpatialStreams() < 7)
380  return 1;
381  else {
382  if (getMcsIndex() > 7)
383  return 2;
384  else
385  return 1;
386  }
387 }

Referenced by computeNumberOfBccEncoders().

◆ getNumberOfBccEncoders40MHz()

unsigned int inet::physicallayer::Ieee80211VhtDataMode::getNumberOfBccEncoders40MHz ( ) const
protected
390 {
391  switch (getNumberOfSpatialStreams()) {
392  case 1:
393  case 2:
394  case 3:
395  return 1;
396  break;
397  case 4:
398  if (getMcsIndex() > 7)
399  return 2;
400  else
401  return 1;
402  break;
403  case 5:
404  if (getMcsIndex() > 5)
405  return 2;
406  else
407  return 1;
408 
409  break;
410  case 6:
411  if (getMcsIndex() > 4)
412  return 2;
413  else
414  return 1;
415  break;
416  case 7:
417  case 8:
418  if (getMcsIndex() < 4)
419  return 1;
420  else if (getMcsIndex() < 8)
421  return 2;
422  else
423  return 3;
424  break;
425  default:
426  throw cRuntimeError("Invalid MCS mode");
427  }
428 }

Referenced by computeNumberOfBccEncoders().

◆ getNumberOfBccEncoders80MHz()

unsigned int inet::physicallayer::Ieee80211VhtDataMode::getNumberOfBccEncoders80MHz ( ) const
protected
431 {
432  switch (getNumberOfSpatialStreams()) {
433  case 1:
434  return 1;
435  break;
436  case 2:
437  if (getMcsIndex() > 6)
438  return 2;
439  else
440  return 1;
441  break;
442  case 3:
443  if (getMcsIndex() < 5)
444  return 1;
445  else if (getMcsIndex() < 9)
446  return 2;
447  else
448  return 3;
449  break;
450  case 4:
451  if (getMcsIndex() < 4)
452  return 1;
453  else if (getMcsIndex() < 7)
454  return 2;
455  else
456  return 3;
457  break;
458  case 5:
459  if (getMcsIndex() < 3)
460  return 1;
461  else if (getMcsIndex() < 5)
462  return 2;
463  else if (getMcsIndex() < 8)
464  return 3;
465  else
466  return 4;
467  break;
468  case 6:
469  if (getMcsIndex() < 3)
470  return 1;
471  else if (getMcsIndex() < 4)
472  return 2;
473  else if (getMcsIndex() < 7)
474  return 3;
475  else
476  return 4;
477  break;
478  case 7:
479  if (getMcsIndex() < 2)
480  return 1;
481  else if (getMcsIndex() == 3)
482  return 2;
483  else if (getMcsIndex() < 5)
484  return 3;
485  else if (getMcsIndex() == 5)
486  return 4;
487  else
488  return 6;
489  break;
490  case 8:
491  if (getMcsIndex() < 3)
492  return 1;
493  else if (getMcsIndex() < 4)
494  return 2;
495  else if (getMcsIndex() < 5)
496  return 3;
497  else if (getMcsIndex() < 7)
498  return 4;
499  else
500  return 6;
501  break;
502  default:
503  throw cRuntimeError("Invalid MCS mode");
504  }
505 }

Referenced by computeNumberOfBccEncoders().

◆ getNumberOfSpatialStreams()

virtual int inet::physicallayer::Ieee80211VhtDataMode::getNumberOfSpatialStreams ( ) const
inlineoverridevirtual

◆ getPaddingLength()

virtual b inet::physicallayer::Ieee80211VhtDataMode::getPaddingLength ( b  dataLength) const
inlineoverridevirtual

Implements inet::physicallayer::IIeee80211DataMode.

228 { return b(0); }

◆ getServiceFieldLength()

b inet::physicallayer::Ieee80211VhtDataMode::getServiceFieldLength ( ) const
inline
223 { return b(16); }

Referenced by getCompleteLength().

◆ getTailFieldLength()

b inet::physicallayer::Ieee80211VhtDataMode::getTailFieldLength ( ) const
inline
224 { return b(6) * numberOfBccEncoders; }

Referenced by getCompleteLength().

Member Data Documentation

◆ modulationAndCodingScheme

const Ieee80211Vhtmcs* inet::physicallayer::Ieee80211VhtDataMode::modulationAndCodingScheme
protected

◆ numberOfBccEncoders

const unsigned int inet::physicallayer::Ieee80211VhtDataMode::numberOfBccEncoders
protected

The documentation for this class was generated from the following files:
inet::physicallayer::Ieee80211Vhtmcs::getStreamExtension7Modulation
virtual const Ieee80211OfdmModulation * getStreamExtension7Modulation() const
Definition: Ieee80211VhtMode.h:193
inet::physicallayer::Ieee80211VhtDataMode::getNumberOfBccEncoders160MHz
unsigned int getNumberOfBccEncoders160MHz() const
Definition: Ieee80211VhtMode.cc:507
inet::physicallayer::Ieee80211VhtModeBase::getNumberOfSpatialStreams
virtual int getNumberOfSpatialStreams() const
Definition: Ieee80211VhtMode.h:50
inet::physicallayer::Ieee80211VhtModeBase::HT_GUARD_INTERVAL_LONG
@ HT_GUARD_INTERVAL_LONG
Definition: Ieee80211VhtMode.h:27
inet::physicallayer::Ieee80211Vhtmcs::getStreamExtension2Modulation
virtual const Ieee80211OfdmModulation * getStreamExtension2Modulation() const
Definition: Ieee80211VhtMode.h:188
inet::physicallayer::Ieee80211VhtDataMode::getCode
virtual const Ieee80211VhtCode * getCode() const
Definition: Ieee80211VhtMode.h:234
inet::physicallayer::Ieee80211VhtDataMode::computeNumberOfBccEncoders
unsigned int computeNumberOfBccEncoders() const
Definition: Ieee80211VhtMode.cc:619
inet::physicallayer::Ieee80211Vhtmcs::getStreamExtension5Modulation
virtual const Ieee80211OfdmModulation * getStreamExtension5Modulation() const
Definition: Ieee80211VhtMode.h:191
inet::physicallayer::ApskModulationBase::getCodeWordSize
virtual unsigned int getCodeWordSize() const override
Definition: ApskModulationBase.h:37
inet::physicallayer::Ieee80211VhtDataMode::getNumberOfBccEncoders80MHz
unsigned int getNumberOfBccEncoders80MHz() const
Definition: Ieee80211VhtMode.cc:430
inet::physicallayer::Ieee80211VhtModeBase::bandwidth
const Hz bandwidth
Definition: Ieee80211VhtMode.h:31
inet::physicallayer::Ieee80211VhtDataMode::getGrossBitrate
virtual bps getGrossBitrate() const override
Definition: Ieee80211VhtMode.h:232
inet::units::units::bps
compose< b, pow< s, -1 > > bps
Definition: Units.h:1169
inet::physicallayer::Ieee80211Vhtmcs::getStreamExtension4Modulation
virtual const Ieee80211OfdmModulation * getStreamExtension4Modulation() const
Definition: Ieee80211VhtMode.h:190
inet::physicallayer::Ieee80211VhtDataMode::getCompleteLength
virtual b getCompleteLength(b dataLength) const override
Definition: Ieee80211VhtMode.cc:353
inet::physicallayer::Ieee80211VhtModeBase::guardIntervalType
const GuardIntervalType guardIntervalType
Definition: Ieee80211VhtMode.h:32
inet::physicallayer::Ieee80211Vhtmcs::getStreamExtension3Modulation
virtual const Ieee80211OfdmModulation * getStreamExtension3Modulation() const
Definition: Ieee80211VhtMode.h:189
inet::physicallayer::ConvolutionalCode::getCodeRate
virtual double getCodeRate() const override
Definition: ConvolutionalCode.cc:38
inet::physicallayer::Ieee80211VhtDataMode::getNumberOfBccEncoders20MHz
unsigned int getNumberOfBccEncoders20MHz() const
Definition: Ieee80211VhtMode.cc:377
inet::physicallayer::Ieee80211VhtDataMode::getNumberOfBccEncoders40MHz
unsigned int getNumberOfBccEncoders40MHz() const
Definition: Ieee80211VhtMode.cc:389
inet::physicallayer::Ieee80211Vhtmcs::getCode
const Ieee80211VhtCode * getCode() const
Definition: Ieee80211VhtMode.h:184
inet::physicallayer::Ieee80211VhtDataMode::getBandwidth
virtual Hz getBandwidth() const override
Definition: Ieee80211VhtMode.h:227
inet::physicallayer::Ieee80211VhtModeBase::HT_GUARD_INTERVAL_SHORT
@ HT_GUARD_INTERVAL_SHORT
Definition: Ieee80211VhtMode.h:26
inet::physicallayer::Ieee80211VhtModeBase::getMcsIndex
virtual unsigned int getMcsIndex() const
Definition: Ieee80211VhtMode.h:51
inet::physicallayer::Ieee80211VhtCode::getForwardErrorCorrection
const Ieee80211ConvolutionalCode * getForwardErrorCorrection() const
Definition: Ieee80211VhtCode.h:30
inet::physicallayer::ConvolutionalCode::getDecodedLength
virtual int getDecodedLength(int encodedLength) const override
Definition: ConvolutionalCode.cc:49
inet::physicallayer::Ieee80211OfdmModulation::getSubcarrierModulation
const ApskModulationBase * getSubcarrierModulation() const
Definition: Ieee80211OfdmModulation.h:24
inet::physicallayer::Ieee80211VhtDataMode::getServiceFieldLength
b getServiceFieldLength() const
Definition: Ieee80211VhtMode.h:223
inet::units::values::b
value< int64_t, units::b > b
Definition: Units.h:1241
inet::physicallayer::Ieee80211Vhtmcs::getStreamExtension6Modulation
virtual const Ieee80211OfdmModulation * getStreamExtension6Modulation() const
Definition: Ieee80211VhtMode.h:192
inet::physicallayer::Ieee80211VhtModeBase::getNumberOfDataSubcarriers
virtual int getNumberOfDataSubcarriers() const
Definition: Ieee80211VhtMode.cc:322
inet::physicallayer::Ieee80211Vhtmcs::getModulation
virtual const Ieee80211OfdmModulation * getModulation() const
Definition: Ieee80211VhtMode.h:186
inet::physicallayer::Ieee80211VhtDataMode::computeNumberOfCodedBitsPerSubcarrierSum
unsigned int computeNumberOfCodedBitsPerSubcarrierSum() const
Definition: Ieee80211VhtMode.cc:365
inet::units::units::MHz
mega< Hz >::type MHz
Definition: Units.h:1083
inet::physicallayer::Ieee80211VhtDataMode::numberOfBccEncoders
const unsigned int numberOfBccEncoders
Definition: Ieee80211VhtMode.h:207
inet::physicallayer::Ieee80211VhtModeBase::getNetBitrate
virtual bps getNetBitrate() const
Definition: Ieee80211VhtMode.cc:308
inet::physicallayer::Ieee80211VhtDataMode::computeNumberOfSpatialStreams
unsigned int computeNumberOfSpatialStreams(const Ieee80211Vhtmcs *) const
Definition: Ieee80211VhtMode.cc:358
inet::physicallayer::Ieee80211VhtModeBase::Ieee80211VhtModeBase
Ieee80211VhtModeBase(unsigned int modulationAndCodingScheme, unsigned int numberOfSpatialStreams, const Hz bandwidth, GuardIntervalType guardIntervalType)
Definition: Ieee80211VhtMode.cc:28
inet::physicallayer::Ieee80211VhtDataMode::modulationAndCodingScheme
const Ieee80211Vhtmcs * modulationAndCodingScheme
Definition: Ieee80211VhtMode.h:206
inet::physicallayer::Ieee80211VhtModeBase::getGrossBitrate
virtual bps getGrossBitrate() const
Definition: Ieee80211VhtMode.cc:315
inet::physicallayer::Ieee80211VhtDataMode::getTailFieldLength
b getTailFieldLength() const
Definition: Ieee80211VhtMode.h:224
inet::physicallayer::Ieee80211VhtDataMode::getNumberOfSpatialStreams
virtual int getNumberOfSpatialStreams() const override
Definition: Ieee80211VhtMode.h:226
inet::physicallayer::Ieee80211Vhtmcs::getMcsIndex
unsigned int getMcsIndex() const
Definition: Ieee80211VhtMode.h:185
inet::physicallayer::Ieee80211Vhtmcs::getStreamExtension1Modulation
virtual const Ieee80211OfdmModulation * getStreamExtension1Modulation() const
Definition: Ieee80211VhtMode.h:187