helper+model: Fix helpers to work with NFD/ndn-cxx 0.4+

Change-Id: I7ed2893acbda1458383603c0e3c154d3e841405e
Refs: #3560
diff --git a/helper/boost-graph-ndn-global-routing-helper.hpp b/helper/boost-graph-ndn-global-routing-helper.hpp
index fe160f3..49b724e 100644
--- a/helper/boost-graph-ndn-global-routing-helper.hpp
+++ b/helper/boost-graph-ndn-global-routing-helper.hpp
@@ -28,7 +28,6 @@
 #include <boost/graph/properties.hpp>
 #include <boost/ref.hpp>
 
-#include "ns3/ndnSIM/model/ndn-face.hpp"
 #include "ns3/ndnSIM/model/ndn-global-router.hpp"
 
 #include "ns3/node-list.h"
diff --git a/helper/ndn-fib-helper.cpp b/helper/ndn-fib-helper.cpp
index 95c0309..a74ddb2 100644
--- a/helper/ndn-fib-helper.cpp
+++ b/helper/ndn-fib-helper.cpp
@@ -42,7 +42,6 @@
 #include "ns3/ndnSIM/model/ndn-l3-protocol.hpp"
 #include "ns3/ndnSIM/helper/ndn-stack-helper.hpp"
 
-
 namespace ns3 {
 namespace ndn {
 
@@ -62,8 +61,7 @@
   StackHelper::getKeyChain().sign(*command);
 
   Ptr<L3Protocol> l3protocol = node->GetObject<L3Protocol>();
-  shared_ptr<nfd::FibManager> fibManager = l3protocol->getFibManager();
-  fibManager->onFibRequest(*command);
+  l3protocol->injectInterest(*command);
 }
 
 void
@@ -79,9 +77,8 @@
   shared_ptr<Interest> command(make_shared<Interest>(commandName));
   StackHelper::getKeyChain().sign(*command);
 
-  Ptr<L3Protocol> L3protocol = node->GetObject<L3Protocol>();
-  shared_ptr<nfd::FibManager> fibManager = L3protocol->getFibManager();
-  fibManager->onFibRequest(*command);
+  Ptr<L3Protocol> l3protocol = node->GetObject<L3Protocol>();
+  l3protocol->injectInterest(*command);
 }
 
 void
diff --git a/helper/ndn-global-routing-helper.cpp b/helper/ndn-global-routing-helper.cpp
index 8d42633..aca25d5 100644
--- a/helper/ndn-global-routing-helper.cpp
+++ b/helper/ndn-global-routing-helper.cpp
@@ -27,7 +27,7 @@
 
 #include "model/ndn-l3-protocol.hpp"
 #include "helper/ndn-fib-helper.hpp"
-#include "model/ndn-net-device-face.hpp"
+#include "model/ndn-net-device-link-service.hpp"
 #include "model/ndn-global-router.hpp"
 
 #include "daemon/table/fib.hpp"
@@ -80,14 +80,14 @@
   gr = CreateObject<GlobalRouter>();
   node->AggregateObject(gr);
 
