A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
radvd-interface.h
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2009 Strasbourg University
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License version 2 as
7  * published by the Free Software Foundation;
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17  *
18  * Author: Sebastien Vincent <vincent@clarinet.u-strasbg.fr>
19  */
20 
21 #ifndef RADVD_INTERFACE_H
22 #define RADVD_INTERFACE_H
23 
24 #include <list>
25 #include "ns3/simple-ref-count.h"
26 #include "radvd-prefix.h"
27 
28 namespace ns3
29 {
30 
36 class RadvdInterface : public SimpleRefCount<RadvdInterface>
37 {
38 public:
43  RadvdInterface (uint32_t interface);
44 
51  RadvdInterface (uint32_t interface, uint32_t maxRtrAdvInterval, uint32_t minRtrAdvInterval);
52 
56  ~RadvdInterface ();
57 
62  uint32_t GetInterface () const;
63 
68  std::list <Ptr<RadvdPrefix> > GetPrefixes () const;
69 
74  void AddPrefix (Ptr<RadvdPrefix> routerPrefix);
75 
80  bool IsSendAdvert () const;
81 
86  void SetSendAdvert (bool sendAdvert);
87 
92  uint32_t GetMaxRtrAdvInterval () const;
93 
98  void SetMaxRtrAdvInterval (uint32_t maxRtrAdvInterval);
99 
104  uint32_t GetMinRtrAdvInterval () const;
105 
110  void SetMinRtrAdvInterval (uint32_t minRtrAdvInterval);
111 
116  uint32_t GetMinDelayBetweenRAs () const;
117 
122  void SetMinDelayBetweenRAs (uint32_t minDelayBetweenRAs);
123 
128  bool IsManagedFlag () const;
129 
134  void SetManagedFlag (bool managedFlag);
135 
140  bool IsOtherConfigFlag () const;
141 
146  void SetOtherConfigFlag (bool otherConfigFlag);
147 
152  uint32_t GetLinkMtu () const;
153 
158  void SetLinkMtu (uint32_t linkMtu);
159 
164  uint32_t GetReachableTime () const;
165 
170  void SetReachableTime (uint32_t reachableTime);
171 
176  uint32_t GetDefaultLifeTime () const;
177 
182  void SetDefaultLifeTime (uint32_t defaultLifeTime);
183 
188  uint32_t GetRetransTimer () const;
189 
194  void SetRetransTimer (uint32_t retransTimer);
195 
200  uint8_t GetCurHopLimit () const;
201 
206  void SetCurHopLimit (uint8_t curHopLimit);
207 
212  uint8_t GetDefaultPreference () const;
213 
218  void SetDefaultPreference (uint8_t defaultPreference);
219 
224  bool IsSourceLLAddress () const;
225 
230  void SetSourceLLAddress (bool sourceLLAddress);
231 
236  bool IsHomeAgentFlag () const;
237 
242  void SetHomeAgentFlag (bool homeAgentFlag);
243 
248  bool IsHomeAgentInfo () const;
249 
254  void SetHomeAgentInfo (bool homeAgentFlag);
255 
260  uint32_t GetHomeAgentLifeTime () const;
261 
266  void SetHomeAgentLifeTime (uint32_t homeAgentLifeTime);
267 
272  uint32_t GetHomeAgentPreference () const;
273 
278  void SetHomeAgentPreference (uint32_t homeAgentPreference);
279 
284  bool IsMobRtrSupportFlag () const;
285 
290  void SetMobRtrSupportFlag (bool mobRtrSupportFlag);
291 
296  bool IsIntervalOpt () const;
297 
302  void SetIntervalOpt (bool intervalOpt);
303 
304 private:
305  typedef std::list<Ptr<RadvdPrefix> > RadvdPrefixList;
306  typedef std::list<Ptr<RadvdPrefix> >::iterator RadvdPrefixListI;
307 
311  uint32_t m_interface;
312 
317 
322 
327 
332 
337 
342 
347 
351  uint32_t m_linkMtu;
352 
356  uint32_t m_reachableTime;
357 
361  uint32_t m_retransTimer;
362 
366  uint32_t m_curHopLimit;
367 
372 
380 
385 
390 
396 
401 
406 
411 
416 };
417 
418 } /* namespace ns3 */
419 
420 #endif /* RADVD_INTERFACE_H */
421