face: reserved FaceIds and NullFace

refs #1620, #1622

Change-Id: I315ae262c7e0813a64b69d3e7d67de61b7b88c55
diff --git a/daemon/main.cpp b/daemon/main.cpp
index 70717c6..2509307 100644
--- a/daemon/main.cpp
+++ b/daemon/main.cpp
@@ -31,6 +31,7 @@
 #include "core/global-io.hpp"
 #include "core/privilege-helper.hpp"
 #include "fw/forwarder.hpp"
+#include "face/null-face.hpp"
 #include "mgmt/internal-face.hpp"
 #include "mgmt/fib-manager.hpp"
 #include "mgmt/face-manager.hpp"
@@ -78,6 +79,10 @@
 
     initializeManagement();
 
+    m_forwarder->getFaceTable().addReserved(make_shared<NullFace>(), FACEID_NULL);
+    m_forwarder->getFaceTable().addReserved(
+      make_shared<NullFace>(FaceUri("contentstore://")), FACEID_CONTENT_STORE);
+
     PrivilegeHelper::drop();
   }
 
@@ -125,19 +130,14 @@
     m_fibManager = make_shared<FibManager>(ref(m_forwarder->getFib()),
                                            bind(&Forwarder::getFace, m_forwarder.get(), _1),
                                            m_internalFace);
-
     m_faceManager = make_shared<FaceManager>(ref(m_forwarder->getFaceTable()),
                                              m_internalFace);
+    m_strategyChoiceManager = make_shared<StrategyChoiceManager>(
+                                ref(m_forwarder->getStrategyChoice()), m_internalFace);
 
-    m_strategyChoiceManager =
-      make_shared<StrategyChoiceManager>(ref(m_forwarder->getStrategyChoice()),
-                                         m_internalFace);
-
-    m_statusServer = make_shared<StatusServer>(m_internalFace,
-                                               ref(*m_forwarder));
+    m_statusServer = make_shared<StatusServer>(m_internalFace, ref(*m_forwarder));
 
     ConfigFile config((IgnoreRibAndLogSections()));
-
     general::setConfigFile(config);
 
     TablesConfigSection tablesConfig(m_forwarder->getCs(),
@@ -145,12 +145,11 @@
                                      m_forwarder->getFib(),
                                      m_forwarder->getStrategyChoice(),
                                      m_forwarder->getMeasurements());
-
     tablesConfig.setConfigFile(config);
 
     m_internalFace->getValidator().setConfigFile(config);
 
-    m_forwarder->addFace(m_internalFace);
+    m_forwarder->getFaceTable().addReserved(m_internalFace, FACEID_INTERNAL_FACE);
 
     m_faceManager->setConfigFile(config);