ns3::SatScpcScheduler Class Reference

SatFwdLinkSchedulerDefault schedules BB frames for forward link. More...

#include "satellite-scpc-scheduler.h"

+ Inheritance diagram for ns3::SatScpcScheduler:
+ Collaboration diagram for ns3::SatScpcScheduler:

Public Member Functions

 SatScpcScheduler ()
 Construct a SatFwdLinkScheduler. More...
 
 SatScpcScheduler (Ptr< SatBbFrameConf > conf, Mac48Address address, double carrierBandwidthInHz)
 Actual constructor of a SatFwdLinkScheduler. More...
 
 ~SatScpcScheduler ()
 Destroy a SatFwdLinkScheduler. More...
 
virtual TypeId GetInstanceTypeId (void) const
 Get the type ID of instance. More...
 
virtual std::pair< Ptr< SatBbFrame >, const Time > GetNextFrame ()
 Get next frame to be transmitted. More...
 

Static Public Member Functions

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

Private Member Functions

void DoDispose (void)
 Do dispose actions. More...
 
void GetSchedulingObjects (std::vector< Ptr< SatSchedulingObject >> &output)
 Gets scheduling object in sorted order according to configured sorting criteria. More...
 
void PeriodicTimerExpired ()
 Handles periodic timer timeouts. More...
 
void ScheduleBbFrames ()
 Schedule BB Frames. More...
 
void SendAndClearSymbolsSentStat ()
 Send stats and reset all the symbols sent count for each slice to zero. More...
 

Private Attributes

Ptr< SatBbFrameContainerm_bbFrameContainer
 The container for BB Frames. More...
 
Time m_schedulingStartThresholdTime
 Threshold time of total transmissions in BB Frame container to trigger a scheduling round. More...
 
Time m_schedulingStopThresholdTime
 Threshold time of total transmissions in BB Frame container to stop a scheduling round. More...
 
uint32_t m_symbolsSent
 The number of symbols sent for each slice during an allocation cycle. More...
 

Additional Inherited Members

 Types for sorting algorithm used by forward link scheduler. More...

Detailed Description

SatFwdLinkSchedulerDefault schedules BB frames for forward link.

This is the reference case of the scheduler, without separation between slices. It uses only one instance of BbFrameContainer.

   SatFwdLinkSchedulerDefault communicated through callback functions to request scheduling

objects and notifying TX opportunities.

   GW MAC requests frames from scheduler through method GetNextFrame.

Definition at line 44 of file satellite-scpc-scheduler.h.

Constructor & Destructor Documentation

◆ SatScpcScheduler() [1/2]

ns3::SatScpcScheduler::SatScpcScheduler ( )

Construct a SatFwdLinkScheduler.

This the default constructor for the SatFwdLinkScheduler is not supported.

Definition at line 67 of file satellite-scpc-scheduler.cc.

◆ SatScpcScheduler() [2/2]

ns3::SatScpcScheduler::SatScpcScheduler ( Ptr< SatBbFrameConf conf,
Mac48Address  address,
double  carrierBandwidthInHz 
)

Actual constructor of a SatFwdLinkScheduler.

Parameters
confBB Frame configuration
addressMAC address
carrierBandwidthInHzCarrier bandwidth where scheduler is associated to [Hz].

Definition at line 74 of file satellite-scpc-scheduler.cc.

References ns3::SatFwdLinkScheduler::m_bbFrameConf, m_bbFrameContainer, ns3::SatFwdLinkScheduler::m_periodicInterval, and PeriodicTimerExpired().

+ Here is the call graph for this function:

◆ ~SatScpcScheduler()

ns3::SatScpcScheduler::~SatScpcScheduler ( )

Destroy a SatFwdLinkScheduler.

This is the destructor for the SatFwdLinkScheduler.

Definition at line 91 of file satellite-scpc-scheduler.cc.

Member Function Documentation

◆ DoDispose()

void ns3::SatScpcScheduler::DoDispose ( void  )
private

Do dispose actions.

Definition at line 97 of file satellite-scpc-scheduler.cc.

References ns3::SatFwdLinkScheduler::DoDispose(), and m_bbFrameContainer.

+ Here is the call graph for this function:

◆ GetInstanceTypeId()

TypeId ns3::SatScpcScheduler::GetInstanceTypeId ( void  ) const
virtual

Get the type ID of instance.

Returns
the object TypeId

Reimplemented from ns3::SatFwdLinkScheduler.

Definition at line 60 of file satellite-scpc-scheduler.cc.

References GetTypeId().

+ Here is the call graph for this function:

◆ GetNextFrame()

◆ GetSchedulingObjects()

void ns3::SatScpcScheduler::GetSchedulingObjects ( std::vector< Ptr< SatSchedulingObject >> &  output)
private

Gets scheduling object in sorted order according to configured sorting criteria.

Parameters
outputreference to a vector which will be filled with pointers to the scheduling objects available for scheduling.

Definition at line 251 of file satellite-scpc-scheduler.cc.

References m_bbFrameContainer, ns3::SatFwdLinkScheduler::m_schedContextCallback, m_schedulingStopThresholdTime, and ns3::SatFwdLinkScheduler::SortSchedulingObjects().

Referenced by ScheduleBbFrames().

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

◆ GetTypeId()

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

Get the type ID.

Returns
the object TypeId

Definition at line 33 of file satellite-scpc-scheduler.cc.

References m_bbFrameContainer, m_schedulingStartThresholdTime, and m_schedulingStopThresholdTime.

Referenced by GetInstanceTypeId().

+ Here is the caller graph for this function:

◆ PeriodicTimerExpired()

void ns3::SatScpcScheduler::PeriodicTimerExpired ( )
private

Handles periodic timer timeouts.

Definition at line 165 of file satellite-scpc-scheduler.cc.

References ns3::SatFwdLinkScheduler::m_periodicInterval, ScheduleBbFrames(), and SendAndClearSymbolsSentStat().

Referenced by SatScpcScheduler().

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

◆ ScheduleBbFrames()

void ns3::SatScpcScheduler::ScheduleBbFrames ( )
private

◆ SendAndClearSymbolsSentStat()

void ns3::SatScpcScheduler::SendAndClearSymbolsSentStat ( )
privatevirtual

Send stats and reset all the symbols sent count for each slice to zero.

Reimplemented from ns3::SatFwdLinkScheduler.

Definition at line 176 of file satellite-scpc-scheduler.cc.

References ns3::SatFwdLinkScheduler::m_schedulingSymbolRateTrace, and m_symbolsSent.

Referenced by PeriodicTimerExpired().

+ Here is the caller graph for this function:

Member Data Documentation

◆ m_bbFrameContainer

Ptr<SatBbFrameContainer> ns3::SatScpcScheduler::m_bbFrameContainer
private

The container for BB Frames.

Definition at line 122 of file satellite-scpc-scheduler.h.

Referenced by SatScpcScheduler(), DoDispose(), GetNextFrame(), GetSchedulingObjects(), GetTypeId(), and ScheduleBbFrames().

◆ m_schedulingStartThresholdTime

Time ns3::SatScpcScheduler::m_schedulingStartThresholdTime
private

Threshold time of total transmissions in BB Frame container to trigger a scheduling round.

Definition at line 127 of file satellite-scpc-scheduler.h.

Referenced by GetNextFrame(), and GetTypeId().

◆ m_schedulingStopThresholdTime

Time ns3::SatScpcScheduler::m_schedulingStopThresholdTime
private

Threshold time of total transmissions in BB Frame container to stop a scheduling round.

Definition at line 132 of file satellite-scpc-scheduler.h.

Referenced by GetSchedulingObjects(), GetTypeId(), and ScheduleBbFrames().

◆ m_symbolsSent

uint32_t ns3::SatScpcScheduler::m_symbolsSent
private

The number of symbols sent for each slice during an allocation cycle.

Definition at line 137 of file satellite-scpc-scheduler.h.

Referenced by GetNextFrame(), and SendAndClearSymbolsSentStat().


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