SatBeamHelper builds a set Satellite beams with needed objects and configuration. More...
#include "satellite-beam-helper.h"
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< SatGwHelper > | GetGwHelper () 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< SatNcc > | GetNcc () const |
Ptr< SatOrbiterHelper > | GetOrbiterHelper () 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< SatUtHelper > | GetUtHelper () 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< SatBaseFading > | InstallFadingContainer (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< SatAntennaGainPatternContainer > | m_antennaGainPatterns |
std::map< std::pair< uint32_t, uint32_t >, uint32_t > | m_beam |
std::map< std::pair< uint32_t, uint32_t >, FrequencyPair_t > | m_beamFreqs |
Ptr< SatBstpController > | m_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< SatChannelPair > | m_flChannels |
Ptr< SatGwHelper > | m_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< SatMarkovConf > | m_markovConf |
Common configuration for Markov model. More... | |
Ptr< SatNcc > | m_ncc |
Ptr< SatOrbiterHelper > | m_orbiterHelper |
Ptr< SatPacketTrace > | m_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< SatSuperframeSeq > | m_superframeSeq |
Ptr< SatChannelPair > | m_ulChannels |
Ptr< SatUtHelper > | m_utHelper |
std::multimap< std::pair< uint32_t, uint32_t >, Ptr< Node > > | m_utNode |
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.
Define type CarrierBandwidthConverter.
Definition at line 75 of file satellite-beam-helper.h.
Define type CarrierFreqConverter.
Definition at line 70 of file satellite-beam-helper.h.
typedef std::pair<uint32_t, uint32_t> ns3::SatBeamHelper::FrequencyPair_t |
Definition at line 77 of file satellite-beam-helper.h.
typedef std::pair<uint32_t, uint32_t> ns3::SatBeamHelper::GwLink_t |
Definition at line 78 of file satellite-beam-helper.h.
typedef std::map<uint32_t, std::set<Ptr<Node> > > ns3::SatBeamHelper::MulticastBeamInfo_t |
Definition at line 83 of file satellite-beam-helper.h.
typedef std::set<Ptr<Node> > ns3::SatBeamHelper::MulticastBeamInfoItem_t |
Definition at line 81 of file satellite-beam-helper.h.
ns3::SatBeamHelper::SatBeamHelper | ( | ) |
Default constructor for SatBeamHelper (should not be used).
Definition at line 239 of file satellite-beam-helper.cc.
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.
isls | List of all ISLs |
bandwidthConverterCb | Callback to convert bandwidth |
fwdLinkCarrierCount | Number of carriers used in forward link |
rtnLinkCarrierCount | Number of carriers used in return link |
seq | Pointer 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.
|
inlinevirtual |
Destructor for SatBeamHelper.
Definition at line 121 of file satellite-beam-helper.h.
NetDeviceContainer ns3::SatBeamHelper::AddMulticastGroupRoutes | ( | MulticastBeamInfo_t | beamInfo, |
Ptr< Node > | sourceUtNode, | ||
Ipv4Address | sourceAddress, | ||
Ipv4Address | groupAddress, | ||
bool | routeToGwUsers, | ||
Ptr< NetDevice > & | gwOutputDev | ||
) |
beamInfo | Multicast info for the beams. Receiver UTs in a beam for the multicast group. |
sourceUtNode | Source UT node. (NULL in case that source is behind gateway/backbone network) |
sourceAddress | Source address of the group. |
groupAddress | Address of the multicast group. |
routeToGwUsers | Flag indicating if there are GW receivers in public network behind IP router. |
gwOutputDev | Pointer 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.) |
Definition at line 1129 of file satellite-beam-helper.cc.
References AddMulticastRouteToUt(), and GetUtBeamId().
|
private |
Add multicast route to UT node.
utNode | Pointer to UT node where to add route. |
sourceAddress | Source address of the multicast group. |
groupAddress | Address of the multicast group. |
routeToSatellite | Flag indicating if traffic is going toward satellite network. |
Definition at line 1680 of file satellite-beam-helper.cc.
Referenced by AddMulticastGroupRoutes().
|
private |
Creates info of the beam.
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().
|
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.
void ns3::SatBeamHelper::EnableCreationTraces | ( | Ptr< OutputStreamWrapper > | stream, |
CallbackBase & | cb | ||
) |
Enables creation traces to be written in given file.
stream | stream for creation trace outputs |
cb | callback to connect traces |
Definition at line 1274 of file satellite-beam-helper.cc.
References m_gwHelper, m_orbiterHelper, and m_utHelper.
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
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.
std::string ns3::SatBeamHelper::GetBeamInfo | ( | ) | const |
Definition at line 1334 of file satellite-beam-helper.cc.
References CreateBeamInfo(), and m_beam.
std::list< std::pair< uint32_t, uint32_t > > ns3::SatBeamHelper::GetBeams | ( | ) | const |
satId | satellite ID |
Definition at line 1083 of file satellite-beam-helper.cc.
References m_beam.
|
private |
Gets satellite channel pair from requested map.
In case that channel pair is not found, new is created and returned.
fwdFrequencyId | ID of the frequency |
rtnFrequencyId | ID of the frequency |
isUserLink | flag indicating if link user link is requested (otherwise feeder link). |
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().
Ptr< SatGwHelper > ns3::SatBeamHelper::GetGwHelper | ( | ) | const |
Definition at line 1046 of file satellite-beam-helper.cc.
References m_gwHelper.
uint32_t ns3::SatBeamHelper::GetGwId | ( | uint32_t | satId, |
uint32_t | beamId | ||
) | const |
beamId | beam ID |
satId | satellite ID |
Definition at line 1007 of file satellite-beam-helper.cc.
References m_beam.
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.
gwId | ID of the GW |
Definition at line 1023 of file satellite-beam-helper.cc.
References m_gwNode.
Referenced by StoreGwNode().
|
virtual |
Get the type ID of instance.
Definition at line 232 of file satellite-beam-helper.cc.
References GetTypeId().
Ptr< SatNcc > ns3::SatBeamHelper::GetNcc | ( | ) | const |
Definition at line 1100 of file satellite-beam-helper.cc.
References m_ncc.
Ptr< SatOrbiterHelper > ns3::SatBeamHelper::GetOrbiterHelper | ( | ) | const |
Definition at line 1053 of file satellite-beam-helper.cc.
References m_orbiterHelper.
Ptr< PropagationDelayModel > ns3::SatBeamHelper::GetPropagationDelayModel | ( | uint32_t | satId, |
uint32_t | beamId, | ||
SatEnums::ChannelType_t | channelType | ||
) |
Definition at line 1728 of file satellite-beam-helper.cc.
References ns3::SatEnums::FORWARD_FEEDER_CH, ns3::SatEnums::FORWARD_USER_CH, m_flChannels, m_ulChannels, ns3::SatEnums::RETURN_FEEDER_CH, and ns3::SatEnums::RETURN_USER_CH.
Referenced by ns3::SatHelper::SatHelper().
SatEnums::PropagationDelayModel_t ns3::SatBeamHelper::GetPropagationDelayModelEnum | ( | ) |
Definition at line 1760 of file satellite-beam-helper.cc.
References m_propagationDelayModel.
|
static |
Get the type ID.
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().
uint32_t ns3::SatBeamHelper::GetUtBeamId | ( | Ptr< Node > | utNode | ) | const |
Get beam Id of the given UT.
utNode | Pointer 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().
Ptr< SatUtHelper > ns3::SatBeamHelper::GetUtHelper | ( | ) | const |
Definition at line 1039 of file satellite-beam-helper.cc.
References m_utHelper.
std::string ns3::SatBeamHelper::GetUtInfo | ( | ) | const |
Definition at line 1351 of file satellite-beam-helper.cc.
References ns3::GeoCoordinate::GetLatitude(), m_printDetailedInformationToCreationTraces, and m_utNode.
NodeContainer ns3::SatBeamHelper::GetUtNodes | ( | uint32_t | satId, |
uint32_t | beamId | ||
) | const |
satId | satellite ID |
beamId | beam ID |
Definition at line 1060 of file satellite-beam-helper.cc.
References m_utNode.
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.
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 | ||
) |
ut | a set of UT nodes |
gwNode | pointer of GW node |
gwId | id of the GW |
satId | ID of the satellite |
beamId | id of the beam |
rtnUlFreqId | id of the return user link frequency |
rtnFlFreqId | id of the return feeder link frequency |
fwdUlFreqId | id of the forward user link frequency |
fwdFlFreqId | id of the forward feeder link frequency |
routingCallback | the 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.
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().
|
private |
Install fading model to node, if fading model doesn't exist already in node.
node | Pointer to node |
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().
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 | ||
) |
orbiterNetDevice | Net device of satellite |
gwNode | pointer of GW node |
gwId | id of the GW |
satId | ID of the satellite linked to the UT |
beamId | id of the beam linked to the UT |
feederSatId | ID of the satellite linked to the GW |
feederBeamId | id of the beam linked to the GW |
feederLink | Feeder link channel |
rtnFlFreqId | id of the return feeder link frequency |
fwdFlFreqId | id of the forward feeder link frequency |
routingCallback | the 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.
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().
void ns3::SatBeamHelper::InstallIsls | ( | ) |
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 | ||
) |
orbiterNetDevice | Net device of satellite |
ut | a set of UT nodes |
gwNd | Net Device of GW |
satId | ID of the satellite |
beamId | id of the beam |
userLink | User link channel |
rtnUlFreqId | id of the return user link frequency |
fwdUlFreqId | id of the forward user link frequency |
routingCallback | the 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.
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().
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.
antennaPatterns | to antenna gain pattern container |
Definition at line 563 of file satellite-beam-helper.cc.
References m_antennaGainPatterns.
void ns3::SatBeamHelper::SetChannelAttribute | ( | std::string | name, |
const AttributeValue & | value | ||
) |
Set an attribute value to be propagated to each Channel created by the helper.
name | the name of the attribute to set |
value | the 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.
void ns3::SatBeamHelper::SetDeviceAttribute | ( | std::string | name, |
const AttributeValue & | value | ||
) |
Set an attribute value to be propagated to each NetDevice created by the helper.
name | the name of the attribute to set |
value | the 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.
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().
void ns3::SatBeamHelper::SetNccRoutingCallback | ( | SatNcc::UpdateRoutingCallback | cb | ) |
Attach an update routing callback to the NCC of this simulation.
cb | the callback to update routing after a terminal handover |
Definition at line 585 of file satellite-beam-helper.cc.
References m_ncc.
|
private |
Creates GW node according to given id and stores GW to map.
id | ID of the GW |
node | pointer to the GW |
Definition at line 1607 of file satellite-beam-helper.cc.
References GetGwNode(), and m_gwNode.
Referenced by InstallFeeder().
|
private |
Definition at line 392 of file satellite-beam-helper.h.
Referenced by DoDispose(), Install(), and SetAntennaGainPatterns().
|
private |
Definition at line 395 of file satellite-beam-helper.h.
Referenced by CreateBeamInfo(), DoDispose(), GetBeamInfo(), GetBeams(), GetGwId(), and Install().
|
private |
Definition at line 402 of file satellite-beam-helper.h.
Referenced by CreateBeamInfo(), and DoDispose().
|
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().
|
private |
Definition at line 382 of file satellite-beam-helper.h.
Referenced by GetChannelPair().
|
private |
Definition at line 381 of file satellite-beam-helper.h.
Referenced by GetChannelPair(), and GetTypeId().
|
private |
Definition at line 386 of file satellite-beam-helper.h.
Referenced by SatBeamHelper(), GetChannelPair(), and SetChannelAttribute().
|
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().
|
private |
Trace callback for creation traces.
Definition at line 407 of file satellite-beam-helper.h.
Referenced by GetTypeId().
|
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().
|
private |
Control message store in container for return link.
Definition at line 423 of file satellite-beam-helper.h.
Referenced by SatBeamHelper(), and GetTypeId().
|
private |
Indicates if using DVB-S2 or DVB-S2X.
Definition at line 556 of file satellite-beam-helper.h.
Referenced by SatBeamHelper(), and GetTypeId().
|
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().
|
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().
|
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().
|
private |
Definition at line 400 of file satellite-beam-helper.h.
Referenced by SatBeamHelper(), DoDispose(), GetChannelPair(), GetPropagationDelayModel(), and InstallFeeder().
|
private |
Definition at line 388 of file satellite-beam-helper.h.
Referenced by SatBeamHelper(), DoDispose(), EnableCreationTraces(), GetGwHelper(), and InstallFeeder().
|
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().
|
private |
Definition at line 396 of file satellite-beam-helper.h.
Referenced by CreateBeamInfo(), DoDispose(), GetGwNode(), and StoreGwNode().
|
private |
Vector constaining all the ISLs of the topology.
Definition at line 566 of file satellite-beam-helper.h.
Referenced by InstallIsls(), and SetIslRoutes().
|
private |
Common configuration for Markov model.
Definition at line 438 of file satellite-beam-helper.h.
Referenced by SatBeamHelper(), DoDispose(), and InstallFadingContainer().
|
private |
Definition at line 390 of file satellite-beam-helper.h.
Referenced by SatBeamHelper(), DoDispose(), GetNcc(), Install(), InstallFeeder(), InstallUser(), and SetNccRoutingCallback().
|
private |
Definition at line 387 of file satellite-beam-helper.h.
Referenced by SatBeamHelper(), DoDispose(), EnableCreationTraces(), GetOrbiterHelper(), Install(), and SetIslRoutes().
|
private |
Packet trace.
Definition at line 495 of file satellite-beam-helper.h.
Referenced by EnablePacketTrace().
|
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().
|
private |
Propagation delay model.
Definition at line 445 of file satellite-beam-helper.h.
Referenced by GetChannelPair(), GetPropagationDelayModelEnum(), and GetTypeId().
|
private |
The used collision model for random access.
Definition at line 471 of file satellite-beam-helper.h.
Referenced by SatBeamHelper(), and GetTypeId().
|
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().
|
private |
The used interference model for random access.
Definition at line 466 of file satellite-beam-helper.h.
Referenced by SatBeamHelper(), and GetTypeId().
|
private |
The used interference model for random access.
Definition at line 461 of file satellite-beam-helper.h.
Referenced by SatBeamHelper(), and GetTypeId().
|
private |
The used random access model.
Definition at line 456 of file satellite-beam-helper.h.
Referenced by SatBeamHelper(), and GetTypeId().
|
private |
Type of Return channel link results.
Definition at line 428 of file satellite-beam-helper.h.
Referenced by SatBeamHelper(), and GetTypeId().
|
private |
Definition at line 384 of file satellite-beam-helper.h.
Referenced by SatBeamHelper(), and InstallFeeder().
|
private |
Definition at line 399 of file satellite-beam-helper.h.
Referenced by SatBeamHelper(), DoDispose(), GetChannelPair(), GetPropagationDelayModel(), and InstallUser().
|
private |
Definition at line 389 of file satellite-beam-helper.h.
Referenced by SatBeamHelper(), DoDispose(), EnableCreationTraces(), GetUtHelper(), InstallFeeder(), and InstallUser().
|
private |
Definition at line 398 of file satellite-beam-helper.h.
Referenced by GetUtBeamId(), GetUtInfo(), GetUtNodes(), and Install().