ns3::SatBeamHelper Class Reference

SatBeamHelper builds a set Satellite beams with needed objects and configuration. More...

#include "satellite-beam-helper.h"

+ Inheritance diagram for ns3::SatBeamHelper:
+ Collaboration diagram for ns3::SatBeamHelper:

Public Types

typedef SatTypedefs::CarrierBandwidthConverter_t CarrierBandwidthConverter
 Define type CarrierBandwidthConverter. More...
 
typedef SatChannel::CarrierFreqConverter CarrierFreqConverter
 Define type CarrierFreqConverter. More...
 
typedef std::pair< uint32_t, uint32_t > FrequencyPair_t
 
typedef std::pair< uint32_t, uint32_t > GwLink_t
 
typedef std::map< uint32_t, std::set< Ptr< Node > > > MulticastBeamInfo_t
 
typedef std::set< Ptr< Node > > MulticastBeamInfoItem_t
 

Public Member Functions

 SatBeamHelper ()
 Default constructor for SatBeamHelper (should not be used). More...
 
 SatBeamHelper (std::vector< std::pair< uint32_t, uint32_t >> isls, SatTypedefs::CarrierBandwidthConverter_t bandwidthConverterCb, uint32_t fwdLinkCarrierCount, uint32_t rtnLinkCarrierCount, Ptr< SatSuperframeSeq > seq)
 Constructor for SatBeamHelper. More...
 
virtual ~SatBeamHelper ()
 Destructor for SatBeamHelper. More...
 
NetDeviceContainer AddMulticastGroupRoutes (MulticastBeamInfo_t beamInfo, Ptr< Node > sourceUtNode, Ipv4Address sourceAddress, Ipv4Address groupAddress, bool routeToGwUsers, Ptr< NetDevice > &gwOutputDev)
 
virtual void DoDispose ()
 Dispose of this class instance. More...
 
void EnableCreationTraces (Ptr< OutputStreamWrapper > stream, CallbackBase &cb)
 Enables creation traces to be written in given file. More...
 
void EnablePacketTrace ()
 Enable packet traces. More...
 
std::string GetBeamInfo () const
 
std::list< std::pair< uint32_t, uint32_t > > GetBeams () const
 
Ptr< SatGwHelperGetGwHelper () const
 
uint32_t GetGwId (uint32_t satId, uint32_t beamId) const
 
Ptr< Node > GetGwNode (uint32_t gwId) const
 Gets GW node according to given id. More...
 
virtual TypeId GetInstanceTypeId (void) const
 Get the type ID of instance. More...
 
Ptr< SatNccGetNcc () const
 
Ptr< SatOrbiterHelperGetOrbiterHelper () const
 
Ptr< PropagationDelayModel > GetPropagationDelayModel (uint32_t satId, uint32_t beamId, SatEnums::ChannelType_t channelType)
 
SatEnums::PropagationDelayModel_t GetPropagationDelayModelEnum ()
 
uint32_t GetUtBeamId (Ptr< Node > utNode) const
 Get beam Id of the given UT. More...
 
Ptr< SatUtHelperGetUtHelper () const
 
std::string GetUtInfo () const
 
NodeContainer GetUtNodes (uint32_t satId, uint32_t beamId) const
 
void Init ()
 Init method is called after all the initial configurations have been done by the SatHelper and SatBeamHelper. More...
 
std::pair< Ptr< NetDevice >, NetDeviceContainer > Install (NodeContainer ut, Ptr< Node > gwNode, uint32_t gwId, uint32_t satId, uint32_t beamId, uint32_t rtnUlFreqId, uint32_t rtnFlFreqId, uint32_t fwdUlFreqId, uint32_t fwdFlFreqId, SatMac::RoutingUpdateCallback routingCallback)
 
Ptr< NetDevice > InstallFeeder (Ptr< SatOrbiterNetDevice > orbiterNetDevice, Ptr< Node > gwNode, uint32_t gwId, uint32_t satId, uint32_t beamId, uint32_t feederSatId, uint32_t feederBeamId, SatChannelPair::ChannelPair_t feederLink, uint32_t rtnFlFreqId, uint32_t fwdFlFreqId, SatMac::RoutingUpdateCallback routingCallback)
 
void InstallIsls ()
 Create all the ISLs. More...
 
NetDeviceContainer InstallUser (Ptr< SatOrbiterNetDevice > orbiterNetDevice, NodeContainer ut, Ptr< NetDevice > gwNd, uint32_t satId, uint32_t beamId, SatChannelPair::ChannelPair_t userLink, uint32_t rtnUlFreqId, uint32_t fwdUlFreqId, SatMac::RoutingUpdateCallback routingCallback)
 
void SetAntennaGainPatterns (Ptr< SatAntennaGainPatternContainer > antennaPatterns)
 Set the antenna gain patterns to be used when configuring the beams to the satellite. More...
 
void SetChannelAttribute (std::string name, const AttributeValue &value)
 Set an attribute value to be propagated to each Channel created by the helper. 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 SetIslRoutes ()
 Set ISL routes. More...
 
void SetNccRoutingCallback (SatNcc::UpdateRoutingCallback cb)
 Attach an update routing callback to the NCC of this simulation. More...
 

Static Public Member Functions

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

Private Member Functions

void AddMulticastRouteToUt (Ptr< Node > utNode, Ipv4Address sourceAddress, Ipv4Address groupAddress, bool routeToSatellite)
 Add multicast route to UT node. More...
 
std::string CreateBeamInfo () const
 Creates info of the beam. More...
 
SatChannelPair::ChannelPair_t GetChannelPair (uint32_t satId, uint32_t beamId, uint32_t fwdFrequencyId, uint32_t rtnFrequencyId, bool isUserLink)
 Gets satellite channel pair from requested map. More...
 
