Loading...
Searching...
No Matches
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.
typedef SatChannel::CarrierFreqConverter CarrierFreqConverter
 Define type CarrierFreqConverter.
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).
 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.
virtual ~SatBeamHelper ()
 Destructor for SatBeamHelper.
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.
void EnableCreationTraces (Ptr< OutputStreamWrapper > stream, CallbackBase &cb)
 Enables creation traces to be written in given file.
void EnablePacketTrace ()
 Enable packet traces.
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.
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.
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.
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.
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)
virtual void NotifyConstructionCompleted () override
 Notifier called once the ObjectBase is fully constructed.
void SetAntennaGainPatterns (Ptr< SatAntennaGainPatternContainer > antennaPatterns)
 Set the antenna gain patterns to be used when configuring the beams to the satellite.
void SetChannelAttribute (std::string name, const AttributeValue &value)
 Set an attribute value to be propagated to each Channel created by the helper.
void SetDeviceAttribute (std::string name, const AttributeValue &value)
 Set an attribute value to be propagated to each NetDevice created by the helper.
void SetIslRoutes ()
 Set ISL routes.
void SetNccRoutingCallback (SatNcc::UpdateRoutingCallback cb)
 Attach an update routing callback to the NCC of this simulation.

Static Public Member Functions

static TypeId GetTypeId (void)
 Get the type ID.

Private Member Functions

void AddMulticastRouteToUt (Ptr< Node > utNode, Ipv4Address sourceAddress, Ipv4Address groupAddress, bool routeToSatellite)
 Add multicast route to UT node.
std::string CreateBeamInfo () const
 Creates info of the beam.
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.
Ptr< SatBaseFadingInstallFadingContainer (Ptr< Node > node) const
 Install fading model to node, if fading model doesn't exist already in node.
bool StoreGwNode (uint32_t id, Ptr< Node > node)
 Creates GW node according to given id and stores GW to map.

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).
SatTypedefs::CarrierBandwidthConverter_t m_carrierBandwidthConverter
CarrierFreqConverter m_carrierFreqConverter
ObjectFactory m_channelFactory
Time m_constantPropagationDelay
 Constant propagation delay.
TracedCallback< std::string > m_creationTrace
 Trace callback for creation traces.
Time m_ctrlMsgStoreTimeFwdLink
 Control message store time in container for forward link.
Time m_ctrlMsgStoreTimeRtnLink
 Control message store in container for return link.
SatEnums::DvbVersion_t m_dvbVersion
 Indicates if using DVB-S2 or DVB-S2X.
bool m_enableFwdLinkBeamHopping
 Flag indicating whether beam hopping is enabled in FWD link.
bool m_enableTracesOnReturnLink
 Helper flag to activate packet traces on the return link only.
SatEnums::FadingModel_t m_fadingModel
 Configured fading model.
Ptr< SatChannelPairm_flChannels
uint32_t m_fwdLinkCarrierCount
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).
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.
Ptr< SatMarkovConfm_markovConf
 Common configuration for Markov model.
Ptr< SatNccm_ncc
Ptr< SatOrbiterHelperm_orbiterHelper
Ptr< SatPacketTracem_packetTrace
 Packet trace.
bool m_printDetailedInformationToCreationTraces
 Flag indicating whether to print detailed information to the creation traces.
SatEnums::PropagationDelayModel_t m_propagationDelayModel
 Propagation delay model.
SatPhyRxCarrierConf::RandomAccessCollisionModel m_raCollisionModel
 The used collision model for random access.
double m_raConstantErrorRate
 Constant error rate for random access.
SatPhyRxCarrierConf::InterferenceEliminationModel m_raInterferenceEliminationModel
 The used interference model for random access.
SatPhyRxCarrierConf::InterferenceModel m_raInterferenceModel
 The used interference model for random access.
SatEnums::RandomAccessModel_t m_randomAccessModel
 The used random access model.
SatEnums::LinkResults_t m_rlLinkResultsType
 Type of Return channel link results.
uint32_t m_rtnLinkCarrierCount
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

◆ CarrierFreqConverter

◆ 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]

◆ 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

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

References m_bstpController, m_carrierBandwidthConverter, m_constantPropagationDelay, m_enableFwdLinkBeamHopping, m_fadingModel, m_fwdLinkCarrierCount, m_isls, m_printDetailedInformationToCreationTraces, m_propagationDelayModel, m_raCollisionModel, m_raConstantErrorRate, m_raInterferenceEliminationModel, m_raInterferenceModel, m_randomAccessModel, m_rtnLinkCarrierCount, and m_superframeSeq.

◆ ~SatBeamHelper()

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

Destructor for SatBeamHelper.

Definition at line 125 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 1127 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 1685 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 1419 of file satellite-beam-helper.cc.

References m_beam, m_beamFreqs, m_gwNode, and m_printDetailedInformationToCreationTraces.

Referenced by GetBeamInfo().

Here is the caller graph for this function:

◆ DoDispose()

void ns3::SatBeamHelper::DoDispose ( )
virtual

Dispose of this class instance.

Definition at line 532 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 1272 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 1283 of file satellite-beam-helper.cc.

References ns3::SatPacketTrace::AddTraceEntry(), ns3::SatEnums::DVB, GetBeams(), 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 1340 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 1081 of file satellite-beam-helper.cc.

References m_beam.

Referenced by EnablePacketTrace().

Here is the caller graph for this function:

◆ 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 1521 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 1044 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 1005 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 1021 of file satellite-beam-helper.cc.

References m_gwNode.

Referenced by StoreGwNode().

Here is the caller graph for this function:

◆ GetNcc()

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

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

References m_ncc.

◆ GetOrbiterHelper()

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

Definition at line 1051 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 1765 of file satellite-beam-helper.cc.

References m_propagationDelayModel.

◆ GetTypeId()

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

◆ 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 1106 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 1037 of file satellite-beam-helper.cc.

References m_utHelper.

◆ GetUtInfo()

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

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

References m_printDetailedInformationToCreationTraces, and m_utNode.

◆ 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 1058 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 550 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 591 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 1639 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 733 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 964 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 884 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:

◆ NotifyConstructionCompleted()

void ns3::SatBeamHelper::NotifyConstructionCompleted ( )
overridevirtual

Notifier called once the ObjectBase is fully constructed.

This method is invoked once all member attributes have been initialized. Subclasses can override this method to be notified of this event but if they do this, they must chain up to their parent's NotifyConstructionCompleted method.

set dynamic load control values required by NCC

create default Markov & Loo configurations

Definition at line 276 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_carrierBandwidthConverter, m_channelFactory, m_ctrlMsgStoreTimeFwdLink, m_ctrlMsgStoreTimeRtnLink, m_dvbVersion, m_enableFwdLinkBeamHopping, m_enableTracesOnReturnLink, m_fadingModel, m_flChannels, m_fwdLinkCarrierCount, 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_rtnLinkCarrierCount, 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:

◆ 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 561 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 575 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 569 of file satellite-beam-helper.cc.

◆ SetIslRoutes()

void ns3::SatBeamHelper::SetIslRoutes ( )

Set ISL routes.

Definition at line 997 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 583 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 1612 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 399 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 409 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 497 of file satellite-beam-helper.h.

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

◆ m_carrierBandwidthConverter

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

◆ m_carrierFreqConverter

CarrierFreqConverter ns3::SatBeamHelper::m_carrierFreqConverter
private

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

Referenced by GetChannelPair(), and GetTypeId().

◆ m_channelFactory

ObjectFactory ns3::SatBeamHelper::m_channelFactory
private

◆ m_constantPropagationDelay

Time ns3::SatBeamHelper::m_constantPropagationDelay
private

Constant propagation delay.

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

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

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

◆ m_creationTrace

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

Trace callback for creation traces.

Definition at line 414 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 425 of file satellite-beam-helper.h.

Referenced by GetTypeId(), and NotifyConstructionCompleted().

◆ m_ctrlMsgStoreTimeRtnLink

Time ns3::SatBeamHelper::m_ctrlMsgStoreTimeRtnLink
private

Control message store in container for return link.

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

Referenced by GetTypeId(), and NotifyConstructionCompleted().

◆ m_dvbVersion

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

Indicates if using DVB-S2 or DVB-S2X.

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

Referenced by GetTypeId(), and NotifyConstructionCompleted().

◆ 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 491 of file satellite-beam-helper.h.

Referenced by SatBeamHelper(), SatBeamHelper(), GetTypeId(), and NotifyConstructionCompleted().

◆ m_enableTracesOnReturnLink

bool ns3::SatBeamHelper::m_enableTracesOnReturnLink
private

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

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

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

◆ m_fadingModel

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

Configured fading model.

Set as an attribute.

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

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

◆ m_flChannels

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

◆ m_fwdLinkCarrierCount

uint32_t ns3::SatBeamHelper::m_fwdLinkCarrierCount
private

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

Referenced by SatBeamHelper(), and NotifyConstructionCompleted().

◆ 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 568 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 403 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 573 of file satellite-beam-helper.h.

Referenced by SatBeamHelper(), InstallIsls(), and SetIslRoutes().

◆ m_markovConf

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

Common configuration for Markov model.

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

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

◆ 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 502 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 420 of file satellite-beam-helper.h.

Referenced by SatBeamHelper(), SatBeamHelper(), 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 452 of file satellite-beam-helper.h.

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

◆ m_raCollisionModel

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

The used collision model for random access.

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

Referenced by SatBeamHelper(), SatBeamHelper(), GetTypeId(), and NotifyConstructionCompleted().

◆ 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 484 of file satellite-beam-helper.h.

Referenced by SatBeamHelper(), SatBeamHelper(), GetTypeId(), and NotifyConstructionCompleted().

◆ m_raInterferenceEliminationModel

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

The used interference model for random access.

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

Referenced by SatBeamHelper(), SatBeamHelper(), GetTypeId(), and NotifyConstructionCompleted().

◆ m_raInterferenceModel

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

The used interference model for random access.

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

Referenced by SatBeamHelper(), SatBeamHelper(), GetTypeId(), and NotifyConstructionCompleted().

◆ m_randomAccessModel

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

The used random access model.

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

Referenced by SatBeamHelper(), SatBeamHelper(), GetTypeId(), and NotifyConstructionCompleted().

◆ m_rlLinkResultsType

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

Type of Return channel link results.

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

Referenced by GetTypeId(), and NotifyConstructionCompleted().

◆ m_rtnLinkCarrierCount

uint32_t ns3::SatBeamHelper::m_rtnLinkCarrierCount
private

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

Referenced by SatBeamHelper(), and NotifyConstructionCompleted().

◆ m_superframeSeq

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

◆ 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 405 of file satellite-beam-helper.h.

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


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