Helper class to simplify writing basic simulation scenarios. More...
#include <ndn-scenario-helper.hpp>
Classes | |
struct | AppInfo |
struct | RouteInfo |
Route information for addRoutes method. More... | |
Public Member Functions | |
ScenarioHelper () | |
void | createTopology (std::initializer_list< std::initializer_list< std::string >> topology, bool shouldInstallNdnStack=true) |
Create topology. More... | |
void | addRoutes (std::initializer_list< RouteInfo > routes) |
Create routes between topology nodes. More... | |
void | addApps (std::initializer_list< AppInfo > apps) |
Create and install application on nodes. More... | |
Ptr< Node > | getNode (const std::string &nodeName) |
Get node. More... | |
shared_ptr< Face > | getFace (const std::string &node1, const std::string &node2) |
Get face on the node1 pointing towards node2 . More... | |
Ptr< NetDevice > | getNetDevice (const std::string &node1, const std::string &node2) |
Get NetDevice on the node1 pointing towards node2 . More... | |
void | disableRibManager () |
Disable RIB Manager. More... | |
void | disableStrategyChoiceManager () |
Disable Face Manager. More... | |
void | disableForwarderStatusManager () |
Disable Forwarder Status Manager. More... | |
StackHelper & | getStackHelper () |
Get NDN stack helper, e.g., to adjust its parameters. More... | |
Helper class to simplify writing basic simulation scenarios.
The following code with scenario helper creates a 3-node topology, with manual routes between nodes and 2 applications, installed on first and last node of the topology:
ScenarioHelper helper; helper.createTopology({ {"1", "2"}, {"2", "3"} }); helper.addRoutes({ {"1", "2", "/prefix", 1}, {"2", "3", "/prefix", 1} }); helper.addApps({ {"1", "ns3::ndn::ConsumerCbr", {{"Prefix", "/prefix"}, {"Frequency", "1"}}, "0s", "100s"}, {"3", "ns3::ndn::Producer", {{"Prefix", "/prefix"}, {"PayloadSize", "1024"}}, "0s", "100s"} });
Definition at line 63 of file ndn-scenario-helper.hpp.
ns3::ndn::ScenarioHelper::ScenarioHelper | ( | ) |
Definition at line 33 of file ndn-scenario-helper.cpp.
void ns3::ndn::ScenarioHelper::createTopology | ( | std::initializer_list< std::initializer_list< std::string >> | topology, |
bool | shouldInstallNdnStack = true |
||
) |
Create topology.
std::logic_error | if createTopology is called more than once |
Example:
ScenarioHelper helper; helper.createTopology({ {"1", "2"}, {"2", "3"} });
Definition at line 39 of file ndn-scenario-helper.cpp.
References ns3::ndn::StackHelper::InstallAll().
void ns3::ndn::ScenarioHelper::addRoutes | ( | std::initializer_list< RouteInfo > | routes | ) |
Create routes between topology nodes.
std::invalid_argument | if the nodes or links between nodes do not exist |
Example:
helper.addRoutes({ {"1", "2", "/prefix", 1}, {"2", "3", "/prefix", 1} });
Definition at line 92 of file ndn-scenario-helper.cpp.
References ns3::ndn::FibHelper::AddRoute(), getFace(), and getNode().
void ns3::ndn::ScenarioHelper::addApps | ( | std::initializer_list< AppInfo > | apps | ) |
Create and install application on nodes.
std::invalid_argument | if the nodes or links between nodes do not exist |
Example:
helper.addApps({ {"1", "ns3::ndn::ConsumerCbr", {{"Prefix", "/prefix"}, {"Frequency", "1"}}, "0s", "100s"}, {"3", "ns3::ndn::Producer", {{"Prefix", "/prefix"}, {"PayloadSize", "1024"}}, "0s", "100s"} });
Definition at line 101 of file ndn-scenario-helper.cpp.
References getNode(), ns3::ndn::AppHelper::Install(), and ns3::ndn::AppHelper::SetAttribute().
Ptr< Node > ns3::ndn::ScenarioHelper::getNode | ( | const std::string & | nodeName | ) |
Get node.
std::invalid_argument | if the node does not exist |
Definition at line 126 of file ndn-scenario-helper.cpp.
Referenced by addApps(), and addRoutes().
shared_ptr< Face > ns3::ndn::ScenarioHelper::getFace | ( | const std::string & | node1, |
const std::string & | node2 | ||
) |
Get face on the node1
pointing towards node2
.
std::invalid_argument | if the link does not exist |
Definition at line 137 of file ndn-scenario-helper.cpp.
References getNetDevice().
Referenced by addRoutes().
Ptr< NetDevice > ns3::ndn::ScenarioHelper::getNetDevice | ( | const std::string & | node1, |
const std::string & | node2 | ||
) |
Get NetDevice on the node1
pointing towards node2
.
std::invalid_argument | if the link does not exist |
Definition at line 144 of file ndn-scenario-helper.cpp.
Referenced by getFace().
void ns3::ndn::ScenarioHelper::disableRibManager | ( | ) |
Disable RIB Manager.
Definition at line 68 of file ndn-scenario-helper.cpp.
References ns3::ndn::StackHelper::disableRibManager().
void ns3::ndn::ScenarioHelper::disableStrategyChoiceManager | ( | ) |
Disable Face Manager.
Disable Strategy Choice Manager
Definition at line 80 of file ndn-scenario-helper.cpp.
References ns3::ndn::StackHelper::disableStrategyChoiceManager().
void ns3::ndn::ScenarioHelper::disableForwarderStatusManager | ( | ) |
Disable Forwarder Status Manager.
Definition at line 86 of file ndn-scenario-helper.cpp.
References ns3::ndn::StackHelper::disableForwarderStatusManager().
StackHelper & ns3::ndn::ScenarioHelper::getStackHelper | ( | ) |
Get NDN stack helper, e.g., to adjust its parameters.
Definition at line 158 of file ndn-scenario-helper.cpp.