Build a satellite network set with needed objects and configuration. More...
#include "satellite-helper.h"
Public Types | |
typedef std::map< std::pair< uint32_t, uint32_t >, SatBeamUserInfo > | BeamUserInfoMap_t |
definition for beam map key is pair sat ID / beam ID and value is UT/user info. More... | |
typedef Callback< uint32_t > | GetNextUtUserCountCallback |
Get number of Users for a UT. More... | |
enum | PreDefinedScenario_t { NONE , SIMPLE , LARGER , FULL } |
Values for pre-defined scenarios to be used by helper when building satellite network topology base. More... | |
Public Member Functions | |
SatHelper () | |
Default constructor. More... | |
SatHelper (std::string scenarioPath) | |
Create a base SatHelper for creating customized Satellite topologies. More... | |
virtual | ~SatHelper () |
Destructor for SatHelper. More... | |
void | CreatePredefinedScenario (PreDefinedScenario_t scenario) |
Create a pre-defined SatHelper to make life easier when creating Satellite topologies. More... | |
void | CreateUserDefinedScenario (BeamUserInfoMap_t &info) |
Creates satellite objects according to user defined scenario. More... | |
void | CreateUserDefinedScenarioFromListPositions (uint32_t satId, BeamUserInfoMap_t &info, std::string inputFileUtListPositions, bool checkBeam) |
Creates satellite objects according to user defined scenario. More... | |
void | DoDispose () |
Dispose of this class instance. More... | |
Ptr< SatAntennaGainPatternContainer > | GetAntennaGainPatterns () |
Ptr< SatSpotBeamPositionAllocator > | GetBeamAllocator (uint32_t beamId) |
Create a SatSpotBeamPositionAllocator able to generate random position within the given beam. More... | |
uint32_t | GetBeamCount () const |
Get count of the beams (configurations). More... | |
Ptr< SatBeamHelper > | GetBeamHelper () const |
Ptr< SatGroupHelper > | GetGroupHelper () const |
TypeId | GetInstanceTypeId (void) const |
Get the type ID of object instance. More... | |
Ipv4Address | GetUserAddress (Ptr< Node > node) |
Ptr< SatUserHelper > | GetUserHelper () const |
bool | IsSatConstellationEnabled () |
void | LoadConstellationScenario (BeamUserInfoMap_t &info, GetNextUtUserCountCallback getNextUtUserCountCallback) |
Load satellite objects according to constellation parameters. More... | |
Ptr< Node > | LoadMobileUtFromFile (const std::string &filename) |
Load an UT with a SatTracedMobilityModel associated to them from the given file. More... | |
Ptr< Node > | LoadMobileUtFromFile (uint32_t satId, const std::string &filename) |
Load an UT with a SatTracedMobilityModel associated to them from the given file. More... | |
void | LoadMobileUTsFromFolder (const std::string &folderName, Ptr< RandomVariableStream > utUsers) |
Load UTs with a SatTracedMobilityModel associated to them from the files found in the given folder. More... | |
void | SetAntennaGainPatterns (Ptr< SatAntennaGainPatternContainer > antennaGainPattern) |
Set the antenna gain patterns. More... | |
void | SetBeamRoutingConstellations () |
Populate the routes, when using constellations. More... | |
void | SetCustomUtPositionAllocator (Ptr< SatListPositionAllocator > posAllocator) |
Set custom position allocator. More... | |
void | SetGroupHelper (Ptr< SatGroupHelper > groupHelper) |
set the group helper. More... | |
void | SetGwAddressInUts () |
Set the value of GW address for each UT. More... | |
void | SetMulticastGroupRoutes (Ptr< Node > source, NodeContainer receivers, Ipv4Address sourceAddress, Ipv4Address groupAddress) |
Set multicast group to satellite network and IP router. More... | |
void | SetUtPositionAllocatorForBeam (uint32_t beamId, Ptr< SatListPositionAllocator > posAllocator) |
Set custom position allocator for specific beam. More... | |
Static Public Member Functions | |
static TypeId | GetTypeId (void) |
Get the type ID. More... | |
Private Types | |
typedef SatBeamHelper::MulticastBeamInfo_t | MulticastBeamInfo_t |
typedef SatBeamHelper::MulticastBeamInfoItem_t | MulticastBeamInfoItem_t |
Private Member Functions | |
void | CheckNetwork (std::string networkName, const Ipv4Address &firstNetwork, const Ipv4Mask &mask, const std::set< uint32_t > &networkAddresses, uint32_t networkCount, uint32_t hostCount) const |
Check validity of the configured network space. More... | |
bool | ConstructMulticastInfo (Ptr< Node > sourceUtNode, NodeContainer receivers, MulticastBeamInfo_t &beamInfo, Ptr< NetDevice > &routerUserOutputDev) |
Construct multicast information from source UT node and group receivers. More... | |
std::string | CreateCreationSummary (std::string title) |
Creates trace summary starting with give title. More... | |
void | CreateFullScenario () |
Creates satellite objects according to full scenario. More... | |
void | CreateLargerScenario () |
Creates satellite objects according to larger scenario. More... | |
void | CreateSimpleScenario () |
Creates satellite objects according to simple scenario. More... | |
void | CreationSummarySink (std::string title) |
Sink for creation summary traces. More... | |
void | DoCreateScenario (BeamUserInfoMap_t &info, uint32_t gwUsers) |
Creates satellite objects according to given beam info. More... | |
void | EnableCreationTraces () |
Enables creation traces to be written in given file. More... | |
void | EnableDetailedCreationTraces () |
Enables creation traces in sub-helpers. More... | |
void | EnablePacketTrace () |
Enable packet traces. More... | |
Ptr< NetDevice > | FindMatchingDevice (Ptr< NetDevice > devA, Ptr< Node > nodeB) |
Find given device's counterpart (device belonging to same network) device from given node. More... | |
bool | FindMatchingDevices (Ptr< Node > nodeA, Ptr< Node > nodeB, std::pair< Ptr< NetDevice >, Ptr< NetDevice >> &matchingDevices) |
Find counterpart (device belonging to same network) devices from given nodes. More... | |
void | InstallMobilityObserver (uint32_t satId, NodeContainer nodes) const |
Install Satellite Mobility Observer to nodes, if observer doesn't exist already in a node. More... | |
void | LoadConstellationTopology (std::vector< std::string > &tles, std::vector< std::pair< uint32_t, uint32_t >> &isls) |
Load a constellation topology. More... | |
void | ReadStandard (std::string pathName) |
Read to standard use from file given in path. More... | |
void | SetGwMobility (NodeContainer gwNodes) |
Sets mobilities to created GW nodes. More... | |
void | SetMulticastRouteToSourceNetwork (Ptr< Node > source, Ptr< Node > destination) |
Set multicast traffic to source's nwtwork by finding source network utilizing given destination node. More... | |
void | SetNetworkAddresses (BeamUserInfoMap_t &info, uint32_t gwUsers) const |
Set configured network addresses to user and beam helpers. More... | |
void | SetSatMobility (Ptr< Node > node) |
Sets mobility to created Sat node. More... | |
void | SetSatMobility (Ptr< Node > node, std::string tle) |
Sets SGP4 mobility to created Sat node. More... | |
void | SetUtMobility (NodeContainer uts, uint32_t satId, uint32_t beamId) |
Sets mobility to created UT nodes. More... | |
void | SetUtMobilityFromPosition (NodeContainer uts, uint32_t satId, uint32_t beamId, std::vector< std::pair< GeoCoordinate, uint32_t >> positionsAndGroupId) |
Sets mobility to created UT nodes when position is known. More... | |
Static Private Member Functions | |
static void | CreationDetailsSink (Ptr< OutputStreamWrapper > stream, std::string context, std::string info) |
Sink for creation details traces. More... | |
Private Attributes | |
Ptr< SatAntennaGainPatternContainer > | m_antennaGainPatterns |
Antenna gain patterns for all spot-beams. More... | |
Ptr< SatBeamHelper > | m_beamHelper |
Beam helper. More... | |
Ipv4Address | m_beamNetworkAddress |
Initial network number of satellite devices, e.g., 10.1.1.0. More... | |
Ipv4Mask | m_beamNetworkMask |
Network mask number of satellite devices. More... | |
BeamUserInfoMap_t | m_beamUserInfos |
Info for beam creation in user defined scenario. More... | |
TracedCallback< std::string > | m_creationDetailsTrace |
Trace callback for creation traces (details) More... | |
TracedCallback< std::string > | m_creationSummaryTrace |
Trace callback for creation traces (summary) More... | |
bool | m_creationTraces |
flag to indicate if creation trace should be enabled for scenario creation. More... | |
Ptr< OutputStreamWrapper > | m_creationTraceStream |
Stream wrapper used for creation traces. More... | |
bool | m_detailedCreationTraces |
flag to indicate if detailed creation trace should be enabled for scenario creation. More... | |
std::string | m_fwdConfFileName |
Ptr< SatGroupHelper > | m_groupHelper |
Group helper. More... | |
Ipv4Address | m_gwNetworkAddress |
Initial network number of GW, router, and GW users, e.g., 10.2.1.0. More... | |
Ipv4Mask | m_gwNetworkMask |
Network mask number of GW, router, and GW users. More... | |
std::string | m_gwPosFileName |
std::map< uint32_t, uint32_t > | m_gwSats |
Map of closest satellite for each GW. More... | |
uint32_t | m_gwUsers |
Number of users created in public network (behind GWs) in full or user-defined scenario. More... | |
bool | m_handoversEnabled |
Enable handovers for all UTs and GWs. More... | |
std::map< uint32_t, NodeContainer > | m_mobileUtsByBeam |
List of mobile UTs by beam ID. More... | |
std::multimap< uint32_t, uint32_t > | m_mobileUtsUsersByBeam |
List of users by mobile UT by beam ID. More... | |
bool | m_packetTraces |
flag to indicate if packet trace should be enabled after scenario creation. More... | |
std::string | m_rtnConfFileName |
Configuration file names as attributes of this class. More... | |
Ptr< SatConf > | m_satConf |
Configuration for satellite network. More... | |
bool | m_satConstellationEnabled |
Use a constellation of satellites. More... | |
std::string | m_satPosFileName |
bool | m_scenarioCreated |
flag to check if scenario is already created. More... | |
std::string | m_scenarioCreationFileName |
File name for scenario creation trace output. More... | |
std::string | m_scenarioPath |
Scenario folder path. More... | |
SatEnums::Standard_t | m_standard |
Ptr< SatUserHelper > | m_userHelper |
User helper. More... | |
std::string | m_utCreationFileName |
File name for UT creation trace output. More... | |
Ipv4Address | m_utNetworkAddress |
Initial network number of UT and UT users, e.g., 10.3.1.0. More... | |
Ipv4Mask | m_utNetworkMask |
Network mask number of UT and UT users. More... | |
std::string | m_utPosFileName |
Ptr< SatListPositionAllocator > | m_utPositions |
User defined UT positions from SatConf (or manually set) More... | |
std::map< uint32_t, Ptr< SatListPositionAllocator > > | m_utPositionsByBeam |
User defined UT positions by beam ID. More... | |
std::map< Ptr< NetDevice >, NetDeviceContainer > | m_utsDistribution |
Map indicating all UT NetDevices associated to each GW NetDevice. More... | |
uint32_t | m_utsInBeam |
Number of UTs created per Beam in full or user-defined scenario. More... | |
Ptr< OutputStreamWrapper > | m_utTraceStream |
Stream wrapper used for UT position traces. More... | |
uint32_t | m_utUsers |
Number of users created in end user network (behind every UT) in full or user-defined scenario. More... | |
std::string | m_waveformConfDirectoryName |
std::string | m_wfConfigFileName |
File name for Waveform configurations file. More... | |
Static Private Attributes | |
static const uint16_t | MAX_ADDRESS_PREFIX_LENGTH = 31 |
static const uint16_t | MIN_ADDRESS_PREFIX_LENGTH = 1 |
Build a satellite network set with needed objects and configuration.
Utilizes SatUserHelper and SatBeamHelper helper objects.
Definition at line 61 of file satellite-helper.h.
typedef std::map<std::pair<uint32_t, uint32_t>, SatBeamUserInfo> ns3::SatHelper::BeamUserInfoMap_t |
definition for beam map key is pair sat ID / beam ID and value is UT/user info.
Definition at line 67 of file satellite-helper.h.
typedef Callback<uint32_t> ns3::SatHelper::GetNextUtUserCountCallback |
Get number of Users for a UT.
Definition at line 116 of file satellite-helper.h.
Definition at line 285 of file satellite-helper.h.
Definition at line 284 of file satellite-helper.h.
Values for pre-defined scenarios to be used by helper when building satellite network topology base.
Enumerator | |
---|---|
NONE | NONE Not used. |
SIMPLE | SIMPLE Simple scenario used as base. |
LARGER | LARGER Larger scenario used as base. |
FULL | FULL Full scenario used as base. |
Definition at line 73 of file satellite-helper.h.
ns3::SatHelper::SatHelper | ( | ) |
ns3::SatHelper::SatHelper | ( | std::string | scenarioPath | ) |
Create a base SatHelper for creating customized Satellite topologies.
scenarioPath | Scenario folder path |
Definition at line 192 of file satellite-helper.cc.
References ns3::SatConf::GetCarrierBandwidthHz(), ns3::SatConf::GetCarrierFrequencyHz(), ns3::SatBeamHelper::GetPropagationDelayModel(), LoadConstellationTopology(), ns3::SatEnums::LORA, m_antennaGainPatterns, m_beamHelper, m_fwdConfFileName, m_gwPosFileName, m_rtnConfFileName, m_satConf, m_satConstellationEnabled, m_satPosFileName, m_scenarioPath, m_standard, m_userHelper, m_utPosFileName, m_waveformConfDirectoryName, ReadStandard(), ns3::SatEnums::REGENERATION_NETWORK, ns3::SatLoraConf::setSatConfAttributes(), and SetSatMobility().
|
inlinevirtual |
Destructor for SatHelper.
Definition at line 108 of file satellite-helper.h.
|
private |
Check validity of the configured network space.
networkName | Name string of the network to check. To be used when printing out possible errors. |
firstNetwork | Address of the first network. |
mask | The mask of the networks. |
networkAddresses | The container of first address values of the networks used all together. |
networkCount | The number of the networks created in network. |
hostCount | The maximum number of the hosts created in a network. |
Definition at line 1788 of file satellite-helper.cc.
References MAX_ADDRESS_PREFIX_LENGTH, and MIN_ADDRESS_PREFIX_LENGTH.
Referenced by SetNetworkAddresses().
|
private |
Construct multicast information from source UT node and group receivers.
sourceUtNode | Pointer to UT source node. When NULL source node is not UT. |
receivers | Container of the multicast group receivers. |
beamInfo | Beam information to be filled in for multicast group. |
routerUserOutputDev | Pointer to router output device for backbone network (GW users). Set to NULL when traffic is not needed to route backbone network. |
Definition at line 1612 of file satellite-helper.cc.
References FindMatchingDevices(), m_beamHelper, and m_userHelper.
Referenced by SetMulticastGroupRoutes().
|
private |
Creates trace summary starting with give title.
title | title for summary |
Definition at line 1496 of file satellite-helper.cc.
References m_beamHelper, and m_userHelper.
Referenced by CreationSummarySink().
|
private |
Creates satellite objects according to full scenario.
Definition at line 526 of file satellite-helper.cc.
References DoCreateScenario(), m_beamUserInfos, m_creationSummaryTrace, m_gwUsers, m_satConf, m_utsInBeam, and m_utUsers.
Referenced by CreatePredefinedScenario().
|
private |
Creates satellite objects according to larger scenario.
Definition at line 503 of file satellite-helper.cc.
References ns3::SatBeamUserInfo::AppendUt(), DoCreateScenario(), m_creationSummaryTrace, and ns3::SatBeamUserInfo::SetUtUserCount().
Referenced by CreatePredefinedScenario().
void ns3::SatHelper::CreatePredefinedScenario | ( | PreDefinedScenario_t | scenario | ) |
Create a pre-defined SatHelper to make life easier when creating Satellite topologies.
Definition at line 334 of file satellite-helper.cc.
References CreateFullScenario(), CreateLargerScenario(), CreateSimpleScenario(), FULL, LARGER, and SIMPLE.
|
private |
Creates satellite objects according to simple scenario.
Definition at line 489 of file satellite-helper.cc.
References DoCreateScenario(), and m_creationSummaryTrace.
Referenced by CreatePredefinedScenario().
void ns3::SatHelper::CreateUserDefinedScenario | ( | BeamUserInfoMap_t & | info | ) |
Creates satellite objects according to user defined scenario.
info | information of the beams, and beam UTs and users in beams |
Definition at line 556 of file satellite-helper.cc.
References DoCreateScenario(), m_creationSummaryTrace, and m_gwUsers.
void ns3::SatHelper::CreateUserDefinedScenarioFromListPositions | ( | uint32_t | satId, |
BeamUserInfoMap_t & | info, | ||
std::string | inputFileUtListPositions, | ||
bool | checkBeam | ||
) |
Creates satellite objects according to user defined scenario.
Positions are read from different input files from file set by attribute ns3::SatConf::UtPositionInputFileName.
satId | The ID of the satellite |
info | information of the beams, and beam UTs and users in beams |
inputFileUtListPositions | Path to the list of UT positions |
checkBeam | Check that positions (set through SatConf) match with given beam (the beam is the best according to configured antenna patterns). |
Definition at line 582 of file satellite-helper.cc.
References DoCreateScenario(), m_antennaGainPatterns, m_creationSummaryTrace, m_gwUsers, m_satConf, m_utPosFileName, and m_utPositions.
|
staticprivate |
Sink for creation details traces.
stream | stream for traces |
context | context for traces |
info | creation info |
Definition at line 1479 of file satellite-helper.cc.
Referenced by EnableDetailedCreationTraces().
|
private |
Sink for creation summary traces.
title | creation summary title |
Definition at line 1487 of file satellite-helper.cc.
References CreateCreationSummary(), m_beamHelper, m_creationTraceStream, and m_utTraceStream.
Referenced by EnableCreationTraces().
|
private |
Creates satellite objects according to given beam info.
infoList | information of the sats and beam to create (and beams which are given in map) |
gwUsers | number of the users in GW(s) side |
GW and beam ids are assumed to be the same for both directions currently!
Definition at line 678 of file satellite-helper.cc.
References ns3::SatConf::BEAM_ID_INDEX, ns3::SatEnums::DVB, EnableCreationTraces(), EnablePacketTrace(), ns3::SatConf::F_FREQ_ID_INDEX, ns3::SatNetDevice::GetMac(), ns3::SatConf::GW_ID_INDEX, ns3::SatEnums::LD_FORWARD, ns3::SatEnums::LD_RETURN, ns3::SatLog::LOG_WARNING, ns3::SatEnums::LORA, m_antennaGainPatterns, m_beamHelper, m_creationTraces, m_handoversEnabled, m_mobileUtsByBeam, m_mobileUtsUsersByBeam, m_packetTraces, m_satConf, m_satConstellationEnabled, m_scenarioCreated, m_standard, m_userHelper, m_utsDistribution, SetBeamRoutingConstellations(), SetGwAddressInUts(), SetGwMobility(), ns3::SatBeamHelper::SetIslRoutes(), SetNetworkAddresses(), SetUtMobility(), SetUtMobilityFromPosition(), ns3::SatConf::U_FREQ_ID_INDEX, ns3::SatUserHelper::UpdateGwRoutes(), and ns3::SatUserHelper::UpdateUtRoutes().
Referenced by CreateFullScenario(), CreateLargerScenario(), CreateSimpleScenario(), CreateUserDefinedScenario(), and CreateUserDefinedScenarioFromListPositions().
void ns3::SatHelper::DoDispose | ( | ) |
Dispose of this class instance.
Definition at line 1513 of file satellite-helper.cc.
References m_antennaGainPatterns, m_beamHelper, m_mobileUtsByBeam, m_mobileUtsUsersByBeam, m_userHelper, and m_utPositionsByBeam.
|
private |
Enables creation traces to be written in given file.
Definition at line 359 of file satellite-helper.cc.
References CreationSummarySink(), EnableDetailedCreationTraces(), m_creationTraceStream, m_detailedCreationTraces, m_scenarioCreationFileName, m_utCreationFileName, and m_utTraceStream.
Referenced by DoCreateScenario().
|
private |
Enables creation traces in sub-helpers.
Definition at line 416 of file satellite-helper.cc.
References CreationDetailsSink(), m_beamHelper, m_creationTraceStream, and m_userHelper.
Referenced by EnableCreationTraces().
|
private |
Enable packet traces.
Definition at line 385 of file satellite-helper.cc.
References m_beamHelper.
Referenced by DoCreateScenario().
|
private |
Find given device's counterpart (device belonging to same network) device from given node.
devA | Pointer to the device whose counterpart device is found from given node. |
nodeB | Pointer to node where given device's counterpart device is searched. |
Definition at line 1549 of file satellite-helper.cc.
Referenced by FindMatchingDevices(), and SetMulticastGroupRoutes().
|
private |
Find counterpart (device belonging to same network) devices from given nodes.
nodeA | Pointer to node A where given device's counterpart device is searched. |
nodeB | Pointer to node A where given device's counterpart device is searched. |
matchingDevices | Pair consisting pointers to found devices. first belongs to nodeA and second to nodeB. |
Definition at line 1527 of file satellite-helper.cc.
References FindMatchingDevice().
Referenced by ConstructMulticastInfo(), SetMulticastGroupRoutes(), and SetMulticastRouteToSourceNetwork().
Ptr< SatAntennaGainPatternContainer > ns3::SatHelper::GetAntennaGainPatterns | ( | ) |
Definition at line 468 of file satellite-helper.cc.
References m_antennaGainPatterns.
Ptr< SatSpotBeamPositionAllocator > ns3::SatHelper::GetBeamAllocator | ( | uint32_t | beamId | ) |
Create a SatSpotBeamPositionAllocator able to generate random position within the given beam.
beamId | the beam for which the position allocator should be configured |
Definition at line 1282 of file satellite-helper.cc.
References m_antennaGainPatterns, m_satConf, and m_satConstellationEnabled.
Referenced by SetUtMobility().
uint32_t ns3::SatHelper::GetBeamCount | ( | ) | const |
Get count of the beams (configurations).
Definition at line 481 of file satellite-helper.cc.
References m_satConf.
Ptr< SatBeamHelper > ns3::SatHelper::GetBeamHelper | ( | ) | const |
Definition at line 440 of file satellite-helper.cc.
References m_beamHelper.
Ptr< SatGroupHelper > ns3::SatHelper::GetGroupHelper | ( | ) | const |
Definition at line 447 of file satellite-helper.cc.
References m_groupHelper.
TypeId ns3::SatHelper::GetInstanceTypeId | ( | void | ) | const |
Get the type ID of object instance.
Definition at line 178 of file satellite-helper.cc.
References GetTypeId().
|
static |
Get the type ID.
Definition at line 75 of file satellite-helper.cc.
References m_beamNetworkAddress, m_beamNetworkMask, m_creationDetailsTrace, m_creationSummaryTrace, m_creationTraces, m_detailedCreationTraces, m_gwNetworkAddress, m_gwNetworkMask, m_gwUsers, m_handoversEnabled, m_packetTraces, m_scenarioCreationFileName, m_utCreationFileName, m_utNetworkAddress, m_utNetworkMask, m_utsInBeam, and m_utUsers.
Referenced by GetInstanceTypeId().
Ipv4Address ns3::SatHelper::GetUserAddress | ( | Ptr< Node > | node | ) |
node | pointer to user node. |
Definition at line 429 of file satellite-helper.cc.
Ptr< SatUserHelper > ns3::SatHelper::GetUserHelper | ( | ) | const |
Definition at line 474 of file satellite-helper.cc.
References m_userHelper.
|
private |
Install Satellite Mobility Observer to nodes, if observer doesn't exist already in a node.
satId | ID of the satellite. |
nodes | Nodecontainer of nodes to install mobility observer. |
Definition at line 1347 of file satellite-helper.cc.
References satMobility, and ns3::SatEnums::TRANSPARENT.
Referenced by LoadMobileUTsFromFolder(), SetGwMobility(), SetUtMobility(), and SetUtMobilityFromPosition().
|
inline |
Definition at line 275 of file satellite-helper.h.
References m_satConstellationEnabled.
void ns3::SatHelper::LoadConstellationScenario | ( | BeamUserInfoMap_t & | info, |
GetNextUtUserCountCallback | getNextUtUserCountCallback | ||
) |
Load satellite objects according to constellation parameters.
infoList | information of the enabled beams. UT information is given in parameters files. |
getNextUtUserCountCallback | Callback to get number of users per UT. |
Definition at line 635 of file satellite-helper.cc.
References m_antennaGainPatterns, m_groupHelper, m_gwSats, and m_satConf.
|
private |
Load a constellation topology.
tles | vector to store read TLEs |
isls | vector to store read ISLs |
Definition at line 391 of file satellite-helper.cc.
References m_fwdConfFileName, m_gwPosFileName, m_rtnConfFileName, m_satConf, m_satPosFileName, m_scenarioPath, m_utPosFileName, and m_waveformConfDirectoryName.
Referenced by SatHelper().
Ptr< Node > ns3::SatHelper::LoadMobileUtFromFile | ( | const std::string & | filename | ) |
Load an UT with a SatTracedMobilityModel associated to them from the given file.
filename | Name of the trace file containing UT positions |
Definition at line 1090 of file satellite-helper.cc.
References m_antennaGainPatterns, m_handoversEnabled, and ns3::GeoCoordinate::SPHERE.
Referenced by LoadMobileUTsFromFolder().
Ptr< Node > ns3::SatHelper::LoadMobileUtFromFile | ( | uint32_t | satId, |
const std::string & | filename | ||
) |
Load an UT with a SatTracedMobilityModel associated to them from the given file.
satId | Satellite ID |
filename | Name of the trace file containing UT positions |
Definition at line 1122 of file satellite-helper.cc.
References m_antennaGainPatterns, and m_handoversEnabled.
void ns3::SatHelper::LoadMobileUTsFromFolder | ( | const std::string & | folderName, |
Ptr< RandomVariableStream > | utUsers | ||
) |
Load UTs with a SatTracedMobilityModel associated to them from the files found in the given folder.
Each UT will be associated to the beam it is at it's starting position.
folderName | Name of the folder to search for mobility trace files |
utUsers | Stream to generate the number of users associated to each loaded UT |
Definition at line 1040 of file satellite-helper.cc.
References InstallMobilityObserver(), LoadMobileUtFromFile(), m_mobileUtsByBeam, and m_mobileUtsUsersByBeam.
|
private |
Read to standard use from file given in path.
pathName | Path of file containing the standard used |
Definition at line 1857 of file satellite-helper.cc.
References ns3::SatEnums::DVB, ns3::SatEnums::LORA, and m_standard.
Referenced by SatHelper().
void ns3::SatHelper::SetAntennaGainPatterns | ( | Ptr< SatAntennaGainPatternContainer > | antennaGainPattern | ) |
Set the antenna gain patterns.
antennaGainPattern | The pattern to set |
Definition at line 461 of file satellite-helper.cc.
References m_antennaGainPatterns.
void ns3::SatHelper::SetBeamRoutingConstellations | ( | ) |
Populate the routes, when using constellations.
Definition at line 1013 of file satellite-helper.cc.
References m_userHelper, and m_utsDistribution.
Referenced by DoCreateScenario().
void ns3::SatHelper::SetCustomUtPositionAllocator | ( | Ptr< SatListPositionAllocator > | posAllocator | ) |
Set custom position allocator.
posAllocator |
Definition at line 567 of file satellite-helper.cc.
References m_utPositions.
void ns3::SatHelper::SetGroupHelper | ( | Ptr< SatGroupHelper > | groupHelper | ) |
void ns3::SatHelper::SetGwAddressInUts | ( | ) |
Set the value of GW address for each UT.
This method is called when using constellations.
Definition at line 983 of file satellite-helper.cc.
References ns3::SatEnums::DVB, ns3::SatEnums::LORA, and m_standard.
Referenced by DoCreateScenario().
|
private |
Sets mobilities to created GW nodes.
gwNodes | node container of UTs to set mobility |
Definition at line 1149 of file satellite-helper.cc.
References InstallMobilityObserver(), m_antennaGainPatterns, m_handoversEnabled, m_satConf, and m_satConstellationEnabled.
Referenced by DoCreateScenario().
void ns3::SatHelper::SetMulticastGroupRoutes | ( | Ptr< Node > | source, |
NodeContainer | receivers, | ||
Ipv4Address | sourceAddress, | ||
Ipv4Address | groupAddress | ||
) |
Set multicast group to satellite network and IP router.
Add needed routes to net devices.
source | Source node of the multicast group (GW or UT connected user node) |
receivers | Receiver nodes of the multicast group. (GW or UT connected user nodes) |
sourceAddress | Source address of the multicast group. |
groupAddress | Address of the multicast group. |
Definition at line 1376 of file satellite-helper.cc.
References ConstructMulticastInfo(), FindMatchingDevice(), FindMatchingDevices(), m_beamHelper, m_userHelper, and SetMulticastRouteToSourceNetwork().
|
private |
Set multicast traffic to source's nwtwork by finding source network utilizing given destination node.
Note that all multicast traffic is routed by source through selected device in source node to found network.
source | Pointer to source node of the multicast traffic. |
destination | Pointer to destination node where to find matching source network |
Definition at line 1577 of file satellite-helper.cc.
References FindMatchingDevices().
Referenced by SetMulticastGroupRoutes().
|
private |
Set configured network addresses to user and beam helpers.
Definition at line 1703 of file satellite-helper.cc.
References CheckNetwork(), m_beamHelper, m_beamNetworkAddress, m_beamNetworkMask, m_gwNetworkAddress, m_gwNetworkMask, m_userHelper, m_utNetworkAddress, and m_utNetworkMask.
Referenced by DoCreateScenario().
|
private |
Sets mobility to created Sat node.
node | node pointer of Satellite to set mobility |
Definition at line 1309 of file satellite-helper.cc.
References m_satConf.
Referenced by SatHelper().
|
private |
Sets SGP4 mobility to created Sat node.
node | node pointer of Satellite to set mobility |
tle | the TLE linked to this satellite |
Definition at line 1323 of file satellite-helper.cc.
References m_satConf.
|
private |
Sets mobility to created UT nodes.
uts | node container of UTs to set mobility |
satId | the satellite id, where the UTs should be placed |
beamId | the spot-beam id, where the UTs should be placed |
Definition at line 1196 of file satellite-helper.cc.
References GetBeamAllocator(), InstallMobilityObserver(), m_antennaGainPatterns, m_utPositions, and m_utPositionsByBeam.
Referenced by DoCreateScenario().
|
private |
Sets mobility to created UT nodes when position is known.
uts | node container of UTs to set mobility |
satId | the satellite id, where the UTs should be placed |
beamId | the spot-beam id, where the UTs should be placed |
positionsAndGroupId | the list of known positions, associated to a group ID |
Definition at line 1240 of file satellite-helper.cc.
References InstallMobilityObserver(), m_antennaGainPatterns, and m_groupHelper.
Referenced by DoCreateScenario().
void ns3::SatHelper::SetUtPositionAllocatorForBeam | ( | uint32_t | beamId, |
Ptr< SatListPositionAllocator > | posAllocator | ||
) |
Set custom position allocator for specific beam.
This overrides the custom position allocator for this beam.
beamId | |
posAllocator |
Definition at line 574 of file satellite-helper.cc.
References m_utPositionsByBeam.
|
private |
Antenna gain patterns for all spot-beams.
Used for beam selection.
Definition at line 431 of file satellite-helper.h.
Referenced by SatHelper(), CreateUserDefinedScenarioFromListPositions(), DoCreateScenario(), DoDispose(), GetAntennaGainPatterns(), GetBeamAllocator(), LoadConstellationScenario(), LoadMobileUtFromFile(), SetAntennaGainPatterns(), SetGwMobility(), SetUtMobility(), and SetUtMobilityFromPosition().
|
private |
Beam helper.
Definition at line 320 of file satellite-helper.h.
Referenced by SatHelper(), ConstructMulticastInfo(), CreateCreationSummary(), CreationSummarySink(), DoCreateScenario(), DoDispose(), EnableDetailedCreationTraces(), EnablePacketTrace(), GetBeamHelper(), SetMulticastGroupRoutes(), and SetNetworkAddresses().
|
private |
Initial network number of satellite devices, e.g., 10.1.1.0.
Definition at line 354 of file satellite-helper.h.
Referenced by GetTypeId(), and SetNetworkAddresses().
|
private |
Network mask number of satellite devices.
Definition at line 359 of file satellite-helper.h.
Referenced by GetTypeId(), and SetNetworkAddresses().
|
private |
Info for beam creation in user defined scenario.
first is ID of the beam and second is number of beam created in beam. If second is zero then default number of UTs is created (number set by attribute UtCount)
Info is set by attribute BeamInfo
Definition at line 411 of file satellite-helper.h.
Referenced by CreateFullScenario().
|
private |
Trace callback for creation traces (details)
Definition at line 335 of file satellite-helper.h.
Referenced by GetTypeId().
|
private |
Trace callback for creation traces (summary)
Definition at line 341 of file satellite-helper.h.
Referenced by CreateFullScenario(), CreateLargerScenario(), CreateSimpleScenario(), CreateUserDefinedScenario(), CreateUserDefinedScenarioFromListPositions(), and GetTypeId().
|
private |
flag to indicate if creation trace should be enabled for scenario creation.
Definition at line 376 of file satellite-helper.h.
Referenced by DoCreateScenario(), and GetTypeId().
|
private |
Stream wrapper used for creation traces.
Definition at line 346 of file satellite-helper.h.
Referenced by CreationSummarySink(), EnableCreationTraces(), and EnableDetailedCreationTraces().
|
private |
flag to indicate if detailed creation trace should be enabled for scenario creation.
Definition at line 381 of file satellite-helper.h.
Referenced by EnableCreationTraces(), and GetTypeId().
|
private |
Definition at line 296 of file satellite-helper.h.
Referenced by SatHelper(), and LoadConstellationTopology().
|
private |
Group helper.
Definition at line 325 of file satellite-helper.h.
Referenced by GetGroupHelper(), LoadConstellationScenario(), SetGroupHelper(), and SetUtMobilityFromPosition().
|
private |
Initial network number of GW, router, and GW users, e.g., 10.2.1.0.
Definition at line 356 of file satellite-helper.h.
Referenced by GetTypeId(), and SetNetworkAddresses().
|
private |
Network mask number of GW, router, and GW users.
Definition at line 360 of file satellite-helper.h.
Referenced by GetTypeId(), and SetNetworkAddresses().
|
private |
Definition at line 297 of file satellite-helper.h.
Referenced by SatHelper(), and LoadConstellationTopology().
|
private |
Map of closest satellite for each GW.
Definition at line 457 of file satellite-helper.h.
Referenced by LoadConstellationScenario().
|
private |
Number of users created in public network (behind GWs) in full or user-defined scenario.
Definition at line 396 of file satellite-helper.h.
Referenced by CreateFullScenario(), CreateUserDefinedScenario(), CreateUserDefinedScenarioFromListPositions(), and GetTypeId().
|
private |
Enable handovers for all UTs and GWs.
If false, only moving UTs can perform handovers.
Definition at line 366 of file satellite-helper.h.
Referenced by DoCreateScenario(), GetTypeId(), LoadMobileUtFromFile(), and SetGwMobility().
|
private |
List of mobile UTs by beam ID.
Definition at line 447 of file satellite-helper.h.
Referenced by DoCreateScenario(), DoDispose(), and LoadMobileUTsFromFolder().
|
private |
List of users by mobile UT by beam ID.
Definition at line 452 of file satellite-helper.h.
Referenced by DoCreateScenario(), DoDispose(), and LoadMobileUTsFromFolder().
|
private |
flag to indicate if packet trace should be enabled after scenario creation.
Definition at line 386 of file satellite-helper.h.
Referenced by DoCreateScenario(), and GetTypeId().
|
private |
Configuration file names as attributes of this class.
Definition at line 295 of file satellite-helper.h.
Referenced by SatHelper(), and LoadConstellationTopology().
|
private |
Configuration for satellite network.
Definition at line 330 of file satellite-helper.h.
Referenced by SatHelper(), CreateFullScenario(), CreateUserDefinedScenarioFromListPositions(), DoCreateScenario(), GetBeamAllocator(), GetBeamCount(), LoadConstellationScenario(), LoadConstellationTopology(), SetGwMobility(), and SetSatMobility().
|
private |
Use a constellation of satellites.
Definition at line 305 of file satellite-helper.h.
Referenced by SatHelper(), DoCreateScenario(), GetBeamAllocator(), IsSatConstellationEnabled(), and SetGwMobility().
|
private |
Definition at line 298 of file satellite-helper.h.
Referenced by SatHelper(), and LoadConstellationTopology().
|
private |
flag to check if scenario is already created.
Definition at line 371 of file satellite-helper.h.
Referenced by DoCreateScenario().
|
private |
File name for scenario creation trace output.
Definition at line 416 of file satellite-helper.h.
Referenced by EnableCreationTraces(), and GetTypeId().
|
private |
Scenario folder path.
Definition at line 290 of file satellite-helper.h.
Referenced by SatHelper(), and LoadConstellationTopology().
|
private |
Definition at line 310 of file satellite-helper.h.
Referenced by SatHelper(), DoCreateScenario(), ReadStandard(), and SetGwAddressInUts().
|
private |
User helper.
Definition at line 315 of file satellite-helper.h.
Referenced by SatHelper(), ConstructMulticastInfo(), CreateCreationSummary(), DoCreateScenario(), DoDispose(), EnableDetailedCreationTraces(), GetUserHelper(), SetBeamRoutingConstellations(), SetMulticastGroupRoutes(), and SetNetworkAddresses().
|
private |
File name for UT creation trace output.
Definition at line 421 of file satellite-helper.h.
Referenced by EnableCreationTraces(), and GetTypeId().
|
private |
Initial network number of UT and UT users, e.g., 10.3.1.0.
Definition at line 357 of file satellite-helper.h.
Referenced by GetTypeId(), and SetNetworkAddresses().
|
private |
Network mask number of UT and UT users.
Definition at line 361 of file satellite-helper.h.
Referenced by GetTypeId(), and SetNetworkAddresses().
|
private |
Definition at line 299 of file satellite-helper.h.
Referenced by SatHelper(), CreateUserDefinedScenarioFromListPositions(), and LoadConstellationTopology().
|
private |
User defined UT positions from SatConf (or manually set)
Definition at line 442 of file satellite-helper.h.
Referenced by CreateUserDefinedScenarioFromListPositions(), SetCustomUtPositionAllocator(), and SetUtMobility().
|
private |
User defined UT positions by beam ID.
This is preferred to m_utPositions, which is a common list for all UTs.
Definition at line 437 of file satellite-helper.h.
Referenced by DoDispose(), SetUtMobility(), and SetUtPositionAllocatorForBeam().
|
private |
Map indicating all UT NetDevices associated to each GW NetDevice.
Definition at line 462 of file satellite-helper.h.
Referenced by DoCreateScenario(), and SetBeamRoutingConstellations().
|
private |
Number of UTs created per Beam in full or user-defined scenario.
Definition at line 391 of file satellite-helper.h.
Referenced by CreateFullScenario(), and GetTypeId().
|
private |
Stream wrapper used for UT position traces.
Definition at line 351 of file satellite-helper.h.
Referenced by CreationSummarySink(), and EnableCreationTraces().
|
private |
Number of users created in end user network (behind every UT) in full or user-defined scenario.
Definition at line 402 of file satellite-helper.h.
Referenced by CreateFullScenario(), and GetTypeId().
|
private |
Definition at line 300 of file satellite-helper.h.
Referenced by SatHelper(), and LoadConstellationTopology().
|
private |
File name for Waveform configurations file.
Definition at line 426 of file satellite-helper.h.
|
staticprivate |
Definition at line 282 of file satellite-helper.h.
Referenced by CheckNetwork().
|
staticprivate |
Definition at line 281 of file satellite-helper.h.
Referenced by CheckNetwork().