22 #include "ns3/node-list.h"
23 #include "ns3/ipv6-list-routing.h"
24 #include "ns3/ripng.h"
35 : m_factory (o.m_factory)
62 ripng->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 ripng->SetInterfaceMetric (subiter->first, subiter->second);
90 int64_t currentStream = stream;
102 currentStream += ripng->AssignStreams (currentStream);
112 for (uint32_t i = 0; i <
list->GetNRoutingProtocols (); i++)
114 listProto =
list->GetRoutingProtocol (i, priority);
115 listRipng = DynamicCast<RipNg> (listProto);
118 currentStream += listRipng->AssignStreams (currentStream);
124 return (currentStream - stream);
133 Ptr<RipNg> ripng = DynamicCast<RipNg> (proto);
136 ripng->AddDefaultRouteTo (nextHop, interface);
145 for (uint32_t i = 0; i <
list->GetNRoutingProtocols (); i++)
147 listProto =
list->GetRoutingProtocol (i, priority);
148 listRipng = DynamicCast<RipNg> (listProto);
151 listRipng->AddDefaultRouteTo (nextHop, interface);
172 it->second.insert (interface);
Hold a value for an Attribute.
Describes an IPv6 address.
Access to the IPv6 forwarding table, interfaces, and configuration.
keep track of a set of node pointers.
Iterator Begin(void) const
Get an iterator which refers to the first Node in the container.
Iterator End(void) const
Get an iterator which indicates past-the-last Node in the container.
std::vector< Ptr< Node > >::const_iterator Iterator
Node container iterator.
void Set(const std::string &name, const AttributeValue &value, Args &&... args)
Set an attribute to be set during construction.
Ptr< Object > Create(void) const
Create an Object instance of the configured TypeId.
void SetTypeId(TypeId tid)
Set the TypeId of the Objects to be created by this factory.
Ptr< T > GetObject(void) 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 RIPng routing to nodes.
std::map< Ptr< Node >, std::set< uint32_t > > m_interfaceExclusions
Interface Exclusion set.
RipNgHelper * Copy(void) const
std::map< Ptr< Node >, std::map< uint32_t, uint8_t > > m_interfaceMetrics
Interface Metric set.
void SetDefaultRouter(Ptr< Node > node, Ipv6Address nextHop, uint32_t interface)
Install a default route in the node.
void ExcludeInterface(Ptr< Node > node, uint32_t interface)
Exclude an interface from RIPng protocol.
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.
void Set(std::string name, const AttributeValue &value)
virtual Ptr< Ipv6RoutingProtocol > Create(Ptr< Node > node) const
ObjectFactory m_factory
Object Factory.
RIPng Routing Protocol, defined in RFC 2080.
#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.