27 #include "ns3/application.h"
34 class UniformRandomVariable;
122 typedef std::map<uint32_t, Ptr<Socket>>::iterator
SocketMapI;
124 typedef std::map<uint32_t, Ptr<Socket>>::const_iterator
SocketMapCI;
144 bool reschedule =
false);
The base class for all ns3 applications.
Describes an IPv6 address.
static Ipv6Address GetAllNodesMulticast()
Get the "all nodes multicast" address.
Router advertisement daemon.
std::map< uint32_t, EventId > EventIdMap
Container: interface number, EventId.
EventIdMap m_solicitedEventIds
Event ID map for solicited RAs.
Ptr< UniformRandomVariable > m_jitter
Variable to provide jitter in advertisement interval.
void DoDispose() override
Dispose the instance.
std::map< uint32_t, EventId >::const_iterator EventIdMapCI
Container Const Iterator: interface number, EventId.
void Send(Ptr< RadvdInterface > config, Ipv6Address dst=Ipv6Address::GetAllNodesMulticast(), bool reschedule=false)
Send a packet.
~Radvd() override
Destructor.
std::map< uint32_t, Ptr< Socket > > SocketMap
Container: interface number, Socket.
Ptr< Socket > m_recvSocket
Raw socket to receive RS.
static const uint32_t MAX_INITIAL_RTR_ADVERTISEMENTS
Default value for maximum initial RA advertisements.
void HandleRead(Ptr< Socket > socket)
Handle received packet, especially router solicitation.
std::map< uint32_t, Ptr< Socket > >::iterator SocketMapI
Container Iterator: interface number, Socket.
std::list< Ptr< RadvdInterface > > RadvdInterfaceList
Container: Ptr to RadvdInterface.
static const uint32_t MAX_RA_DELAY_TIME
Default value for maximum delay of RA (ms)
static const uint32_t MAX_INITIAL_RTR_ADVERT_INTERVAL
Default value for maximum initial RA advertisements interval (ms)
static const uint32_t MIN_DELAY_BETWEEN_RAS
Default value for minimum delay between RA advertisements (ms)
int64_t AssignStreams(int64_t stream)
Assign a fixed random variable stream number to the random variables used by this model.
EventIdMap m_unsolicitedEventIds
Event ID map for unsolicited RAs.
std::list< Ptr< RadvdInterface > >::iterator RadvdInterfaceListI
Container Iterator: Ptr to RadvdInterface.
static TypeId GetTypeId()
Get the type ID.
std::map< uint32_t, Ptr< Socket > >::const_iterator SocketMapCI
Container Const Iterator: interface number, Socket.
SocketMap m_sendSockets
Raw socket to send RA.
void StopApplication() override
Stop the application.
void AddConfiguration(Ptr< RadvdInterface > routerInterface)
Add configuration for an interface;.
RadvdInterfaceList m_configurations
List of configuration for interface.
void StartApplication() override
Start the application.
std::map< uint32_t, EventId >::iterator EventIdMapI
Container Iterator: interface number, EventId.
std::list< Ptr< RadvdInterface > >::const_iterator RadvdInterfaceListCI
Container Const Iterator: Ptr to RadvdInterface.
a unique identifier for an interface.
Every class exported by the ns3 library is enclosed in the ns3 namespace.