NS-3 based Named Data Networking (NDN) simulator
ndnSIM 2.5: NDN, CCN, CCNx, content centric networks
API Documentation
Main Page
Related Pages
Modules
+
Namespaces
Namespace List
+
Namespace Members
+
All
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
y
z
+
Functions
_
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
u
v
w
+
Variables
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
+
Typedefs
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
y
+
Enumerations
a
b
c
d
f
i
k
l
n
p
q
r
s
t
u
v
+
Enumerator
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
z
+
Classes
Class List
Class Index
Class Hierarchy
+
Class Members
+
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
~
+
Functions
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
~
+
Variables
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
+
Typedefs
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
u
v
w
+
Enumerations
_
a
c
e
r
s
t
v
+
Enumerator
a
c
d
e
f
h
i
l
m
n
p
r
s
u
v
w
+
Related Functions
a
b
c
d
e
f
g
i
k
l
m
n
o
p
s
v
+
Files
File List
+
File Members
+
All
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
u
v
w
z
+
Functions
b
c
d
e
f
g
h
m
o
p
r
s
t
u
v
w
+
Variables
a
b
c
d
e
f
g
i
k
l
m
n
p
r
s
t
+
Typedefs
b
c
d
e
i
m
p
s
u
w
Enumerations
Enumerator
+
Macros
_
a
b
d
e
i
l
m
n
o
p
r
s
t
u
v
z
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Modules
Pages
ndn-strategy-choice-helper.cpp
Go to the documentation of this file.
1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
20
#include "
ndn-strategy-choice-helper.hpp
"
21
22
#include "ns3/log.h"
23
24
#include "
ndn-stack-helper.hpp
"
25
26
namespace
ns3
{
27
namespace
ndn
{
28
29
NS_LOG_COMPONENT_DEFINE(
"ndn.StrategyChoiceHelper"
);
30
31
void
32
StrategyChoiceHelper::sendCommand(
const
ControlParameters
& parameters, Ptr<Node> node)
33
{
34
NS_LOG_DEBUG(
"Strategy choice command was initialized"
);
35
Block encodedParameters(parameters.wireEncode());
36
37
Name
commandName(
"/localhost/nfd/strategy-choice"
);
38
commandName.append(
"set"
);
39
commandName.append(encodedParameters);
40
41
shared_ptr<Interest> command(make_shared<Interest>(commandName));
42
command->setCanBePrefix(
false
);
43
StackHelper::getKeyChain
().sign(*command);
44
45
Ptr<L3Protocol> l3protocol = node->GetObject<
L3Protocol
>();
46
l3protocol->
injectInterest
(*command);
47
}
48
49
void
50
StrategyChoiceHelper::Install
(
const
NodeContainer& c,
const
Name
& namePrefix,
const
Name
& strategy)
51
{
52
for
(NodeContainer::Iterator i = c.Begin(); i != c.End(); ++i) {
53
Install
(*i, namePrefix, strategy);
54
}
55
}
56
57
void
58
StrategyChoiceHelper::Install
(Ptr<Node> node,
const
Name
& namePrefix,
const
Name
& strategy)
59
{
60
ControlParameters
parameters;
61
parameters.setName(namePrefix);
62
NS_LOG_DEBUG(
"Node ID: "
<< node->GetId() <<
" with forwarding strategy "
<< strategy);
63
parameters.setStrategy(strategy);
64
65
Simulator::ScheduleWithContext(node->GetId(), Seconds(0),
66
&StrategyChoiceHelper::sendCommand, parameters, node);
67
StackHelper::ProcessWarmupEvents
();
68
}
69
70
void
71
StrategyChoiceHelper::InstallAll
(
const
Name
& namePrefix,
const
Name
& strategy)
72
{
73
Install
(NodeContainer::GetGlobal(), namePrefix, strategy);
74
}
75
76
}
// namespace ndn
77
78
}
// namespace ns
ndn
Copyright (c) 2011-2015 Regents of the University of California.
Definition:
ndn-strategy-choice-helper.hpp:34
ns3::ndn::StackHelper::ProcessWarmupEvents
static void ProcessWarmupEvents()
Definition:
ndn-stack-helper.cpp:410
ndn::tlv::nfd::ControlParameters
Definition:
tlv-nfd.hpp:35
ns3::ndn::Name
Name
Definition:
ndn-common.cpp:25
ns3::ndn::StrategyChoiceHelper::Install
static void Install(Ptr< Node > node, const Name &namePrefix, const Name &strategy)
Install a built-in strategy strategy on node for namePrefix namespace.
Definition:
ndn-strategy-choice-helper.cpp:58
ndn-strategy-choice-helper.hpp
ns3
Copyright (c) 2011-2015 Regents of the University of California.
Definition:
ndn-app-link-service.cpp:32
ndn-stack-helper.hpp
ns3::ndn::L3Protocol
Implementation network-layer of NDN stack.
Definition:
ndn-l3-protocol.hpp:81
ns3::ndn::L3Protocol::injectInterest
void injectInterest(const Interest &interest)
Inject interest through internal Face.
Definition:
ndn-l3-protocol.cpp:246
ns3::ndn::StackHelper::getKeyChain
static KeyChain & getKeyChain()
Definition:
ndn-stack-helper.cpp:77
ns3::ndn::StrategyChoiceHelper::InstallAll
static void InstallAll(const Name &namePrefix, const Name &strategy)
Install a built-in strategy strategy on all nodes for namePrefix namespace.
Definition:
ndn-strategy-choice-helper.cpp:71
ndnSIM
helper
ndn-strategy-choice-helper.cpp
Generated on Fri May 6 2022 12:34:10 for ndnSIM by
1.8.13