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
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
StackHelper::getKeyChain
().sign(*command);
43
Ptr<L3Protocol> L3protocol = node->GetObject<
L3Protocol
>();
44
auto
strategyChoiceManager = L3protocol->
getStrategyChoiceManager
();
45
strategyChoiceManager->onStrategyChoiceRequest(*command);
46
NS_LOG_DEBUG(
"Forwarding strategy installed in node "
<< node->GetId());
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
sendCommand(parameters, node);
65
}
66
67
void
68
StrategyChoiceHelper::InstallAll
(
const
Name
& namePrefix,
const
Name
& strategy)
69
{
70
Install
(NodeContainer::GetGlobal(), namePrefix, strategy);
71
}
72
73
}
// namespace ndn
74
75
}
// namespace ns
ndn
Copyright (c) 2011-2015 Regents of the University of California.
Definition:
ndn-strategy-choice-helper.hpp:34
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:
content-store-impl.cpp:38
ndn-stack-helper.hpp
ns3::ndn::L3Protocol::getStrategyChoiceManager
shared_ptr< nfd::StrategyChoiceManager > getStrategyChoiceManager()
Get smart pointer to nfd::StrategyChoiceManager, used by node's NFD.
Definition:
ndn-l3-protocol.cpp:329
ns3::ndn::L3Protocol
Implementation network-layer of NDN stack.
Definition:
ndn-l3-protocol.hpp:75
ns3::ndn::StackHelper::getKeyChain
static KeyChain & getKeyChain()
Definition:
ndn-stack-helper.cpp:66
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:68
ndnSIM
helper
ndn-strategy-choice-helper.cpp
Generated on Tue Feb 23 2016 22:18:43 for ndnSIM by
1.8.11