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:
39  typedef std::list<Ptr<RadvdPrefix> > RadvdPrefixList;
40  typedef std::list<Ptr<RadvdPrefix> >::iterator RadvdPrefixListI;
41  typedef std::list<Ptr<RadvdPrefix> >::const_iterator RadvdPrefixListCI;
42 
47  RadvdInterface (uint32_t interface);
48 
55  RadvdInterface (uint32_t interface, uint32_t maxRtrAdvInterval, uint32_t minRtrAdvInterval);
56 
60  ~RadvdInterface ();
61 
66  uint32_t GetInterface () const;
67 
73 
78  void AddPrefix (Ptr<RadvdPrefix> routerPrefix);
79 
84  bool IsSendAdvert () const;
85 
90  void SetSendAdvert (bool sendAdvert);
91 
96  uint32_t GetMaxRtrAdvInterval () const;
97 
102  void SetMaxRtrAdvInterval (uint32_t maxRtrAdvInterval);
103 
108  uint32_t GetMinRtrAdvInterval () const;
109 
114  void SetMinRtrAdvInterval (uint32_t minRtrAdvInterval);
115 
120  uint32_t GetMinDelayBetweenRAs () const;
121 
126  void SetMinDelayBetweenRAs (uint32_t minDelayBetweenRAs);
127 
132  bool IsManagedFlag () const;
133 
138  void SetManagedFlag (bool managedFlag);
139 
144  bool IsOtherConfigFlag () const;
145 
150  void SetOtherConfigFlag (bool otherConfigFlag);
151 
156  uint32_t GetLinkMtu () const;
157 
162  void SetLinkMtu (uint32_t linkMtu);
163 
168  uint32_t GetReachableTime () const;
169 
174  void SetReachableTime (uint32_t reachableTime);
175 
180  uint32_t GetDefaultLifeTime () const;
181 
186  void SetDefaultLifeTime (uint32_t defaultLifeTime);
187 
192  uint32_t GetRetransTimer () const;
193 
198  void SetRetransTimer (uint32_t retransTimer);
199 
204  uint8_t GetCurHopLimit () const;
205 
210  void SetCurHopLimit (uint8_t curHopLimit);
211 
216  uint8_t GetDefaultPreference () const;
217 
222  void SetDefaultPreference (uint8_t defaultPreference);
223 
228  bool IsSourceLLAddress () const;
229 
234  void SetSourceLLAddress (bool sourceLLAddress);
235 
240  bool IsHomeAgentFlag () const;
241 
246  void SetHomeAgentFlag (bool homeAgentFlag);
247 
252  bool IsHomeAgentInfo () const;
253 
258  void SetHomeAgentInfo (bool homeAgentFlag);
259 
264  uint32_t GetHomeAgentLifeTime () const;
265 
270  void SetHomeAgentLifeTime (uint32_t homeAgentLifeTime);
271 
276  uint32_t GetHomeAgentPreference () const;
277 
282  void SetHomeAgentPreference (uint32_t homeAgentPreference);
283 
288  bool IsMobRtrSupportFlag () const;
289 
294  void SetMobRtrSupportFlag (bool mobRtrSupportFlag);
295 
300  bool IsIntervalOpt () const;
301 
306  void SetIntervalOpt (bool intervalOpt);
307 
308 private:
309 
313  uint32_t m_interface;
314 
319 
324 
329 
334 
339 
344 
349 
353  uint32_t m_linkMtu;
354 
358  uint32_t m_reachableTime;
359 
363  uint32_t m_retransTimer;
364 
368  uint32_t m_curHopLimit;
369 
374 
382 
387 
392 
398 
403 
408 
413 
418 };
419 
420 } /* namespace ns3 */
421 
422 #endif /* RADVD_INTERFACE_H */
423