A factory to create ns3::Ipv6RoutingProtocol objects. More...
#include "ipv6-routing-helper.h"
Public Member Functions | |
virtual | ~Ipv6RoutingHelper () |
Destroy an Ipv6 Ipv6RoutingHelper. | |
virtual Ipv6RoutingHelper * | Copy () const =0 |
virtual constructor | |
virtual Ptr< Ipv6RoutingProtocol > | Create (Ptr< Node > node) const =0 |
Static Public Member Functions | |
template<class T > | |
static Ptr< T > | GetRouting (Ptr< Ipv6RoutingProtocol > protocol) |
Request a specified routing protocol <T> from Ipv6RoutingProtocol protocol. | |
static void | PrintNeighborCacheAllAt (Time printTime, Ptr< OutputStreamWrapper > stream, Time::Unit unit=Time::S) |
prints the neighbor cache of all nodes at a particular time. | |
static void | PrintNeighborCacheAllEvery (Time printInterval, Ptr< OutputStreamWrapper > stream, Time::Unit unit=Time::S) |
prints the neighbor cache of all nodes at regular intervals specified by user. | |
static void | PrintNeighborCacheAt (Time printTime, Ptr< Node > node, Ptr< OutputStreamWrapper > stream, Time::Unit unit=Time::S) |
prints the neighbor cache of a node at a particular time. | |
static void | PrintNeighborCacheEvery (Time printInterval, Ptr< Node > node, Ptr< OutputStreamWrapper > stream, Time::Unit unit=Time::S) |
prints the neighbor cache of a node at regular intervals specified by user. | |
static void | PrintRoutingTableAllAt (Time printTime, Ptr< OutputStreamWrapper > stream, Time::Unit unit=Time::S) |
prints the routing tables of all nodes at a particular time. | |
static void | PrintRoutingTableAllEvery (Time printInterval, Ptr< OutputStreamWrapper > stream, Time::Unit unit=Time::S) |
prints the routing tables of all nodes at regular intervals specified by user. | |
static void | PrintRoutingTableAt (Time printTime, Ptr< Node > node, Ptr< OutputStreamWrapper > stream, Time::Unit unit=Time::S) |
prints the routing tables of a node at a particular time. | |
static void | PrintRoutingTableEvery (Time printInterval, Ptr< Node > node, Ptr< OutputStreamWrapper > stream, Time::Unit unit=Time::S) |
prints the routing tables of a node at regular intervals specified by user. | |
Static Private Member Functions | |
static void | Print (Ptr< Node > node, Ptr< OutputStreamWrapper > stream, Time::Unit unit) |
prints the routing tables of a node. | |
static void | PrintEvery (Time printInterval, Ptr< Node > node, Ptr< OutputStreamWrapper > stream, Time::Unit unit) |
prints the routing tables of a node at regular intervals specified by user. | |
static void | PrintNdiscCache (Ptr< Node > node, Ptr< OutputStreamWrapper > stream, Time::Unit unit=Time::S) |
prints the neighbor cache of a node. | |
static void | PrintNdiscCacheEvery (Time printInterval, Ptr< Node > node, Ptr< OutputStreamWrapper > stream, Time::Unit unit=Time::S) |
prints the neighbor cache of a node at regular intervals specified by user. | |
A factory to create ns3::Ipv6RoutingProtocol objects.
For each new routing protocol created as a subclass of ns3::Ipv6RoutingProtocol, you need to create a subclass of ns3::Ipv6RoutingHelper which can be used by ns3::InternetStackHelper::SetRoutingHelper and ns3::InternetStackHelper::Install.
Definition at line 34 of file ipv6-routing-helper.h.
|
virtual |
Destroy an Ipv6 Ipv6RoutingHelper.
Definition at line 24 of file ipv6-routing-helper.cc.
|
pure virtual |
virtual constructor
This method is mainly for internal use by the other helpers; clients are expected to free the dynamic memory allocated by this method
Implemented in ns3::Ipv6ListRoutingHelper, ns3::Ipv6StaticRoutingHelper, and ns3::RipNgHelper.
Referenced by ns3::InternetStackHelper::InternetStackHelper(), ns3::Ipv6ListRoutingHelper::Add(), ns3::InternetStackHelper::operator=(), and ns3::InternetStackHelper::SetRoutingHelper().
|
pure virtual |
node | the node within which the new routing protocol will run |
Implemented in ns3::Ipv6ListRoutingHelper, ns3::Ipv6StaticRoutingHelper, and ns3::RipNgHelper.
Referenced by ns3::InternetStackHelper::Install().
|
static |
Request a specified routing protocol <T> from Ipv6RoutingProtocol protocol.
If protocol is Ipv6ListRouting, then protocol will be searched in the list, otherwise a simple DynamicCast will be performed
protocol | Smart pointer to Ipv6RoutingProtocol object |
Definition at line 278 of file ipv6-routing-helper.h.
References ns3::DynamicCast(), and GetRouting().
Referenced by Ipv6ForwardingTest::DoRun(), and GetRouting().
|
staticprivate |
prints the routing tables of a node.
node | The node ptr for which we need the routing table to be printed |
stream | The output stream object to use |
unit | The time unit to be used in the report |
This method calls the PrintRoutingTable() method of the Ipv6RoutingProtocol stored in the Ipv6 object; the output format is routing protocol-specific.
Definition at line 81 of file ipv6-routing-helper.cc.
References NS_ASSERT.
Referenced by PrintRoutingTableAllAt(), and PrintRoutingTableAt().
|
staticprivate |
prints the routing tables of a node at regular intervals specified by user.
printInterval | the time interval for which the routing table is supposed to be printed. |
node | The node ptr for which we need the routing table to be printed |
stream | The output stream object to use |
unit | The time unit to be used in the report |
This method calls the PrintRoutingTable() method of the Ipv6RoutingProtocol stored in the Ipv6 object, for the selected node at the specified interval; the output format is routing protocol-specific.
Definition at line 93 of file ipv6-routing-helper.cc.
References NS_ASSERT, PrintEvery(), and ns3::Simulator::Schedule().
Referenced by PrintEvery(), PrintRoutingTableAllEvery(), and PrintRoutingTableEvery().
|
staticprivate |
prints the neighbor cache of a node.
node | The node ptr for which we need the neighbor cache to be printed |
stream | The output stream object to use |
unit | The time unit to be used in the report |
This method calls the PrintNdiscCache() method of the NdiscCache associated with each Ipv6Interface stored in the Ipv6 object, for all nodes at the specified time. The output format is similar to:
2001:db8::f00d:beef:cafe dev 1 lladdr 00-06-00:00:00:00:00:02 REACHABLE
Note that the MAC address is printed as "type"-"size"-"actual address"
Definition at line 166 of file ipv6-routing-helper.cc.
References ns3::Time::As(), ns3::Names::FindName(), and ns3::Simulator::Now().
Referenced by PrintNeighborCacheAllAt(), and PrintNeighborCacheAt().
|
staticprivate |
prints the neighbor cache of a node at regular intervals specified by user.
printInterval | the time interval for which the neighbor cache is supposed to be printed. |
node | The node ptr for which we need the neighbor cache to be printed |
stream | The output stream object to use |
unit | The time unit to be used in the report |
This method calls the PrintNdiscCache() method of the NdiscCache associated with each Ipv6Interface stored in the Ipv6 object, for all nodes at the specified time. The output format is similar to:
2001:db8::f00d:beef:cafe dev 1 lladdr 00-06-00:00:00:00:00:02 REACHABLE
Note that the MAC address is printed as "type"-"size"-"actual address"
Definition at line 199 of file ipv6-routing-helper.cc.
References ns3::Time::As(), ns3::Names::FindName(), ns3::Simulator::Now(), PrintNdiscCacheEvery(), and ns3::Simulator::Schedule().
Referenced by PrintNdiscCacheEvery(), PrintNeighborCacheAllEvery(), and PrintNeighborCacheEvery().
|
static |
prints the neighbor cache of all nodes at a particular time.
printTime | the time at which the neighbor cache is supposed to be printed. |
stream | The output stream object to use |
unit | The time unit to be used in the report |
This method calls the PrintNdiscCache() method of the NdiscCache associated with each Ipv6Interface stored in the Ipv6 object, for all nodes at the specified time. The output format is similar to:
2001:db8::f00d:beef:cafe dev 1 lladdr 00-06-00:00:00:00:00:02 REACHABLE
Note that the MAC address is printed as "type"-"size"-"actual address"
Definition at line 114 of file ipv6-routing-helper.cc.
References ns3::NodeList::GetNNodes(), ns3::NodeList::GetNode(), PrintNdiscCache(), and ns3::Simulator::Schedule().
Referenced by ChannelTest::DoRun(), DuplicateTest::DoRun(), DynamicNeighborCacheTest::DoRun(), DynamicPartialTest::DoRun(), FlushTest::DoRun(), InterfaceContainerTest::DoRun(), NetDeviceContainerTest::DoRun(), and NeighborCacheExample::Run().
|
static |
prints the neighbor cache of all nodes at regular intervals specified by user.
printInterval | the time interval for which the neighbor cache is supposed to be printed. |
stream | The output stream object to use |
unit | The time unit to be used in the report |
This method calls the PrintNdiscCache() method of the NdiscCache associated with each Ipv6Interface stored in the Ipv6 object, for all nodes at the specified time. The output format is similar to:
2001:db8::f00d:beef:cafe dev 1 lladdr 00-06-00:00:00:00:00:02 REACHABLE
Note that the MAC address is printed as "type"-"size"-"actual address"
Definition at line 126 of file ipv6-routing-helper.cc.
References ns3::NodeList::GetNNodes(), ns3::NodeList::GetNode(), PrintNdiscCacheEvery(), and ns3::Simulator::Schedule().
|
static |
prints the neighbor cache of a node at a particular time.
printTime | the time at which the neighbor cache is supposed to be printed. |
node | The node ptr for which we need the neighbor cache to be printed |
stream | The output stream object to use |
unit | The time unit to be used in the report |
This method calls the PrintNdiscCache() method of the NdiscCache associated with each Ipv6Interface stored in the Ipv6 object, for all nodes at the specified time. The output format is similar to:
2001:db8::f00d:beef:cafe dev 1 lladdr 00-06-00:00:00:00:00:02 REACHABLE
Note that the MAC address is printed as "type"-"size"-"actual address"
Definition at line 143 of file ipv6-routing-helper.cc.
References PrintNdiscCache(), and ns3::Simulator::Schedule().
|
static |
prints the neighbor cache of a node at regular intervals specified by user.
printInterval | the time interval for which the neighbor cache is supposed to be printed. |
node | The node ptr for which we need the neighbor cache to be printed |
stream | The output stream object to use |
unit | The time unit to be used in the report |
This method calls the PrintNdiscCache() method of the NdiscCache associated with each Ipv6Interface stored in the Ipv6 object, for all nodes at the specified time. The output format is similar to:
2001:db8::f00d:beef:cafe dev 1 lladdr 00-06-00:00:00:00:00:02 REACHABLE
Note that the MAC address is printed as "type"-"size"-"actual address"
Definition at line 152 of file ipv6-routing-helper.cc.
References PrintNdiscCacheEvery(), and ns3::Simulator::Schedule().
|
static |
prints the routing tables of all nodes at a particular time.
printTime | the time at which the routing table is supposed to be printed. |
stream | The output stream object to use |
unit | The time unit to be used in the report |
This method calls the PrintRoutingTable() method of the Ipv6RoutingProtocol stored in the Ipv6 object, for all nodes at the specified time; the output format is routing protocol-specific.
Definition at line 29 of file ipv6-routing-helper.cc.
References ns3::NodeList::GetNNodes(), ns3::NodeList::GetNode(), Print(), and ns3::Simulator::Schedule().
|
static |
prints the routing tables of all nodes at regular intervals specified by user.
printInterval | the time interval for which the routing table is supposed to be printed. |
stream | The output stream object to use |
unit | The time unit to be used in the report |
This method calls the PrintRoutingTable() method of the Ipv6RoutingProtocol stored in the Ipv6 object, for all nodes at the specified time interval; the output format is routing protocol-specific.
Definition at line 41 of file ipv6-routing-helper.cc.
References ns3::NodeList::GetNNodes(), ns3::NodeList::GetNode(), PrintEvery(), and ns3::Simulator::Schedule().
|
static |
prints the routing tables of a node at a particular time.
printTime | the time at which the routing table is supposed to be printed. |
node | The node ptr for which we need the routing table to be printed |
stream | The output stream object to use |
unit | The time unit to be used in the report |
This method calls the PrintRoutingTable() method of the Ipv6RoutingProtocol stored in the Ipv6 object, for the selected node at the specified time; the output format is routing protocol-specific.
Definition at line 58 of file ipv6-routing-helper.cc.
References Print(), and ns3::Simulator::Schedule().
|
static |
prints the routing tables of a node at regular intervals specified by user.
printInterval | the time interval for which the routing table is supposed to be printed. |
node | The node ptr for which we need the routing table to be printed |
stream | The output stream object to use |
unit | The time unit to be used in the report |
This method calls the PrintRoutingTable() method of the Ipv6RoutingProtocol stored in the Ipv6 object, for the selected node at the specified interval; the output format is routing protocol-specific.
Definition at line 67 of file ipv6-routing-helper.cc.
References PrintEvery(), and ns3::Simulator::Schedule().