Upgrade NFD to version 0.6.6

Change-Id: Iebfcde0692cf98a8520954ea4d7d51238af6e822
diff --git a/NFD b/NFD
index 49f22b0..bdb6b86 160000
--- a/NFD
+++ b/NFD
@@ -1 +1 @@
-Subproject commit 49f22b05e1a57b0a88d90cc0111f9a1d7a5cbd21
+Subproject commit bdb6b866a670d48979ecde13936f22182f6fb26c
diff --git a/README.md b/README.md
index b667af9..904d162 100644
--- a/README.md
+++ b/README.md
@@ -12,12 +12,12 @@
 - ndnSIM uses implementation of basic NDN primitives from
   [ndn-cxx library (NDN C++ library with eXperimental eXtensions)](http://named-data.net/doc/ndn-cxx/)
 
-  Based on version `0.6.5`
+  Based on version `0.6.6`
 
 - All NDN forwarding and management is implemented directly using source code of
   [Named Data Networking Forwarding Daemon (NFD)](http://named-data.net/doc/NFD/)
 
-  Based on version `0.6.5`
+  Based on version `0.6.6`
 
 - Allows [simulation of real applications](http://ndnsim.net/guide-to-simulate-real-apps.html)
   written against ndn-cxx library
diff --git a/model/ndn-l3-protocol.cpp b/model/ndn-l3-protocol.cpp
index 47ce00c..f7ad619 100644
--- a/model/ndn-l3-protocol.cpp
+++ b/model/ndn-l3-protocol.cpp
@@ -47,12 +47,13 @@
 #include "ns3/ndnSIM/NFD/daemon/mgmt/tables-config-section.hpp"
 #include "ns3/ndnSIM/NFD/daemon/mgmt/command-authenticator.hpp"
 
-#include "ns3/ndnSIM/NFD/rib/service.hpp"
+#include "ns3/ndnSIM/NFD/daemon/rib/service.hpp"
 
 #include "ns3/ndnSIM/NFD/daemon/face/null-face.hpp"
 #include "ns3/ndnSIM/NFD/daemon/face/internal-face.hpp"
 
-#include "ns3/ndnSIM/NFD/core/config-file.hpp"
+#include "ns3/ndnSIM/NFD/daemon/common/global.hpp"
+#include "ns3/ndnSIM/NFD/daemon/common/config-file.hpp"
 
 #include <ndn-cxx/mgmt/dispatcher.hpp>
 
@@ -379,7 +380,7 @@
   // MUST HAPPEN BEFORE Simulator IS DESTROYED
   m_impl.reset();
 
-  nfd::scheduler::resetGlobalScheduler();
+  nfd::resetGlobalScheduler();
 
   m_node = 0;
 
diff --git a/ndn-cxx b/ndn-cxx
index 4e37270..71a48e4 160000
--- a/ndn-cxx
+++ b/ndn-cxx
@@ -1 +1 @@
-Subproject commit 4e372702cfd09f76d5fa4ea1aea5b9152fc60c43
+Subproject commit 71a48e4fa9116c9cf4ba29956eba03994dc29a83
diff --git a/wscript b/wscript
index 0601bdc..01f7faa 100644
--- a/wscript
+++ b/wscript
@@ -85,6 +85,15 @@
         VERSION=int(split[0]) * 1000000 + int(split[1]) * 1000 + int(split[2]),
         VERSION_MAJOR=split[0], VERSION_MINOR=split[1], VERSION_PATCH=split[2])
 
+    bld(features="subst",
+        name="versioncpp-NFD",
+        source='NFD/core/version.cpp.in', target='NFD/core/version.cpp',
+        install_path=None,
+        VERSION_STRING=base,
+        VERSION_BUILD="%s-ndnSIM" % build,
+        VERSION=int(split[0]) * 1000000 + int(split[1]) * 1000 + int(split[2]),
+        VERSION_MAJOR=split[0], VERSION_MINOR=split[1], VERSION_PATCH=split[2])
+
     (base, build, split) = bld.getVersion('ndn-cxx')
     bld(features="subst",
         name="version-ndn-cxx",
@@ -95,6 +104,12 @@
         VERSION=int(split[0]) * 1000000 + int(split[1]) * 1000 + int(split[2]),
         VERSION_MAJOR=split[0], VERSION_MINOR=split[1], VERSION_PATCH=split[2])
 
+    bld.objects(
+        target='version-NFD-objects',
+        source='NFD/core/version.cpp',
+        includes='../../ns3/ndnSIM/NFD',
+        use='version-NFD versioncpp-NFD')
+
     deps = ['core', 'network', 'point-to-point', 'topology-read', 'mobility', 'internet']
     if 'ns3-visualizer' in bld.env['NS3_ENABLED_MODULES']:
         deps.append('visualizer')
@@ -110,7 +125,7 @@
                                         'ndn-cxx/ndn-cxx/detail/*osx.cpp',
                                         'ndn-cxx/ndn-cxx/net/network-interface.cpp'])
 
-    nfdSrc = bld.path.ant_glob(['%s/**/*.cpp' % dir for dir in ['NFD/core', 'NFD/daemon', 'NFD/rib']],
+    nfdSrc = bld.path.ant_glob(['%s/**/*.cpp' % dir for dir in ['NFD/core', 'NFD/daemon']],
                                excl=['NFD/daemon/main.cpp',
                                      'NFD/daemon/nfd.cpp',
                                      'NFD/daemon/face/*ethernet*',
@@ -123,7 +138,7 @@
     module = bld.create_ns3_module('ndnSIM', deps)
     module.module = 'ndnSIM'
     module.features += ' ns3fullmoduleheaders ndncxxheaders'
-    module.use += ['version-ndn-cxx', 'version-NFD', 'BOOST', 'SQLITE3', 'RT', 'PTHREAD', 'OPENSSL']
+    module.use += ['version-ndn-cxx', 'version-NFD-objects', 'BOOST', 'SQLITE3', 'RT', 'PTHREAD', 'OPENSSL']
     module.includes = ['../..', '../../ns3/ndnSIM/NFD', './NFD/core', './NFD/daemon', './NFD/rib', '../../ns3/ndnSIM', '../../ns3/ndnSIM/ndn-cxx']
     module.export_includes = ['../../ns3/ndnSIM/NFD', './NFD/core', './NFD/daemon', './NFD/rib', '../../ns3/ndnSIM']
     if 'ns3-visualizer' in bld.env['NS3_ENABLED_MODULES']:
@@ -142,7 +157,7 @@
                                       excl=[
                                           'model/ip-faces/*']) + ndnCxxSrc + nfdSrc
 
-    module_dirs = ['NFD/core', 'NFD/daemon', 'NFD/rib', 'apps', 'helper', 'model', 'utils', 'bindings']
+    module_dirs = ['NFD/core', 'NFD/daemon', 'apps', 'helper', 'model', 'utils', 'bindings']
     module.full_headers = bld.path.ant_glob(['%s/**/*.hpp' % dir for dir in module_dirs])
     module.full_headers += bld.path.ant_glob('NFD/common.hpp')