22 #include "ns3/ipv4-list-routing.h"
23 #include "ns3/node-list.h"
36 : m_factory(o.m_factory)
63 rip->SetInterfaceExclusions(it->second);
70 for (
auto subiter = iter->second.begin(); subiter != iter->second.end(); subiter++)
72 rip->SetInterfaceMetric(subiter->first, subiter->second);
89 int64_t currentStream = stream;
91 for (
auto i = c.
Begin(); i != c.
End(); ++i)
98 Ptr<Rip> rip = DynamicCast<Rip>(proto);
101 currentStream += rip->AssignStreams(currentStream);
111 for (uint32_t i = 0; i <
list->GetNRoutingProtocols(); i++)
113 listProto =
list->GetRoutingProtocol(i, priority);
114 listRip = DynamicCast<Rip>(listProto);
117 currentStream += listRip->AssignStreams(currentStream);
123 return (currentStream - stream);
133 Ptr<Rip> rip = DynamicCast<Rip>(proto);
136 rip->AddDefaultRouteTo(nextHop, interface);
145 for (uint32_t i = 0; i <
list->GetNRoutingProtocols(); i++)
147 listProto =
list->GetRoutingProtocol(i, priority);
148 listRip = DynamicCast<Rip>(listProto);
151 listRip->AddDefaultRouteTo(nextHop, interface);
172 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.
Ptr< T > GetObject() const
Get a pointer to the requested aggregated Object.
void AggregateObject(Ptr< Object > other)
Aggregate two Objects together.
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.