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

BB Frame container class. More...

#include "satellite-bbframe-container.h"

Inheritance diagram for ns3::SatBbFrameContainer:
Collaboration diagram for ns3::SatBbFrameContainer:

Public Member Functions

 SatBbFrameContainer ()
 Default constructor for SatBbFrameContainer not supported.
 SatBbFrameContainer (std::vector< SatEnums::SatModcod_t > &modcodsInUse, Ptr< SatBbFrameConf > conf)
 Actual constructor for SatBbFrameContainer.
virtual ~SatBbFrameContainer ()
 Destructor.
void AddData (uint32_t priorityClass, SatEnums::SatModcod_t modcod, Ptr< Packet > data)
 Add data according to given priority class and MODCOD to container.
void ClearAllFrames ()
 Remove all frames in containers.
uint32_t GetBytesLeftInTailFrame (uint32_t priorityClass, SatEnums::SatModcod_t modcod)
 Get bytes left in last frame of the queue with the given priority class and MODCOD.
uint32_t GetFrameSymbols (SatEnums::SatModcod_t modcod)
 Get the total number of symbols, incuding headers, when creating a new BBFrame.
uint32_t GetMaxFramePayloadInBytes (uint32_t priorityClass, SatEnums::SatModcod_t modcod)
 Get maximum payload bytes of a frame with the given priority class and MODCOD.
uint32_t GetMaxSymbolRate ()
 Set the maximum symbol rate of this container, used for time-slicing.
SatEnums::SatModcod_t GetModcod (uint32_t priorityClass, double cno)
 Get maximum MODCOD with the given priority class and C/N0.
Ptr< SatBbFrameGetNextFrame ()
 Get next frame from container to transmit.
Time GetTotalDuration () const
 Get total transmission duration of the frames in container.
bool IsEmpty (uint32_t priorityClass, SatEnums::SatModcod_t modcod)
 Indicates if the container for a ModCod and priority is empty (no BBFrame).
void MergeBbFrames (double carrierBandwidthInHz)
void SetMaxSymbolRate (uint32_t maxSymbolRate)
 Set the maximum symbol rate of this container, used for time-slicing.

Static Public Member Functions

static TypeId GetTypeId (void)
 Get the type ID.

Private Types

typedef std::map< SatEnums::SatModcod_t, std::deque< Ptr< SatBbFrame > > > FrameContainer_t

Private Member Functions

void CreateFrameToTail (uint32_t priorityClass, SatEnums::SatModcod_t modcod)
 Create short or normal frame according to MODCOD and member #m_bbFrameUsageMode.

Private Attributes

Ptr< SatBbFrameConfm_bbFrameConf
TracedCallback< Ptr< SatBbFrame >, Ptr< SatBbFrame > > m_bbFrameMergeTrace
 Trace for merged BB frames.
FrameContainer_t m_container
std::deque< Ptr< SatBbFrame > > m_ctrlContainer
SatEnums::SatBbFrameType_t m_defaultBbFrameType
uint32_t m_maxSymbolRate
Time m_totalDuration

Detailed Description

BB Frame container class.

Holds information of BB Frames for forward link scheduling.

SatBbFrameContainer implements own queues (container) for every used MODCODs. These MODCOD queues are used for non control packets (priority class different than 0).

For control messages (priority class 0) is used only one queue with most robust MODCOD.

Definition at line 50 of file satellite-bbframe-container.h.

Member Typedef Documentation

◆ FrameContainer_t

typedef std::map<SatEnums::SatModcod_t, std::deque<Ptr<SatBbFrame> > > ns3::SatBbFrameContainer::FrameContainer_t
private

Definition at line 161 of file satellite-bbframe-container.h.

Constructor & Destructor Documentation

◆ SatBbFrameContainer() [1/2]

ns3::SatBbFrameContainer::SatBbFrameContainer ( )

Default constructor for SatBbFrameContainer not supported.

Definition at line 43 of file satellite-bbframe-container.cc.

References m_defaultBbFrameType, and m_totalDuration.

