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.
NS_ASSERT_MSG(false, "Ipv4AddressGenerator::MaskToIndex(): Impossible")
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 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 Set(std::string name, const AttributeValue &value)
Set an attribute to be set during construction.
void SetInterfaceMetric(Ptr< Node > node, uint32_t interface, uint8_t metric)
Set a metric for an interface.
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.