11#include "ns3/ipv4-list-routing.h"
12#include "ns3/node-list.h"
25 : m_factory(o.m_factory)
52 rip->SetInterfaceExclusions(it->second);
59 for (
auto subiter = iter->second.begin(); subiter != iter->second.end(); subiter++)
61 rip->SetInterfaceMetric(subiter->first, subiter->second);
65 node->AggregateObject(rip);
78 int64_t currentStream = stream;
80 for (
auto i = c.
Begin(); i != c.
End(); ++i)
90 currentStream += rip->AssignStreams(currentStream);
100 for (
uint32_t i = 0; i < list->GetNRoutingProtocols(); i++)
102 listProto = list->GetRoutingProtocol(i, priority);
106 currentStream += listRip->AssignStreams(currentStream);
112 return (currentStream - stream);
125 rip->AddDefaultRouteTo(nextHop, interface);
134 for (
uint32_t i = 0; i < list->GetNRoutingProtocols(); i++)
136 listProto = list->GetRoutingProtocol(i, priority);
140 listRip->AddDefaultRouteTo(nextHop, interface);
154 std::set<uint32_t> interfaces;
155 interfaces.insert(interface);
161 it->second.insert(interface);
Hold a value for an Attribute.
Ipv4 addresses are stored in host order in this class.
Access to the IPv4 forwarding table, interfaces, and configuration.
keep track of a set of node pointers.
Iterator End() const
Get an iterator which indicates past-the-last Node in the container.
Iterator Begin() const
Get an iterator which refers to the first Node in the container.
Ptr< Object > Create() const
Create an Object instance of the configured TypeId.
void Set(const std::string &name, const AttributeValue &value, Args &&... args)
Set an attribute to be set during construction.
void SetTypeId(TypeId tid)
Set the TypeId of the Objects to be created by this factory.
Smart pointer class similar to boost::intrusive_ptr.
Helper class that adds RIP routing to nodes.
std::map< Ptr< Node >, std::map< uint32_t, uint8_t > > m_interfaceMetrics
Interface Metric set.
Ptr< Ipv4RoutingProtocol > Create(Ptr< Node > node) const override
RipHelper * Copy() const override
void Set(std::string name, const AttributeValue &value)
void ExcludeInterface(Ptr< Node > node, uint32_t interface)
Exclude an interface from RIP protocol.
void SetDefaultRouter(Ptr< Node > node, Ipv4Address nextHop, uint32_t interface)
Install a default route in the node.
int64_t AssignStreams(NodeContainer c, int64_t stream)
Assign a fixed random variable stream number to the random variables used by this model.
void SetInterfaceMetric(Ptr< Node > node, uint32_t interface, uint8_t metric)
Set a metric for an interface.
ObjectFactory m_factory
Object Factory.
std::map< Ptr< Node >, std::set< uint32_t > > m_interfaceExclusions
Interface Exclusion set.
RIP Routing Protocol, defined in RFC 2453 .
#define NS_ASSERT_MSG(condition, message)
At runtime, in debugging builds, if this condition is not true, the program prints the message to out...
Every class exported by the ns3 library is enclosed in the ns3 namespace.
Ptr< T1 > DynamicCast(const Ptr< T2 > &p)
Cast a Ptr.