Ptr< SatBaseFadingInstallFadingContainer (Ptr< Node > node) const
 Install fading model to node, if fading model doesn't exist already in node. More...
 
bool StoreGwNode (uint32_t id, Ptr< Node > node)
 Creates GW node according to given id and stores GW to map. More...
 

Private Attributes

Ptr< SatAntennaGainPatternContainerm_antennaGainPatterns
 
std::map< std::pair< uint32_t, uint32_t >, uint32_t > m_beam
 
std::map< std::pair< uint32_t, uint32_t >, FrequencyPair_tm_beamFreqs
 
Ptr< SatBstpControllerm_bstpController
 Beam Switching Time Plan controller, which is created if FWD link beam hopping is enabled (m_enableFwdLinkBeamHopping). More...
 
SatTypedefs::CarrierBandwidthConverter_t m_carrierBandwidthConverter
 
CarrierFreqConverter m_carrierFreqConverter
 
ObjectFactory m_channelFactory
 
Time m_constantPropagationDelay
 Constant propagation delay. More...
 
TracedCallback< std::string > m_creationTrace
 Trace callback for creation traces. More...
 
Time m_ctrlMsgStoreTimeFwdLink
 Control message store time in container for forward link. More...
 
Time m_ctrlMsgStoreTimeRtnLink
 Control message store in container for return link. More...
 
SatEnums::DvbVersion_t m_dvbVersion
 Indicates if using DVB-S2 or DVB-S2X. More...
 
bool m_enableFwdLinkBeamHopping
 Flag indicating whether beam hopping is enabled in FWD link. More...
 
bool m_enableTracesOnReturnLink
 Helper flag to activate packet traces on the return link only. More...
 
SatEnums::FadingModel_t m_fadingModel
 Configured fading model. More...
 
Ptr< SatChannelPairm_flChannels
 
Ptr< SatGwHelperm_gwHelper
 
std::map< uint32_t, Ptr< NetDevice > > m_gwNdMap
 Map used in regenerative mode to store GW Net device (we need only one per GW) More...
 
std::map< uint32_t, Ptr< Node > > m_gwNode
 
std::vector< std::pair< uint32_t, uint32_t > > m_isls
 Vector constaining all the ISLs of the topology. More...
 
Ptr< SatMarkovConfm_markovConf
 Common configuration for Markov model. More...
 
Ptr< SatNccm_ncc
 
Ptr< SatOrbiterHelperm_orbiterHelper
 
Ptr< SatPacketTracem_packetTrace
 Packet trace. More...
 
bool m_printDetailedInformationToCreationTraces
 Flag indicating whether to print detailed information to the creation traces. More...
 
SatEnums::PropagationDelayModel_t m_propagationDelayModel
 Propagation delay model. More...
 
SatPhyRxCarrierConf::RandomAccessCollisionModel m_raCollisionModel
 The used collision model for random access. More...
 
double m_raConstantErrorRate
 Constant error rate for random access. More...
 
SatPhyRxCarrierConf::InterferenceEliminationModel m_raInterferenceEliminationModel
 The used interference model for random access. More...
 
SatPhyRxCarrierConf::InterferenceModel m_raInterferenceModel
 The used interference model for random access. More...
 
SatEnums::RandomAccessModel_t m_randomAccessModel
 The used random access model. More...
 
SatEnums::LinkResults_t m_rlLinkResultsType
 Type of Return channel link results. More...
 
Ptr< SatSuperframeSeqm_superframeSeq
 
Ptr< SatChannelPairm_ulChannels
 
Ptr< SatUtHelperm_utHelper
 
std::multimap< std::pair< uint32_t, uint32_t >, Ptr< Node > > m_utNode
 

Detailed Description

SatBeamHelper builds a set Satellite beams with needed objects and configuration.

It utilizes SatUtHelper, SatGwHelper and SatOrbiterHelper to create needed objects.

SatBeamHelper creates needed routes between nodes inside satellite network.

Definition at line 64 of file satellite-beam-helper.h.

Member Typedef Documentation

◆ CarrierBandwidthConverter

Define type CarrierBandwidthConverter.

Definition at line 75 of file satellite-beam-helper.h.

◆ CarrierFreqConverter

Define type CarrierFreqConverter.

Definition at line 70 of file satellite-beam-helper.h.

◆ FrequencyPair_t

typedef std::pair<uint32_t, uint32_t> ns3::SatBeamHelper::FrequencyPair_t

Definition at line 77 of file satellite-beam-helper.h.

◆ GwLink_t

typedef std::pair<uint32_t, uint32_t> ns3::SatBeamHelper::GwLink_t

Definition at line 78 of file satellite-beam-helper.h.

◆ MulticastBeamInfo_t

typedef std::map<uint32_t, std::set<Ptr<Node> > > ns3::SatBeamHelper::MulticastBeamInfo_t

Definition at line 83 of file satellite-beam-helper.h.

◆ MulticastBeamInfoItem_t

typedef std::set<Ptr<Node> > ns3::SatBeamHelper::MulticastBeamInfoItem_t

Definition at line 81 of file satellite-beam-helper.h.

Constructor & Destructor Documentation

◆ SatBeamHelper() [1/2]

ns3::SatBeamHelper::SatBeamHelper ( )

Default constructor for SatBeamHelper (should not be used).

Definition at line 239 of file satellite-beam-helper.cc.

◆ SatBeamHelper() [2/2]

ns3::SatBeamHelper::SatBeamHelper ( std::vector< std::pair< uint32_t, uint32_t >>  isls,
SatTypedefs::CarrierBandwidthConverter_t  bandwidthConverterCb,
uint32_t  fwdLinkCarrierCount,
uint32_t  rtnLinkCarrierCount,
Ptr< SatSuperframeSeq seq 
)

Constructor for SatBeamHelper.

Parameters
islsList of all ISLs
bandwidthConverterCbCallback to convert bandwidth
fwdLinkCarrierCountNumber of carriers used in forward link
rtnLinkCarrierCountNumber of carriers used in return link
seqPointer to used superframe sequence configuration mode used in satellites for return link

set dynamic load control values required by NCC

create default Markov & Loo configurations

Definition at line 258 of file satellite-beam-helper.cc.

References ns3::SatEnums::DVB, ns3::SatEnums::DVB_S2, ns3::SatEnums::DVB_S2X, ns3::SatEnums::FADING_MARKOV, ns3::SatEnums::FADING_OFF, ns3::SatEnums::FADING_TRACE, ns3::SatLowerLayerServiceConf::GetRaAverageNormalizedOfferedLoadThreshold(), ns3::SatLowerLayerServiceConf::GetRaBackOffProbability(), ns3::SatLowerLayerServiceConf::GetRaBackOffTimeInMilliSeconds(), ns3::SatLowerLayerServiceConf::GetRaHighLoadBackOffProbability(), ns3::SatLowerLayerServiceConf::GetRaHighLoadBackOffTimeInMilliSeconds(), ns3::SatPhyRxCarrierConf::IF_TRACE, ns3::SatEnums::LORA, ns3::SatEnums::LR_FSIM, ns3::SatEnums::LR_LORA, ns3::SatEnums::LR_RCS2, m_bstpController, m_channelFactory, m_ctrlMsgStoreTimeFwdLink, m_ctrlMsgStoreTimeRtnLink, m_dvbVersion, m_enableFwdLinkBeamHopping, m_enableTracesOnReturnLink, m_fadingModel, m_flChannels, m_gwHelper, m_markovConf, m_ncc, m_orbiterHelper, m_raCollisionModel, ns3::SatGwHelper::RandomAccessSettings_s::m_raCollisionModel, ns3::SatOrbiterHelper::RandomAccessSettings_s::m_raCollisionModel, ns3::SatUtHelper::RandomAccessSettings_s::m_raCollisionModel, m_raConstantErrorRate, ns3::SatGwHelper::RandomAccessSettings_s::m_raConstantErrorRate, ns3::SatOrbiterHelper::RandomAccessSettings_s::m_raFwdInterferenceModel, m_raInterferenceEliminationModel, ns3::SatGwHelper::RandomAccessSettings_s::m_raInterferenceEliminationModel, ns3::SatOrbiterHelper::RandomAccessSettings_s::m_raInterferenceEliminationModel, ns3::SatUtHelper::RandomAccessSettings_s::m_raInterferenceEliminationModel, m_raInterferenceModel, ns3::SatGwHelper::RandomAccessSettings_s::m_raInterferenceModel, ns3::SatUtHelper::RandomAccessSettings_s::m_raInterferenceModel, m_randomAccessModel, ns3::SatGwHelper::RandomAccessSettings_s::m_randomAccessModel, ns3::SatOrbiterHelper::RandomAccessSettings_s::m_randomAccessModel, ns3::SatUtHelper::RandomAccessSettings_s::m_randomAccessModel, ns3::SatOrbiterHelper::RandomAccessSettings_s::m_raRtnInterferenceModel, m_rlLinkResultsType, m_superframeSeq, m_ulChannels, m_utHelper, ns3::SatEnums::RA_MODEL_OFF, ns3::SatControlMsgContainer::Read(), ns3::SatEnums::REGENERATION_LINK, ns3::SatEnums::REGENERATION_NETWORK, ns3::SatControlMsgContainer::ReserveIdAndStore(), ns3::SatControlMsgContainer::Send(), and ns3::SatEnums::TRANSPARENT.

+ Here is the call graph for this function:

◆ ~SatBeamHelper()

virtual ns3::SatBeamHelper::~SatBeamHelper ( )
inlinevirtual

Destructor for SatBeamHelper.

Definition at line 121 of file satellite-beam-helper.h.

Member Function Documentation

◆ AddMulticastGroupRoutes()

NetDeviceContainer ns3::SatBeamHelper::AddMulticastGroupRoutes ( MulticastBeamInfo_t  beamInfo,
Ptr< Node >  sourceUtNode,
Ipv4Address  sourceAddress,
Ipv4Address  groupAddress,
bool  routeToGwUsers,
Ptr< NetDevice > &  gwOutputDev 
)
Parameters
beamInfoMulticast info for the beams. Receiver UTs in a beam for the multicast group.
sourceUtNodeSource UT node. (NULL in case that source is behind gateway/backbone network)
sourceAddressSource address of the group.
groupAddressAddress of the multicast group.
routeToGwUsersFlag indicating if there are GW receivers in public network behind IP router.
gwOutputDevPointer to device which delivers multicast traffic to public/backbone network from satellite network. In case that traffic is not needed to deliver to backbone network gwOutputDev is set to NULL. (source is not UT or no receivers behind routing GW.)
Returns
Net device container including devices where multicast traffic shall be forwarded (GWs and users in public network) by IP router.

Definition at line 1129 of file satellite-beam-helper.cc.

References AddMulticastRouteToUt(), and GetUtBeamId().

+ Here is the call graph for this function:

◆ AddMulticastRouteToUt()

void ns3::SatBeamHelper::AddMulticastRouteToUt ( Ptr< Node >  utNode,
Ipv4Address  sourceAddress,
Ipv4Address  groupAddress,
bool  routeToSatellite 
)
private

Add multicast route to UT node.

