10#include "ns3/ipv4-list-routing.h"
12#include "ns3/node-list.h"
13#include "ns3/olsr-routing-protocol.h"
25 : m_agentFactory(o.m_agentFactory)
43 std::set<uint32_t> interfaces;
44 interfaces.insert(interface);
50 it->second.insert(interface);
63 agent->SetInterfaceExclusions(it->second);
66 node->AggregateObject(agent);
79 int64_t currentStream = stream;
81 for (
auto i = c.
Begin(); i != c.
End(); ++i)
91 currentStream +=
olsr->AssignStreams(currentStream);
101 for (
uint32_t i = 0; i < list->GetNRoutingProtocols(); i++)
103 listProto = list->GetRoutingProtocol(i, priority);
107 currentStream += listOlsr->AssignStreams(currentStream);
113 return (currentStream - stream);
Hold a value for an Attribute.
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.
Helper class that adds OLSR routing to nodes.
void Set(std::string name, const AttributeValue &value)
void ExcludeInterface(Ptr< Node > node, uint32_t interface)
int64_t AssignStreams(NodeContainer c, int64_t stream)
Assign a fixed random variable stream number to the random variables used by this model.
OlsrHelper()
Create an OlsrHelper that makes life easier for people who want to install OLSR routing to nodes.
OlsrHelper * Copy() const override
std::map< Ptr< Node >, std::set< uint32_t > > m_interfaceExclusions
container of interfaces excluded from OLSR operations
Ptr< Ipv4RoutingProtocol > Create(Ptr< Node > node) const override
ObjectFactory m_agentFactory
Object factory.
Smart pointer class similar to boost::intrusive_ptr.
OLSR routing protocol for IPv4.
#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.