23 #ifndef SAT_ORBITER_HELPER_H
24 #define SAT_ORBITER_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-ncc.h"
35 #include "ns3/satellite-orbiter-feeder-mac.h"
36 #include "ns3/satellite-orbiter-net-device.h"
37 #include "ns3/satellite-phy.h"
38 #include "ns3/satellite-scpc-scheduler.h"
39 #include "ns3/satellite-superframe-sequence.h"
40 #include "ns3/satellite-typedefs.h"
41 #include "ns3/traced-callback.h"
89 uint32_t rtnLinkCarrierCount,
90 uint32_t fwdLinkCarrierCount,
91 Ptr<SatSuperframeSeq> seq,
106 void Initialize(Ptr<SatLinkResultsFwd> lrFwd, Ptr<SatLinkResultsRtn> lrRcs2);
159 Ptr<NetDevice>
Install(Ptr<Node> n);
169 Ptr<NetDevice>
Install(std::string aName);
196 Ptr<SatAntennaGainPattern> userAgp,
197 Ptr<SatAntennaGainPattern> feederAgp,
201 uint32_t userBeamId);
217 Ptr<SatAntennaGainPattern> feederAgp,
221 uint32_t userBeamId);
236 Ptr<SatAntennaGainPattern> userAgp,
239 uint32_t userBeamId) = 0;
253 void SetIslRoutes(std::vector<std::pair<uint32_t, uint32_t>> isls);
338 std::map<std::pair<uint32_t, uint32_t>, Ptr<SatOrbiterFeederMac>>
m_gwMacMap;
IslArbiterType_t
Choose the arbiter to use to route packets on ISLs.
RandomAccessModel_t
The defined random access models.
Callback< Ptr< SatControlMessage >, uint32_t > ReadCtrlMsgCallback
Callback to read control messages from container storing control messages.
Creates needed objects for Satellite node like SatorbiterNetDevice objects.
virtual ~SatOrbiterHelper()
Ptr< SatLinkResults > m_rtnLinkResults
Return channel link results (DVB-RCS2) are created if ErrorModel is configured to be AVI.
SatPhy::InterferenceModel m_daFwdLinkInterferenceModel
SatMac::ReadCtrlMsgCallback m_fwdReadCtrlCb
Control forward link messages callback.
uint32_t m_rtnLinkCarrierCount
SatEnums::IslArbiterType_t m_islArbiterType
Arbiter in use to route packets on ISLs.
virtual void AttachChannelsUser(Ptr< SatOrbiterNetDevice > dev, Ptr< SatChannel > uf, Ptr< SatChannel > ur, Ptr< SatAntennaGainPattern > userAgp, Ptr< SatNcc > ncc, uint32_t satId, uint32_t userBeamId)=0
void Initialize(Ptr< SatLinkResultsFwd > lrFwd, Ptr< SatLinkResultsRtn > lrRcs2)
std::map< std::pair< uint32_t, uint32_t >, Ptr< SatOrbiterFeederMac > > m_gwMacMap
Map used in regenerative mode to store if MAC already created for a given pair SAT ID / GW ID.
void SetFeederPhyAttribute(std::string name, const AttributeValue &value)
Set an attribute value to be propagated to each Feeder Phy created by the helper.
double m_fwdDaConstantErrorRate
void SetUserPhyAttribute(std::string name, const AttributeValue &value)
Set an attribute value to be propagated to each User Phy created by the helper.
TypeId GetInstanceTypeId(void) const
RandomAccessSettings_s m_raSettings
The used random access model settings.
ObjectFactory m_deviceFactory
std::vector< uint32_t > m_nodeIds
Satellites node id.
double m_rtnDaConstantErrorRate
SatPhy::ErrorModel m_rtnErrorModel
NetDeviceContainer InstallAllOrbiters()
This method creates a ns3::SatOrbiterNetDevices with the requested attributes and associate the resul...
Ptr< SatBbFrameConf > m_bbFrameConfFwd
void AttachChannelsFeeder(Ptr< SatOrbiterNetDevice > dev, Ptr< SatChannel > ff, Ptr< SatChannel > fr, Ptr< SatAntennaGainPattern > feederAgp, Ptr< SatNcc > ncc, uint32_t satId, uint32_t gwId, uint32_t userBeamId)
TracedCallback< std::string > m_creationTrace
Trace callback for creation traces.
Ptr< SatLinkResults > m_fwdLinkResults
Forward channel link results (DVB-S2) are created if ErrorModel is configured to be AVI.
Ptr< SatSuperframeSeq > m_superframeSeq
Superframe sequence.
SatPhy::InterferenceModel m_daRtnLinkInterferenceModel
virtual Ptr< SatOrbiterNetDevice > CreateOrbiterNetDevice()=0
Create a SatOrbiterNetDevice instance, with correct type infered from child classes.
SatPhy::ErrorModel m_fwdErrorModel
void AttachChannels(Ptr< NetDevice > dev, Ptr< SatChannel > ff, Ptr< SatChannel > fr, Ptr< SatChannel > uf, Ptr< SatChannel > ur, Ptr< SatAntennaGainPattern > userAgp, Ptr< SatAntennaGainPattern > feederAgp, Ptr< SatNcc > ncc, uint32_t satId, uint32_t gwId, uint32_t userBeamId)
uint32_t m_fwdLinkCarrierCount
SatTypedefs::CarrierBandwidthConverter_t m_carrierBandwidthConverter
void SetIslRoutes(std::vector< std::pair< uint32_t, uint32_t >> isls)
Set ISL routes.
void EnableCreationTraces(Ptr< OutputStreamWrapper > stream, CallbackBase &cb)
Enables creation traces to be written in given file.
Ptr< SatBbFrameConf > m_bbFrameConfRtn
SatOrbiterHelper()
Default constructor.
Ptr< NetDevice > Install(Ptr< Node > n)
SatMac::ReadCtrlMsgCallback m_rtnReadCtrlCb
Control return link messages callback.
void SetDeviceAttribute(std::string name, const AttributeValue &value)
Set an attribute value to be propagated to each NetDevice created by the helper.
static TypeId GetTypeId(void)
Get the type ID.
std::map< uint32_t, uint16_t > m_deviceCount
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::InterferenceModel m_raFwdInterferenceModel
SatPhyRxCarrierConf::InterferenceModel m_raRtnInterferenceModel
SatEnums::RandomAccessModel_t m_randomAccessModel
SatPhyRxCarrierConf::RandomAccessCollisionModel m_raCollisionModel
SatPhyRxCarrierConf::InterferenceEliminationModel m_raInterferenceEliminationModel