This class implements the available waveform configurations of DVB-RCS2 return link. More...
#include "satellite-wave-form-conf.h"
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_t & | GetSupportedBurstLengths () const |
| Get supported burst lengths. | |
| Ptr< SatWaveform > | GetWaveform (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. | |
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.
Definition at line 212 of file satellite-wave-form-conf.h.
| typedef std::vector<uint32_t> ns3::SatWaveformConf::BurstLengthContainer_t |
Define BurstLengthContainer.
Definition at line 218 of file satellite-wave-form-conf.h.
| 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().
| ns3::SatWaveformConf::SatWaveformConf | ( | std::string | directoryPathName | ) |
Constructor.
| directoryPathName | Path 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().
|
virtual |
Destructor for SatWaveformConf.
Definition at line 277 of file satellite-wave-form-conf.cc.
|
private |
Convert modulated bits and coding rate to a MODCOD enum.
| modulatedBits | Modulated bits of the MODCOD |
| codingRateNumerator | Coding rate numerator of the MODCOD |
| codingRateDenominator | Coding rate denominator of the MODCOD |
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().
| 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.
| carrierBandwidthInHz | Total carrier bandwidth including e.g. guard band. |
| symbolRateInBaud | Effective 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.
| 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.
| cno | UTs estimated C/No |
| symbolRateInBaud | Frame's symbol rate used for waveform C/No requirement calculation |
| wfId | Waveform id variable used for passing the best waveform id to the client |
| cnoThreshold | variable used for passing the C/No threshold of the selected waveform to the client |
| burstLength | Requested burst length in symbols |
Definition at line 458 of file satellite-wave-form-conf.cc.
References ns3::SatUtils::LinearToDb(), m_acmEnabled, m_defaultWfId, and m_waveforms.
|
inline |
Get default burst length.
Definition at line 290 of file satellite-wave-form-conf.h.
References GetWaveform(), and m_defaultWfId.
| uint32_t ns3::SatWaveformConf::GetDefaultWaveformId | ( | ) | const |
Get default waveform id.
Definition at line 444 of file satellite-wave-form-conf.cc.
References m_defaultWfId, m_maxWfId, and m_minWfId.
|
inline |
Get maximum supported waveform id return Maximum waveform id.
Definition at line 348 of file satellite-wave-form-conf.h.
References m_maxWfId.
|
inline |
Get minimum supported waveform id return Minimum waveform id.
Definition at line 339 of file satellite-wave-form-conf.h.
References m_minWfId.
| SatEnums::SatModcod_t ns3::SatWaveformConf::GetModCod | ( | uint32_t | wfId | ) | const |
Get MODCOD enum corresponding to a waveform id.
| wfId | Waveform id |
Definition at line 547 of file satellite-wave-form-conf.cc.
References m_maxWfId, m_minWfId, m_waveforms, and ns3::SatEnums::SAT_NONVALID_MODCOD.
| 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.
| wfId | Waveform id variable used for passing the best waveform id to the client |
| burstLength | Requested burst length in symbols |
Definition at line 504 of file satellite-wave-form-conf.cc.
References m_waveforms.
|
inline |
Get supported burst lengths.
Definition at line 299 of file satellite-wave-form-conf.h.
References m_supportedBurstLengthsInSymbols.
|
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.
| Ptr< SatWaveform > ns3::SatWaveformConf::GetWaveform | ( | uint32_t | wfId | ) | const |
Get the details of a certain waveform.
| wfId | Waveform id |
Definition at line 431 of file satellite-wave-form-conf.cc.
References m_maxWfId, m_minWfId, and m_waveforms.
Referenced by GetDefaultBurstLength().
| void ns3::SatWaveformConf::InitializeEbNoRequirements | ( | Ptr< SatLinkResultsRtn > | linkResults | ) |
Initialize the Eb/No requirements of the waveforms based on the used return link results.
| linkResults | Pointer 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.
|
inline |
Check if ACM is enabled.
Definition at line 254 of file satellite-wave-form-conf.h.
References m_acmEnabled.
|
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.
|
private |
Read the waveform table from a file.
| filePathName | path 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().
|
private |
Read the default waveform ID from a file.
| filePathName | path and file name |
Definition at line 283 of file satellite-wave-form-conf.cc.
References m_defaultWfId.
Referenced by SatWaveformConf().
|
static |
Static variable defining long burst length.
Definition at line 361 of file satellite-wave-form-conf.h.
Referenced by NotifyConstructionCompleted().
|
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().
|
private |
Burst length used.
Definition at line 419 of file satellite-wave-form-conf.h.
Referenced by SatWaveformConf(), SatWaveformConf(), GetTypeId(), and NotifyConstructionCompleted().
|
private |
Default waveform id.
Definition at line 407 of file satellite-wave-form-conf.h.
Referenced by SatWaveformConf(), SatWaveformConf(), GetBestWaveformId(), GetDefaultBurstLength(), GetDefaultWaveformId(), and ReadFromFileDefaultWaveform().
|
private |
Definition at line 414 of file satellite-wave-form-conf.h.
Referenced by SatWaveformConf(), SatWaveformConf(), GetDefaultWaveformId(), GetMaxWfId(), GetModCod(), GetWaveform(), and ReadFromFile().
|
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().
|
private |
Container to store supported burst lengths.
Definition at line 424 of file satellite-wave-form-conf.h.
Referenced by GetSupportedBurstLengths(), and NotifyConstructionCompleted().
|
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().
|
private |
Container of the waveforms.
Definition at line 390 of file satellite-wave-form-conf.h.
Referenced by SatWaveformConf(), SatWaveformConf(), Dump(), GetBestWaveformId(), GetModCod(), GetMostRobustWaveformId(), GetWaveform(), InitializeEbNoRequirements(), and ReadFromFile().
|
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().