NS-3 based Named Data Networking (NDN) simulator
ndnSIM 2.0: NDN, CCN, CCNx, content centric networks
API Documentation
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
ndn-strategy-choice-helper.hpp
Go to the documentation of this file.
1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
20
#ifndef NDN_STRATEGY_CHOICE_HELPER_H
21
#define NDN_STRATEGY_CHOICE_HELPER_H
22
23
#include "ns3/ndnSIM/model/ndn-common.hpp"
24
25
#include "ns3/node.h"
26
#include "ns3/ptr.h"
27
#include "ns3/node-container.h"
28
29
#include "ns3/ndnSIM/model/ndn-l3-protocol.hpp"
30
#include "ns3/ndnSIM/NFD/daemon/mgmt/strategy-choice-manager.hpp"
31
#include "ns3/ndnSIM/NFD/daemon/fw/available-strategies.hpp"
32
33
namespace
ndn {
34
namespace
nfd {
35
class
ControlParameters;
36
}
// namespace nfd
37
}
// namespace ndn
38
39
namespace
nfd {
40
namespace
fw {
41
class
Strategy
;
42
}
// namespace fw
43
}
// namespace nfd
44
45
46
namespace
ns3 {
47
namespace
ndn {
48
49
using ::ndn::nfd::ControlParameters;
50
59
class
StrategyChoiceHelper
{
60
public
:
61
static
void
62
Install
(
const
NodeContainer& c,
const
Name
& namePrefix,
const
Name
& strategy);
63
64
static
void
65
Install
(Ptr<Node> node,
const
Name
& namePrefix,
const
Name
& strategy);
66
67
static
void
68
InstallAll
(
const
Name
& namePrefix,
const
Name
& strategy);
69
70
template
<
class
Strategy>
71
static
void
72
Install
(Ptr<Node> node,
const
Name
& namePrefix);
73
74
template
<
class
Strategy>
75
static
void
76
Install
(
const
NodeContainer& c,
const
Name
& namePrefix);
77
78
template
<
class
Strategy>
79
static
void
80
InstallAll
(
const
Name
& namePrefix);
81
82
private
:
83
static
void
84
sendCommand(
const
ControlParameters& parameters, Ptr<Node> node);
85
};
86
87
template
<
class
Strategy>
88
inline
void
89
StrategyChoiceHelper::Install
(Ptr<Node> node,
const
Name
& namePrefix)
90
{
91
Ptr<L3Protocol> l3Protocol = node->GetObject<
L3Protocol
>();
92
NS_ASSERT(l3Protocol !=
nullptr
);
93
NS_ASSERT(l3Protocol->getForwarder() !=
nullptr
);
94
95
nfd::Forwarder
& forwarder = *l3Protocol->getForwarder();
96
nfd::StrategyChoice
& strategyChoice = forwarder.getStrategyChoice();
97
98
if
(!strategyChoice.
hasStrategy
(Strategy::STRATEGY_NAME)) {
99
strategyChoice.
install
(make_shared<Strategy>(ref(forwarder)));
100
}
101
102
Install
(node, namePrefix, Strategy::STRATEGY_NAME);
103
}
104
105
template
<
class
Strategy>
106
inline
void
107
StrategyChoiceHelper::Install
(
const
NodeContainer& c,
const
Name
& namePrefix)
108
{
109
for
(NodeContainer::Iterator i = c.Begin(); i != c.End(); ++i) {
110
Install<Strategy>(*i, namePrefix);
111
}
112
}
113
114
template
<
class
Strategy>
115
inline
void
116
StrategyChoiceHelper::InstallAll
(
const
Name
& namePrefix)
117
{
118
Install<Strategy>(NodeContainer::GetGlobal(), namePrefix);
119
}
120
121
}
// namespace ndn
122
}
// namespace ns3
123
124
#endif // NDN_STRATEGY_CHOICE_HELPER_H
nfd::StrategyChoice
represents the Strategy Choice table
Definition:
strategy-choice.hpp:45
ns3::ndn::StrategyChoiceHelper
NFD Strategy Choice Helper (FIB) helper.
Definition:
ndn-strategy-choice-helper.hpp:59
nfd::Forwarder
main class of NFD
Definition:
forwarder.hpp:54
ns3::ndn::Name
Name
Definition:
ndn-common.cpp:25
nfd::StrategyChoice::install
bool install(shared_ptr< fw::Strategy > strategy)
install a strategy
Definition:
strategy-choice.cpp:58
nfd::StrategyChoice::hasStrategy
bool hasStrategy(const Name &strategyName, bool isExact=false) const
determines if a strategy is installed
Definition:
strategy-choice.cpp:47
ns3::ndn::L3Protocol
Implementation network-layer of NDN stack.
Definition:
ndn-l3-protocol.hpp:75
nfd::fw::Strategy
represents a forwarding strategy
Definition:
strategy.hpp:37
ns3::ndn::StrategyChoiceHelper::Install
static void Install(const NodeContainer &c, const Name &namePrefix, const Name &strategy)
Definition:
ndn-strategy-choice-helper.cpp:50
ns3::ndn::StrategyChoiceHelper::InstallAll
static void InstallAll(const Name &namePrefix, const Name &strategy)
Definition:
ndn-strategy-choice-helper.cpp:68
ndnSIM
helper
ndn-strategy-choice-helper.hpp
Generated on Wed Feb 18 2015 16:31:16 for ndnSIM by
1.8.7