examples+helper+model: Allowing to disable NFD managers
Change-Id: I471023fc23ffabbe14d9668426b4c1b03e4932ab
Refs: #3328
diff --git a/model/ndn-l3-protocol.cpp b/model/ndn-l3-protocol.cpp
index f8c037a..8f77b72 100644
--- a/model/ndn-l3-protocol.cpp
+++ b/model/ndn-l3-protocol.cpp
@@ -186,7 +186,10 @@
m_impl->m_forwarder = make_shared<nfd::Forwarder>();
initializeManagement();
- Simulator::ScheduleWithContext(m_node->GetId(), Seconds(0), &L3Protocol::initializeRibManager, this);
+
+ if (!this->getConfig().get<bool>("ndnSIM.disable_rib_manager", false)) {
+ Simulator::ScheduleWithContext(m_node->GetId(), Seconds(0), &L3Protocol::initializeRibManager, this);
+ }
m_impl->m_forwarder->getFaceTable().addReserved(make_shared<nfd::NullFace>(), nfd::FACEID_NULL);
@@ -228,20 +231,32 @@
bind(&Forwarder::getFace, forwarder.get(), _1),
m_impl->m_internalFace, keyChain);
- m_impl->m_faceManager = make_shared<FaceManager>(std::ref(forwarder->getFaceTable()),
- m_impl->m_internalFace,
- keyChain);
-
- m_impl->m_strategyChoiceManager =
- make_shared<StrategyChoiceManager>(std::ref(forwarder->getStrategyChoice()),
- m_impl->m_internalFace,
- keyChain);
-
- m_impl->m_statusServer = make_shared<StatusServer>(m_impl->m_internalFace,
- ref(*forwarder),
+ if (!this->getConfig().get<bool>("ndnSIM.disable_face_manager", false)) {
+ m_impl->m_faceManager = make_shared<FaceManager>(std::ref(forwarder->getFaceTable()),
+ m_impl->m_internalFace,
keyChain);
+ }
+ else {
+ this->getConfig().get_child("authorizations").get_child("authorize").get_child("privileges").erase("faces");
+ }
- ConfigFile config((IgnoreSections({"general", "log", "rib"})));
+ if (!this->getConfig().get<bool>("ndnSIM.disable_strategy_choice_manager", false)) {
+ m_impl->m_strategyChoiceManager =
+ make_shared<StrategyChoiceManager>(std::ref(forwarder->getStrategyChoice()),
+ m_impl->m_internalFace,
+ keyChain);
+ }
+ else {
+ this->getConfig().get_child("authorizations").get_child("authorize").get_child("privileges").erase("strategy-choice");
+ }
+
+ if (!this->getConfig().get<bool>("ndnSIM.disable_status_server", false)) {
+ m_impl->m_statusServer = make_shared<StatusServer>(m_impl->m_internalFace,
+ ref(*forwarder),
+ keyChain);
+ }
+
+ ConfigFile config((IgnoreSections({"general", "log", "rib", "ndnSIM"})));
TablesConfigSection tablesConfig(forwarder->getCs(),
forwarder->getPit(),