Loading...
Searching...
No Matches
ns3::SatWaveformConf Class Reference

This class implements the available waveform configurations of DVB-RCS2 return link. More...

#include "satellite-wave-form-conf.h"

Inheritance diagram for ns3::SatWaveformConf:
Collaboration diagram for ns3::SatWaveformConf:

Public Types

typedef std::vector< uint32_t > BurstLengthContainer_t
 Define BurstLengthContainer.

Public Member Functions

 SatWaveformConf ()
 Default constructor, which is not to be used.
 SatWaveformConf (std::string directoryPathName)
 Constructor.
virtual ~SatWaveformConf ()
 Destructor for SatWaveformConf.
void Dump (double carrierBandwidthInHz, double symbolRateInBaud) const
 Dump the contents of the waveform.
bool GetBestWaveformId (double cno, double symbolRateInBaud, uint32_t &wfId, double &cnoThreshold, uint32_t burstLength=SHORT_BURST_LENGTH) const
 Get the best waveform id based on UT's C/No and C/No thresholds.
uint32_t GetDefaultBurstLength () const
 Get default burst length.
uint32_t GetDefaultWaveformId () const
 Get default waveform id.
uint32_t GetMaxWfId ()
 Get maximum supported waveform id return Maximum waveform id.
uint32_t GetMinWfId ()
 Get minimum supported waveform id return Minimum waveform id.
SatEnums::SatModcod_t GetModCod (uint32_t wfId) const
 Get MODCOD enum corresponding to a waveform id.
bool GetMostRobustWaveformId (uint32_t &wfId, uint32_t burstLength=SHORT_BURST_LENGTH) const
 Get the most robust waveform id based payload of the waveform in bytes.
const BurstLengthContainer_tGetSupportedBurstLengths () const
 Get supported burst lengths.
Ptr< SatWaveformGetWaveform (uint32_t wfId) const
 Get the details of a certain waveform.
void InitializeEbNoRequirements (Ptr< SatLinkResultsRtn > linkResults)
 Initialize the Eb/No requirements of the waveforms based on the used return link results.
bool IsAcmEnabled () const
 Check if ACM is enabled.
virtual void NotifyConstructionCompleted () override
 Notifier called once the ObjectBase is fully constructed.

Static Public Member Functions

static TypeId GetTypeId (void)
 Derived from Object.

Static Public Attributes

static const uint32_t LONG_BURST_LENGTH = 1616
 Static variable defining long burst length.
static const uint32_t SHORT_BURST_LENGTH = 536
 Static variable defining short burst length.

Private Member Functions

SatEnums::SatModcod_t ConvertToModCod (uint32_t modulatedBits, uint32_t codingRateNumerator, uint32_t codingRateDenominator) const
 Convert modulated bits and coding rate to a MODCOD enum.
void ReadFromFile (std::string filePathName)
 Read the waveform table from a file.
void ReadFromFileDefaultWaveform (std::string filePathName)
 Read the default waveform ID from a file.

Private Attributes

bool m_acmEnabled
 Flag to indicate whether ACM is enabled or disabled.
SatEnums::SatWaveFormBurstLength_t m_burstLength
 Burst length used.
uint32_t m_defaultWfId
 Default waveform id.
uint32_t m_maxWfId
uint32_t m_minWfId
 Minimum and maximum waveform ids.
BurstLengthContainer_t m_supportedBurstLengthsInSymbols
 Container to store supported burst lengths.
double m_targetBLER
 Block error rate target for the waveforms.
std::map< uint32_t, Ptr< SatWaveform > > m_waveforms
 Container of the waveforms.

Detailed Description

This class implements the available waveform configurations of DVB-RCS2 return link.

Currently the waveforms 3-22 are in use: 3-12 with shorter burst duration and 13-22 with longer burst duration.

See also
ETSI EN 301 545-2 Digital Video Broadcasting (DVB); Second Generation Interactive Satellite System (DVB-RCS2); Part 2: Lower Layers for Satellite Standard
  • Annex A Reference waveforms

Definition at line 212 of file satellite-wave-form-conf.h.

Member Typedef Documentation

◆ BurstLengthContainer_t

typedef std::vector<uint32_t> ns3::SatWaveformConf::BurstLengthContainer_t

Define BurstLengthContainer.

Definition at line 218 of file satellite-wave-form-conf.h.

Constructor & Destructor Documentation

◆ SatWaveformConf() [1/2]

