Creates needed objects for Geo Satellite node like SatGeoNetDevice objects. More...
#include "satellite-geo-helper.h"
Classes | |
struct | RandomAccessSettings_s |
Random access setting options. More... | |
Public Member Functions | |
SatGeoHelper () | |
Default constructor. More... | |
SatGeoHelper (SatTypedefs::CarrierBandwidthConverter_t bandwidthConverterCb, uint32_t rtnLinkCarrierCount, uint32_t fwdLinkCarrierCount, Ptr< SatSuperframeSeq > seq, SatMac::ReadCtrlMsgCallback fwdReadCb, SatMac::ReadCtrlMsgCallback rtnReadCb, RandomAccessSettings_s randomAccessSettings) | |
Create a SatGeoHelper to make life easier when creating Satellite point to point network connections. More... | |
virtual | ~SatGeoHelper () |
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) |
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) |
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) |
void | EnableCreationTraces (Ptr< OutputStreamWrapper > stream, CallbackBase &cb) |
Enables creation traces to be written in given file. More... | |
TypeId | GetInstanceTypeId (void) const |
void | Initialize (Ptr< SatLinkResultsFwd > lrFwd, Ptr< SatLinkResultsRtn > lrRcs2) |
NetDeviceContainer | Install (NodeContainer c) |
Ptr< NetDevice > | Install (Ptr< Node > n) |
Ptr< NetDevice > | Install (std::string aName) |
void | SetDeviceAttribute (std::string name, const AttributeValue &value) |
Set an attribute value to be propagated to each NetDevice created by the helper. More... | |
void | SetFeederPhyAttribute (std::string name, const AttributeValue &value) |
Set an attribute value to be propagated to each Feeder Phy created by the helper. More... | |
void | SetIslRoutes (NodeContainer geoNodes, std::vector< std::pair< uint32_t, uint32_t >> isls) |
Set ISL routes. More... | |
void | SetUserPhyAttribute (std::string name, const AttributeValue &value) |
Set an attribute value to be propagated to each User Phy created by the helper. More... | |
Static Public Member Functions | |
static TypeId | GetTypeId (void) |
Get the type ID. More... | |
Creates needed objects for Geo Satellite node like SatGeoNetDevice objects.
Handles needed configuration for the Geo Satellite node.
Definition at line 52 of file satellite-geo-helper.h.
ns3::SatGeoHelper::SatGeoHelper | ( | ) |
Default constructor.
Definition at line 140 of file satellite-geo-helper.cc.
ns3::SatGeoHelper::SatGeoHelper | ( | SatTypedefs::CarrierBandwidthConverter_t | bandwidthConverterCb, |
uint32_t | rtnLinkCarrierCount, | ||
uint32_t | fwdLinkCarrierCount, | ||
Ptr< SatSuperframeSeq > | seq, | ||
SatMac::ReadCtrlMsgCallback | fwdReadCb, | ||
SatMac::ReadCtrlMsgCallback | rtnReadCb, | ||
RandomAccessSettings_s | randomAccessSettings | ||
) |
Create a SatGeoHelper to make life easier when creating Satellite point to point network connections.
Definition at line 161 of file satellite-geo-helper.cc.
References m_deviceFactory.
|
inlinevirtual |
Definition at line 91 of file satellite-geo-helper.h.
void ns3::SatGeoHelper::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 | ||
) |
Definition at line 294 of file satellite-geo-helper.cc.
References AttachChannelsFeeder(), and AttachChannelsUser().
void ns3::SatGeoHelper::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 | ||
) |
Simple channel estimation, which does not do actually anything
Definition at line 336 of file satellite-geo-helper.cc.
References ns3::SatEnums::EFFECTIVE_BANDWIDTH, ns3::SatEnums::GEO, ns3::SatLlc::GetSchedulingContexts(), m_bbFrameConfRtn, ns3::SatPhy::CreateParam_t::m_beamId, m_carrierBandwidthConverter, m_daFwdLinkInterferenceModel, ns3::SatPhy::CreateParam_t::m_device, m_fwdDaConstantErrorRate, m_fwdErrorModel, m_fwdLinkCarrierCount, m_fwdLinkResults, m_fwdReadCtrlCb, m_gwMacMap, m_nodeIds, ns3::SatGeoHelper::RandomAccessSettings_s::m_raCollisionModel, ns3::SatGeoHelper::RandomAccessSettings_s::m_raFwdInterferenceModel, ns3::SatGeoHelper::RandomAccessSettings_s::m_raInterferenceEliminationModel, ns3::SatGeoHelper::RandomAccessSettings_s::m_randomAccessModel, m_raSettings, ns3::SatPhy::CreateParam_t::m_rxCh, ns3::SatPhy::CreateParam_t::m_satId, ns3::SatPhy::CreateParam_t::m_standard, m_superframeSeq, ns3::SatPhy::CreateParam_t::m_txCh, ns3::SatGeoLlc::NotifyTxOpportunity(), ns3::SatEnums::NT_SAT, ns3::SatLlc::Receive(), ns3::SatGeoFeederMac::Receive(), ns3::SatGeoNetDevice::ReceiveFeeder(), ns3::SatGeoNetDevice::ReceivePacketFeeder(), ns3::SatEnums::REGENERATION_LINK, ns3::SatEnums::REGENERATION_NETWORK, ns3::SatEnums::REGENERATION_PHY, ns3::SatEnums::RETURN_FEEDER_CH, ns3::SatGeoFeederPhy::SendPduWithParams(), ns3::SatConstVariables::SUPERFRAME_SEQUENCE, and ns3::SatEnums::TRANSPARENT.
Referenced by AttachChannels().
void ns3::SatGeoHelper::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 | ||
) |
Simple channel estimation, which does not do actually anything
Definition at line 556 of file satellite-geo-helper.cc.
References ns3::SatEnums::EFFECTIVE_BANDWIDTH, ns3::SatEnums::FORWARD_USER_CH, ns3::SatEnums::GEO, ns3::SatLlc::GetSchedulingContexts(), m_bbFrameConfFwd, ns3::SatPhy::CreateParam_t::m_beamId, m_carrierBandwidthConverter, m_daRtnLinkInterferenceModel, ns3::SatPhy::CreateParam_t::m_device, m_nodeIds, ns3::SatGeoHelper::RandomAccessSettings_s::m_raCollisionModel, ns3::SatGeoHelper::RandomAccessSettings_s::m_raInterferenceEliminationModel, ns3::SatGeoHelper::RandomAccessSettings_s::m_randomAccessModel, ns3::SatGeoHelper::RandomAccessSettings_s::m_raRtnInterferenceModel, m_raSettings, m_rtnDaConstantErrorRate, m_rtnErrorModel, m_rtnLinkCarrierCount, m_rtnLinkResults, m_rtnReadCtrlCb, ns3::SatPhy::CreateParam_t::m_rxCh, ns3::SatPhy::CreateParam_t::m_satId, ns3::SatPhy::CreateParam_t::m_standard, m_superframeSeq, ns3::SatPhy::CreateParam_t::m_txCh, ns3::SatGeoLlc::NotifyTxOpportunity(), ns3::SatEnums::NT_SAT, ns3::SatLlc::Receive(), ns3::SatGeoUserMac::Receive(), ns3::SatGeoNetDevice::ReceivePacketUser(), ns3::SatGeoNetDevice::ReceiveUser(), ns3::SatEnums::REGENERATION_LINK, ns3::SatEnums::REGENERATION_NETWORK, ns3::SatEnums::REGENERATION_PHY, ns3::SatGeoNetDevice::SendControlMsgToFeeder(), ns3::SatGeoUserPhy::SendPduWithParams(), ns3::SatConstVariables::SUPERFRAME_SEQUENCE, and ns3::SatEnums::TRANSPARENT.
Referenced by AttachChannels().
void ns3::SatGeoHelper::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 756 of file satellite-geo-helper.cc.
TypeId ns3::SatGeoHelper::GetInstanceTypeId | ( | void | ) | const |
Definition at line 133 of file satellite-geo-helper.cc.
References GetTypeId().
|
static |
Get the type ID.
Definition at line 60 of file satellite-geo-helper.cc.
References ns3::SatEnums::ECMP, ns3::SatPhyRxCarrierConf::EM_AVI, ns3::SatPhyRxCarrierConf::EM_CONSTANT, ns3::SatPhyRxCarrierConf::EM_NONE, ns3::SatPhyRxCarrierConf::IF_CONSTANT, ns3::SatPhyRxCarrierConf::IF_PER_FRAGMENT, ns3::SatPhyRxCarrierConf::IF_PER_PACKET, ns3::SatPhyRxCarrierConf::IF_TRACE, m_creationTrace, m_daFwdLinkInterferenceModel, m_daRtnLinkInterferenceModel, m_fwdDaConstantErrorRate, m_fwdErrorModel, m_islArbiterType, m_rtnDaConstantErrorRate, m_rtnErrorModel, and ns3::SatEnums::UNICAST.
Referenced by GetInstanceTypeId().
void ns3::SatGeoHelper::Initialize | ( | Ptr< SatLinkResultsFwd > | lrFwd, |
Ptr< SatLinkResultsRtn > | lrRcs2 | ||
) |
Definition at line 188 of file satellite-geo-helper.cc.
References ns3::SatEnums::DVB_S2, ns3::SatEnums::EFFECTIVE_BANDWIDTH, ns3::SatPhyRxCarrierConf::EM_AVI, ns3::SatEnums::FORWARD_USER_CH, m_bbFrameConfFwd, m_bbFrameConfRtn, m_carrierBandwidthConverter, m_fwdErrorModel, m_fwdLinkResults, m_rtnErrorModel, m_rtnLinkResults, m_symbolRateFwd, m_symbolRateRtn, and ns3::SatEnums::RETURN_FEEDER_CH.
NetDeviceContainer ns3::SatGeoHelper::Install | ( | NodeContainer | c | ) |
c | a set of nodes |
This method creates a ns3::SatGeoNetDevices with the requested attributes and associate the resulting ns3::NetDevices with the ns3::Nodes.
Definition at line 248 of file satellite-geo-helper.cc.
Referenced by Install().
Ptr< NetDevice > ns3::SatGeoHelper::Install | ( | Ptr< Node > | n | ) |
n | a node |
This method creates a ns3::SatGeoNetDevice with the requested attributes and associate the resulting ns3::NetDevice with the ns3::Node.
Definition at line 263 of file satellite-geo-helper.cc.
References m_deviceCount, m_deviceFactory, m_nodeIds, and ns3::SatGeoNetDevice::SetAddress().
Ptr< NetDevice > ns3::SatGeoHelper::Install | ( | std::string | aName | ) |
aName | name of a node |
This method creates a ns3::SatGeoNetDevice with the requested attributes and associate the resulting ns3::NetDevice with the ns3::Node.
Definition at line 284 of file satellite-geo-helper.cc.
References Install().
void ns3::SatGeoHelper::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::SatGeoNetDevice created by SatGeoHelper::Install
Definition at line 224 of file satellite-geo-helper.cc.
References m_deviceFactory.
void ns3::SatGeoHelper::SetFeederPhyAttribute | ( | std::string | name, |
const AttributeValue & | value | ||
) |
Set an attribute value to be propagated to each Feeder Phy 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::SatPhy (feeder) created by SatGeoHelper::Install
Definition at line 240 of file satellite-geo-helper.cc.
void ns3::SatGeoHelper::SetIslRoutes | ( | NodeContainer | geoNodes, |
std::vector< std::pair< uint32_t, uint32_t >> | isls | ||
) |
Set ISL routes.
List | of all satellite nodes |
isls | List of all ISLs |
Definition at line 764 of file satellite-geo-helper.cc.
References ns3::SatEnums::ECMP, m_islArbiterType, and ns3::SatEnums::UNICAST.
void ns3::SatGeoHelper::SetUserPhyAttribute | ( | std::string | name, |
const AttributeValue & | value | ||
) |
Set an attribute value to be propagated to each User Phy 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::SatPhy (user) created by SatGeoHelper::Install
Definition at line 232 of file satellite-geo-helper.cc.
|
private |
Definition at line 302 of file satellite-geo-helper.h.
Referenced by AttachChannelsUser(), and Initialize().
|
private |
Definition at line 298 of file satellite-geo-helper.h.
Referenced by AttachChannelsFeeder(), and Initialize().
|
private |
Definition at line 257 of file satellite-geo-helper.h.
Referenced by AttachChannelsFeeder(), AttachChannelsUser(), and Initialize().
|
private |
Trace callback for creation traces.
Definition at line 307 of file satellite-geo-helper.h.
Referenced by GetTypeId().
|
private |
Definition at line 269 of file satellite-geo-helper.h.
Referenced by AttachChannelsFeeder(), and GetTypeId().
|
private |
Definition at line 274 of file satellite-geo-helper.h.
Referenced by AttachChannelsUser(), and GetTypeId().
|
private |
Definition at line 262 of file satellite-geo-helper.h.
Referenced by Install().
|
private |
Definition at line 264 of file satellite-geo-helper.h.
Referenced by SatGeoHelper(), Install(), and SetDeviceAttribute().
|
private |
Definition at line 284 of file satellite-geo-helper.h.
Referenced by AttachChannelsFeeder(), and GetTypeId().
|
private |
Definition at line 279 of file satellite-geo-helper.h.
Referenced by AttachChannelsFeeder(), GetTypeId(), and Initialize().
|
private |
Definition at line 258 of file satellite-geo-helper.h.
Referenced by AttachChannelsFeeder().
|
private |
Forward channel link results (DVB-S2) are created if ErrorModel is configured to be AVI.
Definition at line 323 of file satellite-geo-helper.h.
Referenced by AttachChannelsFeeder(), and Initialize().
|
private |
Control forward link messages callback.
Definition at line 344 of file satellite-geo-helper.h.
Referenced by AttachChannelsFeeder().
|
private |
Map used in regenerative mode to store if MAC already created for a given pair SAT ID / GW ID.
Definition at line 334 of file satellite-geo-helper.h.
Referenced by AttachChannelsFeeder().
|
private |
Arbiter in use to route packets on ISLs.
Definition at line 339 of file satellite-geo-helper.h.
Referenced by GetTypeId(), and SetIslRoutes().
|
private |
GEO satellites node id.
Definition at line 255 of file satellite-geo-helper.h.
Referenced by AttachChannelsFeeder(), AttachChannelsUser(), and Install().
|
private |
The used random access model settings.
Definition at line 317 of file satellite-geo-helper.h.
Referenced by AttachChannelsFeeder(), and AttachChannelsUser().
|
private |
Definition at line 294 of file satellite-geo-helper.h.
Referenced by AttachChannelsUser(), and GetTypeId().
|
private |
Definition at line 289 of file satellite-geo-helper.h.
Referenced by AttachChannelsUser(), GetTypeId(), and Initialize().
|
private |
Definition at line 259 of file satellite-geo-helper.h.
Referenced by AttachChannelsUser().
|
private |
Return channel link results (DVB-RCS2) are created if ErrorModel is configured to be AVI.
Definition at line 329 of file satellite-geo-helper.h.
Referenced by AttachChannelsUser(), and Initialize().
|
private |
Control return link messages callback.
Definition at line 349 of file satellite-geo-helper.h.
Referenced by AttachChannelsUser().
|
private |
Superframe sequence.
Definition at line 312 of file satellite-geo-helper.h.
Referenced by AttachChannelsFeeder(), and AttachChannelsUser().
|
private |
Definition at line 300 of file satellite-geo-helper.h.
Referenced by Initialize().
|
private |
Definition at line 296 of file satellite-geo-helper.h.
Referenced by Initialize().