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

Static Public Member Functions

static TypeId GetTypeId (void)
 Get the type ID. More...
 

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. More...
 

Private Attributes

Ptr< SatBbFrameConfm_bbFrameConf
 
TracedCallback< Ptr< SatBbFrame >, Ptr< SatBbFrame > > m_bbFrameMergeTrace
 Trace for merged BB frames. More...
 
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 48 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 154 of file satellite-bbframe-container.h.

Constructor & Destructor Documentation

◆ SatBbFrameContainer() [1/2]

ns3::SatBbFrameContainer::SatBbFrameContainer ( )

Default constructor for SatBbFrameContainer not supported.

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

◆ 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 46 of file satellite-bbframe-container.cc.

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

◆ ~SatBbFrameContainer()

ns3::SatBbFrameContainer::~SatBbFrameContainer ( )
virtual

Destructor.

Definition at line 75 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 187 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:

◆ 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 285 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 139 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 230 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 116 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 243 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 97 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 249 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 224 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 83 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 172 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 237 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 168 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

SatEnums::SatBbFrameType_t ns3::SatBbFrameContainer::m_defaultBbFrameType
private

◆ m_maxSymbolRate

uint32_t ns3::SatBbFrameContainer::m_maxSymbolRate
private

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

Referenced by GetMaxSymbolRate(), and SetMaxSymbolRate().

◆ m_totalDuration

Time ns3::SatBbFrameContainer::m_totalDuration
private

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