ns3::SatWaveformConf::SatWaveformConf ( )

Default constructor, which is not to be used.

Definition at line 187 of file satellite-wave-form-conf.cc.

References m_acmEnabled, m_burstLength, m_defaultWfId, m_maxWfId, m_minWfId, m_targetBLER, and m_waveforms.

Referenced by GetTypeId().

Here is the caller graph for this function:

◆ SatWaveformConf() [2/2]

ns3::SatWaveformConf::SatWaveformConf ( std::string directoryPathName)

Constructor.

Parameters
directoryPathNamePath and to the directory of the waveform configurations

Definition at line 200 of file satellite-wave-form-conf.cc.

References ns3::SatEnvVariables::GetInstance(), m_acmEnabled, m_burstLength, m_defaultWfId, m_maxWfId, m_minWfId, m_targetBLER, m_waveforms, ReadFromFile(), and ReadFromFileDefaultWaveform().

Here is the call graph for this function:

◆ ~SatWaveformConf()

ns3::SatWaveformConf::~SatWaveformConf ( )
virtual

Destructor for SatWaveformConf.

Definition at line 277 of file satellite-wave-form-conf.cc.

Member Function Documentation

◆ ConvertToModCod()

SatEnums::SatModcod_t ns3::SatWaveformConf::ConvertToModCod ( uint32_t modulatedBits,
uint32_t codingRateNumerator,
uint32_t codingRateDenominator ) const
private

Convert modulated bits and coding rate to a MODCOD enum.

Parameters
modulatedBitsModulated bits of the MODCOD
codingRateNumeratorCoding rate numerator of the MODCOD
codingRateDenominatorCoding rate denominator of the MODCOD
Returns
MODCOD enum

Definition at line 571 of file satellite-wave-form-conf.cc.

References ns3::SatEnums::SAT_MODCOD_16QAM_3_TO_4, ns3::SatEnums::SAT_MODCOD_16QAM_5_TO_6, ns3::SatEnums::SAT_MODCOD_8PSK_2_TO_3, ns3::SatEnums::SAT_MODCOD_8PSK_3_TO_4, ns3::SatEnums::SAT_MODCOD_8PSK_5_TO_6, ns3::SatEnums::SAT_MODCOD_BPSK_1_TO_3, ns3::SatEnums::SAT_MODCOD_QPSK_1_TO_2, ns3::SatEnums::SAT_MODCOD_QPSK_1_TO_3, ns3::SatEnums::SAT_MODCOD_QPSK_2_TO_3, ns3::SatEnums::SAT_MODCOD_QPSK_3_TO_4, ns3::SatEnums::SAT_MODCOD_QPSK_5_TO_6, and ns3::SatEnums::SAT_NONVALID_MODCOD.

Referenced by ReadFromFile().

Here is the caller graph for this function:

◆ Dump()

void ns3::SatWaveformConf::Dump ( double carrierBandwidthInHz,
double symbolRateInBaud ) const

Dump the contents of the waveform.

The total carrier bandwidth and symbol rate are needed for spectral efficiency calculation.

Parameters
carrierBandwidthInHzTotal carrier bandwidth including e.g. guard band.
symbolRateInBaudEffective symbol rate where guard band and roll-off has been deduced.

Definition at line 533 of file satellite-wave-form-conf.cc.

References m_waveforms.

◆ GetBestWaveformId()

bool ns3::SatWaveformConf::GetBestWaveformId ( double cno,
double symbolRateInBaud,
uint32_t & wfId,
double & cnoThreshold,
uint32_t burstLength = SHORT_BURST_LENGTH ) const

Get the best waveform id based on UT's C/No and C/No thresholds.

Parameters
cnoUTs estimated C/No
symbolRateInBaudFrame's symbol rate used for waveform C/No requirement calculation
wfIdWaveform id variable used for passing the best waveform id to the client
cnoThresholdvariable used for passing the C/No threshold of the selected waveform to the client
burstLengthRequested burst length in symbols
Returns
boolean value presenting whether or not a suitable waveform was found.

Definition at line 458 of file satellite-wave-form-conf.cc.

References ns3::SatUtils::LinearToDb(), m_acmEnabled, m_defaultWfId, and m_waveforms.

Here is the call graph for this function:

◆ GetDefaultBurstLength()

uint32_t ns3::SatWaveformConf::GetDefaultBurstLength ( ) const
inline