-  for (auto& i : ndn->getForwarder()->getFaceTable()) {
-    shared_ptr<NetDeviceFace> face = std::dynamic_pointer_cast<NetDeviceFace>(i);
-    if (face == 0) {
+  for (auto& face : ndn->getForwarder()->getFaceTable()) {
+    auto linkService = dynamic_cast<NetDeviceLinkService*>(face->getLinkService());
+    if (linkService == nullptr) {
       NS_LOG_DEBUG("Skipping non-netdevice face");
       continue;
     }
 
-    Ptr<NetDevice> nd = face->GetNetDevice();
+    Ptr<NetDevice> nd = linkService->GetNetDevice();
     if (nd == 0) {
       NS_LOG_DEBUG("Not a NetDevice associated with NetDeviceFace");
       continue;
@@ -325,9 +325,9 @@
     }
 
     for (auto& faceId : faceIds) {
-      shared_ptr<Face> k = l3->getForwarder()->getFaceTable().get(faceId);
-      shared_ptr<NetDeviceFace> face = std::dynamic_pointer_cast<NetDeviceFace>(k);
-      if (face == 0) {
+      shared_ptr<Face> face = l3->getForwarder()->getFaceTable().get(faceId);
+      auto linkService = dynamic_cast<NetDeviceLinkService*>(face->getLinkService());
+      if (linkService == nullptr) {
         NS_LOG_DEBUG("Skipping non-netdevice face");
         continue;
       }
diff --git a/helper/ndn-link-control-helper.cpp b/helper/ndn-link-control-helper.cpp
index 09137bf..70a3171 100644
--- a/helper/ndn-link-control-helper.cpp
+++ b/helper/ndn-link-control-helper.cpp
@@ -32,7 +32,8 @@
 #include "ns3/pointer.h"
 
 #include "model/ndn-l3-protocol.hpp"
-#include "model/ndn-net-device-face.hpp"
+#include "model/ndn-net-device-link-service.hpp"
+#include "NFD/daemon/face/face.hpp"
 
 #include "fw/forwarder.hpp"
 
@@ -56,11 +57,11 @@
 
   // iterate over all faces to find the right one
   for (const auto& face : ndn1->getForwarder()->getFaceTable()) {
-    shared_ptr<ndn::NetDeviceFace> ndFace = std::dynamic_pointer_cast<NetDeviceFace>(face);
-    if (ndFace == nullptr)
+    auto linkService = dynamic_cast<NetDeviceLinkService*>(face->getLinkService());
+    if (linkService == nullptr)
       continue;
 
-    Ptr<PointToPointNetDevice> nd1 = ndFace->GetNetDevice()->GetObject<PointToPointNetDevice>();
+    Ptr<PointToPointNetDevice> nd1 = linkService->GetNetDevice()->GetObject<PointToPointNetDevice>();
     if (nd1 == nullptr)
       continue;
 
diff --git a/helper/ndn-scenario-helper.cpp b/helper/ndn-scenario-helper.cpp
index 1be86e6..2539af1 100644
--- a/helper/ndn-scenario-helper.cpp
+++ b/helper/ndn-scenario-helper.cpp
@@ -67,11 +67,11 @@
   ndnHelper.disableRibManager();
 }
 
-void
-ScenarioHelper::disableFaceManager()
-{
-  ndnHelper.disableFaceManager();
-}
+// void
+// ScenarioHelper::disableFaceManager()
+// {
+//   ndnHelper.disableFaceManager();
+// }
 
 void
 ScenarioHelper::disableStrategyChoiceManager()
@@ -80,9 +80,9 @@
 }
 
 void
-ScenarioHelper::disableStatusServer()
+ScenarioHelper::disableForwarderStatusManager()
 {
-  ndnHelper.disableStatusServer();
+  ndnHelper.disableForwarderStatusManager();
 }
 
 void
diff --git a/helper/ndn-scenario-helper.hpp b/helper/ndn-scenario-helper.hpp
index 52d19b7..b939095 100644
--- a/helper/ndn-scenario-helper.hpp
+++ b/helper/ndn-scenario-helper.hpp
@@ -163,11 +163,12 @@
   void
   disableRibManager();
 
-  /**
-   * \brief Disable Face Manager
-   */
-  void
-  disableFaceManager();
+  // Cannot be disabled for now
+  // /**
+  //  * \brief Disable Face Manager
+  //  */
+  // void
+  // disableFaceManager();
 
   /**
    * \brief Disable Strategy Choice Manager
@@ -176,10 +177,10 @@
   disableStrategyChoiceManager();
 
   /**
-   * \brief Disable Status Server
+   * \brief Disable Forwarder Status Manager
    */
   void
-  disableStatusServer();
+  disableForwarderStatusManager();
 
   /**
    * \brief Get NDN stack helper, e.g., to adjust its parameters
diff --git a/helper/ndn-stack-helper.cpp b/helper/ndn-stack-helper.cpp
index 06dd368..4037cf8 100644
--- a/helper/ndn-stack-helper.cpp
+++ b/helper/ndn-stack-helper.cpp
@@ -330,9 +330,7 @@
 
   if (m_needSetDefaultRoutes) {
     // default route with lowest priority possible
-
-    // TODO: Restore when FibHelper is available
-    // FibHelper::AddRoute(node, "/", face, std::numeric_limits<int32_t>::max());
+    FibHelper::AddRoute(node, "/", face, std::numeric_limits<int32_t>::max());
   }
   return face;
 }
diff --git a/helper/ndn-strategy-choice-helper.cpp b/helper/ndn-strategy-choice-helper.cpp
index 53ba544..6958fce 100644
--- a/helper/ndn-strategy-choice-helper.cpp
+++ b/helper/ndn-strategy-choice-helper.cpp
@@ -40,10 +40,9 @@
 
   shared_ptr<Interest> command(make_shared<Interest>(commandName));
   StackHelper::getKeyChain().sign(*command);
-  Ptr<L3Protocol> L3protocol = node->GetObject<L3Protocol>();
-  auto strategyChoiceManager = L3protocol->getStrategyChoiceManager();
-  strategyChoiceManager->onStrategyChoiceRequest(*command);
-  NS_LOG_DEBUG("Forwarding strategy installed in node " << node->GetId());
+
+  Ptr<L3Protocol> l3protocol = node->GetObject<L3Protocol>();
+  l3protocol->injectInterest(*command);
 }
 
 void
diff --git a/model/ndn-l3-protocol.cpp b/model/ndn-l3-protocol.cpp
index a3263f4..8556db7 100644
--- a/model/ndn-l3-protocol.cpp
+++ b/model/ndn-l3-protocol.cpp
@@ -233,6 +233,12 @@
 };
 
 void
+L3Protocol::injectInterest(const Interest& interest)
+{
+  m_impl->m_internalFace->sendInterest(interest);
+}
+
+void
 L3Protocol::initializeManagement()
 {
   auto& forwarder = m_impl->m_forwarder;
diff --git a/model/ndn-l3-protocol.hpp b/model/ndn-l3-protocol.hpp
index 0145d72..a34d36f 100644
--- a/model/ndn-l3-protocol.hpp
+++ b/model/ndn-l3-protocol.hpp
@@ -147,6 +147,12 @@
   nfd::ConfigSection&
   getConfig();
 
+  /**
+   * \brief Inject interest through internal Face
+   */
+  void
+  injectInterest(const Interest& interest);
+
 public: // Workaround for python bindings
   static Ptr<L3Protocol>
   getL3Protocol(Ptr<Object> node);
diff --git a/tests/unit-tests/helper/ndn-face-container.t.cpp b/tests/unit-tests/helper/ndn-face-container.t.cpp
index 5d0800d..4129cbc 100644
--- a/tests/unit-tests/helper/ndn-face-container.t.cpp
+++ b/tests/unit-tests/helper/ndn-face-container.t.cpp
@@ -41,10 +41,10 @@
   FaceContainer c1;
   BOOST_CHECK_EQUAL(c1.GetN(), 0);
 
-  c1.Add(std::make_shared<nfd::NullFace>(FaceUri("null://1")));
+  c1.Add(nfd::face::makeNullFace(FaceUri("null://1")));
   BOOST_CHECK_EQUAL(c1.GetN(), 1);
 
-  c1.Add(std::make_shared<nfd::NullFace>(FaceUri("null://2")));
+  c1.Add(nfd::face::makeNullFace(FaceUri("null://2")));
   BOOST_CHECK_EQUAL(c1.GetN(), 2);
 
   FaceContainer c2(c1);
@@ -71,8 +71,8 @@
 BOOST_AUTO_TEST_CASE(AddAll)
 {
   FaceContainer c1;
-  c1.Add(std::make_shared<nfd::NullFace>(FaceUri("null://1")));
-  c1.Add(std::make_shared<nfd::NullFace>(FaceUri("null://2")));
+  c1.Add(nfd::face::makeNullFace(FaceUri("null://1")));
+  c1.Add(nfd::face::makeNullFace(FaceUri("null://2")));
 
   FaceContainer c2(c1);
   c2.AddAll(c1);
diff --git a/tests/unit-tests/helper/ndn-fib-helper.t.cpp b/tests/unit-tests/helper/ndn-fib-helper.t.cpp
index 59f4876..60a5967 100644
--- a/tests/unit-tests/helper/ndn-fib-helper.t.cpp
+++ b/tests/unit-tests/helper/ndn-fib-helper.t.cpp
@@ -50,11 +50,11 @@
     Simulator::Stop(Seconds(20.001));
     Simulator::Run();
 
-    BOOST_CHECK_EQUAL(getFace("1", "2")->getFaceStatus().getNOutInterests(), 10);
-    BOOST_CHECK_EQUAL(getFace("1", "2")->getFaceStatus().getNInDatas(), 10);
+    BOOST_CHECK_EQUAL(getFace("1", "2")->getCounters().nOutInterests, 10);
+    BOOST_CHECK_EQUAL(getFace("1", "2")->getCounters().nInData, 10);
 
-    BOOST_CHECK_EQUAL(getFace("2", "1")->getFaceStatus().getNInInterests(), 10);
-    BOOST_CHECK_EQUAL(getFace("2", "1")->getFaceStatus().getNOutDatas(), 10);
+    BOOST_CHECK_EQUAL(getFace("2", "1")->getCounters().nInInterests, 10);
+    BOOST_CHECK_EQUAL(getFace("2", "1")->getCounters().nOutData, 10);
   }
 };
 
diff --git a/tests/unit-tests/helper/ndn-global-routing-helper.t.cpp b/tests/unit-tests/helper/ndn-global-routing-helper.t.cpp
index d37c747..4cd6a04 100644
--- a/tests/unit-tests/helper/ndn-global-routing-helper.t.cpp
+++ b/tests/unit-tests/helper/ndn-global-routing-helper.t.cpp
@@ -21,8 +21,7 @@
 
 #include "model/ndn-global-router.hpp"
 #include "model/ndn-l3-protocol.hpp"
-#include "model/ndn-face.hpp"
-#include "model/ndn-net-device-face.hpp"
+#include "model/ndn-net-device-link-service.hpp"
 
 #include "ns3/channel.h"
 #include "ns3/net-device.h"
@@ -93,10 +92,11 @@
   for (const auto& entry : ndn->getForwarder()->getFib()) {
     bool isFirst = true;
     for (auto& nextHop : entry.getNextHops()) {
-      auto face = dynamic_pointer_cast<ndn::NetDeviceFace>(nextHop.getFace());
-      if (face == nullptr)
+      auto face = nextHop.getFace();
+      auto linkService = dynamic_cast<NetDeviceLinkService*>(face->getLinkService());
+      if (linkService == nullptr)
         continue;
-      BOOST_CHECK_EQUAL(Names::FindName(face->GetNetDevice()->GetChannel()->GetDevice(1)->GetNode()), "C1");
+      BOOST_CHECK_EQUAL(Names::FindName(linkService->GetNetDevice()->GetChannel()->GetDevice(1)->GetNode()), "C1");
       isFirst = false;
     }
   }
@@ -137,10 +137,11 @@
   for (const auto& entry : ndn->getForwarder()->getFib()) {
     bool isFirst = true;
     for (auto& nextHop : entry.getNextHops()) {
-      auto face = dynamic_pointer_cast<ndn::NetDeviceFace>(nextHop.getFace());
-      if (face == nullptr)
+      auto face = nextHop.getFace();
+      auto linkService = dynamic_cast<NetDeviceLinkService*>(face->getLinkService());
+      if (linkService == nullptr)
         continue;
-      BOOST_CHECK_EQUAL(Names::FindName(face->GetNetDevice()->GetChannel()->GetDevice(1)->GetNode()), "B2");
+      BOOST_CHECK_EQUAL(Names::FindName(linkService->GetNetDevice()->GetChannel()->GetDevice(1)->GetNode()), "B2");
       isFirst = false;
     }
   }
diff --git a/tests/unit-tests/helper/ndn-link-control-helper.t.cpp b/tests/unit-tests/helper/ndn-link-control-helper.t.cpp
index 92ceefb..a88b9e3 100644
--- a/tests/unit-tests/helper/ndn-link-control-helper.t.cpp
+++ b/tests/unit-tests/helper/ndn-link-control-helper.t.cpp
@@ -55,17 +55,17 @@
   Simulator::Schedule(Seconds(10.1), ndn::LinkControlHelper::UpLink, getNode("1"), getNode("2"));
 
   nfd::scheduler::schedule(time::milliseconds(5200), [&] {
-      BOOST_CHECK_EQUAL(getFace("2", "1")->getFaceStatus().getNInInterests(), 6);
-      BOOST_CHECK_EQUAL(getFace("1", "2")->getFaceStatus().getNInDatas(), 6);
+      BOOST_CHECK_EQUAL(getFace("2", "1")->getCounters().nInInterests, 6);
+      BOOST_CHECK_EQUAL(getFace("1", "2")->getCounters().nInData, 6);
     });
 
   nfd::scheduler::schedule(time::milliseconds(10200), [&] {
-      BOOST_CHECK_EQUAL(getFace("2", "1")->getFaceStatus().getNInInterests(), 6);
-      BOOST_CHECK_EQUAL(getFace("1", "2")->getFaceStatus().getNInDatas(), 6);
+      BOOST_CHECK_EQUAL(getFace("2", "1")->getCounters().nInInterests, 6);
+      BOOST_CHECK_EQUAL(getFace("1", "2")->getCounters().nInData, 6);
     });
   nfd::scheduler::schedule(time::milliseconds(15100), [&] {
-      BOOST_CHECK_EQUAL(getFace("2", "1")->getFaceStatus().getNInInterests(), 11);
-      BOOST_CHECK_EQUAL(getFace("1", "2")->getFaceStatus().getNInDatas(), 11);
+      BOOST_CHECK_EQUAL(getFace("2", "1")->getCounters().nInInterests, 11);
+      BOOST_CHECK_EQUAL(getFace("1", "2")->getCounters().nInData, 11);
     });
 
   Simulator::Stop(Seconds(15.2));
@@ -125,14 +125,14 @@
 
   // just before link failure
   nfd::scheduler::schedule(time::milliseconds(10050), [&] {
-      BOOST_CHECK_EQUAL(getFace("2", "1")->getFaceStatus().getNInInterests(), 11);
-      BOOST_CHECK_EQUAL(getFace("3", "1")->getFaceStatus().getNInInterests(), 11);
+      BOOST_CHECK_EQUAL(getFace("2", "1")->getCounters().nInInterests, 11);
+      BOOST_CHECK_EQUAL(getFace("3", "1")->getCounters().nInInterests, 11);
     });
 
   // just before link recovery
   nfd::scheduler::schedule(time::milliseconds(20050), [&] {
-      BOOST_CHECK_EQUAL(getFace("2", "1")->getFaceStatus().getNInInterests(), 11);
-      BOOST_CHECK_EQUAL(getFace("3", "1")->getFaceStatus().getNInInterests(), 21);
+      BOOST_CHECK_EQUAL(getFace("2", "1")->getCounters().nInInterests, 11);
+      BOOST_CHECK_EQUAL(getFace("3", "1")->getCounters().nInInterests, 21);
     });
 
   nfd::scheduler::schedule(time::milliseconds(20100), [&] {
@@ -140,8 +140,8 @@
     });
 
   nfd::scheduler::schedule(time::milliseconds(30050), [&] {
-      BOOST_CHECK_EQUAL(getFace("2", "1")->getFaceStatus().getNInInterests(), 21);
-      BOOST_CHECK_EQUAL(getFace("3", "1")->getFaceStatus().getNInInterests(), 31);
+      BOOST_CHECK_EQUAL(getFace("2", "1")->getCounters().nInInterests, 21);
+      BOOST_CHECK_EQUAL(getFace("3", "1")->getCounters().nInInterests, 31);
     });
 
   Simulator::Stop(Seconds(30.1));
diff --git a/tests/unit-tests/helper/ndn-strategy-choice-helper.t.cpp b/tests/unit-tests/helper/ndn-strategy-choice-helper.t.cpp
index ed60016..0b92fa7 100644
--- a/tests/unit-tests/helper/ndn-strategy-choice-helper.t.cpp
+++ b/tests/unit-tests/helper/ndn-strategy-choice-helper.t.cpp
@@ -81,11 +81,11 @@
   Simulator::Stop(Seconds(5.0));
   Simulator::Run();
 
-  BOOST_CHECK_EQUAL(getFace("A1", "B1")->getFaceStatus().getNOutInterests(), 0);
-  BOOST_CHECK_EQUAL(getFace("A1", "C1")->getFaceStatus().getNOutInterests(), 5);
+  BOOST_CHECK_EQUAL(getFace("A1", "B1")->getCounters().nOutInterests, 0);
+  BOOST_CHECK_EQUAL(getFace("A1", "C1")->getCounters().nOutInterests, 5);
 
-  BOOST_CHECK_EQUAL(getFace("A2", "B2")->getFaceStatus().getNOutInterests(), 5);
-  BOOST_CHECK_EQUAL(getFace("A2", "C2")->getFaceStatus().getNOutInterests(), 0);
+  BOOST_CHECK_EQUAL(getFace("A2", "B2")->getCounters().nOutInterests, 5);
+  BOOST_CHECK_EQUAL(getFace("A2", "C2")->getCounters().nOutInterests, 0);
 }
 
 // static void
@@ -97,11 +97,11 @@
   Simulator::Stop(Seconds(5.0));
   Simulator::Run();
 
-  BOOST_CHECK_EQUAL(getFace("A1", "B1")->getFaceStatus().getNOutInterests(), 0);
-  BOOST_CHECK_EQUAL(getFace("A1", "C1")->getFaceStatus().getNOutInterests(), 5);
+  BOOST_CHECK_EQUAL(getFace("A1", "B1")->getCounters().nOutInterests, 0);
+  BOOST_CHECK_EQUAL(getFace("A1", "C1")->getCounters().nOutInterests, 5);
 
-  BOOST_CHECK_EQUAL(getFace("A2", "B2")->getFaceStatus().getNOutInterests(), 5);
-  BOOST_CHECK_EQUAL(getFace("A2", "C2")->getFaceStatus().getNOutInterests(), 5);
+  BOOST_CHECK_EQUAL(getFace("A2", "B2")->getCounters().nOutInterests, 5);
+  BOOST_CHECK_EQUAL(getFace("A2", "C2")->getCounters().nOutInterests, 5);
 }
 
 // static void
@@ -117,11 +117,11 @@
   Simulator::Stop(Seconds(5.0));
   Simulator::Run();
 
-  BOOST_CHECK_EQUAL(getFace("A1", "B1")->getFaceStatus().getNOutInterests(), 5);
-  BOOST_CHECK_EQUAL(getFace("A1", "C1")->getFaceStatus().getNOutInterests(), 5);
+  BOOST_CHECK_EQUAL(getFace("A1", "B1")->getCounters().nOutInterests, 5);
+  BOOST_CHECK_EQUAL(getFace("A1", "C1")->getCounters().nOutInterests, 5);
 
-  BOOST_CHECK_EQUAL(getFace("A2", "B2")->getFaceStatus().getNOutInterests(), 5);
-  BOOST_CHECK_EQUAL(getFace("A2", "C2")->getFaceStatus().getNOutInterests(), 5);
+  BOOST_CHECK_EQUAL(getFace("A2", "B2")->getCounters().nOutInterests, 5);
+  BOOST_CHECK_EQUAL(getFace("A2", "C2")->getCounters().nOutInterests, 5);
 }
 
 // static void
