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. | |
| typedef Callback< uint32_t > | GetNextUtUserCountCallback |
| Get number of Users for a UT. | |
| 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. | |
| SatHelper (std::string scenarioPath) | |
| Create a base SatHelper for creating customized Satellite topologies. | |
| virtual | ~SatHelper () |
| Destructor for SatHelper. | |
| void | CreatePredefinedScenario (PreDefinedScenario_t scenario) |
| Create a pre-defined SatHelper to make life easier when creating Satellite topologies. | |
| void | CreateUserDefinedScenario (BeamUserInfoMap_t &info) |
| Creates satellite objects according to user defined scenario. | |
| void | CreateUserDefinedScenarioFromListPositions (uint32_t satId, BeamUserInfoMap_t &info, std::string inputFileUtListPositions, bool checkBeam) |
| Creates satellite objects according to user defined scenario. | |
| void | DoDispose () |
| Dispose of this class instance. | |
| Ptr< SatAntennaGainPatternContainer > | GetAntennaGainPatterns () |
| Ptr< SatSpotBeamPositionAllocator > | GetBeamAllocator (uint32_t beamId) |
| Create a SatSpotBeamPositionAllocator able to generate random position within the given beam. | |
| uint32_t | GetBeamCount () const |
| Get count of the beams (configurations). | |
| Ptr< SatBeamHelper > | GetBeamHelper () const |
| Ptr< SatGroupHelper > | GetGroupHelper () const |
| 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. | |
| Ptr< Node > | LoadMobileUtFromFile (const std::string &filename) |
| Load an UT with a SatTracedMobilityModel associated to them from the given file. | |
| Ptr< Node > | LoadMobileUtFromFile (uint32_t satId, const std::string &filename) |
| Load an UT with a SatTracedMobilityModel associated to them from the given file. | |
| 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. | |
| virtual void | NotifyConstructionCompleted () override |
| Notifier called once the ObjectBase is fully constructed. | |
| void | SetAntennaGainPatterns (Ptr< SatAntennaGainPatternContainer > antennaGainPattern) |
| Set the antenna gain patterns. | |
| void | SetBeamRoutingConstellations () |
| Populate the routes, when using constellations. | |
| void | SetCustomUtPositionAllocator (Ptr< SatListPositionAllocator > posAllocator) |
| Set custom position allocator. | |
| void | SetGroupHelper (Ptr< SatGroupHelper > groupHelper) |
| set the group helper. | |
| void | SetGwAddressInUts () |
| Set the value of GW address for each UT. | |
| void | SetMulticastGroupRoutes (Ptr< Node > source, NodeContainer receivers, Ipv4Address sourceAddress, Ipv4Address groupAddress) |
| Set multicast group to satellite network and IP router. | |
| void | SetUtPositionAllocatorForBeam (uint32_t beamId, Ptr< SatListPositionAllocator > posAllocator) |
| Set custom position allocator for specific beam. | |
Static Public Member Functions | |
| static TypeId | GetTypeId (void) |
| Get the type ID. | |
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. | |
| bool | ConstructMulticastInfo (Ptr< Node > sourceUtNode, NodeContainer receivers, MulticastBeamInfo_t &beamInfo, Ptr< NetDevice > &routerUserOutputDev) |
| Construct multicast information from source UT node and group receivers. | |
| std::string | CreateCreationSummary (std::string title) |
| Creates trace summary starting with give title. | |
| void | CreateFullScenario () |
| Creates satellite objects according to full scenario. | |
| void | CreateLargerScenario () |
| Creates satellite objects according to larger scenario. | |
| void | CreateSimpleScenario () |
| Creates satellite objects according to simple scenario. | |
| void | CreationSummarySink (std::string title) |
| Sink for creation summary traces. | |
| void | DoCreateScenario (BeamUserInfoMap_t &info, uint32_t gwUsers) |
| Creates satellite objects according to given beam info. | |
| void | EnableCreationTraces () |
| Enables creation traces to be written in given file. | |
| void | EnableDetailedCreationTraces () |
| Enables creation traces in sub-helpers. | |
| void | EnablePacketTrace () |
| Enable packet traces. | |
| Ptr< NetDevice > | FindMatchingDevice (Ptr< NetDevice > devA, Ptr< Node > nodeB) |
| Find given device's counterpart (device belonging to same network) device from given node. | |
| 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. | |
| void | InstallMobilityObserver (uint32_t satId, NodeContainer nodes) const |
| Install Satellite Mobility Observer to nodes, if observer doesn't exist already in a node. | |
| void | LoadConstellationTopology (std::vector< std::string > &tles, std::vector< std::pair< uint32_t, uint32_t > > &isls) |
| Load a constellation topology. | |
| void | ReadStandard (std::string pathName) |
| Read to standard use from file given in path. | |
| void | SetGwMobility (NodeContainer gwNodes) |
| Sets mobilities to created GW nodes. | |
| void | SetMulticastRouteToSourceNetwork (Ptr< Node > source, Ptr< Node > destination) |
| Set multicast traffic to source's nwtwork by finding source network utilizing given destination node. | |
| void | SetNetworkAddresses (BeamUserInfoMap_t &info, uint32_t gwUsers) const |
| Set configured network addresses to user and beam helpers. | |
| void | SetSatMobility (Ptr< Node > node) |
| Sets mobility to created Sat node. | |
| void | SetSatMobility (Ptr< Node > node, std::string tle) |
| Sets SGP4 mobility to created Sat node. | |
| void | SetUtMobility (NodeContainer uts, uint32_t satId, uint32_t beamId) |
| Sets mobility to created UT nodes. | |
| 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. | |
Static Private Member Functions | |
| static void | CreationDetailsSink (Ptr< OutputStreamWrapper > stream, std::string context, std::string info) |
| Sink for creation details traces. | |
Private Attributes | |
| Ptr< SatAntennaGainPatternContainer > | m_antennaGainPatterns |
| Antenna gain patterns for all spot-beams. | |
| Ptr< SatBeamHelper > | m_beamHelper |
| Beam helper. | |
| Ipv4Address | m_beamNetworkAddress |
| Initial network number of satellite devices, e.g., 10.1.1.0. | |
| Ipv4Mask | m_beamNetworkMask |
| Network mask number of satellite devices. | |
| BeamUserInfoMap_t | m_beamUserInfos |
| Info for beam creation in user defined scenario. | |
| TracedCallback< std::string > | m_creationDetailsTrace |
| Trace callback for creation traces (details). | |
| TracedCallback< std::string > | m_creationSummaryTrace |
| Trace callback for creation traces (summary). | |
| bool | m_creationTraces |
| flag to indicate if creation trace should be enabled for scenario creation. | |
| Ptr< OutputStreamWrapper > | m_creationTraceStream |
| Stream wrapper used for creation traces. | |
| bool | m_detailedCreationTraces |
| flag to indicate if detailed creation trace should be enabled for scenario creation. | |
| std::string | m_fwdConfFileName |
| Ptr< SatGroupHelper > | m_groupHelper |
| Group helper. | |
| Ipv4Address | m_gwNetworkAddress |
| Initial network number of GW, router, and GW users, e.g., 10.2.1.0. | |
| Ipv4Mask | m_gwNetworkMask |
| Network mask number of GW, router, and GW users. | |
| std::string | m_gwPosFileName |
| std::map< uint32_t, uint32_t > | m_gwSats |
| Map of closest satellite for each GW. | |
| uint32_t | m_gwUsers |
| Number of users created in public network (behind GWs) in full or user-defined scenario. | |
| bool | m_handoversEnabled |
| Enable handovers for all UTs and GWs. | |
| std::map< uint32_t, NodeContainer > | m_mobileUtsByBeam |
| List of mobile UTs by beam ID. | |
| std::multimap< uint32_t, uint32_t > | m_mobileUtsUsersByBeam |
| List of users by mobile UT by beam ID. | |
| bool | m_packetTraces |
| flag to indicate if packet trace should be enabled after scenario creation. | |
| std::string | m_rtnConfFileName |
| Configuration file names as attributes of this class. | |
| Ptr< SatConf > | m_satConf |
| Configuration for satellite network. | |
| bool | m_satConstellationEnabled |
| Use a constellation of satellites. | |
| std::string | m_satPosFileName |
| bool | m_scenarioCreated |
| flag to check if scenario is already created. | |
| std::string | m_scenarioCreationFileName |
| File name for scenario creation trace output. | |
| std::string | m_scenarioPath |
| Scenario folder path. | |
| SatEnums::Standard_t | m_standard |
| Ptr< SatUserHelper > | m_userHelper |
| User helper. | |
| std::string | m_utCreationFileName |
| File name for UT creation trace output. | |
| Ipv4Address | m_utNetworkAddress |
| Initial network number of UT and UT users, e.g., 10.3.1.0. | |
| Ipv4Mask | m_utNetworkMask |
| Network mask number of UT and UT users. | |
| std::string | m_utPosFileName |
| Ptr< SatListPositionAllocator > | m_utPositions |
| User defined UT positions from SatConf (or manually set). | |
| std::map< uint32_t, Ptr< SatListPositionAllocator > > | m_utPositionsByBeam |
| User defined UT positions by beam ID. | |
| std::map< Ptr< NetDevice >, NetDeviceContainer > | m_utsDistribution |
| Map indicating all UT NetDevices associated to each GW NetDevice. | |
| uint32_t | m_utsInBeam |
| Number of UTs created per Beam in full or user-defined scenario. | |
| Ptr< OutputStreamWrapper > | m_utTraceStream |
| Stream wrapper used for UT position traces. | |
| uint32_t | m_utUsers |
| Number of users created in end user network (behind every UT) in full or user-defined scenario. | |
| std::string | m_waveformConfDirectoryName |
| std::string | m_wfConfigFileName |
| File name for Waveform configurations file. | |
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 120 of file satellite-helper.h.
Definition at line 289 of file satellite-helper.h.
Definition at line 288 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 184 of file satellite-helper.cc.
References ns3::SatEnvVariables::GetInstance(), m_creationTraces, m_detailedCreationTraces, m_fwdConfFileName, m_gwPosFileName, m_gwUsers, m_handoversEnabled, m_mobileUtsByBeam, m_mobileUtsUsersByBeam, m_packetTraces, m_rtnConfFileName, m_satConstellationEnabled, m_satPosFileName, m_scenarioCreated, m_scenarioPath, m_utPosFileName, m_utPositionsByBeam, m_utsInBeam, m_utUsers, m_waveformConfDirectoryName, and ReadStandard().
|
inlinevirtual |
Destructor for SatHelper.
Definition at line 112 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 1783 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 1607 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 1491 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 521 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 498 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 331 of file satellite-helper.cc.
References CreateFullScenario(), CreateLargerScenario(), CreateSimpleScenario(), FULL, LARGER, and SIMPLE.
|
private |
Creates satellite objects according to simple scenario.
Definition at line 484 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 551 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 577 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 1474 of file satellite-helper.cc.
Referenced by EnableDetailedCreationTraces().
|
private |
Sink for creation summary traces.
| title | creation summary title |
Definition at line 1482 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 673 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 1508 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 356 of file satellite-helper.cc.
References CreationSummarySink(), EnableDetailedCreationTraces(), ns3::SatEnvVariables::GetInstance(), m_creationTraceStream, m_detailedCreationTraces, m_scenarioCreationFileName, m_utCreationFileName, and m_utTraceStream.
Referenced by DoCreateScenario().
|
private |
Enables creation traces in sub-helpers.
Definition at line 411 of file satellite-helper.cc.
References CreationDetailsSink(), m_beamHelper, m_creationTraceStream, and m_userHelper.
Referenced by EnableCreationTraces().
|
private |
Enable packet traces.
Definition at line 382 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 1544 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 1522 of file satellite-helper.cc.
References FindMatchingDevice().
Referenced by ConstructMulticastInfo(), SetMulticastGroupRoutes(), and SetMulticastRouteToSourceNetwork().
| Ptr< SatAntennaGainPatternContainer > ns3::SatHelper::GetAntennaGainPatterns | ( | ) |
Definition at line 463 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 1277 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 476 of file satellite-helper.cc.
References m_satConf.
| Ptr< SatBeamHelper > ns3::SatHelper::GetBeamHelper | ( | ) | const |
Definition at line 435 of file satellite-helper.cc.
References m_beamHelper.
| Ptr< SatGroupHelper > ns3::SatHelper::GetGroupHelper | ( | ) | const |
Definition at line 442 of file satellite-helper.cc.
References m_groupHelper.
|
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.
| Ipv4Address ns3::SatHelper::GetUserAddress | ( | Ptr< Node > | node | ) |
| node | pointer to user node. |
Definition at line 424 of file satellite-helper.cc.
| Ptr< SatUserHelper > ns3::SatHelper::GetUserHelper | ( | ) | const |
Definition at line 469 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 1342 of file satellite-helper.cc.
References satMobility, and ns3::SatEnums::TRANSPARENT.
Referenced by LoadMobileUTsFromFolder(), SetGwMobility(), SetUtMobility(), and SetUtMobilityFromPosition().
|
inline |
Definition at line 279 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 630 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 388 of file satellite-helper.cc.
References ns3::SatEnvVariables::GetInstance(), m_fwdConfFileName, m_gwPosFileName, m_rtnConfFileName, m_satConf, m_satPosFileName, m_scenarioPath, m_utPosFileName, and m_waveformConfDirectoryName.
Referenced by NotifyConstructionCompleted().
| 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 1085 of file satellite-helper.cc.
References ns3::SatEnvVariables::GetInstance(), 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 1117 of file satellite-helper.cc.
References ns3::SatEnvVariables::GetInstance(), 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 1035 of file satellite-helper.cc.
References ns3::SatEnvVariables::GetInstance(), InstallMobilityObserver(), LoadMobileUtFromFile(), m_mobileUtsByBeam, and m_mobileUtsUsersByBeam.
|
overridevirtual |
Notifier called once the ObjectBase is fully constructed.
This method is invoked once all member attributes have been initialized. Subclasses can override this method to be notified of this event but if they do this, they must chain up to their parent's NotifyConstructionCompleted method.
Definition at line 229 of file satellite-helper.cc.
References ns3::SatConf::GetCarrierBandwidthHz(), ns3::SatConf::GetCarrierFrequencyHz(), ns3::SatEnvVariables::GetInstance(), 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, ns3::SatEnums::REGENERATION_NETWORK, and SetSatMobility().
|
private |
Read to standard use from file given in path.
| pathName | Path of file containing the standard used |
Definition at line 1852 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 456 of file satellite-helper.cc.
References m_antennaGainPatterns.
| void ns3::SatHelper::SetBeamRoutingConstellations | ( | ) |
Populate the routes, when using constellations.
Definition at line 1008 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 562 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 978 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 1144 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 1371 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 1572 of file satellite-helper.cc.
References FindMatchingDevices().
Referenced by SetMulticastGroupRoutes().
|
private |
Set configured network addresses to user and beam helpers.
Definition at line 1698 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 1304 of file satellite-helper.cc.
References m_satConf.
Referenced by NotifyConstructionCompleted().
|
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 1318 of file satellite-helper.cc.
References m_satConf, ns3::SatSGP4MobilityModel::SetStartDate(), and ns3::SatSGP4MobilityModel::SetTleInfo().
|
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 1191 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 1235 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 569 of file satellite-helper.cc.
References m_utPositionsByBeam.
|
private |
Antenna gain patterns for all spot-beams.
Used for beam selection.
Definition at line 435 of file satellite-helper.h.
Referenced by CreateUserDefinedScenarioFromListPositions(), DoCreateScenario(), DoDispose(), GetAntennaGainPatterns(), GetBeamAllocator(), LoadConstellationScenario(), LoadMobileUtFromFile(), LoadMobileUtFromFile(), NotifyConstructionCompleted(), SetAntennaGainPatterns(), SetGwMobility(), SetUtMobility(), and SetUtMobilityFromPosition().
|
private |
Beam helper.
Definition at line 324 of file satellite-helper.h.
Referenced by ConstructMulticastInfo(), CreateCreationSummary(), CreationSummarySink(), DoCreateScenario(), DoDispose(), EnableDetailedCreationTraces(), EnablePacketTrace(), GetBeamHelper(), NotifyConstructionCompleted(), SetMulticastGroupRoutes(), and SetNetworkAddresses().
|
private |
Initial network number of satellite devices, e.g., 10.1.1.0.
Definition at line 358 of file satellite-helper.h.
Referenced by GetTypeId(), and SetNetworkAddresses().
|
private |
Network mask number of satellite devices.
Definition at line 363 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 415 of file satellite-helper.h.
Referenced by CreateFullScenario().
|
private |
Trace callback for creation traces (details).
Definition at line 339 of file satellite-helper.h.
Referenced by GetTypeId().
|
private |
Trace callback for creation traces (summary).
Definition at line 345 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 380 of file satellite-helper.h.
Referenced by SatHelper(), DoCreateScenario(), and GetTypeId().
|
private |
Stream wrapper used for creation traces.
Definition at line 350 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 385 of file satellite-helper.h.
Referenced by SatHelper(), EnableCreationTraces(), and GetTypeId().
|
private |
Definition at line 300 of file satellite-helper.h.
Referenced by SatHelper(), LoadConstellationTopology(), and NotifyConstructionCompleted().
|
private |
Group helper.
Definition at line 329 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 360 of file satellite-helper.h.
Referenced by GetTypeId(), and SetNetworkAddresses().
|
private |
Network mask number of GW, router, and GW users.
Definition at line 364 of file satellite-helper.h.
Referenced by GetTypeId(), and SetNetworkAddresses().
|
private |
Definition at line 301 of file satellite-helper.h.
Referenced by SatHelper(), LoadConstellationTopology(), and NotifyConstructionCompleted().
|
private |
Map of closest satellite for each GW.
Definition at line 461 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 400 of file satellite-helper.h.
Referenced by SatHelper(), CreateFullScenario(), CreateUserDefinedScenario(), CreateUserDefinedScenarioFromListPositions(), and GetTypeId().
|
private |
Enable handovers for all UTs and GWs.
If false, only moving UTs can perform handovers.
Definition at line 370 of file satellite-helper.h.
Referenced by SatHelper(), DoCreateScenario(), GetTypeId(), LoadMobileUtFromFile(), LoadMobileUtFromFile(), and SetGwMobility().
|
private |
List of mobile UTs by beam ID.
Definition at line 451 of file satellite-helper.h.
Referenced by SatHelper(), DoCreateScenario(), DoDispose(), and LoadMobileUTsFromFolder().
|
private |
List of users by mobile UT by beam ID.
Definition at line 456 of file satellite-helper.h.
Referenced by SatHelper(), DoCreateScenario(), DoDispose(), and LoadMobileUTsFromFolder().
|
private |
flag to indicate if packet trace should be enabled after scenario creation.
Definition at line 390 of file satellite-helper.h.
Referenced by SatHelper(), DoCreateScenario(), and GetTypeId().
|
private |
Configuration file names as attributes of this class.
Definition at line 299 of file satellite-helper.h.
Referenced by SatHelper(), LoadConstellationTopology(), and NotifyConstructionCompleted().
|
private |
Configuration for satellite network.
Definition at line 334 of file satellite-helper.h.
Referenced by CreateFullScenario(), CreateUserDefinedScenarioFromListPositions(), DoCreateScenario(), GetBeamAllocator(), GetBeamCount(), LoadConstellationScenario(), LoadConstellationTopology(), NotifyConstructionCompleted(), SetGwMobility(), SetSatMobility(), and SetSatMobility().
|
private |
Use a constellation of satellites.
Definition at line 309 of file satellite-helper.h.
Referenced by SatHelper(), DoCreateScenario(), GetBeamAllocator(), IsSatConstellationEnabled(), NotifyConstructionCompleted(), and SetGwMobility().
|
private |
Definition at line 302 of file satellite-helper.h.
Referenced by SatHelper(), LoadConstellationTopology(), and NotifyConstructionCompleted().
|
private |
flag to check if scenario is already created.
Definition at line 375 of file satellite-helper.h.
Referenced by SatHelper(), and DoCreateScenario().
|
private |
File name for scenario creation trace output.
Definition at line 420 of file satellite-helper.h.
Referenced by EnableCreationTraces(), and GetTypeId().
|
private |
Scenario folder path.
Definition at line 294 of file satellite-helper.h.
Referenced by SatHelper(), LoadConstellationTopology(), and NotifyConstructionCompleted().
|
private |
Definition at line 314 of file satellite-helper.h.
Referenced by DoCreateScenario(), NotifyConstructionCompleted(), ReadStandard(), and SetGwAddressInUts().
|
private |
User helper.
Definition at line 319 of file satellite-helper.h.
Referenced by ConstructMulticastInfo(), CreateCreationSummary(), DoCreateScenario(), DoDispose(), EnableDetailedCreationTraces(), GetUserHelper(), NotifyConstructionCompleted(), SetBeamRoutingConstellations(), SetMulticastGroupRoutes(), and SetNetworkAddresses().
|
private |
File name for UT creation trace output.
Definition at line 425 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 361 of file satellite-helper.h.
Referenced by GetTypeId(), and SetNetworkAddresses().
|
private |
Network mask number of UT and UT users.
Definition at line 365 of file satellite-helper.h.
Referenced by GetTypeId(), and SetNetworkAddresses().
|
private |
Definition at line 303 of file satellite-helper.h.
Referenced by SatHelper(), CreateUserDefinedScenarioFromListPositions(), LoadConstellationTopology(), and NotifyConstructionCompleted().
|
private |
User defined UT positions from SatConf (or manually set).
Definition at line 446 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 441 of file satellite-helper.h.
Referenced by SatHelper(), DoDispose(), SetUtMobility(), and SetUtPositionAllocatorForBeam().
|
private |
Map indicating all UT NetDevices associated to each GW NetDevice.
Definition at line 466 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 395 of file satellite-helper.h.
Referenced by SatHelper(), CreateFullScenario(), and GetTypeId().
|
private |
Stream wrapper used for UT position traces.
Definition at line 355 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 406 of file satellite-helper.h.
Referenced by SatHelper(), CreateFullScenario(), and GetTypeId().
|
private |
Definition at line 304 of file satellite-helper.h.
Referenced by SatHelper(), LoadConstellationTopology(), and NotifyConstructionCompleted().
|
private |
File name for Waveform configurations file.
Definition at line 430 of file satellite-helper.h.
|
staticprivate |
Definition at line 286 of file satellite-helper.h.
Referenced by CheckNetwork().
|
staticprivate |
Definition at line 285 of file satellite-helper.h.
Referenced by CheckNetwork().