11#include "ns3/ipv6-list-routing.h"
12#include "ns3/node-list.h"
27 : m_factory(o.m_factory)
54 ripng->SetInterfaceExclusions(it->second);
61 for (
auto subiter = iter->second.begin(); subiter != iter->second.end(); subiter++)
63 ripng->SetInterfaceMetric(subiter->first, subiter->second);
67 node->AggregateObject(ripng);
80 int64_t currentStream = stream;
82 for (
auto i = c.
Begin(); i != c.
End(); ++i)
92 currentStream += ripng->AssignStreams(currentStream);
102 for (
uint32_t i = 0; i < list->GetNRoutingProtocols(); i++)
104 listProto = list->GetRoutingProtocol(i, priority);
108 currentStream += listRipng->AssignStreams(currentStream);
114 return (currentStream - stream);
127 ripng->AddDefaultRouteTo(nextHop, interface);
136 for (
uint32_t i = 0; i < list->GetNRoutingProtocols(); i++)
138 listProto = list->GetRoutingProtocol(i, priority);
142 listRipng->AddDefaultRouteTo(nextHop, interface);
156 std::set<uint32_t> interfaces;
157 interfaces.insert(interface);
163 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 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 RIPng routing to nodes.
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.
Ptr< Ipv6RoutingProtocol > Create(Ptr< Node > node) const override
int64_t AssignStreams(NodeContainer c, int64_t stream)
Assign a fixed random variable stream number to the random variables used by this model.
RipNgHelper * Copy() const override
void SetInterfaceMetric(Ptr< Node > node, uint32_t interface, uint8_t metric)
Set a metric for an interface.
std::map< Ptr< Node >, std::set< uint32_t > > m_interfaceExclusions
Interface Exclusion set.
void Set(std::string name, const AttributeValue &value)
std::map< Ptr< Node >, std::map< uint32_t, uint8_t > > m_interfaceMetrics
Interface Metric set.
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.
Ptr< T1 > DynamicCast(const Ptr< T2 > &p)
Cast a Ptr.