@@ -133,11 +133,11 @@
   Simulator::Stop(Seconds(5.0));
   Simulator::Run();
 
-  BOOST_CHECK_EQUAL(getFace("A1", "B1")->getFaceStatus().getNOutInterests(), 5);
-  BOOST_CHECK_EQUAL(getFace("A1", "C1")->getFaceStatus().getNOutInterests(), 5);
+  BOOST_CHECK_EQUAL(getFace("A1", "B1")->getCounters().nOutInterests, 5);
+  BOOST_CHECK_EQUAL(getFace("A1", "C1")->getCounters().nOutInterests, 5);
 
-  BOOST_CHECK_EQUAL(getFace("A2", "B2")->getFaceStatus().getNOutInterests(), 5);
-  BOOST_CHECK_EQUAL(getFace("A2", "C2")->getFaceStatus().getNOutInterests(), 5);
+  BOOST_CHECK_EQUAL(getFace("A2", "B2")->getCounters().nOutInterests, 5);
+  BOOST_CHECK_EQUAL(getFace("A2", "C2")->getCounters().nOutInterests, 5);
 }
 
 
@@ -171,11 +171,11 @@
   Simulator::Stop(Seconds(5.0));
   Simulator::Run();
 
-  BOOST_CHECK_EQUAL(getFace("A1", "B1")->getFaceStatus().getNOutInterests(), 0);
-  BOOST_CHECK_EQUAL(getFace("A1", "C1")->getFaceStatus().getNOutInterests(), 5);
+  BOOST_CHECK_EQUAL(getFace("A1", "B1")->getCounters().nOutInterests, 0);
+  BOOST_CHECK_EQUAL(getFace("A1", "C1")->getCounters().nOutInterests, 5);
 