Parameters
utNodePointer to UT node where to add route.
sourceAddressSource address of the multicast group.
groupAddressAddress of the multicast group.
routeToSatelliteFlag indicating if traffic is going toward satellite network.

Definition at line 1680 of file satellite-beam-helper.cc.

Referenced by AddMulticastGroupRoutes().

+ Here is the caller graph for this function:

◆ CreateBeamInfo()

std::string ns3::SatBeamHelper::CreateBeamInfo ( ) const
private

Creates info of the beam.

Returns
info for beams as std::string.

Definition at line 1414 of file satellite-beam-helper.cc.

References ns3::GeoCoordinate::GetLatitude(), m_beam, m_beamFreqs, m_gwNode, and m_printDetailedInformationToCreationTraces.

Referenced by GetBeamInfo().

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

◆ DoDispose()

void ns3::SatBeamHelper::DoDispose ( )
virtual

Dispose of this class instance.

Definition at line 534 of file satellite-beam-helper.cc.

References m_antennaGainPatterns, m_beam, m_beamFreqs, m_flChannels, m_gwHelper, m_gwNode, m_markovConf, m_ncc, m_orbiterHelper, m_ulChannels, and m_utHelper.

◆ EnableCreationTraces()

void ns3::SatBeamHelper::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 1274 of file satellite-beam-helper.cc.

References m_gwHelper, m_orbiterHelper, and m_utHelper.

◆ EnablePacketTrace()

void ns3::SatBeamHelper::EnablePacketTrace ( )

Enable packet traces.

(Called by SatHelper after scenario creation, if packet traces are enabled.)

Connect the trace callbacks By default the packet traces are connected to

  • NetDevice
  • LLC
  • MAC
  • PHY

TODO: Currently the packet trace logs all entries updated by the protocol layers. Here we could restrict the protocol layers from where the traced data are collected from. This could be controlled by the user using attributes.

Definition at line 1285 of file satellite-beam-helper.cc.

References ns3::SatPacketTrace::AddTraceEntry(), ns3::SatEnums::DVB, m_packetTrace, ns3::SatEnums::REGENERATION_LINK, and ns3::SatEnums::REGENERATION_NETWORK.

+ Here is the call graph for this function:

◆ GetBeamInfo()

std::string ns3::SatBeamHelper::GetBeamInfo ( ) const
Returns
info of created beams as std::string with GW info..

Definition at line 1334 of file satellite-beam-helper.cc.

References CreateBeamInfo(), and m_beam.

+ Here is the call graph for this function:

◆ GetBeams()

std::list< std::pair< uint32_t, uint32_t > > ns3::SatBeamHelper::GetBeams ( ) const
Parameters
satIdsatellite ID
Returns
a list of pair satellite ID / beam ID which are currently activated.

Definition at line 1083 of file satellite-beam-helper.cc.

References m_beam.

◆ GetChannelPair()

SatChannelPair::ChannelPair_t ns3::SatBeamHelper::GetChannelPair ( uint32_t  satId,
uint32_t  beamId,
uint32_t  fwdFrequencyId,
uint32_t  rtnFrequencyId,
bool  isUserLink 
)
private

Gets satellite channel pair from requested map.

In case that channel pair is not found, new is created and returned.

Parameters
fwdFrequencyIdID of the frequency
rtnFrequencyIdID of the frequency
isUserLinkflag indicating if link user link is requested (otherwise feeder link).
Returns
satellite channel pair from requested SatChannelPair

Definition at line 1516 of file satellite-beam-helper.cc.

References ns3::SatEnums::FORWARD_FEEDER_CH, ns3::SatEnums::FORWARD_USER_CH, m_carrierBandwidthConverter, m_carrierFreqConverter, m_channelFactory, m_constantPropagationDelay, m_flChannels, m_propagationDelayModel, m_ulChannels, ns3::SatEnums::PD_CONSTANT, ns3::SatEnums::PD_CONSTANT_SPEED, ns3::SatEnums::RETURN_FEEDER_CH, ns3::SatEnums::RETURN_USER_CH, ns3::SatChannel::SetChannelType(), and ns3::SatConstVariables::SPEED_OF_LIGHT.

Referenced by Install().

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

◆ GetGwHelper()

Ptr< SatGwHelper > ns3::SatBeamHelper::GetGwHelper ( ) const
Returns
pointer to GW helper.

Definition at line 1046 of file satellite-beam-helper.cc.

References m_gwHelper.

◆ GetGwId()

uint32_t ns3::SatBeamHelper::GetGwId ( uint32_t  satId,
uint32_t  beamId 
) const
Parameters
beamIdbeam ID
satIdsatellite ID
Returns
the ID of the GW serving the specified beam, or zero if the ID is invalid

Definition at line 1007 of file satellite-beam-helper.cc.

References m_beam.

◆ GetGwNode()

Ptr< Node > ns3::SatBeamHelper::GetGwNode ( uint32_t  gwId) const

Gets GW node according to given id.

In case that GW is not found NULL is returned.

Parameters
gwIdID of the GW
Returns
pointer to found GW node or NULL.

Definition at line 1023 of file satellite-beam-helper.cc.

References m_gwNode.

Referenced by StoreGwNode().

+ Here is the caller graph for this function:

◆ GetInstanceTypeId()

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

Get the type ID of instance.

Returns
the object TypeId

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

References GetTypeId().

+ Here is the call graph for this function:

◆ GetNcc()

Ptr< SatNcc > ns3::SatBeamHelper::GetNcc ( ) const
Returns
pointer to the NCC.

Definition at line 1100 of file satellite-beam-helper.cc.

References m_ncc.

◆ GetOrbiterHelper()

Ptr< SatOrbiterHelper > ns3::SatBeamHelper::GetOrbiterHelper ( ) const
Returns
pointer to Orbiter helper.

