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 (NodeContainer geoNodes, std::vector< std::pair< uint32_t, uint32_t >> isls, SatTypedefs::CarrierBandwidthConverter_t bandwidthConverterCb, uint32_t fwdLinkCarrierCount, uint32_t rtnLinkCarrierCount, Ptr< SatSuperframeSeq > seq, SatEnums::RegenerationMode_t forwardLinkRegenerationMode, SatEnums::RegenerationMode_t returnLinkRegenerationMode) | |
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 |
uint32_t | GetClosestSat (GeoCoordinate position) |
Get closest satellite to a ground station. More... | |
Ptr< SatGeoHelper > | GetGeoHelper () const |
NodeContainer | GetGeoSatNodes () const |
Gets Geo Satellite nodes. More... | |
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... | |
NodeContainer | GetGwNodes () const |
virtual TypeId | GetInstanceTypeId (void) const |
Get the type ID of instance. More... | |
Ptr< SatNcc > | GetNcc () const |
Ptr< PropagationDelayModel > | GetPropagationDelayModel (uint32_t satId, uint32_t beamId, SatEnums::ChannelType_t channelType) |
SatEnums::PropagationDelayModel_t | GetPropagationDelayModelEnum () |
SatEnums::RegenerationMode_t | GetReturnLinkRegenerationMode () const |
Get the regeneration mode used in satellites for return link. More... | |
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 () 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, SatUtMac::RoutingUpdateCallback routingCallback) |
Ptr< NetDevice > | InstallFeeder (Ptr< SatGeoNetDevice > geoNetDevice, Ptr< Node > gwNode, uint32_t gwId, uint32_t satId, uint32_t beamId, SatChannelPair::ChannelPair_t feederLink, uint32_t rtnFlFreqId, uint32_t fwdFlFreqId, SatUtMac::RoutingUpdateCallback routingCallback) |
void | InstallIsls () |
Create all the ISLs. More... | |
NetDeviceContainer | InstallUser (Ptr< SatGeoNetDevice > geoNetDevice, NodeContainer ut, Ptr< NetDevice > gwNd, uint32_t satId, uint32_t beamId, SatChannelPair::ChannelPair_t userLink, uint32_t rtnUlFreqId, uint32_t fwdUlFreqId, SatUtMac::RoutingUpdateCallback routingCallback) |
void | SetAntennaGainPatterns (Ptr< SatAntennaGainPatternContainer > antennaPatterns) |
Set the antenna gain patterns to be used when configuring the beams to the GEO 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... | |
void | SetStandard (SatEnums::Standard_t standard) |
Set the standard to either DVB or Lora. 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 |
SatEnums::RegenerationMode_t | m_forwardLinkRegenerationMode |
The regeneration mode used in satellites for forward link. More... | |
Ptr< SatGeoHelper > | m_geoHelper |
NodeContainer | m_geoNodes |
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< 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::RegenerationMode_t | m_returnLinkRegenerationMode |
The regeneration mode used in satellites for return link. More... | |
SatEnums::LinkResults_t | m_rlLinkResultsType |
Type of Return channel link results. More... | |
SatEnums::Standard_t | m_standard |
The global standard used. 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 SatGeoHelper to create needed objects.
SatBeamHelper creates needed routes between nodes inside satellite network.
Definition at line 62 of file satellite-beam-helper.h.
Define type CarrierBandwidthConverter.
Definition at line 73 of file satellite-beam-helper.h.
Define type CarrierFreqConverter.
Definition at line 68 of file satellite-beam-helper.h.
typedef std::pair<uint32_t, uint32_t> ns3::SatBeamHelper::FrequencyPair_t |
Definition at line 75 of file satellite-beam-helper.h.
typedef std::pair<uint32_t, uint32_t> ns3::SatBeamHelper::GwLink_t |
Definition at line 76 of file satellite-beam-helper.h.
typedef std::map<uint32_t, std::set<Ptr<Node> > > ns3::SatBeamHelper::MulticastBeamInfo_t |
Definition at line 81 of file satellite-beam-helper.h.
typedef std::set<Ptr<Node> > ns3::SatBeamHelper::MulticastBeamInfoItem_t |
Definition at line 79 of file satellite-beam-helper.h.
ns3::SatBeamHelper::SatBeamHelper | ( | ) |
Default constructor for SatBeamHelper (should not be used).
Definition at line 214 of file satellite-beam-helper.cc.
ns3::SatBeamHelper::SatBeamHelper | ( | NodeContainer | geoNodes, |
std::vector< std::pair< uint32_t, uint32_t >> | isls, | ||
SatTypedefs::CarrierBandwidthConverter_t | bandwidthConverterCb, | ||
uint32_t | fwdLinkCarrierCount, | ||
uint32_t | rtnLinkCarrierCount, | ||
Ptr< SatSuperframeSeq > | seq, | ||
SatEnums::RegenerationMode_t | forwardLinkRegenerationMode, | ||
SatEnums::RegenerationMode_t | returnLinkRegenerationMode | ||
) |
Constructor for SatBeamHelper.
geoNodes | Container of Geo Satellite node |
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 (containing superframe configurations). |
forwardLinkRegenerationMode | The regeneration mode used in satellites for forward link |
returnLinkRegenerationMode | The regeneration mode used in satellites for return link |
set dynamic load control values required by NCC
create default Markov & Loo configurations
Definition at line 235 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::SatLowerLayerServiceConf::GetRaAverageNormalizedOfferedLoadThreshold(), ns3::SatLowerLayerServiceConf::GetRaBackOffProbability(), ns3::SatLowerLayerServiceConf::GetRaBackOffTimeInMilliSeconds(), ns3::SatLowerLayerServiceConf::GetRaHighLoadBackOffProbability(), ns3::SatLowerLayerServiceConf::GetRaHighLoadBackOffTimeInMilliSeconds(), ns3::SatPhyRxCarrierConf::IF_TRACE, 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_geoHelper, m_geoNodes, m_gwHelper, m_markovConf, m_ncc, m_raCollisionModel, ns3::SatGeoHelper::RandomAccessSettings_s::m_raCollisionModel, ns3::SatGwHelper::RandomAccessSettings_s::m_raCollisionModel, ns3::SatUtHelper::RandomAccessSettings_s::m_raCollisionModel, m_raConstantErrorRate, ns3::SatGwHelper::RandomAccessSettings_s::m_raConstantErrorRate, ns3::SatGeoHelper::RandomAccessSettings_s::m_raFwdInterferenceModel, m_raInterferenceEliminationModel, ns3::SatGeoHelper::RandomAccessSettings_s::m_raInterferenceEliminationModel, ns3::SatGwHelper::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::SatGeoHelper::RandomAccessSettings_s::m_randomAccessModel, ns3::SatGwHelper::RandomAccessSettings_s::m_randomAccessModel, ns3::SatUtHelper::RandomAccessSettings_s::m_randomAccessModel, ns3::SatGeoHelper::RandomAccessSettings_s::m_raRtnInterferenceModel, m_returnLinkRegenerationMode, 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(), and ns3::SatControlMsgContainer::Send().
|
inlinevirtual |
Destructor for SatBeamHelper.
Definition at line 125 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 1088 of file satellite-beam-helper.cc.
References AddMulticastRouteToUt(), GetGwNodes(), 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 1655 of file satellite-beam-helper.cc.
Referenced by AddMulticastGroupRoutes().
|
private |
Creates info of the beam.
Definition at line 1394 of file satellite-beam-helper.cc.
References ns3::GeoCoordinate::GetLatitude(), m_beam, m_beamFreqs, m_geoNodes, m_gwNode, and m_printDetailedInformationToCreationTraces.
Referenced by GetBeamInfo().
|
virtual |
Dispose of this class instance.
Definition at line 462 of file satellite-beam-helper.cc.
References m_antennaGainPatterns, m_beam, m_beamFreqs, m_flChannels, m_geoHelper, m_gwHelper, m_gwNode, m_markovConf, m_ncc, 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 1233 of file satellite-beam-helper.cc.
References m_geoHelper, m_gwHelper, 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 1266 of file satellite-beam-helper.cc.
References ns3::SatPacketTrace::AddTraceEntry(), ns3::SatEnums::DVB, m_forwardLinkRegenerationMode, m_packetTrace, m_returnLinkRegenerationMode, m_standard, ns3::SatEnums::REGENERATION_LINK, and ns3::SatEnums::REGENERATION_NETWORK.
std::string ns3::SatBeamHelper::GetBeamInfo | ( | ) | const |
Definition at line 1314 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 1034 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 1492 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().
uint32_t ns3::SatBeamHelper::GetClosestSat | ( | GeoCoordinate | position | ) |
Get closest satellite to a ground station.
position | The position of the ground station |
Definition at line 1244 of file satellite-beam-helper.cc.
References m_geoNodes, and ns3::GeoCoordinate::ToVector().
Ptr< SatGeoHelper > ns3::SatBeamHelper::GetGeoHelper | ( | ) | const |
Definition at line 970 of file satellite-beam-helper.cc.
References m_geoHelper.
NodeContainer ns3::SatBeamHelper::GetGeoSatNodes | ( | ) | const |
Gets Geo Satellite nodes.
Definition at line 949 of file satellite-beam-helper.cc.
References m_geoNodes.
Ptr< SatGwHelper > ns3::SatBeamHelper::GetGwHelper | ( | ) | const |
Definition at line 963 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 917 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 933 of file satellite-beam-helper.cc.
References m_gwNode.
Referenced by StoreGwNode().
NodeContainer ns3::SatBeamHelper::GetGwNodes | ( | ) | const |
Definition at line 977 of file satellite-beam-helper.cc.
References m_gwNode.
Referenced by AddMulticastGroupRoutes().
|
virtual |
Get the type ID of instance.
Definition at line 207 of file satellite-beam-helper.cc.
References GetTypeId().
Ptr< SatNcc > ns3::SatBeamHelper::GetNcc | ( | ) | const |
Definition at line 1051 of file satellite-beam-helper.cc.
References m_ncc.
Ptr< PropagationDelayModel > ns3::SatBeamHelper::GetPropagationDelayModel | ( | uint32_t | satId, |
uint32_t | beamId, | ||
SatEnums::ChannelType_t | channelType | ||
) |
Definition at line 1703 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 1735 of file satellite-beam-helper.cc.
References m_propagationDelayModel.
SatEnums::RegenerationMode_t ns3::SatBeamHelper::GetReturnLinkRegenerationMode | ( | ) | const |
Get the regeneration mode used in satellites for return link.
Definition at line 1080 of file satellite-beam-helper.cc.
References m_returnLinkRegenerationMode.
|
static |
Get the type ID.
Definition at line 70 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 1059 of file satellite-beam-helper.cc.
References m_utNode.
Referenced by AddMulticastGroupRoutes().
Ptr< SatUtHelper > ns3::SatBeamHelper::GetUtHelper | ( | ) | const |
Definition at line 956 of file satellite-beam-helper.cc.
References m_utHelper.
std::string ns3::SatBeamHelper::GetUtInfo | ( | ) | const |
Definition at line 1331 of file satellite-beam-helper.cc.
References ns3::GeoCoordinate::GetLatitude(), m_printDetailedInformationToCreationTraces, and m_utNode.
NodeContainer ns3::SatBeamHelper::GetUtNodes | ( | ) | const |
Definition at line 993 of file satellite-beam-helper.cc.
References m_utNode.
NodeContainer ns3::SatBeamHelper::GetUtNodes | ( | uint32_t | satId, |
uint32_t | beamId | ||
) | const |
satId | satellite ID |
beamId | beam ID |
Definition at line 1011 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 480 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, | ||
SatUtMac::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 527 of file satellite-beam-helper.cc.
References ns3::SatEnums::FADING_OFF, GetChannelPair(), InstallFadingContainer(), InstallFeeder(), InstallUser(), m_antennaGainPatterns, m_beam, m_bstpController, m_fadingModel, m_forwardLinkRegenerationMode, m_geoHelper, m_geoNodes, m_gwNdMap, m_returnLinkRegenerationMode, 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 1609 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< SatGeoNetDevice > | geoNetDevice, |
Ptr< Node > | gwNode, | ||
uint32_t | gwId, | ||
uint32_t | satId, | ||
uint32_t | beamId, | ||
SatChannelPair::ChannelPair_t | feederLink, | ||
uint32_t | rtnFlFreqId, | ||
uint32_t | fwdFlFreqId, | ||
SatUtMac::RoutingUpdateCallback | routingCallback | ||
) |
geoNetDevice | Net device of satellite |
gwNode | pointer of GW node |
gwId | id of the GW |
satId | ID of the satellite |
beamId | id of the beam |
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 661 of file satellite-beam-helper.cc.
References ns3::SatConstVariables::BITS_PER_BYTE, ns3::SatEnums::DVB, ns3::SatEnums::FADING_OFF, InstallFadingContainer(), ns3::SatEnums::LORA, m_enableTracesOnReturnLink, m_fadingModel, m_forwardLinkRegenerationMode, m_gwHelper, m_ncc, m_returnLinkRegenerationMode, m_standard, 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(), and ns3::SatGwMac::TbtpSent().
Referenced by Install().
void ns3::SatBeamHelper::InstallIsls | ( | ) |
Create all the ISLs.
Definition at line 876 of file satellite-beam-helper.cc.
References m_geoNodes, and m_isls.
NetDeviceContainer ns3::SatBeamHelper::InstallUser | ( | Ptr< SatGeoNetDevice > | geoNetDevice, |
NodeContainer | ut, | ||
Ptr< NetDevice > | gwNd, | ||
uint32_t | satId, | ||
uint32_t | beamId, | ||
SatChannelPair::ChannelPair_t | userLink, | ||
uint32_t | rtnUlFreqId, | ||
uint32_t | fwdUlFreqId, | ||
SatUtMac::RoutingUpdateCallback | routingCallback | ||
) |
geoNetDevice | 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 789 of file satellite-beam-helper.cc.
References ns3::SatEnums::DVB, ns3::SatChannelPair::GetChannelPair(), ns3::SatEnums::LORA, m_enableTracesOnReturnLink, m_forwardLinkRegenerationMode, m_ncc, m_returnLinkRegenerationMode, m_standard, 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 GEO 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 497 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 511 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 505 of file satellite-beam-helper.cc.
void ns3::SatBeamHelper::SetIslRoutes | ( | ) |
Set ISL routes.
Definition at line 909 of file satellite-beam-helper.cc.
References m_geoHelper, m_geoNodes, and m_isls.
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 519 of file satellite-beam-helper.cc.
References m_ncc.
void ns3::SatBeamHelper::SetStandard | ( | SatEnums::Standard_t | standard | ) |
Set the standard to either DVB or Lora.
Definition at line 491 of file satellite-beam-helper.cc.
References m_standard.
|
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 1583 of file satellite-beam-helper.cc.
References GetGwNode(), and m_gwNode.
Referenced by InstallFeeder().
|
private |
Definition at line 428 of file satellite-beam-helper.h.
Referenced by DoDispose(), Install(), and SetAntennaGainPatterns().
|
private |
Definition at line 431 of file satellite-beam-helper.h.
Referenced by CreateBeamInfo(), DoDispose(), GetBeamInfo(), GetBeams(), GetGwId(), and Install().
|
private |
Definition at line 438 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 526 of file satellite-beam-helper.h.
Referenced by SatBeamHelper(), Init(), and Install().
|
private |
Definition at line 417 of file satellite-beam-helper.h.
Referenced by GetChannelPair().
|
private |
Definition at line 416 of file satellite-beam-helper.h.
Referenced by GetChannelPair(), and GetTypeId().
|
private |
Definition at line 421 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 487 of file satellite-beam-helper.h.
Referenced by GetChannelPair(), and GetTypeId().
|
private |
Trace callback for creation traces.
Definition at line 443 of file satellite-beam-helper.h.
Referenced by GetTypeId().
|
private |
Control message store time in container for forward link.
Definition at line 454 of file satellite-beam-helper.h.
Referenced by SatBeamHelper(), and GetTypeId().
|
private |
Control message store in container for return link.
Definition at line 459 of file satellite-beam-helper.h.
Referenced by SatBeamHelper(), and GetTypeId().
|
private |
Indicates if using DVB-S2 or DVB-S2X.
Definition at line 597 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 520 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 536 of file satellite-beam-helper.h.
Referenced by SatBeamHelper(), GetTypeId(), InstallFeeder(), and InstallUser().
|
private |
Configured fading model.
Set as an attribute.
Definition at line 469 of file satellite-beam-helper.h.
Referenced by SatBeamHelper(), GetTypeId(), Install(), InstallFadingContainer(), and InstallFeeder().
|
private |
Definition at line 436 of file satellite-beam-helper.h.
Referenced by SatBeamHelper(), DoDispose(), GetChannelPair(), and GetPropagationDelayModel().
|
private |
The regeneration mode used in satellites for forward link.
Definition at line 602 of file satellite-beam-helper.h.
Referenced by EnablePacketTrace(), Install(), InstallFeeder(), and InstallUser().
|
private |
Definition at line 422 of file satellite-beam-helper.h.
Referenced by SatBeamHelper(), DoDispose(), EnableCreationTraces(), GetGeoHelper(), Install(), and SetIslRoutes().
|
private |
Definition at line 425 of file satellite-beam-helper.h.
Referenced by SatBeamHelper(), CreateBeamInfo(), GetClosestSat(), GetGeoSatNodes(), Install(), InstallIsls(), and SetIslRoutes().
|
private |
Definition at line 423 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 612 of file satellite-beam-helper.h.
Referenced by Install().
|
private |
Definition at line 432 of file satellite-beam-helper.h.
Referenced by CreateBeamInfo(), DoDispose(), GetGwNode(), GetGwNodes(), and StoreGwNode().
|
private |
Vector constaining all the ISLs of the topology.
Definition at line 617 of file satellite-beam-helper.h.
Referenced by InstallIsls(), and SetIslRoutes().
|
private |
Common configuration for Markov model.
Definition at line 474 of file satellite-beam-helper.h.
Referenced by SatBeamHelper(), DoDispose(), and InstallFadingContainer().
|
private |
Definition at line 426 of file satellite-beam-helper.h.
Referenced by SatBeamHelper(), DoDispose(), GetNcc(), InstallFeeder(), InstallUser(), and SetNccRoutingCallback().
|
private |
Packet trace.
Definition at line 531 of file satellite-beam-helper.h.
Referenced by EnablePacketTrace().
|
private |
Flag indicating whether to print detailed information to the creation traces.
Definition at line 449 of file satellite-beam-helper.h.
Referenced by CreateBeamInfo(), GetTypeId(), and GetUtInfo().
|
private |
Propagation delay model.
Definition at line 481 of file satellite-beam-helper.h.
Referenced by GetChannelPair(), GetPropagationDelayModelEnum(), and GetTypeId().
|
private |
The used collision model for random access.
Definition at line 507 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 513 of file satellite-beam-helper.h.
Referenced by SatBeamHelper(), and GetTypeId().
|
private |
The used interference model for random access.
Definition at line 502 of file satellite-beam-helper.h.
Referenced by SatBeamHelper(), and GetTypeId().
|
private |
The used interference model for random access.
Definition at line 497 of file satellite-beam-helper.h.
Referenced by SatBeamHelper(), and GetTypeId().
|
private |
The used random access model.
Definition at line 492 of file satellite-beam-helper.h.
Referenced by SatBeamHelper(), and GetTypeId().
|
private |
The regeneration mode used in satellites for return link.
Definition at line 607 of file satellite-beam-helper.h.
Referenced by SatBeamHelper(), EnablePacketTrace(), GetReturnLinkRegenerationMode(), Install(), InstallFeeder(), and InstallUser().
|
private |
Type of Return channel link results.
Definition at line 464 of file satellite-beam-helper.h.
Referenced by SatBeamHelper(), and GetTypeId().
|
private |
The global standard used.
Can be either DVB or Lora
Definition at line 592 of file satellite-beam-helper.h.
Referenced by EnablePacketTrace(), InstallFeeder(), InstallUser(), and SetStandard().
|
private |
Definition at line 419 of file satellite-beam-helper.h.
Referenced by SatBeamHelper(), and InstallFeeder().
|
private |
Definition at line 435 of file satellite-beam-helper.h.
Referenced by SatBeamHelper(), DoDispose(), GetChannelPair(), GetPropagationDelayModel(), and InstallUser().
|
private |
Definition at line 424 of file satellite-beam-helper.h.
Referenced by SatBeamHelper(), DoDispose(), EnableCreationTraces(), GetUtHelper(), InstallFeeder(), and InstallUser().
|
private |
Definition at line 434 of file satellite-beam-helper.h.
Referenced by GetUtBeamId(), GetUtInfo(), GetUtNodes(), and Install().