-  BOOST_CHECK_EQUAL(getFace("A2", "B2")->getFaceStatus().getNOutInterests(), 0);
-  BOOST_CHECK_EQUAL(getFace("A2", "C2")->getFaceStatus().getNOutInterests(), 0);
+  BOOST_CHECK_EQUAL(getFace("A2", "B2")->getCounters().nOutInterests, 0);
+  BOOST_CHECK_EQUAL(getFace("A2", "C2")->getCounters().nOutInterests, 0);
 }
 
 // template<class Strategy>
@@ -192,11 +192,11 @@
   Simulator::Stop(Seconds(5.0));
   Simulator::Run();
 
-  BOOST_CHECK_EQUAL(getFace("A1", "B1")->getFaceStatus().getNOutInterests(), 0);
-  BOOST_CHECK_EQUAL(getFace("A1", "C1")->getFaceStatus().getNOutInterests(), 0);
+  BOOST_CHECK_EQUAL(getFace("A1", "B1")->getCounters().nOutInterests, 0);
+  BOOST_CHECK_EQUAL(getFace("A1", "C1")->getCounters().nOutInterests, 0);
 
-  BOOST_CHECK_EQUAL(getFace("A2", "B2")->getFaceStatus().getNOutInterests(), 0);
-  BOOST_CHECK_EQUAL(getFace("A2", "C2")->getFaceStatus().getNOutInterests(), 0);
+  BOOST_CHECK_EQUAL(getFace("A2", "B2")->getCounters().nOutInterests, 0);
+  BOOST_CHECK_EQUAL(getFace("A2", "C2")->getCounters().nOutInterests, 0);
 }
 
 // template<class Strategy>
