ns3::SatGeoHelper Class Reference

Creates needed objects for Geo Satellite node like SatGeoNetDevice objects. More...

#include "satellite-geo-helper.h"

+ Inheritance diagram for ns3::SatGeoHelper:
+ Collaboration diagram for ns3::SatGeoHelper:

Classes

struct  RandomAccessSettings_s
 Random access setting options. More...
 

Public Member Functions

 SatGeoHelper ()
 Default constructor. More...
 
 SatGeoHelper (SatTypedefs::CarrierBandwidthConverter_t bandwidthConverterCb, uint32_t rtnLinkCarrierCount, uint32_t fwdLinkCarrierCount, Ptr< SatSuperframeSeq > seq, SatMac::ReadCtrlMsgCallback fwdReadCb, SatMac::ReadCtrlMsgCallback rtnReadCb, RandomAccessSettings_s randomAccessSettings)
 Create a SatGeoHelper to make life easier when creating Satellite point to point network connections. More...
 
virtual ~SatGeoHelper ()
 
void AttachChannels (Ptr< NetDevice > dev, Ptr< SatChannel > ff, Ptr< SatChannel > fr, Ptr< SatChannel > uf, Ptr< SatChannel > ur, Ptr< SatAntennaGainPattern > userAgp, Ptr< SatAntennaGainPattern > feederAgp, uint32_t satId, uint32_t gwId, uint32_t userBeamId, SatEnums::RegenerationMode_t forwardLinkRegenerationMode, SatEnums::RegenerationMode_t returnLinkRegenerationMode)
 
void AttachChannelsFeeder (Ptr< SatGeoNetDevice > dev, Ptr< SatChannel > ff, Ptr< SatChannel > fr, Ptr< SatAntennaGainPattern > feederAgp, uint32_t satId, uint32_t gwId, uint32_t userBeamId, SatEnums::RegenerationMode_t forwardLinkRegenerationMode, SatEnums::RegenerationMode_t returnLinkRegenerationMode)
 
void AttachChannelsUser (Ptr< SatGeoNetDevice > dev, Ptr< SatChannel > uf, Ptr< SatChannel > ur, Ptr< SatAntennaGainPattern > userAgp, uint32_t satId, uint32_t userBeamId, SatEnums::RegenerationMode_t forwardLinkRegenerationMode, SatEnums::RegenerationMode_t returnLinkRegenerationMode)
 
void EnableCreationTraces (Ptr< OutputStreamWrapper > stream, CallbackBase &cb)
 Enables creation traces to be written in given file. More...
 
TypeId GetInstanceTypeId (void) const
 
void Initialize (Ptr< SatLinkResultsFwd > lrFwd, Ptr< SatLinkResultsRtn > lrRcs2)
 
NetDeviceContainer Install (NodeContainer c)
 
Ptr< NetDevice > Install (Ptr< Node > n)
 
Ptr< NetDevice > Install (std::string aName)
 
void SetDeviceAttribute (std::string name, const AttributeValue &value)
 Set an attribute value to be propagated to each NetDevice created by the helper. More...
 
void SetFeederPhyAttribute (std::string name, const AttributeValue &value)
 Set an attribute value to be propagated to each Feeder Phy created by the helper. More...
 
void SetIslRoutes (NodeContainer geoNodes, std::vector< std::pair< uint32_t, uint32_t >> isls)
 Set ISL routes. More...
 
void SetUserPhyAttribute (std::string name, const AttributeValue &value)
 Set an attribute value to be propagated to each User Phy created by the helper. More...
 

Static Public Member Functions

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

Private Attributes

Ptr< SatBbFrameConfm_bbFrameConfFwd
 
Ptr< SatBbFrameConfm_bbFrameConfRtn
 
SatTypedefs::CarrierBandwidthConverter_t m_carrierBandwidthConverter
 
TracedCallback< std::string > m_creationTrace
 Trace callback for creation traces. More...
 
SatPhy::InterferenceModel m_daFwdLinkInterferenceModel
 
