author | Peter D. Barnes, Jr. <barnes26@llnl.gov> |
Fri, 26 Sep 2014 15:51:00 -0700 | |
changeset 10968 | 2d29fee2b7b8 |
parent 10129 | 5d1521685ad9 |
permissions | -rw-r--r-- |
10129
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
1 |
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
2 |
/* |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
3 |
* Copyright (c) 2013 Universita' di Firenze |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
4 |
* |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
5 |
* This program is free software; you can redistribute it and/or modify |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
6 |
* it under the terms of the GNU General Public License version 2 as |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
7 |
* published by the Free Software Foundation; |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
8 |
* |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
9 |
* This program is distributed in the hope that it will be useful, |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
10 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
11 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
12 |
* GNU General Public License for more details. |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
13 |
* |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
14 |
* You should have received a copy of the GNU General Public License |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
15 |
* along with this program; if not, write to the Free Software |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
16 |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
17 |
* |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
18 |
* Author: Tommaso Pecorella <tommaso.pecorella@unifi.it> |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
19 |
*/ |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
20 |
|
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
21 |
#include "ns3/log.h" |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
22 |
#include "ns3/assert.h" |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
23 |
#include "ns3/radvd.h" |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
24 |
#include "ns3/radvd-interface.h" |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
25 |
#include "ns3/radvd-prefix.h" |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
26 |
|
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
27 |
#include "radvd-helper.h" |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
28 |
|
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
29 |
namespace ns3 |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
30 |
{ |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
31 |
|
10968
2d29fee2b7b8
[Bug 1551] Redux: NS_LOG_COMPONENT_DEFINE inside or outside of ns3 namespace?
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents:
10129
diff
changeset
|
32 |
NS_LOG_COMPONENT_DEFINE ("RadvdHelper"); |
2d29fee2b7b8
[Bug 1551] Redux: NS_LOG_COMPONENT_DEFINE inside or outside of ns3 namespace?
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents:
10129
diff
changeset
|
33 |
|
10129
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
34 |
RadvdHelper::RadvdHelper () |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
35 |
{ |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
36 |
m_factory.SetTypeId (Radvd::GetTypeId ()); |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
37 |
} |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
38 |
|
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
39 |
void RadvdHelper::AddAnnouncedPrefix (uint32_t interface, Ipv6Address prefix, uint32_t prefixLength) |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
40 |
{ |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
41 |
NS_LOG_FUNCTION(this << int(interface) << prefix << int(prefixLength)); |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
42 |
if (prefixLength != 64) |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
43 |
{ |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
44 |
NS_LOG_WARN("Adding a non-64 prefix is generally a bad idea. Autoconfiguration might not work."); |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
45 |
} |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
46 |
|
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
47 |
bool prefixFound = false; |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
48 |
if (m_radvdInterfaces.find(interface) == m_radvdInterfaces.end()) |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
49 |
{ |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
50 |
m_radvdInterfaces[interface] = Create<RadvdInterface> (interface); |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
51 |
} |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
52 |
else |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
53 |
{ |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
54 |
RadvdInterface::RadvdPrefixList prefixList = m_radvdInterfaces[interface]->GetPrefixes(); |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
55 |
RadvdInterface::RadvdPrefixListCI iter; |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
56 |
for (iter=prefixList.begin(); iter!=prefixList.end(); iter++) |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
57 |
{ |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
58 |
if ((*iter)->GetNetwork() == prefix) |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
59 |
{ |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
60 |
NS_LOG_LOGIC("Not adding the same prefix twice, skipping " << prefix << " " << int(prefixLength)); |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
61 |
prefixFound = true; |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
62 |
break; |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
63 |
} |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
64 |
} |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
65 |
} |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
66 |
if (!prefixFound) |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
67 |
{ |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
68 |
Ptr<RadvdPrefix> routerPrefix = Create<RadvdPrefix> (prefix, prefixLength); |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
69 |
m_radvdInterfaces[interface]->AddPrefix(routerPrefix); |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
70 |
} |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
71 |
} |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
72 |
|
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
73 |
void RadvdHelper::EnableDefaultRouterForInterface (uint32_t interface) |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
74 |
{ |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
75 |
if (m_radvdInterfaces.find(interface) == m_radvdInterfaces.end()) |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
76 |
{ |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
77 |
m_radvdInterfaces[interface] = Create<RadvdInterface> (interface); |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
78 |
} |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
79 |
uint32_t maxRtrAdvInterval = m_radvdInterfaces[interface]->GetMaxRtrAdvInterval(); |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
80 |
m_radvdInterfaces[interface]->SetDefaultLifeTime(3*maxRtrAdvInterval/1000); |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
81 |
} |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
82 |
|
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
83 |
void RadvdHelper::DisableDefaultRouterForInterface (uint32_t interface) |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
84 |
{ |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
85 |
if (m_radvdInterfaces.find(interface) == m_radvdInterfaces.end()) |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
86 |
{ |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
87 |
m_radvdInterfaces[interface] = Create<RadvdInterface> (interface); |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
88 |
} |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
89 |
m_radvdInterfaces[interface]->SetDefaultLifeTime(0); |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
90 |
} |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
91 |
|
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
92 |
Ptr<RadvdInterface> RadvdHelper::GetRadvdInterface (uint32_t interface) |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
93 |
{ |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
94 |
if (m_radvdInterfaces.find(interface) == m_radvdInterfaces.end()) |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
95 |
{ |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
96 |
m_radvdInterfaces[interface] = Create<RadvdInterface> (interface); |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
97 |
} |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
98 |
return m_radvdInterfaces[interface]; |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
99 |
} |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
100 |
|
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
101 |
void RadvdHelper::ClearPrefixes() |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
102 |
{ |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
103 |
m_radvdInterfaces.clear(); |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
104 |
} |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
105 |
|
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
106 |
void RadvdHelper::SetAttribute (std::string name, const AttributeValue& value) |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
107 |
{ |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
108 |
m_factory.Set (name, value); |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
109 |
} |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
110 |
|
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
111 |
ApplicationContainer RadvdHelper::Install (Ptr<Node> node) |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
112 |
{ |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
113 |
ApplicationContainer apps; |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
114 |
Ptr<Radvd> radvd = m_factory.Create<Radvd> (); |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
115 |
for (RadvdInterfaceMapI iter = m_radvdInterfaces.begin(); iter != m_radvdInterfaces.end(); iter ++) |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
116 |
{ |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
117 |
if (!iter->second->GetPrefixes().empty()) |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
118 |
{ |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
119 |
radvd->AddConfiguration(iter->second); |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
120 |
} |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
121 |
} |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
122 |
node->AddApplication (radvd); |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
123 |
apps.Add (radvd); |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
124 |
return apps; |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
125 |
} |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
126 |
|
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
127 |
} /* namespace ns3 */ |
5d1521685ad9
Bug 1728 - Radvd application is missing an Helper
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
diff
changeset
|
128 |