@@ -209,11 +209,11 @@
   Simulator::Stop(Seconds(5.0));
   Simulator::Run();
 
-  BOOST_CHECK_EQUAL(getFace("A1", "B1")->getFaceStatus().getNOutInterests(), 0);
-  BOOST_CHECK_EQUAL(getFace("A1", "C1")->getFaceStatus().getNOutInterests(), 0);
+  BOOST_CHECK_EQUAL(getFace("A1", "B1")->getCounters().nOutInterests, 0);
+  BOOST_CHECK_EQUAL(getFace("A1", "C1")->getCounters().nOutInterests, 0);
 
-  BOOST_CHECK_EQUAL(getFace("A2", "B2")->getFaceStatus().getNOutInterests(), 0);
-  BOOST_CHECK_EQUAL(getFace("A2", "C2")->getFaceStatus().getNOutInterests(), 0);
+  BOOST_CHECK_EQUAL(getFace("A2", "B2")->getCounters().nOutInterests, 0);
+  BOOST_CHECK_EQUAL(getFace("A2", "C2")->getCounters().nOutInterests, 0);
 }
 
 BOOST_AUTO_TEST_SUITE_END()
diff --git a/wscript b/wscript
index 734d0f5..30ba249 100644
--- a/wscript
+++ b/wscript
@@ -142,11 +142,7 @@
                                           'model/ndn-app-face.cpp',
                                           'model/ndn-app-link-service.cpp',
                                           'helper/ndn-app-helper.cpp',
-                                          'helper/ndn-fib-helper.cpp',
-                                          'helper/ndn-global-routing-helper.cpp',
-                                          'helper/ndn-link-control-helper.cpp',
                                           'helper/ndn-scenario-helper.cpp',
-                                          'helper/ndn-strategy-choice-helper.cpp',
                                           'utils/topology/*',
                                           'utils/tracers/*',
                                           'model/ip-faces/*']) + ndnCxxSrc + nfdSrc