NS-3 based Named Data Networking (NDN) simulator
ndnSIM 2.0: NDN, CCN, CCNx, content centric networks
API Documentation
ndn-scenario-helper.hpp
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
20 #ifndef NDNSIM_HELPER_NDN_SCENARIO_HELPER_HPP
21 #define NDNSIM_HELPER_NDN_SCENARIO_HELPER_HPP
22 
23 #include "ndn-stack-helper.hpp"
24 
25 #include "ns3/net-device.h"
26 #include "ns3/node.h"
27 
28 #include <ndn-cxx/name.hpp>
29 #include <map>
30 
31 namespace ns3 {
32 namespace ndn {
33 
64 {
65 public:
72  struct RouteInfo
73  {
74  std::string node1;
75  std::string node2;
77  int32_t metric;
78  };
79 
80  /*
81  * @brief Application information for addApps method
82  *
83  * It is preferred to use initializer list to indirectly pass AppInfo's to addApps
84  * method.
85  */
86  struct AppInfo
87  {
88  std::string node;
89  std::string name;
90  std::initializer_list<std::pair<std::string, std::string>> params;
91  std::string start;
92  std::string end;
93  };
94 
95 public:
97 
110  void
111  createTopology(std::initializer_list<std::initializer_list<std::string>/*node clique*/> topology);
112 
124  void
125  addRoutes(std::initializer_list<RouteInfo> routes);
126 
142  void
143  addApps(std::initializer_list<AppInfo> apps);
144 
145 public: // topology accessors
150  Ptr<Node>
151  getNode(const std::string& nodeName);
152 
157  shared_ptr<Face>
158  getFace(const std::string& node1, const std::string& node2);
159 
163  void
165 
169  void
171 
175  void
177 
181  void
183 
184 private:
185  Ptr<Node>
186  getOrCreateNode(const std::string& nodeName);
187 
188 private:
189  bool m_isTopologyInitialized;
190  StackHelper ndnHelper;
191  std::map<std::string, std::map<std::string, Ptr<NetDevice>>> links;
192  std::map<std::string, Ptr<Node>> nodes;
193 };
194 
195 } // namespace ndn
196 } // namespace ns3
197 
198 #endif // NDNSIM_HELPER_NDN_SCENARIO_HELPER_HPP
void disableFaceManager()
Disable Face Manager.
Copyright (c) 2011-2015 Regents of the University of California.
Ptr< Node > getNode(const std::string &nodeName)
Get node.
void disableRibManager()
Disable RIB Manager.
shared_ptr< Face > getFace(const std::string &node1, const std::string &node2)
Get face on the node1 pointing towards node2.
void disableStatusServer()
Disable Status Server.
Helper class to install NDN stack and configure its parameters.
Copyright (c) 2011-2015 Regents of the University of California.
std::initializer_list< std::pair< std::string, std::string > > params
void createTopology(std::initializer_list< std::initializer_list< std::string >> topology)
Create topology.
void addRoutes(std::initializer_list< RouteInfo > routes)
Create routes between topology nodes.
Helper class to simplify writing basic simulation scenarios.
void disableStrategyChoiceManager()
Disable Strategy Choice Manager.
void addApps(std::initializer_list< AppInfo > apps)
Create and install application on nodes.
Route information for addRoutes method.