Upgrade the underlying NFD and ndn-cxx to version 0.6.0

Compilation is currently broken and is fixed in the following commit

Change-Id: Ic0dba06a9afd66a810172d4a512f35f6df6b25a2
Refs: #4306
diff --git a/tests/unit-tests/ndn-cxx/face.t.cpp b/tests/unit-tests/ndn-cxx/face.t.cpp
index 324043d..67f3333 100644
--- a/tests/unit-tests/ndn-cxx/face.t.cpp
+++ b/tests/unit-tests/ndn-cxx/face.t.cpp
@@ -109,11 +109,13 @@
 class SingleInterest : public BaseTesterApp
 {
 public:
-  SingleInterest(const Name& name, const std::function<void(const Data&)>& onData, const VoidCallback& onTimeout)
+  SingleInterest(const Name& name, const std::function<void(const Data&)>& onData,
+                 const VoidCallback& onNack, const VoidCallback& onTimeout)
   {
-    m_face.expressInterest(name, std::bind([onData] (const Data& data) {
+    m_face.expressInterest(Interest(name), std::bind([onData] (const Data& data) {
           onData(data);
         }, _2),
+      std::bind(onNack),
       std::bind(onTimeout));
   }
 };
@@ -128,6 +130,9 @@
           BOOST_CHECK_LE(Simulator::Now().ToDouble(Time::S), 1.01);
         },
         [] {
+          BOOST_ERROR("Unexpected NACK");
+        },
+        [] {
           BOOST_ERROR("Unexpected timeout");
         });
     })
@@ -153,6 +158,9 @@
           BOOST_CHECK_LE(Simulator::Now().ToDouble(Time::S), 2.0);
         },
         [] {
+          BOOST_ERROR("Unexpected NACK");
+        },
+        [] {
           BOOST_ERROR("Unexpected timeout");
         });
     })
@@ -167,9 +175,12 @@
 BOOST_AUTO_TEST_CASE(ExpressInterestTimeout)
 {
   FactoryCallbackApp::Install(getNode("A"), [this] () -> shared_ptr<void> {
-      return make_shared<SingleInterest>("/test/prefix", [] (const Data&) {
+      return make_shared<SingleInterest>(Name("/test/prefix"), [] (const Data&) {
           BOOST_ERROR("Unexpected data");
         },
+        [] {
+          BOOST_ERROR("Unexpected NACK");
+        },
         [this] {
           BOOST_CHECK_GT(Simulator::Now().ToDouble(Time::S), 6.0);
           this->hasFired = true;
@@ -188,31 +199,6 @@
   BOOST_CHECK(hasFired);
 }
 
-// Expected failure until issue #3121 is resolved
-BOOST_AUTO_TEST_CASE_EXPECTED_FAILURES(ExpressInterestWithRib, 2);
-BOOST_AUTO_TEST_CASE(ExpressInterestWithRib)
-{
-  addApps({{"A", "ns3::ndn::Producer", {{"Prefix", "/"}}, "0s", "100s"}});
-
-  // Retrieve data from remote
-  FactoryCallbackApp::Install(getNode("A"), [this] () -> shared_ptr<void> {
-      return make_shared<SingleInterest>("/test/prefix", [this] (const Data& data) {
-          BOOST_CHECK_EQUAL(data.getName(), "/test/prefix");
-          this->hasFired = true;
-          BOOST_CHECK_LE(Simulator::Now().ToDouble(Time::S), 2.0);
-        },
-        [] {
-          BOOST_ERROR("Unexpected timeout");
-        });
-    })
-    .Start(Seconds(1.01));
-
-  Simulator::Stop(Seconds(20));
-  Simulator::Run();
-
-  BOOST_CHECK(hasFired);
-}
-
 /////////////////////////////////////////////////////////////////////
 /////////////////////////////////////////////////////////////////////
 /////////////////////////////////////////////////////////////////////
@@ -220,24 +206,27 @@
 class MultipleInterest : public BaseTesterApp
 {
 public:
-  MultipleInterest(const Name& name, const NameCallback& onData, const VoidCallback& onTimeout)
+  MultipleInterest(const Name& name, const NameCallback& onData, const VoidCallback& onTimeout,
+                   const VoidCallback& onNack)
     : m_scheduler(m_face.getIoService())
     , m_event(m_scheduler)
   {
-    expressNextInterest(name, 0, onData, onTimeout);
+    expressNextInterest(name, 0, onData, onTimeout, onNack);
   }
 
 private:
   void
-  expressNextInterest(const Name& name, uint32_t seqNo, const NameCallback& onData, const VoidCallback& onTimeout)
+  expressNextInterest(const Name& name, uint32_t seqNo, const NameCallback& onData,
+                      const VoidCallback& onTimeout, const VoidCallback& onNack)
   {
-    m_face.expressInterest(Name(name).appendSegment(seqNo), std::bind([=] (const Data& data) {
+    m_face.expressInterest(Interest(Name(name).appendSegment(seqNo)), std::bind([=] (const Data& data) {
           onData(data.getName());
 
           m_event = m_scheduler.scheduleEvent(time::seconds(1),
                                               std::bind(&MultipleInterest::expressNextInterest, this,
-                                                        name, seqNo + 1, onData, onTimeout));
+                                                        name, seqNo + 1, onData, onTimeout, onNack));
         }, _2),
+      std::bind(onNack),
       std::bind(onTimeout));
   }
 
@@ -260,6 +249,9 @@
         },
         [] {
           BOOST_ERROR("Unexpected timeout");
+        },
+        [] {
+          BOOST_ERROR("Unexpected NACK");
         });
     })
     .Start(Seconds(1.01));
@@ -275,12 +267,15 @@
 public:
   SingleInterestWithFaceShutdown()
   {
-    m_face.expressInterest(Name("/interest/to/timeout"),
+    m_face.expressInterest(Interest(Name("/interest/to/timeout")),
                            std::bind([] {
                                BOOST_ERROR("Unexpected response");
                              }),
                            std::bind([this] {
                                m_face.shutdown();
+                             }),
+                           std::bind([this] {
+                               m_face.shutdown();
                              }));
   }
 };
@@ -288,7 +283,6 @@
 BOOST_AUTO_TEST_CASE(FaceShutdownFromTimeoutCallback)
 {
   // This test case to check if Face.shutdown from an onTimeout callback doesn't cause segfaults
-
   FactoryCallbackApp::Install(getNode("A"), [this] () -> shared_ptr<void> {
       return make_shared<SingleInterestWithFaceShutdown>();
     })