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"
88 uint32_t rtnLinkCarrierCount,
89 uint32_t fwdLinkCarrierCount,
90 Ptr<SatSuperframeSeq> seq,
105 void Initialize(Ptr<SatLinkResultsFwd> lrFwd, Ptr<SatLinkResultsRtn> lrRcs2);
158 Ptr<NetDevice>
Install(Ptr<Node> n);
168 Ptr<NetDevice>
Install(std::string aName);
195 Ptr<SatAntennaGainPattern> userAgp,
196 Ptr<SatAntennaGainPattern> feederAgp,
200 uint32_t userBeamId);
216 Ptr<SatAntennaGainPattern> feederAgp,
220 uint32_t userBeamId);
235 Ptr<SatAntennaGainPattern> userAgp,
238 uint32_t userBeamId) = 0;
252 void SetIslRoutes(std::vector<std::pair<uint32_t, uint32_t>> isls);
337 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.
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.
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
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 EnableCreationTraces(Ptr< OutputStreamWrapper > stream, CallbackBase &cb)
Enables creation traces to be written in given file.
virtual Ptr< SatOrbiterNetDevice > CreateOrbiterNetDevice()=0
Create a SatOrbiterNetDevice instance, with correct type infered from child classes.
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
void SetIslRoutes(std::vector< std::pair< uint32_t, uint32_t > > isls)
Set ISL routes.
SatPhyRxCarrierConf::ErrorModel ErrorModel
Define ErrorModel in SatPhy.
SatPhyRxCarrierConf::InterferenceModel InterferenceModel
Define InterferenceModel in SatPhy.
InterferenceEliminationModel
Interference cancelation 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