A Discrete-Event Network Simulator
QKDNetSim v2.0 (NS-3 v3.41) @ (+)
API
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
radvd-interface.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2009 Strasbourg University
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License version 2 as
6  * published by the Free Software Foundation;
7  *
8  * This program is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program; if not, write to the Free Software
15  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16  *
17  * Author: Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
18  */
19 
20 #ifndef RADVD_INTERFACE_H
21 #define RADVD_INTERFACE_H
22 
23 #include "radvd-prefix.h"
24 
25 #include "ns3/nstime.h"
26 #include "ns3/simple-ref-count.h"
27 
28 #include <list>
29 
30 namespace ns3
31 {
32 
37 class RadvdInterface : public SimpleRefCount<RadvdInterface>
38 {
39  public:
41  typedef std::list<Ptr<RadvdPrefix>> RadvdPrefixList;
43  typedef std::list<Ptr<RadvdPrefix>>::iterator RadvdPrefixListI;
45  typedef std::list<Ptr<RadvdPrefix>>::const_iterator RadvdPrefixListCI;
46 
51  RadvdInterface(uint32_t interface);
52 
59  RadvdInterface(uint32_t interface, uint32_t maxRtrAdvInterval, uint32_t minRtrAdvInterval);
60 
65 
70  uint32_t GetInterface() const;
71 
77 
82  void AddPrefix(Ptr<RadvdPrefix> routerPrefix);
83 
88  bool IsSendAdvert() const;
89 
94  void SetSendAdvert(bool sendAdvert);
95 
100  uint32_t GetMaxRtrAdvInterval() const;
101 
106  void SetMaxRtrAdvInterval(uint32_t maxRtrAdvInterval);
107 
112  uint32_t GetMinRtrAdvInterval() const;
113 
118  void SetMinRtrAdvInterval(uint32_t minRtrAdvInterval);
119 
124  uint32_t GetMinDelayBetweenRAs() const;
125 
130  void SetMinDelayBetweenRAs(uint32_t minDelayBetweenRAs);
131 
136  bool IsManagedFlag() const;
137 
142  void SetManagedFlag(bool managedFlag);
143 
148  bool IsOtherConfigFlag() const;
149 
154  void SetOtherConfigFlag(bool otherConfigFlag);
155 
160  uint32_t GetLinkMtu() const;
161 
166  void SetLinkMtu(uint32_t linkMtu);
167 
172  uint32_t GetReachableTime() const;
173 
178  void SetReachableTime(uint32_t reachableTime);
179 
184  uint32_t GetDefaultLifeTime() const;
185 
190  void SetDefaultLifeTime(uint32_t defaultLifeTime);
191 
196  uint32_t GetRetransTimer() const;
197 
202  void SetRetransTimer(uint32_t retransTimer);
203 
208  uint8_t GetCurHopLimit() const;
209 
214  void SetCurHopLimit(uint8_t curHopLimit);
215 
220  uint8_t GetDefaultPreference() const;
221 
226  void SetDefaultPreference(uint8_t defaultPreference);
227 
232  bool IsSourceLLAddress() const;
233 
238  void SetSourceLLAddress(bool sourceLLAddress);
239 
244  bool IsHomeAgentFlag() const;
245 
250  void SetHomeAgentFlag(bool homeAgentFlag);
251 
256  bool IsHomeAgentInfo() const;
257 
262  void SetHomeAgentInfo(bool homeAgentFlag);
263 
268  uint32_t GetHomeAgentLifeTime() const;
269 
274  void SetHomeAgentLifeTime(uint32_t homeAgentLifeTime);
275 
280  uint32_t GetHomeAgentPreference() const;
281 
286  void SetHomeAgentPreference(uint32_t homeAgentPreference);
287 
292  bool IsMobRtrSupportFlag() const;
293 
298  void SetMobRtrSupportFlag(bool mobRtrSupportFlag);
299 
304  bool IsIntervalOpt() const;
305 
310  void SetIntervalOpt(bool intervalOpt);
311 
317 
322  void SetLastRaTxTime(Time now);
323 
328  bool IsInitialRtrAdv() const;
329 
330  private:
334  uint32_t m_interface;
335 
340 
345 
350 
355 
360 
365 
371 
375  uint32_t m_linkMtu;
376 
380  uint32_t m_reachableTime;
381 
385  uint32_t m_retransTimer;
386 
390  uint32_t m_curHopLimit;
391 
396 
404 
409 
414 
420 
425 
430 
435 
440 
445 
450 };
451 
452 } /* namespace ns3 */
453 
454 #endif /* RADVD_INTERFACE_H */
Radvd interface configuration.
RadvdInterface(uint32_t interface)
Constructor.
bool IsMobRtrSupportFlag() const
Is "mobile router support" flag enabled ?
void SetMinDelayBetweenRAs(uint32_t minDelayBetweenRAs)
Set minimum delay between RAs.
uint8_t m_initialRtrAdvertisementsLeft
Number of fast announcement to do.
void SetSourceLLAddress(bool sourceLLAddress)
Set flag to add or not LLA to RA.
bool IsIntervalOpt() const
Is advertisement interval option should be included in RA ?
uint32_t m_reachableTime
Reachable time in milliseconds.
uint32_t GetMinDelayBetweenRAs() const
Get minimum delay between RAs.
std::list< Ptr< RadvdPrefix > > RadvdPrefixList
Container: Ptr to RadvdPrefix.
~RadvdInterface()
Destructor.
uint32_t m_defaultLifeTime
Default life time in seconds.
void SetSendAdvert(bool sendAdvert)
Set send advert flag.
std::list< Ptr< RadvdPrefix > >::iterator RadvdPrefixListI
Container Iterator: Ptr to RadvdPrefix.
void SetLinkMtu(uint32_t linkMtu)
Set link MTU.
void SetDefaultLifeTime(uint32_t defaultLifeTime)
Set default lifetime.
uint32_t m_maxRtrAdvInterval
Maximum RA interval in milliseconds.
void SetHomeAgentFlag(bool homeAgentFlag)
Set "home agent" flag.
bool m_sourceLLAddress
Flag to add link-layer address in RA.
uint32_t GetDefaultLifeTime() const
Get default lifetime.
bool m_sendAdvert
Flag whether or not router sends periodic RA and respond to RS.
void AddPrefix(Ptr< RadvdPrefix > routerPrefix)
Add a prefix to advertise on interface.
bool IsHomeAgentInfo() const
Is Home Agent Information option should be included in RA ?
uint8_t m_defaultPreference
Preference associated with default router.
void SetMobRtrSupportFlag(bool mobRtrSupportFlag)
Set "mobile router support" flag.
Time GetLastRaTxTime()
Get the last time a RA has been sent.
bool m_homeAgentInfo
Flag to add Home Agent Information option (Mobile IPv6).
void SetLastRaTxTime(Time now)
Set the last RA send time.
uint32_t m_homeAgentLifeTime
Home agent lifetime in seconds.
bool m_intervalOpt
Flag to add Advertisement Interval option in RA.
uint32_t GetMaxRtrAdvInterval() const
Get maximum RA interval.
uint32_t GetInterface() const
Get interface index for this configuration.
bool m_otherConfigFlag
Other configuration flag.
uint32_t GetMinRtrAdvInterval() const
Get minimum RA interval.
Time m_lastSendTime
Last RA send time.
uint32_t m_retransTimer
Retransmission timer in milliseconds.
RadvdPrefixList GetPrefixes() const
Get list of prefixes advertised for this interface.
void SetHomeAgentPreference(uint32_t homeAgentPreference)
Set home agent preference.
uint32_t GetRetransTimer() const
Get retransmission timer.
RadvdPrefixList m_prefixes
List of prefixes to advertise.
std::list< Ptr< RadvdPrefix > >::const_iterator RadvdPrefixListCI
Container Const Iterator: Ptr to RadvdPrefix.
bool IsHomeAgentFlag() const
Is "home agent" flag enabled ?
uint32_t GetReachableTime() const
Get reachable time.
bool m_managedFlag
Managed flag.
void SetIntervalOpt(bool intervalOpt)
Set flag to add or not advertisement interval to RA.
void SetRetransTimer(uint32_t retransTimer)
Set retransmission timer.
bool IsInitialRtrAdv() const
Checks if the interface is subject to the initial Rtr Advertisements rule.
void SetCurHopLimit(uint8_t curHopLimit)
Set current hop limit.
void SetDefaultPreference(uint8_t defaultPreference)
Set default preference.
void SetMaxRtrAdvInterval(uint32_t maxRtrAdvInterval)
Get maximum RA interval.
uint32_t m_interface
Interface to advertise RA.
bool m_homeAgentFlag
Flag to add HA (home agent) flag in RA.
void SetOtherConfigFlag(bool otherConfigFlag)
Set "other config" flag.
bool IsSendAdvert() const
Is send advert enabled (periodic RA and reply to RS) ?
uint8_t GetDefaultPreference() const
Get default preference.
void SetMinRtrAdvInterval(uint32_t minRtrAdvInterval)
Get minimum RA interval.
bool IsOtherConfigFlag() const
Is "other config" flag enabled ?
uint32_t GetHomeAgentLifeTime() const
Get home agent lifetime.
bool m_mobRtrSupportFlag
Flag for HA to signals it supports Mobile Router registrations (NEMO Basic).
uint32_t m_minDelayBetweenRAs
Minimum delay between RA in milliseconds.
uint8_t GetCurHopLimit() const
Get current hop limit.
uint32_t m_curHopLimit
Current hop limit (TTL).
uint32_t GetLinkMtu() const
Get link MTU.
uint32_t m_minRtrAdvInterval
Minimum RA interval in milliseconds.
uint32_t m_homeAgentPreference
Home agent preference.
uint32_t GetHomeAgentPreference() const
Get home agent preference.
void SetManagedFlag(bool managedFlag)
Set managed flag.
void SetHomeAgentInfo(bool homeAgentFlag)
Set flag to add or not HA information option to RA.
bool IsSourceLLAddress() const
Is source LLA option should be included in RA ?
uint32_t m_linkMtu
Link MTU to use.
bool IsManagedFlag() const
Is managed flag enabled ?
void SetHomeAgentLifeTime(uint32_t homeAgentLifeTime)
Set home agent lifetime.
void SetReachableTime(uint32_t reachableTime)
Set reachable time.
A template-based reference counting class.
Simulation virtual time values and global simulation resolution.
Definition: nstime.h:105
Every class exported by the ns3 library is enclosed in the ns3 namespace.