Definition at line 1053 of file satellite-beam-helper.cc.

References m_orbiterHelper.

◆ GetPropagationDelayModel()

Ptr< PropagationDelayModel > ns3::SatBeamHelper::GetPropagationDelayModel ( uint32_t  satId,
uint32_t  beamId,
SatEnums::ChannelType_t  channelType 
)

◆ GetPropagationDelayModelEnum()

SatEnums::PropagationDelayModel_t ns3::SatBeamHelper::GetPropagationDelayModelEnum ( )

Definition at line 1760 of file satellite-beam-helper.cc.

References m_propagationDelayModel.

◆ GetTypeId()

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

Get the type ID.

Returns
the object TypeId

Definition at line 89 of file satellite-beam-helper.cc.

References ns3::SatEnums::DVB_S2, ns3::SatEnums::DVB_S2X, ns3::SatEnums::FADING_MARKOV, ns3::SatEnums::FADING_OFF, ns3::SatEnums::FADING_TRACE, ns3::SatPhyRxCarrierConf::IF_CONSTANT, ns3::SatPhyRxCarrierConf::IF_PER_FRAGMENT, ns3::SatPhyRxCarrierConf::IF_PER_PACKET, ns3::SatPhyRxCarrierConf::IF_TRACE, ns3::SatEnums::LR_FSIM, ns3::SatEnums::LR_LORA, ns3::SatEnums::LR_RCS2, m_carrierFreqConverter, m_constantPropagationDelay, m_creationTrace, m_ctrlMsgStoreTimeFwdLink, m_ctrlMsgStoreTimeRtnLink, m_dvbVersion, m_enableFwdLinkBeamHopping, m_enableTracesOnReturnLink, m_fadingModel, m_printDetailedInformationToCreationTraces, m_propagationDelayModel, m_raCollisionModel, m_raConstantErrorRate, m_raInterferenceEliminationModel, m_raInterferenceModel, m_randomAccessModel, m_rlLinkResultsType, ns3::SatEnums::PD_CONSTANT, ns3::SatEnums::PD_CONSTANT_SPEED, ns3::SatPhyRxCarrierConf::RA_COLLISION_ALWAYS_DROP_ALL_COLLIDING_PACKETS, ns3::SatPhyRxCarrierConf::RA_COLLISION_CHECK_AGAINST_SINR, ns3::SatPhyRxCarrierConf::RA_COLLISION_NOT_DEFINED, ns3::SatPhyRxCarrierConf::RA_CONSTANT_COLLISION_PROBABILITY, ns3::SatEnums::RA_MODEL_CRDSA, ns3::SatEnums::RA_MODEL_ESSA, ns3::SatEnums::RA_MODEL_MARSALA, ns3::SatEnums::RA_MODEL_OFF, ns3::SatEnums::RA_MODEL_RCS2_SPECIFICATION, ns3::SatEnums::RA_MODEL_SLOTTED_ALOHA, ns3::SatPhyRxCarrierConf::SIC_PERFECT, and ns3::SatPhyRxCarrierConf::SIC_RESIDUAL.

Referenced by GetInstanceTypeId().

+ Here is the caller graph for this function:

◆ GetUtBeamId()

uint32_t ns3::SatBeamHelper::GetUtBeamId ( Ptr< Node >  utNode) const

Get beam Id of the given UT.

Parameters
utNodePointer to UT node return Id of the beam of the requested UT. O in case that given node is not UT node.

Definition at line 1108 of file satellite-beam-helper.cc.

References m_utNode.

Referenced by AddMulticastGroupRoutes().

+ Here is the caller graph for this function:

◆ GetUtHelper()

Ptr< SatUtHelper > ns3::SatBeamHelper::GetUtHelper ( ) const
Returns
pointer to UT helper.

Definition at line 1039 of file satellite-beam-helper.cc.

References m_utHelper.

◆ GetUtInfo()

std::string ns3::SatBeamHelper::GetUtInfo ( ) const
Returns
Information of UTs.

Definition at line 1351 of file satellite-beam-helper.cc.

References ns3::GeoCoordinate::GetLatitude(), m_printDetailedInformationToCreationTraces, and m_utNode.

+ Here is the call graph for this function:

◆ GetUtNodes()

NodeContainer ns3::SatBeamHelper::GetUtNodes ( uint32_t  satId,
uint32_t  beamId 
) const
Parameters
satIdsatellite ID
beamIdbeam ID
Returns
container having all UT nodes of a specific beam.

Definition at line 1060 of file satellite-beam-helper.cc.

References m_utNode.

◆ Init()

void ns3::SatBeamHelper::Init ( )

Init method is called after all the initial configurations have been done by the SatHelper and SatBeamHelper.

Definition at line 552 of file satellite-beam-helper.cc.

References m_bstpController.

◆ Install()

std::pair< Ptr< NetDevice >, NetDeviceContainer > ns3::SatBeamHelper::Install ( NodeContainer  ut,
Ptr< Node >  gwNode,
uint32_t  gwId,
uint32_t  satId,
uint32_t  beamId,
uint32_t  rtnUlFreqId,
uint32_t  rtnFlFreqId,
uint32_t  fwdUlFreqId,
uint32_t  fwdFlFreqId,
SatMac::RoutingUpdateCallback  routingCallback 
)
Parameters
uta set of UT nodes
gwNodepointer of GW node
gwIdid of the GW
satIdID of the satellite
beamIdid of the beam
rtnUlFreqIdid of the return user link frequency
rtnFlFreqIdid of the return feeder link frequency
fwdUlFreqIdid of the forward user link frequency
fwdFlFreqIdid of the forward feeder link frequency
routingCallbackthe callback UT mac layers should call to update the node routes when receiving handover orders

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

Returns
a pair containing the new SatNetDevice of the gateway and a NetDeviceContainer of all SatNetDevice for the UTs

Definition at line 593 of file satellite-beam-helper.cc.

References ns3::SatEnums::FADING_OFF, GetChannelPair(), InstallFadingContainer(), InstallFeeder(), InstallUser(), m_antennaGainPatterns, m_beam, m_bstpController, m_fadingModel, m_gwNdMap, m_ncc, m_orbiterHelper, m_utNode, ns3::SatEnums::REGENERATION_LINK, ns3::SatEnums::REGENERATION_NETWORK, and ns3::SatNetDevice::ToggleState().

+ Here is the call graph for this function:

◆ InstallFadingContainer()

Ptr< SatBaseFading > ns3::SatBeamHelper::InstallFadingContainer ( Ptr< Node >  node) const
private

Install fading model to node, if fading model doesn't exist already in node.

Parameters
nodePointer to node
Returns
Pointer to fading container

create a Markov fading container based on default configuration

create a input trace fading container based on default configuration

FADING_OFF option should never get to InstallFadingContainer

Definition at line 1634 of file satellite-beam-helper.cc.

References ns3::SatEnums::FADING_MARKOV, ns3::SatEnums::FADING_OFF, ns3::SatEnums::FADING_TRACE, ns3::SatMobilityObserver::GetElevationAngle(), ns3::SatMobilityObserver::GetVelocity(), m_fadingModel, and m_markovConf.

Referenced by Install(), and InstallFeeder().

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

◆ InstallFeeder()

Ptr< NetDevice > ns3::SatBeamHelper::InstallFeeder ( Ptr< SatOrbiterNetDevice orbiterNetDevice,
Ptr< Node >  gwNode,
uint32_t  gwId,
uint32_t  satId,
uint32_t  beamId,
uint32_t  feederSatId,
uint32_t  feederBeamId,
SatChannelPair::ChannelPair_t  feederLink,
uint32_t  rtnFlFreqId,
uint32_t  fwdFlFreqId,
SatMac::RoutingUpdateCallback  routingCallback 
)
Parameters
orbiterNetDeviceNet device of satellite
gwNodepointer of GW node
gwIdid of the GW
satIdID of the satellite linked to the UT
beamIdid of the beam linked to the UT
feederSatIdID of the satellite linked to the GW
feederBeamIdid of the beam linked to the GW
feederLinkFeeder link channel
rtnFlFreqIdid of the return feeder link frequency
fwdFlFreqIdid of the forward feeder link frequency
routingCallbackthe callback UT mac layers should call to update the node routes when receiving handover orders

This method creates a beam on feeder side with the requested attributes and associate the resulting ns3::NetDevices with the ns3::Nodes.

Returns
the new SatNetDevice of the gateway

Definition at line 735 of file satellite-beam-helper.cc.

References ns3::SatConstVariables::BITS_PER_BYTE, ns3::SatEnums::DVB, ns3::SatEnums::FADING_OFF, ns3::SatChannelPair::GetChannelPair(), InstallFadingContainer(), ns3::SatEnums::LORA, m_enableTracesOnReturnLink, m_fadingModel, m_flChannels, m_gwHelper, m_ncc, m_superframeSeq, m_utHelper, ns3::SatEnums::NORMAL_FRAME, ns3::SatEnums::REGENERATION_LINK, ns3::SatEnums::REGENERATION_NETWORK, ns3::SatEnums::RX_PWR_INPUT_TRACE, ns3::SatLorawanNetDevice::SendControlMsg(), ns3::SatNetDevice::SendControlMsg(), ns3::SatEnums::SHORT_FRAME, ns3::SatEnums::SHORT_FRAMES, StoreGwNode(), ns3::SatGwMac::TbtpSent(), and ns3::SatEnums::TRANSPARENT.

Referenced by Install().

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

◆ InstallIsls()

void ns3::SatBeamHelper::InstallIsls ( )

Create all the ISLs.

Definition at line 966 of file satellite-beam-helper.cc.

References m_isls.

◆ InstallUser()

NetDeviceContainer ns3::SatBeamHelper::InstallUser ( Ptr< SatOrbiterNetDevice orbiterNetDevice,
NodeContainer  ut,
Ptr< NetDevice >  gwNd,
uint32_t  satId,
uint32_t  beamId,
SatChannelPair::ChannelPair_t  userLink,
uint32_t  rtnUlFreqId,
uint32_t  fwdUlFreqId,
SatMac::RoutingUpdateCallback  routingCallback 
)
Parameters
orbiterNetDeviceNet device of satellite
uta set of UT nodes
gwNdNet Device of GW
satIdID of the satellite
beamIdid of the beam
userLinkUser link channel
rtnUlFreqIdid of the return user link frequency
fwdUlFreqIdid of the forward user link frequency
routingCallbackthe callback UT mac layers should call to update the node routes when receiving handover orders

This method creates a beam on user side with the requested attributes and associate the resulting ns3::NetDevices with the ns3::Nodes.

Returns
a NetDeviceContainer of all SatNetDevice for the UTs

Definition at line 886 of file satellite-beam-helper.cc.

References ns3::SatChannelPair::GetChannelPair(), m_enableTracesOnReturnLink, m_ncc, m_ulChannels, m_utHelper, ns3::SatEnums::REGENERATION_LINK, ns3::SatEnums::REGENERATION_NETWORK, and ns3::SatEnums::RX_PWR_INPUT_TRACE.

Referenced by Install().

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

◆ SetAntennaGainPatterns()

void ns3::SatBeamHelper::SetAntennaGainPatterns ( Ptr< SatAntennaGainPatternContainer antennaPatterns)

