Helper class that adds Nix-vector routing to nodes. More...
#include "nix-vector-helper.h"
Inheritance diagram for ns3::NixVectorHelper< T >:
Collaboration diagram for ns3::NixVectorHelper< T >:Public Member Functions | |
| NixVectorHelper () | |
| Construct an NixVectorHelper to make life easier while adding Nix-vector routing to nodes. | |
| NixVectorHelper (const NixVectorHelper< T > &o) | |
| Construct an NixVectorHelper from another previously initialized instance (Copy Constructor). | |
| NixVectorHelper< T > * | Copy () const override |
| Ptr< IpRoutingProtocol > | Create (Ptr< Node > node) const override |
| NixVectorHelper & | operator= (const NixVectorHelper &)=delete |
| void | PrintRoutingPathAt (Time printTime, Ptr< Node > source, IpAddress dest, Ptr< OutputStreamWrapper > stream, Time::Unit unit=Time::S) |
| prints the routing path for a source and destination at a particular time. | |
Private Types | |
| using | Ip = typename std::conditional_t< IsIpv4, Ipv4, Ipv6 > |
| Alias for Ipv4 and Ipv6 classes. | |
| using | IpAddress = typename std::conditional_t< IsIpv4, Ipv4Address, Ipv6Address > |
| Alias for Ipv4Address and Ipv6Address classes. | |
| using | IpRoutingProtocol = typename std::conditional_t< IsIpv4, Ipv4RoutingProtocol, Ipv6RoutingProtocol > |
| Alias for Ipv4RoutingProtocol and Ipv6RoutingProtocol classes. | |
Static Private Member Functions | |
| static void | PrintRoute (Ptr< Node > source, IpAddress dest, Ptr< OutputStreamWrapper > stream, Time::Unit unit=Time::S) |
| prints the routing path for the source and destination. | |
Private Attributes | |
| ObjectFactory | m_agentFactory |
| Object factory. | |
Static Private Attributes | |
| static constexpr bool | IsIpv4 = std::is_same_v<Ipv4RoutingHelper, T> |
| Alias for determining whether the parent is Ipv4RoutingHelper or Ipv6RoutingHelper. | |
Helper class that adds Nix-vector routing to nodes.
This class is expected to be used in conjunction with ns3::InternetStackHelper::SetRoutingHelper
Definition at line 39 of file nix-vector-helper.h.
|
private |
Alias for Ipv4 and Ipv6 classes.
Definition at line 46 of file nix-vector-helper.h.
|
private |
Alias for Ipv4Address and Ipv6Address classes.
Definition at line 48 of file nix-vector-helper.h.
|
private |
Alias for Ipv4RoutingProtocol and Ipv6RoutingProtocol classes.
Definition at line 50 of file nix-vector-helper.h.
| ns3::NixVectorHelper< T >::NixVectorHelper | ( | ) |
Construct an NixVectorHelper to make life easier while adding Nix-vector routing to nodes.
Definition at line 23 of file nix-vector-helper.cc.
| ns3::NixVectorHelper< T >::NixVectorHelper | ( | const NixVectorHelper< T > & | o | ) |
Construct an NixVectorHelper from another previously initialized instance (Copy Constructor).
| o | object to copy |
Definition at line 39 of file nix-vector-helper.cc.
|
override |
This method is mainly for internal use by the other helpers; clients are expected to free the dynamic memory allocated by this method
Definition at line 49 of file nix-vector-helper.cc.
References ns3::Create().
Here is the call graph for this function:
|
override |
| node | the node on which the routing protocol will run |
This method will be called by ns3::InternetStackHelper::Install
Definition at line 56 of file nix-vector-helper.cc.
References ns3::Create(), and ns3::NixVectorRouting< T >::SetNode().
Referenced by visualizer.ipython_view.ConsoleView::__init__(), show_last_packets.ShowLastPackets.PacketList::__init__(), visualizer.ipython_view.ConsoleView::_write(), test-ns3.NS3BaseTestCase::config_ok(), visualizer.svgitem.SvgItem::do_set_property(), test-ns3.NS3StyleTestCase::setUp(), test-ns3.NS3BaseTestCase::setUp(), test-ns3.NS3ExpectedUseTestCase::setUp(), test-ns3.NS3BuildBaseTestCase::test_01_BuildExistingTargets(), test-ns3.NS3ExpectedUseTestCase::test_01_BuildProject(), test-ns3.NS3StyleTestCase::test_01_CheckCMakeFormat(), test-ns3.NS3QualityControlTestCase::test_01_CheckForDeadLinksInSources(), test-ns3.NS3DependenciesTestCase::test_01_CheckIfIncludedHeadersMatchLinkedModules(), test-ns3.NS3ConfigureBuildProfileTestCase::test_01_Debug(), test-ns3.NS3CommonSettingsTestCase::test_01_NoOption(), test-ns3.NS3UnusedSourcesTestCase::test_01_UnusedExampleSources(), test-ns3.NS3ExpectedUseTestCase::test_02_BuildAndRunExistingExecutableTarget(), test-ns3.NS3BuildBaseTestCase::test_02_BuildNonExistingTargets(), test-ns3.NS3QualityControlTestCase::test_02_MemoryCheckWithSanitizers(), test-ns3.NS3CommonSettingsTestCase::test_02_NoTaskLines(), test-ns3.NS3ConfigureBuildProfileTestCase::test_02_Release(), test-ns3.NS3ConfigureTestCase::test_02_Tests(), test-ns3.NS3UnusedSourcesTestCase::test_02_UnusedModuleSources(), test-ns3.NS3ExpectedUseTestCase::test_03_BuildAndRunExistingLibraryTarget(), test-ns3.NS3BuildBaseTestCase::test_03_BuildProject(), test-ns3.NS3CommonSettingsTestCase::test_03_CheckConfig(), test-ns3.NS3QualityControlTestCase::test_03_CheckImageBrightness(), test-ns3.NS3ConfigureBuildProfileTestCase::test_03_Optimized(), test-ns3.NS3UnusedSourcesTestCase::test_03_UnusedUtilsSources(), test-ns3.NS3ExpectedUseTestCase::test_04_BuildAndRunNonExistingTarget(), test-ns3.NS3BuildBaseTestCase::test_04_BuildProjectNoTaskLines(), test-ns3.NS3QualityControlTestCase::test_04_CheckForBrokenLogs(), test-ns3.NS3CommonSettingsTestCase::test_04_CheckProfile(), test-ns3.NS3ConfigureTestCase::test_04_DisableModules(), test-ns3.NS3ConfigureBuildProfileTestCase::test_04_Typo(), test-ns3.NS3BuildBaseTestCase::test_05_BreakBuild(), test-ns3.NS3CommonSettingsTestCase::test_05_CheckVersion(), test-ns3.NS3ConfigureTestCase::test_05_EnableModulesComma(), test-ns3.NS3ExpectedUseTestCase::test_05_RunNoBuildExistingExecutableTarget(), test-ns3.NS3ConfigureBuildProfileTestCase::test_05_TYPO(), test-ns3.NS3ConfigureTestCase::test_06_DisableModulesComma(), test-ns3.NS3ConfigureBuildProfileTestCase::test_06_OverwriteDefaultSettings(), test-ns3.NS3ExpectedUseTestCase::test_06_RunNoBuildExistingLibraryTarget(), test-ns3.NS3BuildBaseTestCase::test_06_TestVersionFile(), test-ns3.NS3BuildBaseTestCase::test_07_OutputDirectory(), test-ns3.NS3ExpectedUseTestCase::test_07_RunNoBuildNonExistingExecutableTarget(), test-ns3.NS3ConfigureTestCase::test_08_DryRun(), test-ns3.NS3BuildBaseTestCase::test_08_InstallationAndUninstallation(), test-ns3.NS3ExpectedUseTestCase::test_08_RunNoBuildGdb(), test-ns3.NS3ConfigureTestCase::test_09_PropagationOfReturnCode(), test-ns3.NS3ExpectedUseTestCase::test_09_RunNoBuildValgrind(), test-ns3.NS3BuildBaseTestCase::test_09_Scratches(), test-ns3.NS3BuildBaseTestCase::test_10_AmbiguityCheck(), test-ns3.NS3ConfigureTestCase::test_10_CheckConfig(), test-ns3.NS3ExpectedUseTestCase::test_10_DoxygenWithBuild(), test-ns3.NS3ConfigureTestCase::test_11_CheckProfile(), test-ns3.NS3ExpectedUseTestCase::test_11_DoxygenWithoutBuild(), test-ns3.NS3BuildBaseTestCase::test_11_StaticBuilds(), test-ns3.NS3ConfigureTestCase::test_12_CheckVersion(), test-ns3.NS3BuildBaseTestCase::test_12_CppyyBindings(), test-ns3.NS3ExpectedUseTestCase::test_12_SphinxDocumentation(), test-ns3.NS3ExpectedUseTestCase::test_13_Documentation(), test-ns3.NS3BuildBaseTestCase::test_13_FetchOptionalComponents(), test-ns3.NS3ConfigureTestCase::test_13_Scratches(), test-ns3.NS3ExpectedUseTestCase::test_14_EnableSudo(), test-ns3.NS3BuildBaseTestCase::test_14_LinkContribModuleToSrcModule(), test-ns3.NS3ConfigureTestCase::test_14_MpiCommandTemplate(), test-ns3.NS3ExpectedUseTestCase::test_15_CommandTemplate(), test-ns3.NS3ConfigureTestCase::test_15_InvalidLibrariesToLink(), test-ns3.NS3ExpectedUseTestCase::test_16_ForwardArgumentsToRunTargets(), test-ns3.NS3ConfigureTestCase::test_16_LibrariesContainingLib(), test-ns3.NS3ConfigureTestCase::test_17_CMakePerformanceTracing(), test-ns3.NS3ExpectedUseTestCase::test_17_RunNoBuildLldb(), test-ns3.NS3ConfigureTestCase::test_18_CheckBuildVersionAndVersionCache(), test-ns3.NS3ExpectedUseTestCase::test_18_CpmAndVcpkgManagers(), test-ns3.NS3ConfigureTestCase::test_19_FilterModuleExamplesAndTests(), test-ns3.NS3ConfigureTestCase::test_20_CheckFastLinkers(), test-ns3.NS3ConfigureTestCase::test_21_ClangTimeTrace(), test-ns3.NS3ConfigureTestCase::test_22_NinjaTrace(), test-ns3.NS3ConfigureTestCase::test_23_PrecompiledHeaders(), test-ns3.NS3ConfigureTestCase::test_24_CheckTestSettings(), python-unit-tests.TestSimulator::testAttributes(), python-unit-tests.TestSimulator::testCommandLine(), python-unit-tests.TestSimulator::testIdentity(), python-unit-tests.TestSimulator::testSchedule(), python-unit-tests.TestSimulator::testScheduleDestroy(), python-unit-tests.TestSimulator::testSubclass(), python-unit-tests.TestSimulator::testTimeComparison(), python-unit-tests.TestSimulator::testTimeNumericOperations(), python-unit-tests.TestSimulator::testTypeId(), and visualizer.core.Node::tooltip_query().
Here is the call graph for this function:
|
delete |
|
staticprivate |
prints the routing path for the source and destination.
If the routing path does not exist, it prints that the path does not exist between the nodes in the ostream.
| source | the source node pointer to start traversing |
| dest | the IP destination address |
| stream | the output stream object to use |
| unit | the time unit to be used in the report |
This method calls the PrintRoutingPath() method of the NixVectorRouting for the source and destination to provide the routing path.
Definition at line 78 of file nix-vector-helper.cc.
References ns3::Create(), and NS_ASSERT.
Here is the call graph for this function:| void ns3::NixVectorHelper< T >::PrintRoutingPathAt | ( | Time | printTime, |
| Ptr< Node > | source, | ||
| IpAddress | dest, | ||
| Ptr< OutputStreamWrapper > | stream, | ||
| Time::Unit | unit = Time::S |
||
| ) |
prints the routing path for a source and destination at a particular time.
If the routing path does not exist, it prints that the path does not exist between the nodes in the ostream.
| printTime | the time at which the routing path is supposed to be printed. |
| source | the source node pointer to start traversing |
| dest | the IP destination address |
| stream | the output stream object to use |
| unit | the time unit to be used in the report |
This method calls the PrintRoutingPath() method of the NixVectorRouting for the source and destination to provide the routing path at the specified time.
Definition at line 67 of file nix-vector-helper.cc.
References ns3::Create(), and ns3::Simulator::Schedule().
Here is the call graph for this function:
|
staticconstexprprivate |
Alias for determining whether the parent is Ipv4RoutingHelper or Ipv6RoutingHelper.
Definition at line 44 of file nix-vector-helper.h.
|
private |
Object factory.
Definition at line 108 of file nix-vector-helper.h.