Get default burst length.

Returns
Configured default burst length.

Definition at line 290 of file satellite-wave-form-conf.h.

References GetWaveform(), and m_defaultWfId.

Here is the call graph for this function:

◆ GetDefaultWaveformId()

uint32_t ns3::SatWaveformConf::GetDefaultWaveformId ( ) const

Get default waveform id.

Returns
SatWaveform id of the configuration holding all the details of the default waveform

Definition at line 444 of file satellite-wave-form-conf.cc.

References m_defaultWfId, m_maxWfId, and m_minWfId.

◆ GetMaxWfId()

uint32_t ns3::SatWaveformConf::GetMaxWfId ( )
inline

Get maximum supported waveform id return Maximum waveform id.

Definition at line 348 of file satellite-wave-form-conf.h.

References m_maxWfId.

◆ GetMinWfId()

uint32_t ns3::SatWaveformConf::GetMinWfId ( )
inline

Get minimum supported waveform id return Minimum waveform id.

Definition at line 339 of file satellite-wave-form-conf.h.

References m_minWfId.

◆ GetModCod()

SatEnums::SatModcod_t ns3::SatWaveformConf::GetModCod ( uint32_t wfId) const

Get MODCOD enum corresponding to a waveform id.

Parameters
wfIdWaveform id
Returns
MODCOD enum

Definition at line 547 of file satellite-wave-form-conf.cc.

References m_maxWfId, m_minWfId, m_waveforms, and ns3::SatEnums::SAT_NONVALID_MODCOD.

◆ GetMostRobustWaveformId()

bool ns3::SatWaveformConf::GetMostRobustWaveformId ( uint32_t & wfId,
uint32_t burstLength = SHORT_BURST_LENGTH ) const

Get the most robust waveform id based payload of the waveform in bytes.

Parameters
wfIdWaveform id variable used for passing the best waveform id to the client
burstLengthRequested burst length in symbols
Returns
boolean value presenting whether or not a suitable waveform was found.

Definition at line 504 of file satellite-wave-form-conf.cc.

References m_waveforms.

◆ GetSupportedBurstLengths()

const BurstLengthContainer_t & ns3::SatWaveformConf::GetSupportedBurstLengths ( ) const
inline

Get supported burst lengths.

Returns
Supported burst lengths.

Definition at line 299 of file satellite-wave-form-conf.h.

References m_supportedBurstLengthsInSymbols.

◆ GetTypeId()

TypeId ns3::SatWaveformConf::GetTypeId ( void )
static

Derived from Object.

Definition at line 248 of file satellite-wave-form-conf.cc.

References SatWaveformConf(), ns3::SatEnums::LONG_BURST, m_acmEnabled, m_burstLength, m_targetBLER, ns3::SatEnums::SHORT_AND_LONG_BURST, and ns3::SatEnums::SHORT_BURST.

Here is the call graph for this function:

◆ GetWaveform()

Ptr< SatWaveform > ns3::SatWaveformConf::GetWaveform ( uint32_t wfId) const

Get the details of a certain waveform.

Parameters
wfIdWaveform id
Returns
SatWaveform holding all the details of a certain waveform

Definition at line 431 of file satellite-wave-form-conf.cc.

References m_maxWfId, m_minWfId, and m_waveforms.

Referenced by GetDefaultBurstLength().

Here is the caller graph for this function:

◆ InitializeEbNoRequirements()

void ns3::SatWaveformConf::InitializeEbNoRequirements ( Ptr< SatLinkResultsRtn > linkResults)

Initialize the Eb/No requirements of the waveforms based on the used return link results.

Parameters
linkResultsPointer to return link results

In return link the link results are in Eb/No format. Since, the C/No is dependent on the symbol rate, we cannot store the requirement in C/No format, but in Eb/No. Eb/No = (Es/log2M)/No = (Es/No)*(1/log2M) = C/N * (1/log2M) = C/No * (1/fs) * (1/log2M)

Definition at line 412 of file satellite-wave-form-conf.cc.

References ns3::SatUtils::DbToLinear(), m_targetBLER, and m_waveforms.

Here is the call graph for this function:

◆ IsAcmEnabled()

bool ns3::SatWaveformConf::IsAcmEnabled ( ) const
inline

Check if ACM is enabled.

Definition at line 254 of file satellite-wave-form-conf.h.

References m_acmEnabled.

◆ NotifyConstructionCompleted()