Set the antenna gain patterns to be used when configuring the beams to the satellite.

Note, that currently we have only one set of antenna patterns, which are utilized in both user return (Rx gain) and user forward (Tx gain) links. Antenna gain patterns are not utilized in feeder link at all.

Parameters
antennaPatternsto antenna gain pattern container

Definition at line 563 of file satellite-beam-helper.cc.

References m_antennaGainPatterns.

◆ SetChannelAttribute()

void ns3::SatBeamHelper::SetChannelAttribute ( std::string  name,
const AttributeValue &  value 
)

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

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

Set these attribute on each ns3::SatChannel created by SatBeamHelper::Install

Definition at line 577 of file satellite-beam-helper.cc.

References m_channelFactory.

◆ SetDeviceAttribute()

void ns3::SatBeamHelper::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::SatNetDevice created by SatBeamHelper::Install

Definition at line 571 of file satellite-beam-helper.cc.

◆ SetIslRoutes()

void ns3::SatBeamHelper::SetIslRoutes ( )

Set ISL routes.

Definition at line 999 of file satellite-beam-helper.cc.

References m_isls, and m_orbiterHelper.

Referenced by ns3::SatHelper::DoCreateScenario().

+ Here is the caller graph for this function:

◆ SetNccRoutingCallback()

void ns3::SatBeamHelper::SetNccRoutingCallback ( SatNcc::UpdateRoutingCallback  cb)

Attach an update routing callback to the NCC of this simulation.

Parameters
cbthe callback to update routing after a terminal handover

Definition at line 585 of file satellite-beam-helper.cc.

References m_ncc.

◆ StoreGwNode()

bool ns3::SatBeamHelper::StoreGwNode ( uint32_t  id,
Ptr< Node >  node 
)
private

Creates GW node according to given id and stores GW to map.

Parameters
idID of the GW
nodepointer to the GW
Returns
result of storing

Definition at line 1607 of file satellite-beam-helper.cc.

References GetGwNode(), and m_gwNode.

Referenced by InstallFeeder().

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

Member Data Documentation

◆ m_antennaGainPatterns

Ptr<SatAntennaGainPatternContainer> ns3::SatBeamHelper::m_antennaGainPatterns
private

Definition at line 392 of file satellite-beam-helper.h.

Referenced by DoDispose(), Install(), and SetAntennaGainPatterns().

◆ m_beam

std::map<std::pair<uint32_t, uint32_t>, uint32_t> ns3::SatBeamHelper::m_beam
private

◆ m_beamFreqs

std::map<std::pair<uint32_t, uint32_t>, FrequencyPair_t> ns3::SatBeamHelper::m_beamFreqs
private

Definition at line 402 of file satellite-beam-helper.h.

Referenced by CreateBeamInfo(), and DoDispose().

◆ m_bstpController

Ptr<SatBstpController> ns3::SatBeamHelper::m_bstpController
private

Beam Switching Time Plan controller, which is created if FWD link beam hopping is enabled (m_enableFwdLinkBeamHopping).

Definition at line 490 of file satellite-beam-helper.h.

Referenced by SatBeamHelper(), Init(), and Install().

◆ m_carrierBandwidthConverter

SatTypedefs::CarrierBandwidthConverter_t ns3::SatBeamHelper::m_carrierBandwidthConverter
private

Definition at line 382 of file satellite-beam-helper.h.

Referenced by GetChannelPair().

◆ m_carrierFreqConverter

CarrierFreqConverter ns3::SatBeamHelper::m_carrierFreqConverter
private

Definition at line 381 of file satellite-beam-helper.h.

Referenced by GetChannelPair(), and GetTypeId().

◆ m_channelFactory

ObjectFactory ns3::SatBeamHelper::m_channelFactory
private

Definition at line 386 of file satellite-beam-helper.h.

Referenced by SatBeamHelper(), GetChannelPair(), and SetChannelAttribute().

◆ m_constantPropagationDelay

Time ns3::SatBeamHelper::m_constantPropagationDelay
private

Constant propagation delay.

Note, that this is valid only if SatConstantPropagationDelay is used.

Definition at line 451 of file satellite-beam-helper.h.

Referenced by GetChannelPair(), and GetTypeId().

◆ m_creationTrace

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

Trace callback for creation traces.

Definition at line 407 of file satellite-beam-helper.h.

Referenced by GetTypeId().

◆ m_ctrlMsgStoreTimeFwdLink

Time ns3::SatBeamHelper::m_ctrlMsgStoreTimeFwdLink
private

Control message store time in container for forward link.

Definition at line 418 of file satellite-beam-helper.h.

Referenced by SatBeamHelper(), and GetTypeId().

◆ m_ctrlMsgStoreTimeRtnLink

Time ns3::SatBeamHelper::m_ctrlMsgStoreTimeRtnLink
private

Control message store in container for return link.

Definition at line 423 of file satellite-beam-helper.h.

Referenced by SatBeamHelper(), and GetTypeId().

◆ m_dvbVersion

SatEnums::DvbVersion_t ns3::SatBeamHelper::m_dvbVersion
private

Indicates if using DVB-S2 or DVB-S2X.

Definition at line 556 of file satellite-beam-helper.h.

Referenced by SatBeamHelper(), and GetTypeId().

◆ m_enableFwdLinkBeamHopping

bool ns3::SatBeamHelper::m_enableFwdLinkBeamHopping
private

Flag indicating whether beam hopping is enabled in FWD link.

If enabled, SatBstpController is created with proper callbacks and reuse 1 is configured for FWD link.

Definition at line 484 of file satellite-beam-helper.h.

Referenced by SatBeamHelper(), and GetTypeId().

◆ m_enableTracesOnReturnLink