◆ SatBbFrameContainer() [2/2]

ns3::SatBbFrameContainer::SatBbFrameContainer ( std::vector< SatEnums::SatModcod_t > & modcodsInUse,
Ptr< SatBbFrameConf > conf )

Actual constructor for SatBbFrameContainer.

Parameters
modcodsInUseMODCODs in use.
confPointer to BB Frame configuration.

Definition at line 51 of file satellite-bbframe-container.cc.

References m_bbFrameConf, m_container, m_defaultBbFrameType, m_maxSymbolRate, m_totalDuration, ns3::SatEnums::NORMAL_FRAME, ns3::SatEnums::SHORT_FRAME, and ns3::SatEnums::SHORT_FRAMES.

◆ ~SatBbFrameContainer()

ns3::SatBbFrameContainer::~SatBbFrameContainer ( )
virtual

Destructor.

Definition at line 80 of file satellite-bbframe-container.cc.

References m_container.

Member Function Documentation

◆ AddData()

void ns3::SatBbFrameContainer::AddData ( uint32_t priorityClass,
SatEnums::SatModcod_t modcod,
Ptr< Packet > data )

Add data according to given priority class and MODCOD to container.

Parameters
priorityClassPriority class of the data (packet) to be added
modcodMODCOD of the data (packet) to be added. MODCOD is ignored when priorityClass is 0.
dataData (packet) to be added to container

Definition at line 192 of file satellite-bbframe-container.cc.

References CreateFrameToTail(), GetBytesLeftInTailFrame(), m_bbFrameConf, m_container, m_ctrlContainer, m_defaultBbFrameType, m_totalDuration, ns3::SatEnums::SHORT_AND_NORMAL_FRAMES, and ns3::SatEnums::SHORT_FRAME.

Here is the call graph for this function:

◆ ClearAllFrames()

void ns3::SatBbFrameContainer::ClearAllFrames ( )

Remove all frames in containers.

Definition at line 254 of file satellite-bbframe-container.cc.

References m_container, and m_ctrlContainer.

◆ CreateFrameToTail()

void ns3::SatBbFrameContainer::CreateFrameToTail ( uint32_t priorityClass,
SatEnums::SatModcod_t modcod )
private

Create short or normal frame according to MODCOD and member #m_bbFrameUsageMode.

Created frame is added back of appropriate container.

Parameters
priorityClassPriority for created frame
modcodMODCOD for created frame

Definition at line 303 of file satellite-bbframe-container.cc.

References m_bbFrameConf, m_container, m_ctrlContainer, m_defaultBbFrameType, and m_totalDuration.

Referenced by AddData().

Here is the caller graph for this function:

◆ GetBytesLeftInTailFrame()

uint32_t ns3::SatBbFrameContainer::GetBytesLeftInTailFrame ( uint32_t priorityClass,
SatEnums::SatModcod_t modcod )

Get bytes left in last frame of the queue with the given priority class and MODCOD.

Parameters
priorityClassPriority class of the queue requested
modcodMODOCOD of the queue requested. MODCOD is ignored when priorityClass is 0.
Returns
Bytes left in last frame in requested queue.

Definition at line 144 of file satellite-bbframe-container.cc.

References GetMaxFramePayloadInBytes(), m_bbFrameConf, m_container, and m_ctrlContainer.

Referenced by AddData().

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

◆ GetFrameSymbols()

uint32_t ns3::SatBbFrameContainer::GetFrameSymbols ( SatEnums::SatModcod_t modcod)

Get the total number of symbols, incuding headers, when creating a new BBFrame.

Parameters
modcodMODOCOD of the queue requested.
Returns
The number of symbols in the BBFrame.

Definition at line 235 of file satellite-bbframe-container.cc.

References m_bbFrameConf, and m_defaultBbFrameType.

◆ GetMaxFramePayloadInBytes()

uint32_t ns3::SatBbFrameContainer::GetMaxFramePayloadInBytes ( uint32_t priorityClass,
SatEnums::SatModcod_t modcod )