void ns3::SatWaveformConf::NotifyConstructionCompleted ( )
overridevirtual

Notifier called once the ObjectBase is fully constructed.

This method is invoked once all member attributes have been initialized. Subclasses can override this method to be notified of this event but if they do this, they must chain up to their parent's NotifyConstructionCompleted method.

Definition at line 224 of file satellite-wave-form-conf.cc.

References ns3::SatEnums::LONG_BURST, LONG_BURST_LENGTH, m_burstLength, m_supportedBurstLengthsInSymbols, ns3::SatEnums::SHORT_AND_LONG_BURST, ns3::SatEnums::SHORT_BURST, and SHORT_BURST_LENGTH.

◆ ReadFromFile()

void ns3::SatWaveformConf::ReadFromFile ( std::string filePathName)
private

Read the waveform table from a file.

Parameters
filePathNamepath and file name

Definition at line 315 of file satellite-wave-form-conf.cc.

References ConvertToModCod(), m_maxWfId, m_minWfId, and m_waveforms.

Referenced by SatWaveformConf().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ReadFromFileDefaultWaveform()

void ns3::SatWaveformConf::ReadFromFileDefaultWaveform ( std::string filePathName)
private

Read the default waveform ID from a file.

Parameters
filePathNamepath and file name

Definition at line 283 of file satellite-wave-form-conf.cc.

References m_defaultWfId.

Referenced by SatWaveformConf().

Here is the caller graph for this function:

Member Data Documentation

◆ LONG_BURST_LENGTH

const uint32_t ns3::SatWaveformConf::LONG_BURST_LENGTH = 1616
static

Static variable defining long burst length.

Definition at line 361 of file satellite-wave-form-conf.h.

Referenced by NotifyConstructionCompleted().

◆ m_acmEnabled

bool ns3::SatWaveformConf::m_acmEnabled
private

Flag to indicate whether ACM is enabled or disabled.

If ACM is disabled, the m_defaultWfId is used.

Definition at line 402 of file satellite-wave-form-conf.h.

Referenced by SatWaveformConf(), SatWaveformConf(), GetBestWaveformId(), GetTypeId(), and IsAcmEnabled().

◆ m_burstLength

SatEnums::SatWaveFormBurstLength_t ns3::SatWaveformConf::m_burstLength
private

Burst length used.

Definition at line 419 of file satellite-wave-form-conf.h.

Referenced by SatWaveformConf(), SatWaveformConf(), GetTypeId(), and NotifyConstructionCompleted().

◆ m_defaultWfId

uint32_t ns3::SatWaveformConf::m_defaultWfId
private

◆ m_maxWfId

uint32_t ns3::SatWaveformConf::m_maxWfId
private

◆ m_minWfId

uint32_t ns3::SatWaveformConf::m_minWfId
private

Minimum and maximum waveform ids.

Note, that currently it is assumed that all the wfs between min and max are valid!

Definition at line 413 of file satellite-wave-form-conf.h.

Referenced by SatWaveformConf(), SatWaveformConf(), GetDefaultWaveformId(), GetMinWfId(), GetModCod(), GetWaveform(), and ReadFromFile().

◆ m_supportedBurstLengthsInSymbols

BurstLengthContainer_t ns3::SatWaveformConf::m_supportedBurstLengthsInSymbols
private

Container to store supported burst lengths.

Definition at line 424 of file satellite-wave-form-conf.h.

Referenced by GetSupportedBurstLengths(), and NotifyConstructionCompleted().

◆ m_targetBLER

double ns3::SatWaveformConf::m_targetBLER
private

Block error rate target for the waveforms.

Default value set as an attribute to 10^(-5).

Definition at line 396 of file satellite-wave-form-conf.h.

Referenced by SatWaveformConf(), SatWaveformConf(), GetTypeId(), and InitializeEbNoRequirements().

◆ m_waveforms

std::map<uint32_t, Ptr<SatWaveform> > ns3::SatWaveformConf::m_waveforms
private

◆ SHORT_BURST_LENGTH

const uint32_t ns3::SatWaveformConf::SHORT_BURST_LENGTH = 536
static

Static variable defining short burst length.

Definition at line 356 of file satellite-wave-form-conf.h.

Referenced by ns3::SatFrameAllocator::SatFrameAllocator(), ns3::SatFrameAllocator::GetBestWaveform(), and NotifyConstructionCompleted().


The documentation for this class was generated from the following files: