Helper class that adds RIP routing to nodes. More...
#include "rip-helper.h"
Public Member Functions | |
RipHelper () | |
RipHelper (const RipHelper &o) | |
Construct an RipHelper from another previously initialized instance (Copy Constructor). More... | |
virtual | ~RipHelper () |
int64_t | AssignStreams (NodeContainer c, int64_t stream) |
Assign a fixed random variable stream number to the random variables used by this model. More... | |
RipHelper * | Copy (void) const |
virtual Ptr< Ipv4RoutingProtocol > | Create (Ptr< Node > node) const |
void | ExcludeInterface (Ptr< Node > node, uint32_t interface) |
Exclude an interface from RIP protocol. More... | |
void | Set (std::string name, const AttributeValue &value) |
void | SetDefaultRouter (Ptr< Node > node, Ipv4Address nextHop, uint32_t interface) |
Install a default route in the node. More... | |
void | SetInterfaceMetric (Ptr< Node > node, uint32_t interface, uint8_t metric) |
Set a metric for an interface. More... | |
Public Member Functions inherited from ns3::Ipv4RoutingHelper | |
virtual | ~Ipv4RoutingHelper () |
Private Member Functions | |
RipHelper & | operator= (const RipHelper &o) |
Assignment operator declared private and not implemented to disallow assignment and prevent the compiler from happily inserting its own. More... | |
Private Attributes | |
ObjectFactory | m_factory |
Object Factory. More... | |
std::map< Ptr< Node >, std::set< uint32_t > > | m_interfaceExclusions |
Interface Exclusion set. More... | |
std::map< Ptr< Node >, std::map< uint32_t, uint8_t > > | m_interfaceMetrics |
Interface Metric set. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from ns3::Ipv4RoutingHelper | |
template<class T > | |
static Ptr< T > | GetRouting (Ptr< Ipv4RoutingProtocol > protocol) |
Request a specified routing protocol <T> from Ipv4RoutingProtocol protocol. More... | |
static void | PrintNeighborCacheAllAt (Time printTime, Ptr< OutputStreamWrapper > stream) |
prints the neighbor cache of all nodes at a particular time. More... | |
static void | PrintNeighborCacheAllEvery (Time printInterval, Ptr< OutputStreamWrapper > stream) |
prints the neighbor cache of all nodes at regular intervals specified by user. More... | |
static void | PrintNeighborCacheAt (Time printTime, Ptr< Node > node, Ptr< OutputStreamWrapper > stream) |
prints the neighbor cache of a node at a particular time. More... | |
static void | PrintNeighborCacheEvery (Time printInterval, Ptr< Node > node, Ptr< OutputStreamWrapper > stream) |
prints the neighbor cache of a node at regular intervals specified by user. More... | |
static void | PrintRoutingTableAllAt (Time printTime, Ptr< OutputStreamWrapper > stream, Time::Unit unit=Time::S) |
prints the routing tables of all nodes at a particular time. More... | |
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. More... | |
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. More... | |
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. More... | |
Helper class that adds RIP routing to nodes.
This class is expected to be used in conjunction with ns3::InternetStackHelper::SetRoutingHelper
Definition at line 40 of file rip-helper.h.
ns3::RipHelper::RipHelper | ( | ) |
Definition at line 29 of file rip-helper.cc.
References m_factory, and ns3::ObjectFactory::SetTypeId().
Referenced by Copy().
ns3::RipHelper::RipHelper | ( | const RipHelper & | o | ) |
Construct an RipHelper from another previously initialized instance (Copy Constructor).
o | The object to copy from. |
Definition at line 34 of file rip-helper.cc.
References m_interfaceExclusions, and m_interfaceMetrics.
|
virtual |
Definition at line 41 of file rip-helper.cc.
References m_interfaceExclusions, and m_interfaceMetrics.
int64_t ns3::RipHelper::AssignStreams | ( | NodeContainer | c, |
int64_t | stream | ||
) |
Assign a fixed random variable stream number to the random variables used by this model.
Return the number of streams (possibly zero) that have been assigned. The Install() method should have previously been called by the user.
c | NetDeviceContainer of the set of net devices for which the SixLowPanNetDevice should be modified to use a fixed stream |
stream | first stream index to use |
Definition at line 88 of file rip-helper.cc.
References ns3::NodeContainer::Begin(), ns3::NodeContainer::End(), ns3::Object::GetObject(), list, and NS_ASSERT_MSG().
|
virtual |
This method is mainly for internal use by the other helpers; clients are expected to free the dynamic memory allocated by this method
Implements ns3::Ipv4RoutingHelper.
Definition at line 48 of file rip-helper.cc.
References RipHelper().
|
virtual |
node | the node on which the routing protocol will run |
This method will be called by ns3::InternetStackHelper::Install
Implements ns3::Ipv4RoutingHelper.
Definition at line 54 of file rip-helper.cc.
References ns3::Object::AggregateObject(), ns3::ObjectFactory::Create(), m_factory, m_interfaceExclusions, and m_interfaceMetrics.
Exclude an interface from RIP protocol.
You have to call this function before installing RIP in the nodes.
Note: the exclusion means that RIP will not be propagated on that interface. The network prefix on that interface will be still considered in RIP.
node | the node |
interface | the network interface to be excluded |
Definition at line 159 of file rip-helper.cc.
References first::interfaces, and m_interfaceExclusions.
Assignment operator declared private and not implemented to disallow assignment and prevent the compiler from happily inserting its own.
o | The object to copy from. |
void ns3::RipHelper::Set | ( | std::string | name, |
const AttributeValue & | value | ||
) |
name | the name of the attribute to set |
value | the value of the attribute to set. |
This method controls the attributes of ns3::Ripng
Definition at line 81 of file rip-helper.cc.
References m_factory, and ns3::ObjectFactory::Set().
Referenced by Ipv4RipSplitHorizonStrategyTest::DoRun().
void ns3::RipHelper::SetDefaultRouter | ( | Ptr< Node > | node, |
Ipv4Address | nextHop, | ||
uint32_t | interface | ||
) |
Install a default route in the node.
The traffic will be routed to the nextHop, located on the specified interface, unless a more specific route is found.
node | the node |
nextHop | the next hop |
interface | the network interface |
Definition at line 127 of file rip-helper.cc.
References ns3::Object::GetObject(), list, and NS_ASSERT_MSG().
Set a metric for an interface.
You have to call this function before installing RIP in the nodes.
Note: RIP will apply the metric on route message reception. As a consequence, interface metric should be set on the receiver.
node | the node |
interface | the network interface |
metric | the interface metric |
Definition at line 176 of file rip-helper.cc.
References m_interfaceMetrics.
Referenced by Ipv4RipCountToInfinityTest::DoRun().
|
private |
Object Factory.
Definition at line 144 of file rip-helper.h.
Referenced by Create(), RipHelper(), and Set().
Interface Exclusion set.
Definition at line 146 of file rip-helper.h.
Referenced by Create(), ExcludeInterface(), RipHelper(), and ~RipHelper().
Interface Metric set.
Definition at line 147 of file rip-helper.h.
Referenced by Create(), RipHelper(), SetInterfaceMetric(), and ~RipHelper().