ns3::SatOrbiterHelper Class Referenceabstract

Creates needed objects for Satellite node like SatorbiterNetDevice objects. More...

#include "satellite-orbiter-helper.h"

+ Inheritance diagram for ns3::SatOrbiterHelper:
+ Collaboration diagram for ns3::SatOrbiterHelper:

Classes

struct  RandomAccessSettings_s
 Random access setting options. More...
 

Public Member Functions

 SatOrbiterHelper ()
 Default constructor. More...
 
 SatOrbiterHelper (SatTypedefs::CarrierBandwidthConverter_t bandwidthConverterCb, uint32_t rtnLinkCarrierCount, uint32_t fwdLinkCarrierCount, Ptr< SatSuperframeSeq > seq, SatMac::ReadCtrlMsgCallback fwdReadCb, SatMac::ReadCtrlMsgCallback rtnReadCb, RandomAccessSettings_s randomAccessSettings)
 Create a SatOrbiterHelper to make life easier when creating Satellite point to point network connections. More...
 
virtual ~SatOrbiterHelper ()
 
void AttachChannels (Ptr< NetDevice > dev, Ptr< SatChannel > ff, Ptr< SatChannel > fr, Ptr< SatChannel > uf, Ptr< SatChannel > ur, Ptr< SatAntennaGainPattern > userAgp, Ptr< SatAntennaGainPattern > feederAgp, Ptr< SatNcc > ncc, uint32_t satId, uint32_t gwId, uint32_t userBeamId)
 
void AttachChannelsFeeder (Ptr< SatOrbiterNetDevice > dev, Ptr< SatChannel > ff, Ptr< SatChannel > fr, Ptr< SatAntennaGainPattern > feederAgp, Ptr< SatNcc > ncc, uint32_t satId, uint32_t gwId, uint32_t userBeamId)
 
virtual void AttachChannelsUser (Ptr< SatOrbiterNetDevice > dev, Ptr< SatChannel > uf, Ptr< SatChannel > ur, Ptr< SatAntennaGainPattern > userAgp, Ptr< SatNcc > ncc, uint32_t satId, uint32_t userBeamId)=0
 
virtual Ptr< SatOrbiterNetDeviceCreateOrbiterNetDevice ()=0
 Create a SatOrbiterNetDevice instance, with correct type infered from child classes. More...
 
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)
 
Ptr< NetDevice > Install (Ptr< Node > n)
 
Ptr< NetDevice > Install (std::string aName)
 
NetDeviceContainer InstallAllOrbiters ()
 This method creates a ns3::SatOrbiterNetDevices with the requested attributes and associate the resulting ns3::NetDevices with the ns3::Nodes corresponding to the orbiters. More...
 
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 (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...
 

Protected 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< SatOrbiterFeederMac > > 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
 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 Satellite node like SatorbiterNetDevice objects.

Handles needed configuration for the Satellite node.

Definition at line 57 of file satellite-orbiter-helper.h.

Constructor & Destructor Documentation

◆ SatOrbiterHelper() [1/2]

ns3::SatOrbiterHelper::SatOrbiterHelper ( )

Default constructor.

Definition at line 150 of file satellite-orbiter-helper.cc.

◆ SatOrbiterHelper() [2/2]

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

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

Definition at line 171 of file satellite-orbiter-helper.cc.

◆ ~SatOrbiterHelper()

virtual ns3::SatOrbiterHelper::~SatOrbiterHelper ( )
inlinevirtual

Definition at line 96 of file satellite-orbiter-helper.h.

Member Function Documentation

◆ AttachChannels()

void ns3::SatOrbiterHelper::AttachChannels ( Ptr< NetDevice >  dev,
Ptr< SatChannel ff,
Ptr< SatChannel fr,
Ptr< SatChannel uf,
Ptr< SatChannel ur,
Ptr< SatAntennaGainPattern userAgp,
Ptr< SatAntennaGainPattern feederAgp,
Ptr< SatNcc ncc,
uint32_t  satId,
uint32_t  gwId,
uint32_t  userBeamId 
)

Definition at line 303 of file satellite-orbiter-helper.cc.

References AttachChannelsFeeder(), and AttachChannelsUser().

+ Here is the call graph for this function:

◆ AttachChannelsFeeder()

void ns3::SatOrbiterHelper::AttachChannelsFeeder ( Ptr< SatOrbiterNetDevice dev,
Ptr< SatChannel ff,
Ptr< SatChannel fr,
Ptr< SatAntennaGainPattern feederAgp,
Ptr< SatNcc ncc,
uint32_t  satId,
uint32_t  gwId,
uint32_t  userBeamId 
)

Simple channel estimation, which does not do actually anything

Definition at line 331 of file satellite-orbiter-helper.cc.

References ns3::SatEnums::DVB_ORBITER, ns3::SatEnums::EFFECTIVE_BANDWIDTH, 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::SatOrbiterHelper::RandomAccessSettings_s::m_raCollisionModel, ns3::SatOrbiterHelper::RandomAccessSettings_s::m_raFwdInterferenceModel, ns3::SatOrbiterHelper::RandomAccessSettings_s::m_raInterferenceEliminationModel, ns3::SatOrbiterHelper::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::SatOrbiterLlc::NotifyTxOpportunity(), ns3::SatEnums::NT_SAT, ns3::SatLlc::Receive(), ns3::SatOrbiterFeederMac::Receive(), ns3::SatOrbiterNetDevice::ReceiveFeeder(), ns3::SatOrbiterNetDevice::ReceivePacketFeeder(), ns3::SatEnums::REGENERATION_LINK, ns3::SatEnums::REGENERATION_NETWORK, ns3::SatEnums::REGENERATION_PHY, ns3::SatEnums::RETURN_FEEDER_CH, ns3::SatOrbiterFeederPhy::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()

virtual void ns3::SatOrbiterHelper::AttachChannelsUser ( Ptr< SatOrbiterNetDevice dev,
Ptr< SatChannel uf,
Ptr< SatChannel ur,
Ptr< SatAntennaGainPattern userAgp,
Ptr< SatNcc ncc,
uint32_t  satId,
uint32_t  userBeamId 
)
pure virtual

Implemented in ns3::SatOrbiterHelperLora, and ns3::SatOrbiterHelperDvb.

Referenced by AttachChannels().

+ Here is the caller graph for this function:

◆ CreateOrbiterNetDevice()

virtual Ptr<SatOrbiterNetDevice> ns3::SatOrbiterHelper::CreateOrbiterNetDevice ( )
pure virtual

Create a SatOrbiterNetDevice instance, with correct type infered from child classes.

Returns
SatOrbiterNetDevice instance

Implemented in ns3::SatOrbiterHelperLora, and ns3::SatOrbiterHelperDvb.

Referenced by Install().

+ Here is the caller graph for this function:

◆ EnableCreationTraces()

void ns3::SatOrbiterHelper::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 562 of file satellite-orbiter-helper.cc.

◆ GetInstanceTypeId()

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

Definition at line 143 of file satellite-orbiter-helper.cc.

References GetTypeId().

+ Here is the call graph for this function:

◆ GetTypeId()

◆ Initialize()

◆ Install() [1/2]

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

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

Returns
pointer to the created device

Definition at line 272 of file satellite-orbiter-helper.cc.

References CreateOrbiterNetDevice(), m_deviceCount, and m_nodeIds.

Referenced by Install(), and InstallAllOrbiters().

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

◆ Install() [2/2]

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

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

Returns
pointer to the created device

Definition at line 293 of file satellite-orbiter-helper.cc.

References Install().

+ Here is the call graph for this function:

◆ InstallAllOrbiters()

NetDeviceContainer ns3::SatOrbiterHelper::InstallAllOrbiters ( )

This method creates a ns3::SatOrbiterNetDevices with the requested attributes and associate the resulting ns3::NetDevices with the ns3::Nodes corresponding to the orbiters.

Returns
container to the created devices

Definition at line 256 of file satellite-orbiter-helper.cc.

References Install().

+ Here is the call graph for this function:

◆ SetDeviceAttribute()

void ns3::SatOrbiterHelper::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::SatOrbiterNetDevice created by SatOrbiterHelper::Install

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

References m_deviceFactory.

◆ SetFeederPhyAttribute()

void ns3::SatOrbiterHelper::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 SatOrbiterHelper::Install

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

◆ SetIslRoutes()

void ns3::SatOrbiterHelper::SetIslRoutes ( std::vector< std::pair< uint32_t, uint32_t >>  isls)

Set ISL routes.

Parameters
islsList of all ISLs

Definition at line 570 of file satellite-orbiter-helper.cc.

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

◆ SetUserPhyAttribute()

void ns3::SatOrbiterHelper::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 SatOrbiterHelper::Install

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

Member Data Documentation

◆ m_bbFrameConfFwd

Ptr<SatBbFrameConf> ns3::SatOrbiterHelper::m_bbFrameConfFwd
protected

◆ m_bbFrameConfRtn

Ptr<SatBbFrameConf> ns3::SatOrbiterHelper::m_bbFrameConfRtn
protected

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

Referenced by AttachChannelsFeeder(), and Initialize().

◆ m_carrierBandwidthConverter

◆ m_creationTrace

TracedCallback<std::string> ns3::SatOrbiterHelper::m_creationTrace
protected

Trace callback for creation traces.

Definition at line 311 of file satellite-orbiter-helper.h.

Referenced by GetTypeId().

◆ m_daFwdLinkInterferenceModel

SatPhy::InterferenceModel ns3::SatOrbiterHelper::m_daFwdLinkInterferenceModel
protected

Definition at line 273 of file satellite-orbiter-helper.h.

Referenced by AttachChannelsFeeder(), and GetTypeId().

◆ m_daRtnLinkInterferenceModel

SatPhy::InterferenceModel ns3::SatOrbiterHelper::m_daRtnLinkInterferenceModel
protected

◆ m_deviceCount

std::map<uint32_t, uint16_t> ns3::SatOrbiterHelper::m_deviceCount
protected

Definition at line 266 of file satellite-orbiter-helper.h.

Referenced by Install().

◆ m_deviceFactory

◆ m_fwdDaConstantErrorRate

double ns3::SatOrbiterHelper::m_fwdDaConstantErrorRate
protected

Definition at line 288 of file satellite-orbiter-helper.h.

Referenced by AttachChannelsFeeder(), and GetTypeId().

◆ m_fwdErrorModel

SatPhy::ErrorModel ns3::SatOrbiterHelper::m_fwdErrorModel
protected

Definition at line 283 of file satellite-orbiter-helper.h.

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

◆ m_fwdLinkCarrierCount

uint32_t ns3::SatOrbiterHelper::m_fwdLinkCarrierCount
protected

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

Referenced by AttachChannelsFeeder().

◆ m_fwdLinkResults

Ptr<SatLinkResults> ns3::SatOrbiterHelper::m_fwdLinkResults
protected

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

Definition at line 327 of file satellite-orbiter-helper.h.

Referenced by AttachChannelsFeeder(), and Initialize().

◆ m_fwdReadCtrlCb

SatMac::ReadCtrlMsgCallback ns3::SatOrbiterHelper::m_fwdReadCtrlCb
protected

Control forward link messages callback.

Definition at line 348 of file satellite-orbiter-helper.h.

Referenced by AttachChannelsFeeder().

◆ m_gwMacMap

std::map<std::pair<uint32_t, uint32_t>, Ptr<SatOrbiterFeederMac> > ns3::SatOrbiterHelper::m_gwMacMap
protected

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

Definition at line 338 of file satellite-orbiter-helper.h.

Referenced by AttachChannelsFeeder().

◆ m_islArbiterType

SatEnums::IslArbiterType_t ns3::SatOrbiterHelper::m_islArbiterType
protected

Arbiter in use to route packets on ISLs.

Definition at line 343 of file satellite-orbiter-helper.h.

Referenced by GetTypeId(), and SetIslRoutes().

◆ m_nodeIds

std::vector<uint32_t> ns3::SatOrbiterHelper::m_nodeIds
protected

◆ m_raSettings

RandomAccessSettings_s ns3::SatOrbiterHelper::m_raSettings
protected

◆ m_rtnDaConstantErrorRate

double ns3::SatOrbiterHelper::m_rtnDaConstantErrorRate
protected

◆ m_rtnErrorModel

◆ m_rtnLinkCarrierCount

uint32_t ns3::SatOrbiterHelper::m_rtnLinkCarrierCount
protected

◆ m_rtnLinkResults

Ptr<SatLinkResults> ns3::SatOrbiterHelper::m_rtnLinkResults
protected

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

Definition at line 333 of file satellite-orbiter-helper.h.

Referenced by ns3::SatOrbiterHelperDvb::AttachChannelsUser(), ns3::SatOrbiterHelperLora::AttachChannelsUser(), and Initialize().

◆ m_rtnReadCtrlCb

SatMac::ReadCtrlMsgCallback ns3::SatOrbiterHelper::m_rtnReadCtrlCb
protected

Control return link messages callback.

Definition at line 353 of file satellite-orbiter-helper.h.

Referenced by ns3::SatOrbiterHelperDvb::AttachChannelsUser(), and ns3::SatOrbiterHelperLora::AttachChannelsUser().

◆ m_superframeSeq

Ptr<SatSuperframeSeq> ns3::SatOrbiterHelper::m_superframeSeq
protected

◆ m_symbolRateFwd

double ns3::SatOrbiterHelper::m_symbolRateFwd
protected

Definition at line 304 of file satellite-orbiter-helper.h.

Referenced by Initialize().

◆ m_symbolRateRtn

double ns3::SatOrbiterHelper::m_symbolRateRtn
protected

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

Referenced by Initialize().


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