util: Create Face with canonical FaceUri

refs: #1911

Change-Id: I13cc6522b5456d91a793365e33b2e53f9bd13e46
diff --git a/src/route/fib.cpp b/src/route/fib.cpp
index 1815b27..16ed8a8 100644
--- a/src/route/fib.cpp
+++ b/src/route/fib.cpp
@@ -294,12 +294,7 @@
                 const CommandSucceedCallback& onSuccess,
                 const CommandFailCallback& onFailure)
 {
-  ndn::nfd::ControlParameters faceParameters;
-  faceParameters
-    .setUri(faceUri);
-  m_controller.start<ndn::nfd::FaceCreateCommand>(faceParameters,
-                                                  onSuccess,
-                                                  onFailure);
+  m_faceController.createFace(faceUri, onSuccess, onFailure);
 }
 
 void
diff --git a/src/route/fib.hpp b/src/route/fib.hpp
index e49727b..d1737d2 100644
--- a/src/route/fib.hpp
+++ b/src/route/fib.hpp
@@ -31,6 +31,7 @@
 #include "face-map.hpp"
 #include "fib-entry.hpp"
 #include "test-access-control.hpp"
+#include "utility/face-controller.hpp"
 
 namespace nlsr {
 
@@ -48,6 +49,7 @@
     , m_table()
     , m_refreshTime(0)
     , m_controller(face)
+    , m_faceController(face.getIoService(), m_controller)
     , m_faceMap()
     , m_adjacencyList(adjacencyList)
     , m_confParameter(conf)
@@ -186,6 +188,7 @@
   std::list<FibEntry> m_table;
   int32_t m_refreshTime;
   ndn::nfd::Controller m_controller;
+  util::FaceController m_faceController;
 
 PUBLIC_WITH_TESTS_ELSE_PRIVATE:
   FaceMap m_faceMap;