NS-3 based Named Data Networking (NDN) simulator
ndnSIM 2.5: NDN, CCN, CCNx, content centric networks
API Documentation
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-strategy-choice-helper.hpp
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
ns3
Copyright (c) 2011-2015 Regents of the University of California.
Definition:
ndn-app-link-service.cpp:32
ndn-stack-helper.hpp
ns3::ndn::Name
Name
Definition:
ndn-common.cpp:25
ndn::tlv::nfd::ControlParameters
@ ControlParameters
Definition:
tlv-nfd.hpp:35
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
ns3::ndn::L3Protocol
Implementation network-layer of NDN stack.
Definition:
ndn-l3-protocol.hpp:81
ns3::ndn::StackHelper::ProcessWarmupEvents
static void ProcessWarmupEvents()
Definition:
ndn-stack-helper.cpp:410
ns3::ndn::StackHelper::getKeyChain
static KeyChain & getKeyChain()
Definition:
ndn-stack-helper.cpp:77
ndn
Copyright (c) 2011-2015 Regents of the University of California.
Definition:
ndn-strategy-choice-helper.hpp:34
ns3::ndn::L3Protocol::injectInterest
void injectInterest(const Interest &interest)
Inject interest through internal Face.
Definition:
ndn-l3-protocol.cpp:246
ndnSIM
helper
ndn-strategy-choice-helper.cpp
Generated on Mon Jun 1 2020 22:32:14 for ndnSIM by
1.8.18