28 #include "ns3/application.h"
29 #include "ns3/socket.h"
30 #include "ns3/random-variable-stream.h"
32 #include "radvd-interface.h"
94 typedef std::list<Ptr<RadvdInterface> > RadvdInterfaceList;
95 typedef std::list<Ptr<RadvdInterface> >::iterator RadvdInterfaceListI;
96 typedef std::list<Ptr<RadvdInterface> >::const_iterator RadvdInterfaceListCI;
98 typedef std::map<uint32_t, EventId> EventIdMap;
99 typedef std::map<uint32_t, EventId>::iterator EventIdMapI;
100 typedef std::map<uint32_t, EventId>::const_iterator EventIdMapCI;
virtual void StartApplication()
Start the application.
RadvdInterfaceList m_configurations
List of configuration for interface.
Router advertisement daemon.
void ScheduleTransmit(Time dt, Ptr< RadvdInterface > config, EventId &eventId, Ipv6Address dst=Ipv6Address::GetAllNodesMulticast(), bool reschedule=false)
Schedule sending a packet.
int64_t AssignStreams(int64_t stream)
virtual ~Radvd()
Destructor.
EventIdMap m_eventIds
Event ID map.
The base class for all ns3 applications.
virtual void DoDispose()
Dispose the instance.
Ptr< Socket > m_socket
Raw socket to send RA.
void HandleRead(Ptr< Socket > socket)
Handle received packet, especially router solicitation.
static const uint32_t MAX_RA_DELAY_TIME
Default value for maximum delay of RA (ms)
static Ipv6Address GetAllNodesMulticast()
Get the "all nodes multicast" address.
void Send(Ptr< RadvdInterface > config, Ipv6Address dst=Ipv6Address::GetAllNodesMulticast(), bool reschedule=false)
Send a packet.
virtual void StopApplication()
Stop the application.
Describes an IPv6 address.
void AddConfiguration(Ptr< RadvdInterface > routerInterface)
Add configuration for an interface;.
an identifier for simulation events.
Ptr< UniformRandomVariable > m_jitter
Variable to provide jitter in advertisement interval.
static TypeId GetTypeId(void)
Get the type ID.
a unique identifier for an interface.