bool ns3::SatBeamHelper::m_enableTracesOnReturnLink
private

Helper flag to activate packet traces on the return link only.

Definition at line 500 of file satellite-beam-helper.h.

Referenced by SatBeamHelper(), GetTypeId(), InstallFeeder(), and InstallUser().

◆ m_fadingModel

SatEnums::FadingModel_t ns3::SatBeamHelper::m_fadingModel
private

Configured fading model.

Set as an attribute.

Definition at line 433 of file satellite-beam-helper.h.

Referenced by SatBeamHelper(), GetTypeId(), Install(), InstallFadingContainer(), and InstallFeeder().

◆ m_flChannels

Ptr<SatChannelPair> ns3::SatBeamHelper::m_flChannels
private

◆ m_gwHelper

Ptr<SatGwHelper> ns3::SatBeamHelper::m_gwHelper
private

◆ m_gwNdMap

std::map<uint32_t, Ptr<NetDevice> > ns3::SatBeamHelper::m_gwNdMap
private

Map used in regenerative mode to store GW Net device (we need only one per GW)

Definition at line 561 of file satellite-beam-helper.h.

Referenced by Install().

◆ m_gwNode

std::map<uint32_t, Ptr<Node> > ns3::SatBeamHelper::m_gwNode
private

Definition at line 396 of file satellite-beam-helper.h.

Referenced by CreateBeamInfo(), DoDispose(), GetGwNode(), and StoreGwNode().

◆ m_isls

std::vector<std::pair<uint32_t, uint32_t> > ns3::SatBeamHelper::m_isls
private

Vector constaining all the ISLs of the topology.

Definition at line 566 of file satellite-beam-helper.h.

Referenced by InstallIsls(), and SetIslRoutes().

◆ m_markovConf

Ptr<SatMarkovConf> ns3::SatBeamHelper::m_markovConf
private

Common configuration for Markov model.

Definition at line 438 of file satellite-beam-helper.h.

Referenced by SatBeamHelper(), DoDispose(), and InstallFadingContainer().

◆ m_ncc

Ptr<SatNcc> ns3::SatBeamHelper::m_ncc
private

◆ m_orbiterHelper

Ptr<SatOrbiterHelper> ns3::SatBeamHelper::m_orbiterHelper
private

◆ m_packetTrace

Ptr<SatPacketTrace> ns3::SatBeamHelper::m_packetTrace
private

Packet trace.

Definition at line 495 of file satellite-beam-helper.h.

Referenced by EnablePacketTrace().

◆ m_printDetailedInformationToCreationTraces

bool ns3::SatBeamHelper::m_printDetailedInformationToCreationTraces
private

Flag indicating whether to print detailed information to the creation traces.

Definition at line 413 of file satellite-beam-helper.h.

Referenced by CreateBeamInfo(), GetTypeId(), and GetUtInfo().

◆ m_propagationDelayModel

SatEnums::PropagationDelayModel_t ns3::SatBeamHelper::m_propagationDelayModel
private

Propagation delay model.

  • Constant
  • Constant speed (speed of light)

Definition at line 445 of file satellite-beam-helper.h.

Referenced by GetChannelPair(), GetPropagationDelayModelEnum(), and GetTypeId().

◆ m_raCollisionModel

SatPhyRxCarrierConf::RandomAccessCollisionModel ns3::SatBeamHelper::m_raCollisionModel
private

The used collision model for random access.

Definition at line 471 of file satellite-beam-helper.h.

Referenced by SatBeamHelper(), and GetTypeId().

◆ m_raConstantErrorRate

double ns3::SatBeamHelper::m_raConstantErrorRate
private

Constant error rate for random access.

Used if RA collision model is RA_CONSTANT_COLLISION_PROBABILITY.

Definition at line 477 of file satellite-beam-helper.h.

Referenced by SatBeamHelper(), and GetTypeId().

◆ m_raInterferenceEliminationModel

SatPhyRxCarrierConf::InterferenceEliminationModel ns3::SatBeamHelper::m_raInterferenceEliminationModel
private

The used interference model for random access.

Definition at line 466 of file satellite-beam-helper.h.

Referenced by SatBeamHelper(), and GetTypeId().

◆ m_raInterferenceModel

SatPhyRxCarrierConf::InterferenceModel ns3::SatBeamHelper::m_raInterferenceModel
private

The used interference model for random access.

Definition at line 461 of file satellite-beam-helper.h.

Referenced by SatBeamHelper(), and GetTypeId().

◆ m_randomAccessModel

SatEnums::RandomAccessModel_t ns3::SatBeamHelper::m_randomAccessModel
private

The used random access model.

Definition at line 456 of file satellite-beam-helper.h.

Referenced by SatBeamHelper(), and GetTypeId().

◆ m_rlLinkResultsType

SatEnums::LinkResults_t ns3::SatBeamHelper::m_rlLinkResultsType
private

Type of Return channel link results.

Definition at line 428 of file satellite-beam-helper.h.

Referenced by SatBeamHelper(), and GetTypeId().

◆ m_superframeSeq

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

Definition at line 384 of file satellite-beam-helper.h.

Referenced by SatBeamHelper(), and InstallFeeder().

◆ m_ulChannels

Ptr<SatChannelPair> ns3::SatBeamHelper::m_ulChannels
private

◆ m_utHelper

Ptr<SatUtHelper> ns3::SatBeamHelper::m_utHelper
private

◆ m_utNode

std::multimap<std::pair<uint32_t, uint32_t>, Ptr<Node> > ns3::SatBeamHelper::m_utNode
private

Definition at line 398 of file satellite-beam-helper.h.

Referenced by GetUtBeamId(), GetUtInfo(), GetUtNodes(), and Install().


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