23 #ifndef SAT_GEO_HELPER_H
24 #define SAT_GEO_HELPER_H
26 #include "ns3/error-model.h"
27 #include "ns3/net-device-container.h"
28 #include "ns3/node-container.h"
29 #include "ns3/object-factory.h"
30 #include "ns3/output-stream-wrapper.h"
31 #include "ns3/satellite-bbframe-conf.h"
32 #include "ns3/satellite-channel.h"
33 #include "ns3/satellite-fwd-link-scheduler.h"
34 #include "ns3/satellite-geo-feeder-mac.h"
35 #include "ns3/satellite-geo-net-device.h"
36 #include "ns3/satellite-phy.h"
37 #include "ns3/satellite-scpc-scheduler.h"
38 #include "ns3/satellite-superframe-sequence.h"
39 #include "ns3/satellite-typedefs.h"
40 #include "ns3/traced-callback.h"
84 uint32_t rtnLinkCarrierCount,
85 uint32_t fwdLinkCarrierCount,
86 Ptr<SatSuperframeSeq> seq,
101 void Initialize(Ptr<SatLinkResultsFwd> lrFwd, Ptr<SatLinkResultsRtn> lrRcs2);
145 NetDeviceContainer
Install(NodeContainer c);
155 Ptr<NetDevice>
Install(Ptr<Node> n);
165 Ptr<NetDevice>
Install(std::string aName);
186 Ptr<SatAntennaGainPattern> userAgp,
187 Ptr<SatAntennaGainPattern> feederAgp,
209 Ptr<SatAntennaGainPattern> feederAgp,
230 Ptr<SatAntennaGainPattern> userAgp,
249 void SetIslRoutes(NodeContainer geoNodes, std::vector<std::pair<uint32_t, uint32_t>> isls);
334 std::map<std::pair<uint32_t, uint32_t>, Ptr<SatGeoFeederMac>>
m_gwMacMap;
IslArbiterType_t
Choose the arbiter to use to route packets on ISLs.
RandomAccessModel_t
The defined random access models.
RegenerationMode_t
The regeneration mode used in satellites.
Creates needed objects for Geo Satellite node like SatGeoNetDevice objects.
uint32_t m_rtnLinkCarrierCount
SatPhy::InterferenceModel m_daFwdLinkInterferenceModel
void SetIslRoutes(NodeContainer geoNodes, std::vector< std::pair< uint32_t, uint32_t >> isls)
Set ISL routes.
std::vector< uint32_t > m_nodeIds
GEO satellites node id.
ObjectFactory m_deviceFactory
SatGeoHelper()
Default constructor.
double m_rtnDaConstantErrorRate
RandomAccessSettings_s m_raSettings
The used random access model settings.
NetDeviceContainer Install(NodeContainer c)
void AttachChannelsUser(Ptr< SatGeoNetDevice > dev, Ptr< SatChannel > uf, Ptr< SatChannel > ur, Ptr< SatAntennaGainPattern > userAgp, uint32_t satId, uint32_t userBeamId, SatEnums::RegenerationMode_t forwardLinkRegenerationMode, SatEnums::RegenerationMode_t returnLinkRegenerationMode)
SatPhy::InterferenceModel m_daRtnLinkInterferenceModel
std::map< uint32_t, uint16_t > m_deviceCount
void SetDeviceAttribute(std::string name, const AttributeValue &value)
Set an attribute value to be propagated to each NetDevice created by the helper.
SatMac::ReadCtrlMsgCallback m_fwdReadCtrlCb
Control forward link messages callback.
Ptr< SatLinkResults > m_rtnLinkResults
Return channel link results (DVB-RCS2) are created if ErrorModel is configured to be AVI.
SatPhy::ErrorModel m_rtnErrorModel
Ptr< SatSuperframeSeq > m_superframeSeq
Superframe sequence.
void EnableCreationTraces(Ptr< OutputStreamWrapper > stream, CallbackBase &cb)
Enables creation traces to be written in given file.
SatTypedefs::CarrierBandwidthConverter_t m_carrierBandwidthConverter
Ptr< SatLinkResults > m_fwdLinkResults
Forward channel link results (DVB-S2) are created if ErrorModel is configured to be AVI.
void Initialize(Ptr< SatLinkResultsFwd > lrFwd, Ptr< SatLinkResultsRtn > lrRcs2)
void SetFeederPhyAttribute(std::string name, const AttributeValue &value)
Set an attribute value to be propagated to each Feeder Phy created by the helper.
std::map< std::pair< uint32_t, uint32_t >, Ptr< SatGeoFeederMac > > m_gwMacMap
Map used in regenerative mode to store if MAC already created for a given pair SAT ID / GW ID.
void SetUserPhyAttribute(std::string name, const AttributeValue &value)
Set an attribute value to be propagated to each User Phy created by the helper.
SatMac::ReadCtrlMsgCallback m_rtnReadCtrlCb
Control return link messages callback.
SatEnums::IslArbiterType_t m_islArbiterType
Arbiter in use to route packets on ISLs.
TracedCallback< std::string > m_creationTrace
Trace callback for creation traces.
void AttachChannelsFeeder(Ptr< SatGeoNetDevice > dev, Ptr< SatChannel > ff, Ptr< SatChannel > fr, Ptr< SatAntennaGainPattern > feederAgp, uint32_t satId, uint32_t gwId, uint32_t userBeamId, SatEnums::RegenerationMode_t forwardLinkRegenerationMode, SatEnums::RegenerationMode_t returnLinkRegenerationMode)
SatPhy::ErrorModel m_fwdErrorModel
Ptr< SatBbFrameConf > m_bbFrameConfFwd
uint32_t m_fwdLinkCarrierCount
Ptr< SatBbFrameConf > m_bbFrameConfRtn
void AttachChannels(Ptr< NetDevice > dev, Ptr< SatChannel > ff, Ptr< SatChannel > fr, Ptr< SatChannel > uf, Ptr< SatChannel > ur, Ptr< SatAntennaGainPattern > userAgp, Ptr< SatAntennaGainPattern > feederAgp, uint32_t satId, uint32_t gwId, uint32_t userBeamId, SatEnums::RegenerationMode_t forwardLinkRegenerationMode, SatEnums::RegenerationMode_t returnLinkRegenerationMode)
double m_fwdDaConstantErrorRate
TypeId GetInstanceTypeId(void) const
static TypeId GetTypeId(void)
Get the type ID.
Callback< Ptr< SatControlMessage >, uint32_t > ReadCtrlMsgCallback
Callback to read control messages from container storing control messages.
InterferenceEliminationModel
Interference cancelation model enum.
ErrorModel
Error model enum.
RandomAccessCollisionModel
Random access collision model enum.
InterferenceModel
Interference model enum.
Callback< double, SatEnums::ChannelType_t, uint32_t, SatEnums::CarrierBandwidthType_t > CarrierBandwidthConverter_t
Callback for carrier bandwidths.
SatArqSequenceNumber is handling the sequence numbers for the ARQ process.
Random access setting options.
SatPhyRxCarrierConf::RandomAccessCollisionModel m_raCollisionModel
SatPhyRxCarrierConf::InterferenceEliminationModel m_raInterferenceEliminationModel
SatPhyRxCarrierConf::InterferenceModel m_raRtnInterferenceModel
SatPhyRxCarrierConf::InterferenceModel m_raFwdInterferenceModel
SatEnums::RandomAccessModel_t m_randomAccessModel