Get maximum payload bytes of a frame with the given priority class and MODCOD.

Parameters
priorityClassPriority class of the frame payload requested
modcodMODOCOD of the queue requested. MODCOD is ignored when priorityClass is 0.
Returns
Maximum payload bytes.

Definition at line 121 of file satellite-bbframe-container.cc.

References ns3::SatConstVariables::BITS_PER_BYTE, m_bbFrameConf, and m_defaultBbFrameType.

Referenced by GetBytesLeftInTailFrame().

Here is the caller graph for this function:

◆ GetMaxSymbolRate()

uint32_t ns3::SatBbFrameContainer::GetMaxSymbolRate ( )

Set the maximum symbol rate of this container, used for time-slicing.

Returns
The maximum symbol rate.

Definition at line 248 of file satellite-bbframe-container.cc.

References m_maxSymbolRate.

◆ GetModcod()

SatEnums::SatModcod_t ns3::SatBbFrameContainer::GetModcod ( uint32_t priorityClass,
double cno )

Get maximum MODCOD with the given priority class and C/N0.

Parameters
priorityClassPriority class of the MODCOD requested
cnoC/N0 value of the MODCOD requested
Returns
MODCOD fulfills given criteria.

Definition at line 102 of file satellite-bbframe-container.cc.

References m_bbFrameConf, and m_defaultBbFrameType.

◆ GetNextFrame()

Ptr< SatBbFrame > ns3::SatBbFrameContainer::GetNextFrame ( )

Get next frame from container to transmit.

Returns
BB Frame

Definition at line 266 of file satellite-bbframe-container.cc.

References m_container, m_ctrlContainer, and m_totalDuration.

◆ GetTotalDuration()

Time ns3::SatBbFrameContainer::GetTotalDuration ( ) const

Get total transmission duration of the frames in container.

Returns
Total transmission duration of the frames.

Definition at line 229 of file satellite-bbframe-container.cc.

References m_totalDuration.

◆ GetTypeId()

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

Get the type ID.

Returns
the object TypeId

Definition at line 88 of file satellite-bbframe-container.cc.

References m_bbFrameMergeTrace.

◆ IsEmpty()

bool ns3::SatBbFrameContainer::IsEmpty ( uint32_t priorityClass,
SatEnums::SatModcod_t modcod )

Indicates if the container for a ModCod and priority is empty (no BBFrame).

Parameters
priorityClassPriority class of the container
modcodMODCOD of the container. MODCOD is ignored when priorityClass is 0.
trueif a BBFrame is already open

Definition at line 177 of file satellite-bbframe-container.cc.

References m_container, and m_ctrlContainer.

◆ MergeBbFrames()

void ns3::SatBbFrameContainer::MergeBbFrames ( double carrierBandwidthInHz)

◆ SetMaxSymbolRate()

void ns3::SatBbFrameContainer::SetMaxSymbolRate ( uint32_t maxSymbolRate)

Set the maximum symbol rate of this container, used for time-slicing.

Parameters
maxSymbolRateThe new symbol rate.

Definition at line 242 of file satellite-bbframe-container.cc.

References m_maxSymbolRate.

Member Data Documentation

◆ m_bbFrameConf

◆ m_bbFrameMergeTrace

TracedCallback<Ptr<SatBbFrame>, Ptr<SatBbFrame> > ns3::SatBbFrameContainer::m_bbFrameMergeTrace
private

Trace for merged BB frames.

Parameters
BBframe merge to @parma BB frame merge from

Definition at line 175 of file satellite-bbframe-container.h.

Referenced by GetTypeId(), and MergeBbFrames().

◆ m_container

◆ m_ctrlContainer

std::deque<Ptr<SatBbFrame> > ns3::SatBbFrameContainer::m_ctrlContainer
private

◆ m_defaultBbFrameType

◆ m_maxSymbolRate

uint32_t ns3::SatBbFrameContainer::m_maxSymbolRate
private

◆ m_totalDuration

Time ns3::SatBbFrameContainer::m_totalDuration
private

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