A Discrete-Event Network Simulator
API
ns3::RipHelper Class Reference

Helper class that adds RIP routing to nodes. More...

#include "rip-helper.h"

+ Inheritance diagram for ns3::RipHelper:
+ Collaboration diagram for ns3::RipHelper:

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...
 
RipHelperCopy (void) const
 
virtual Ptr< Ipv4RoutingProtocolCreate (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

RipHelperoperator= (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, Time::Unit unit=Time::S)
 prints the neighbor cache of all nodes at a particular time. More...
 
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. More...
 
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. More...
 
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. 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...
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ RipHelper() [1/2]

ns3::RipHelper::RipHelper ( )

Definition at line 29 of file rip-helper.cc.

References m_factory, and ns3::ObjectFactory::SetTypeId().

Referenced by Copy().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ RipHelper() [2/2]

ns3::RipHelper::RipHelper ( const RipHelper o)

Construct an RipHelper from another previously initialized instance (Copy Constructor).

Parameters
oThe object to copy from.

Definition at line 34 of file rip-helper.cc.

References m_interfaceExclusions, and m_interfaceMetrics.

◆ ~RipHelper()

ns3::RipHelper::~RipHelper ( )
virtual

Definition at line 41 of file rip-helper.cc.

References m_interfaceExclusions, and m_interfaceMetrics.

Member Function Documentation

◆ AssignStreams()

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.

Parameters
cNetDeviceContainer of the set of net devices for which the SixLowPanNetDevice should be modified to use a fixed stream
streamfirst stream index to use
Returns
the number of stream indices assigned by this helper

Definition at line 88 of file rip-helper.cc.

References ns3::NodeContainer::Begin(), ns3::NodeContainer::End(), ns3::Object::GetObject(), list, and NS_ASSERT_MSG.

+ Here is the call graph for this function:

◆ Copy()

RipHelper * ns3::RipHelper::Copy ( void  ) const
virtual
Returns
pointer to clone of this RipHelper

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().

+ Here is the call graph for this function:

◆ Create()

Ptr< Ipv4RoutingProtocol > ns3::RipHelper::Create ( Ptr< Node node) const
virtual
Parameters
nodethe node on which the routing protocol will run
Returns
a newly-created routing protocol

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.

+ Here is the call graph for this function:

◆ ExcludeInterface()

void ns3::RipHelper::ExcludeInterface ( Ptr< Node node,
uint32_t  interface 
)

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.

Parameters
nodethe node
interfacethe network interface to be excluded

Definition at line 159 of file rip-helper.cc.

References first::interfaces, and m_interfaceExclusions.

◆ operator=()

RipHelper& ns3::RipHelper::operator= ( const RipHelper o)
private

Assignment operator declared private and not implemented to disallow assignment and prevent the compiler from happily inserting its own.

Parameters
oThe object to copy from.
Returns
pointer to clone of this RipNgHelper

◆ Set()

void ns3::RipHelper::Set ( std::string  name,
const AttributeValue value 
)
Parameters
namethe name of the attribute to set
valuethe 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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetDefaultRouter()

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.

Parameters
nodethe node
nextHopthe next hop
interfacethe network interface

Definition at line 127 of file rip-helper.cc.

References ns3::Object::GetObject(), list, and NS_ASSERT_MSG.

+ Here is the call graph for this function:

◆ SetInterfaceMetric()

void ns3::RipHelper::SetInterfaceMetric ( Ptr< Node node,
uint32_t  interface,
uint8_t  metric 
)

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.

Parameters
nodethe node
interfacethe network interface
metricthe interface metric

Definition at line 176 of file rip-helper.cc.

References m_interfaceMetrics.

Referenced by Ipv4RipCountToInfinityTest::DoRun().

+ Here is the caller graph for this function:

Member Data Documentation

◆ m_factory

ObjectFactory ns3::RipHelper::m_factory
private

Object Factory.

Definition at line 144 of file rip-helper.h.

Referenced by RipHelper(), Create(), and Set().

◆ m_interfaceExclusions

std::map< Ptr<Node>, std::set<uint32_t> > ns3::RipHelper::m_interfaceExclusions
private

Interface Exclusion set.

Definition at line 146 of file rip-helper.h.

Referenced by RipHelper(), ~RipHelper(), Create(), and ExcludeInterface().

◆ m_interfaceMetrics

std::map< Ptr<Node>, std::map<uint32_t, uint8_t> > ns3::RipHelper::m_interfaceMetrics
private

Interface Metric set.

Definition at line 147 of file rip-helper.h.

Referenced by RipHelper(), ~RipHelper(), Create(), and SetInterfaceMetric().


The documentation for this class was generated from the following files: