22 #include "ns3/node-list.h" 23 #include "ns3/ipv4-list-routing.h" 35 : m_factory (o.m_factory)
62 rip->SetInterfaceExclusions (it->second);
65 std::map< Ptr<Node>, std::map<uint32_t, uint8_t> >::const_iterator iter =
m_interfaceMetrics.find (node);
69 std::map<uint32_t, uint8_t>::const_iterator subiter;
70 for (subiter = iter->second.begin (); subiter != iter->second.end (); subiter++)
72 rip->SetInterfaceMetric (subiter->first, subiter->second);
90 int64_t currentStream = stream;
99 Ptr<Rip> rip = DynamicCast<Rip> (proto);
102 currentStream += rip->AssignStreams (currentStream);
112 for (uint32_t i = 0; i <
list->GetNRoutingProtocols (); i++)
114 listProto =
list->GetRoutingProtocol (i, priority);
115 listRip = DynamicCast<Rip> (listProto);
118 currentStream += listRip->AssignStreams (currentStream);
124 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);
std::map< Ptr< Node >, std::set< uint32_t > > m_interfaceExclusions
Interface Exclusion set.
Smart pointer class similar to boost::intrusive_ptr.
std::vector< Ptr< Node > >::const_iterator Iterator
Node container iterator.
void ExcludeInterface(Ptr< Node > node, uint32_t interface)
Exclude an interface from RIP protocol.
Hold a value for an Attribute.
void AggregateObject(Ptr< Object > other)
Aggregate two Objects together.
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.
Helper class that adds RIP routing to nodes.
void SetDefaultRouter(Ptr< Node > node, Ipv4Address nextHop, uint32_t interface)
Install a default route in the node.
Iterator End(void) const
Get an iterator which indicates past-the-last Node in the container.
ObjectFactory m_factory
Object Factory.
void Set(std::string name, const AttributeValue &value)
Ptr< Object > Create(void) const
Create an Object instance of the configured TypeId.
RIP Routing Protocol, defined in RFC 2453.
std::map< Ptr< Node >, std::map< uint32_t, uint8_t > > m_interfaceMetrics
Interface Metric set.
Access to the IPv4 forwarding table, interfaces, and configuration.
Ptr< T > GetObject(void) const
Get a pointer to the requested aggregated Object.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
keep track of a set of node pointers.
void SetInterfaceMetric(Ptr< Node > node, uint32_t interface, uint8_t metric)
Set a metric for an interface.
#define NS_ASSERT_MSG(condition, message)
At runtime, in debugging builds, if this condition is not true, the program prints the message to out...
virtual Ptr< Ipv4RoutingProtocol > Create(Ptr< Node > node) const
Ipv4 addresses are stored in host order in this class.
int64_t AssignStreams(NodeContainer c, int64_t stream)
Assign a fixed random variable stream number to the random variables used by this model...
RipHelper * Copy(void) const
Iterator Begin(void) const
Get an iterator which refers to the first Node in the container.