SatPhy::InterferenceModel m_daRtnLinkInterferenceModel
 
std::map< uint32_t, uint16_t > m_deviceCount
 
ObjectFactory m_deviceFactory
 
double m_fwdDaConstantErrorRate
 
SatPhy::ErrorModel m_fwdErrorModel
 
uint32_t m_fwdLinkCarrierCount
 
Ptr< SatLinkResultsm_fwdLinkResults
 Forward channel link results (DVB-S2) are created if ErrorModel is configured to be AVI. More...
 
SatMac::ReadCtrlMsgCallback m_fwdReadCtrlCb
 Control forward link messages callback. More...
 
std::map< std::pair< uint32_t, uint32_t >, Ptr< SatGeoFeederMac > > m_gwMacMap
 Map used in regenerative mode to store if MAC already created for a given pair SAT ID / GW ID. More...
 
SatEnums::IslArbiterType_t m_islArbiterType
 Arbiter in use to route packets on ISLs. More...
 
std::vector< uint32_t > m_nodeIds
 GEO satellites node id. More...
 
RandomAccessSettings_s m_raSettings
 The used random access model settings. More...
 
double m_rtnDaConstantErrorRate
 
SatPhy::ErrorModel m_rtnErrorModel
 
uint32_t m_rtnLinkCarrierCount
 
Ptr< SatLinkResultsm_rtnLinkResults
 Return channel link results (DVB-RCS2) are created if ErrorModel is configured to be AVI. More...
 
SatMac::ReadCtrlMsgCallback m_rtnReadCtrlCb
 Control return link messages callback. More...
 
Ptr< SatSuperframeSeqm_superframeSeq
 Superframe sequence. More...
 
double m_symbolRateFwd
 
double m_symbolRateRtn
 

Detailed Description

Creates needed objects for Geo Satellite node like SatGeoNetDevice objects.

Handles needed configuration for the Geo Satellite node.

Definition at line 52 of file satellite-geo-helper.h.

Constructor & Destructor Documentation

◆ SatGeoHelper() [1/2]

ns3::SatGeoHelper::SatGeoHelper ( )

Default constructor.

Definition at line 140 of file satellite-geo-helper.cc.

◆ SatGeoHelper() [2/2]

ns3::SatGeoHelper::SatGeoHelper ( SatTypedefs::CarrierBandwidthConverter_t  bandwidthConverterCb,
uint32_t  rtnLinkCarrierCount,
uint32_t  fwdLinkCarrierCount,
Ptr< SatSuperframeSeq seq,
SatMac::ReadCtrlMsgCallback  fwdReadCb,
SatMac::ReadCtrlMsgCallback  rtnReadCb,
RandomAccessSettings_s  randomAccessSettings 
)

Create a SatGeoHelper to make life easier when creating Satellite point to point network connections.

Definition at line 161 of file satellite-geo-helper.cc.

References m_deviceFactory.

◆ ~SatGeoHelper()

virtual ns3::SatGeoHelper::~SatGeoHelper ( )
inlinevirtual

Definition at line 91 of file satellite-geo-helper.h.

Member Function Documentation

◆ AttachChannels()

void ns3::SatGeoHelper::AttachChannels ( Ptr< NetDevice >  dev,
Ptr< SatChannel ff,
Ptr< SatChannel fr,
Ptr< SatChannel uf,
Ptr< SatChannel ur,
Ptr< SatAntennaGainPattern userAgp,
Ptr< SatAntennaGainPattern feederAgp,
uint32_t  satId,
uint32_t  gwId,
uint32_t  userBeamId,
SatEnums::RegenerationMode_t  forwardLinkRegenerationMode,
SatEnums::RegenerationMode_t  returnLinkRegenerationMode 
)

Definition at line 294 of file satellite-geo-helper.cc.

References AttachChannelsFeeder(), and AttachChannelsUser().

+ Here is the call graph for this function:

◆ AttachChannelsFeeder()

void ns3::SatGeoHelper::AttachChannelsFeeder ( Ptr< SatGeoNetDevice dev,
Ptr< SatChannel ff,
Ptr< SatChannel fr,
Ptr< SatAntennaGainPattern feederAgp,
uint32_t  satId,
uint32_t  gwId,
uint32_t  userBeamId,
SatEnums::RegenerationMode_t  forwardLinkRegenerationMode,
SatEnums::RegenerationMode_t  returnLinkRegenerationMode 
)

Simple channel estimation, which does not do actually anything

Definition at line 336 of file satellite-geo-helper.cc.

References ns3::SatEnums::EFFECTIVE_BANDWIDTH, ns3::SatEnums::GEO, ns3::SatLlc::GetSchedulingContexts(), m_bbFrameConfRtn, ns3::SatPhy::CreateParam_t::m_beamId, m_carrierBandwidthConverter, m_daFwdLinkInterferenceModel, ns3::SatPhy::CreateParam_t::m_device, m_fwdDaConstantErrorRate, m_fwdErrorModel, m_fwdLinkCarrierCount, m_fwdLinkResults, m_fwdReadCtrlCb, m_gwMacMap, m_nodeIds, ns3::SatGeoHelper::RandomAccessSettings_s::m_raCollisionModel, ns3::SatGeoHelper::RandomAccessSettings_s::m_raFwdInterferenceModel, ns3::SatGeoHelper::RandomAccessSettings_s::m_raInterferenceEliminationModel, ns3::SatGeoHelper::RandomAccessSettings_s::m_randomAccessModel, m_raSettings, ns3::SatPhy::CreateParam_t::m_rxCh, ns3::SatPhy::CreateParam_t::m_satId, ns3::SatPhy::CreateParam_t::m_standard, m_superframeSeq, ns3::SatPhy::CreateParam_t::m_txCh, ns3::SatGeoLlc::NotifyTxOpportunity(), ns3::SatEnums::NT_SAT, ns3::SatLlc::Receive(), ns3::SatGeoFeederMac::Receive(), ns3::SatGeoNetDevice::ReceiveFeeder(), ns3::SatGeoNetDevice::ReceivePacketFeeder(), ns3::SatEnums::REGENERATION_LINK, ns3::SatEnums::REGENERATION_NETWORK, ns3::SatEnums::REGENERATION_PHY, ns3::SatEnums::RETURN_FEEDER_CH, ns3::SatGeoFeederPhy::SendPduWithParams(), ns3::SatConstVariables::SUPERFRAME_SEQUENCE, and ns3::SatEnums::TRANSPARENT.

Referenced by AttachChannels().

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

◆ AttachChannelsUser()

void ns3::SatGeoHelper::AttachChannelsUser ( Ptr< SatGeoNetDevice dev,
Ptr< SatChannel uf,
Ptr< SatChannel ur,
Ptr< SatAntennaGainPattern userAgp,
uint32_t  satId,
uint32_t  userBeamId,
SatEnums::RegenerationMode_t  forwardLinkRegenerationMode,
SatEnums::RegenerationMode_t  returnLinkRegenerationMode 
)

Simple channel estimation, which does not do actually anything

Definition at line 556 of file satellite-geo-helper.cc.

References ns3::SatEnums::EFFECTIVE_BANDWIDTH, ns3::SatEnums::FORWARD_USER_CH, ns3::SatEnums::GEO, ns3::SatLlc::GetSchedulingContexts(), m_bbFrameConfFwd, ns3::SatPhy::CreateParam_t::m_beamId, m_carrierBandwidthConverter, m_daRtnLinkInterferenceModel, ns3::SatPhy::CreateParam_t::m_device, m_nodeIds, ns3::SatGeoHelper::RandomAccessSettings_s::m_raCollisionModel, ns3::SatGeoHelper::RandomAccessSettings_s::m_raInterferenceEliminationModel, ns3::SatGeoHelper::RandomAccessSettings_s::m_randomAccessModel, ns3::SatGeoHelper::RandomAccessSettings_s::m_raRtnInterferenceModel, m_raSettings, m_rtnDaConstantErrorRate, m_rtnErrorModel, m_rtnLinkCarrierCount, m_rtnLinkResults, m_rtnReadCtrlCb, ns3::SatPhy::CreateParam_t::m_rxCh, ns3::SatPhy::CreateParam_t::m_satId, ns3::SatPhy::CreateParam_t::m_standard, m_superframeSeq, ns3::SatPhy::CreateParam_t::m_txCh, ns3::SatGeoLlc::NotifyTxOpportunity(), ns3::SatEnums::NT_SAT, ns3::SatLlc::Receive(), ns3::SatGeoUserMac::Receive(), ns3::SatGeoNetDevice::ReceivePacketUser(), ns3::SatGeoNetDevice::ReceiveUser(), ns3::SatEnums::REGENERATION_LINK, ns3::SatEnums::REGENERATION_NETWORK, ns3::SatEnums::REGENERATION_PHY, ns3::SatGeoNetDevice::SendControlMsgToFeeder(), ns3::SatGeoUserPhy::SendPduWithParams(), ns3::SatConstVariables::SUPERFRAME_SEQUENCE, and ns3::SatEnums::TRANSPARENT.

Referenced by AttachChannels().

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

◆ EnableCreationTraces()

void ns3::SatGeoHelper::EnableCreationTraces ( Ptr< OutputStreamWrapper >  stream,
CallbackBase &  cb 
)

Enables creation traces to be written in given file.

Parameters
streamstream for creation trace outputs
cbcallback to connect traces

Definition at line 756 of file satellite-geo-helper.cc.

◆ GetInstanceTypeId()

TypeId ns3::SatGeoHelper::GetInstanceTypeId ( void  ) const

Definition at line 133 of file satellite-geo-helper.cc.

References GetTypeId().

+ Here is the call graph for this function:

◆ GetTypeId()

◆ Initialize()

◆ Install() [1/3]

NetDeviceContainer ns3::SatGeoHelper::Install ( NodeContainer  c)
Parameters
ca set of nodes

This method creates a ns3::SatGeoNetDevices with the requested attributes and associate the resulting ns3::NetDevices with the ns3::Nodes.

Returns
container to the created devices

Definition at line 248 of file satellite-geo-helper.cc.

Referenced by Install().

+ Here is the caller graph for this function:

◆ Install() [2/3]

Ptr< NetDevice > ns3::SatGeoHelper::Install ( Ptr< Node >  n)
Parameters
na node

This method creates a ns3::SatGeoNetDevice with the requested attributes and associate the resulting ns3::NetDevice with the ns3::Node.

Returns
pointer to the created device

Definition at line 263 of file satellite-geo-helper.cc.

References m_deviceCount, m_deviceFactory, m_nodeIds, and ns3::SatGeoNetDevice::SetAddress().

+ Here is the call graph for this function:

◆ Install() [3/3]

Ptr< NetDevice > ns3::SatGeoHelper::Install ( std::string  aName)
Parameters
aNamename of a node

This method creates a ns3::SatGeoNetDevice with the requested attributes and associate the resulting ns3::NetDevice with the ns3::Node.

Returns
pointer to the created device

Definition at line 284 of file satellite-geo-helper.cc.

References Install().

+ Here is the call graph for this function:

◆ SetDeviceAttribute()

void ns3::SatGeoHelper::SetDeviceAttribute ( std::string  name,
const AttributeValue &  value 
)

Set an attribute value to be propagated to each NetDevice created by the helper.

Parameters
namethe name of the attribute to set
valuethe value of the attribute to set

Set these attributes on each ns3::SatGeoNetDevice created by SatGeoHelper::Install

Definition at line 224 of file satellite-geo-helper.cc.

References m_deviceFactory.

◆ SetFeederPhyAttribute()

void ns3::SatGeoHelper::SetFeederPhyAttribute ( std::string  name,
const AttributeValue &  value 
)

Set an attribute value to be propagated to each Feeder Phy created by the helper.

Parameters
namethe name of the attribute to set
valuethe value of the attribute to set

Set these attributes on each ns3::SatPhy (feeder) created by SatGeoHelper::Install

Definition at line 240 of file satellite-geo-helper.cc.

◆ SetIslRoutes()

void ns3::SatGeoHelper::SetIslRoutes ( NodeContainer  geoNodes,
std::vector< std::pair< uint32_t, uint32_t >>  isls 
)

Set ISL routes.

Parameters
Listof all satellite nodes
islsList of all ISLs

Definition at line 764 of file satellite-geo-helper.cc.

References ns3::SatEnums::ECMP, m_islArbiterType, and ns3::SatEnums::UNICAST.

◆ SetUserPhyAttribute()

void ns3::SatGeoHelper::SetUserPhyAttribute ( std::string  name,
const AttributeValue &  value 
)

Set an attribute value to be propagated to each User Phy created by the helper.

Parameters
namethe name of the attribute to set
valuethe value of the attribute to set

Set these attributes on each ns3::SatPhy (user) created by SatGeoHelper::Install

Definition at line 232 of file satellite-geo-helper.cc.

Member Data Documentation

◆ m_bbFrameConfFwd

Ptr<SatBbFrameConf> ns3::SatGeoHelper::m_bbFrameConfFwd
private

Definition at line 302 of file satellite-geo-helper.h.

Referenced by AttachChannelsUser(), and Initialize().

◆ m_bbFrameConfRtn

Ptr<SatBbFrameConf> ns3::SatGeoHelper::m_bbFrameConfRtn
private

Definition at line 298 of file satellite-geo-helper.h.

Referenced by AttachChannelsFeeder(), and Initialize().

◆ m_carrierBandwidthConverter

SatTypedefs::CarrierBandwidthConverter_t ns3::SatGeoHelper::m_carrierBandwidthConverter
private

Definition at line 257 of file satellite-geo-helper.h.

Referenced by AttachChannelsFeeder(), AttachChannelsUser(), and Initialize().

◆ m_creationTrace

TracedCallback<std::string> ns3::SatGeoHelper::m_creationTrace
private

Trace callback for creation traces.

Definition at line 307 of file satellite-geo-helper.h.

Referenced by GetTypeId().

◆ m_daFwdLinkInterferenceModel

SatPhy::InterferenceModel ns3::SatGeoHelper::m_daFwdLinkInterferenceModel
private

Definition at line 269 of file satellite-geo-helper.h.

Referenced by AttachChannelsFeeder(), and GetTypeId().

◆ m_daRtnLinkInterferenceModel

SatPhy::InterferenceModel ns3::SatGeoHelper::m_daRtnLinkInterferenceModel
private

Definition at line 274 of file satellite-geo-helper.h.

Referenced by AttachChannelsUser(), and GetTypeId().

◆ m_deviceCount

std::map<uint32_t, uint16_t> ns3::SatGeoHelper::m_deviceCount
private

Definition at line 262 of file satellite-geo-helper.h.

Referenced by Install().

◆ m_deviceFactory

ObjectFactory ns3::SatGeoHelper::m_deviceFactory
private

Definition at line 264 of file satellite-geo-helper.h.

Referenced by SatGeoHelper(), Install(), and SetDeviceAttribute().

◆ m_fwdDaConstantErrorRate

double ns3::SatGeoHelper::m_fwdDaConstantErrorRate
private

Definition at line 284 of file satellite-geo-helper.h.

Referenced by AttachChannelsFeeder(), and GetTypeId().

◆ m_fwdErrorModel

SatPhy::ErrorModel ns3::SatGeoHelper::m_fwdErrorModel
private

Definition at line 279 of file satellite-geo-helper.h.

Referenced by AttachChannelsFeeder(), GetTypeId(), and Initialize().

◆ m_fwdLinkCarrierCount

uint32_t ns3::SatGeoHelper::m_fwdLinkCarrierCount
private

Definition at line 258 of file satellite-geo-helper.h.

Referenced by AttachChannelsFeeder().

◆ m_fwdLinkResults

Ptr<SatLinkResults> ns3::SatGeoHelper::m_fwdLinkResults
private

Forward channel link results (DVB-S2) are created if ErrorModel is configured to be AVI.

Definition at line 323 of file satellite-geo-helper.h.

Referenced by AttachChannelsFeeder(), and Initialize().

◆ m_fwdReadCtrlCb

SatMac::ReadCtrlMsgCallback ns3::SatGeoHelper::m_fwdReadCtrlCb
private

Control forward link messages callback.

Definition at line 344 of file satellite-geo-helper.h.

Referenced by AttachChannelsFeeder().

◆ m_gwMacMap

std::map<std::pair<uint32_t, uint32_t>, Ptr<SatGeoFeederMac> > ns3::SatGeoHelper::m_gwMacMap
private

Map used in regenerative mode to store if MAC already created for a given pair SAT ID / GW ID.

Definition at line 334 of file satellite-geo-helper.h.

Referenced by AttachChannelsFeeder().

◆ m_islArbiterType

SatEnums::IslArbiterType_t ns3::SatGeoHelper::m_islArbiterType
private

Arbiter in use to route packets on ISLs.

Definition at line 339 of file satellite-geo-helper.h.

Referenced by GetTypeId(), and SetIslRoutes().

◆ m_nodeIds

std::vector<uint32_t> ns3::SatGeoHelper::m_nodeIds
private

GEO satellites node id.

Definition at line 255 of file satellite-geo-helper.h.

Referenced by AttachChannelsFeeder(), AttachChannelsUser(), and Install().

◆ m_raSettings

RandomAccessSettings_s ns3::SatGeoHelper::m_raSettings
private

The used random access model settings.

Definition at line 317 of file satellite-geo-helper.h.

Referenced by AttachChannelsFeeder(), and AttachChannelsUser().

◆ m_rtnDaConstantErrorRate

double ns3::SatGeoHelper::m_rtnDaConstantErrorRate
private

Definition at line 294 of file satellite-geo-helper.h.

Referenced by AttachChannelsUser(), and GetTypeId().

◆ m_rtnErrorModel

SatPhy::ErrorModel ns3::SatGeoHelper::m_rtnErrorModel
private

Definition at line 289 of file satellite-geo-helper.h.

Referenced by AttachChannelsUser(), GetTypeId(), and Initialize().

◆ m_rtnLinkCarrierCount

uint32_t ns3::SatGeoHelper::m_rtnLinkCarrierCount
private

Definition at line 259 of file satellite-geo-helper.h.

Referenced by AttachChannelsUser().

◆ m_rtnLinkResults

Ptr<SatLinkResults> ns3::SatGeoHelper::m_rtnLinkResults
private

Return channel link results (DVB-RCS2) are created if ErrorModel is configured to be AVI.

Definition at line 329 of file satellite-geo-helper.h.

Referenced by AttachChannelsUser(), and Initialize().

◆ m_rtnReadCtrlCb

SatMac::ReadCtrlMsgCallback ns3::SatGeoHelper::m_rtnReadCtrlCb
private

Control return link messages callback.

Definition at line 349 of file satellite-geo-helper.h.

Referenced by AttachChannelsUser().

◆ m_superframeSeq

Ptr<SatSuperframeSeq> ns3::SatGeoHelper::m_superframeSeq
private

Superframe sequence.

Definition at line 312 of file satellite-geo-helper.h.

Referenced by AttachChannelsFeeder(), and AttachChannelsUser().

◆ m_symbolRateFwd

double ns3::SatGeoHelper::m_symbolRateFwd
private

Definition at line 300 of file satellite-geo-helper.h.

Referenced by Initialize().

◆ m_symbolRateRtn

double ns3::SatGeoHelper::m_symbolRateRtn
private

Definition at line 296 of file satellite-geo-helper.h.

Referenced by Initialize().


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