ns3::SatBstpController Class Reference

SatBstpController class is responsible of enabling and disabling configurable spot-beams defined by a Beam Switching Time Plan (BSTP). More...

#include "satellite-bstp-controller.h"

+ Inheritance diagram for ns3::SatBstpController:
+ Collaboration diagram for ns3::SatBstpController:

Public Types

enum  BeamHoppingType_t { BH_UNKNOWN = 0 , BH_STATIC = 1 , BH_DYNAMIC = 2 }
 
typedef Callback< void, bool > ToggleCallback
 Callback to fetch queue statistics. More...
 

Public Member Functions

 SatBstpController ()
 Default constructor. More...
 
virtual ~SatBstpController ()
 Destructor for SatRequestManager. More...
 
void AddNetDeviceCallback (uint32_t beamId, uint32_t userFreqId, uint32_t feederFreqId, uint32_t gwId, SatBstpController::ToggleCallback cb)
 Add a callback to the SatNetDevice of GW matching to a certain beam id. More...
 
virtual void DoDispose ()
 Dispose of this class instance. More...
 
virtual TypeId GetInstanceTypeId (void) const
 Get the type ID of instance. More...
 
void Initialize ()
 Initialize the beam hopping configurations. More...
 

Static Public Member Functions

static TypeId GetTypeId (void)
 inherited from Object More...
 

Protected Member Functions

void DoBstpConfiguration ()
 Periodical method to enable/disable certain beam ids related to the scheduling and transmission of BB frames. More...
 

Private Types

typedef std::map< uint32_t, ToggleCallbackCallbackContainer_t
 

Private Attributes

BeamHoppingType_t m_bhMode
 
std::string m_configFileName
 
CallbackContainer_t m_gwNdCallbacks
 
Ptr< SatStaticBstpm_staticBstp
 Beam switching time plan. More...
 
Time m_superFrameDuration
 Superframe duration in Time. More...
 

Detailed Description

SatBstpController class is responsible of enabling and disabling configurable spot-beams defined by a Beam Switching Time Plan (BSTP).

Currently the SatBstpController supports only static beam hopping patterns, where the BSTP is defined by SatStaticBstp class by means of external configuration file. SatBstpController use ideal callbacks to GW's SatNetDevice Toggle method, which enables or disables the MAC layer of the GW.

Definition at line 44 of file satellite-bstp-controller.h.

Member Typedef Documentation

◆ CallbackContainer_t

typedef std::map<uint32_t, ToggleCallback> ns3::SatBstpController::CallbackContainer_t
private

Definition at line 113 of file satellite-bstp-controller.h.

◆ ToggleCallback

typedef Callback<void, bool> ns3::SatBstpController::ToggleCallback

Callback to fetch queue statistics.

Definition at line 88 of file satellite-bstp-controller.h.

Member Enumeration Documentation

◆ BeamHoppingType_t

Enumerator
BH_UNKNOWN 
BH_STATIC 
BH_DYNAMIC 

Definition at line 47 of file satellite-bstp-controller.h.

Constructor & Destructor Documentation

◆ SatBstpController()

ns3::SatBstpController::SatBstpController ( )

Default constructor.

Definition at line 42 of file satellite-bstp-controller.cc.

References BH_DYNAMIC, BH_STATIC, m_bhMode, m_configFileName, and m_staticBstp.

◆ ~SatBstpController()

ns3::SatBstpController::~SatBstpController ( )
virtual

Destructor for SatRequestManager.

Definition at line 63 of file satellite-bstp-controller.cc.

References m_staticBstp.

Member Function Documentation

◆ AddNetDeviceCallback()

void ns3::SatBstpController::AddNetDeviceCallback ( uint32_t  beamId,
uint32_t  userFreqId,
uint32_t  feederFreqId,
uint32_t  gwId,
SatBstpController::ToggleCallback  cb 
)

Add a callback to the SatNetDevice of GW matching to a certain beam id.

Parameters
beamIdBeam id
userFreqIdUser frequency id
feederFreqIdFeeder frequency id
gwIdGateway id
cbCallback to the toggle method of ND

userFreqId, feederFreqId and gwId are basically given here just for validity check purposes.

Definition at line 132 of file satellite-bstp-controller.cc.

References m_gwNdCallbacks, and m_staticBstp.

◆ DoBstpConfiguration()

void ns3::SatBstpController::DoBstpConfiguration ( )
protected

Periodical method to enable/disable certain beam ids related to the scheduling and transmission of BB frames.

Try to find the enabled beam id from the next BSTP configuration! If found, enable it, if not, disable it. Note, search from the second item of the vector, since the first column is the validity!

Next BSTP configuration time is the validity * superframe duration

Definition at line 157 of file satellite-bstp-controller.cc.

References m_gwNdCallbacks, m_staticBstp, and m_superFrameDuration.

Referenced by Initialize().

+ Here is the caller graph for this function:

◆ DoDispose()

void ns3::SatBstpController::DoDispose ( void  )
virtual

Dispose of this class instance.

Definition at line 118 of file satellite-bstp-controller.cc.

References m_gwNdCallbacks.

◆ GetInstanceTypeId()

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

Get the type ID of instance.

Returns
the object TypeId

Definition at line 110 of file satellite-bstp-controller.cc.

References GetTypeId().

+ Here is the call graph for this function:

◆ GetTypeId()

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

inherited from Object

Definition at line 82 of file satellite-bstp-controller.cc.

References BH_DYNAMIC, BH_STATIC, m_bhMode, m_configFileName, and m_superFrameDuration.

Referenced by GetInstanceTypeId().

+ Here is the caller graph for this function:

◆ Initialize()

void ns3::SatBstpController::Initialize ( )

Initialize the beam hopping configurations.

Definition at line 69 of file satellite-bstp-controller.cc.

References DoBstpConfiguration(), and m_staticBstp.

+ Here is the call graph for this function:

Member Data Documentation

◆ m_bhMode

BeamHoppingType_t ns3::SatBstpController::m_bhMode
private

Definition at line 116 of file satellite-bstp-controller.h.

Referenced by SatBstpController(), and GetTypeId().

◆ m_configFileName

std::string ns3::SatBstpController::m_configFileName
private

Definition at line 117 of file satellite-bstp-controller.h.

Referenced by SatBstpController(), and GetTypeId().

◆ m_gwNdCallbacks

CallbackContainer_t ns3::SatBstpController::m_gwNdCallbacks
private

◆ m_staticBstp

Ptr<SatStaticBstp> ns3::SatBstpController::m_staticBstp
private

Beam switching time plan.

Definition at line 129 of file satellite-bstp-controller.h.

Referenced by SatBstpController(), ~SatBstpController(), AddNetDeviceCallback(), DoBstpConfiguration(), and Initialize().

◆ m_superFrameDuration

Time ns3::SatBstpController::m_superFrameDuration
private

Superframe duration in Time.

This is a simple way of modeling the DVB-S2x superframe, since it affects only to the beam hopping configuration.

Definition at line 124 of file satellite-bstp-controller.h.

Referenced by DoBstpConfiguration(), and GetTypeId().


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