Upgrade underlying NFD/ndn-cxx to version 0.6.5

Change-Id: If83629472f737c017bbd9109fe814a5d5ecc44d4
diff --git a/bindings/modulegen__gcc_LP64.py b/bindings/modulegen__gcc_LP64.py
index 6d139d2..7e539ef 100644
--- a/bindings/modulegen__gcc_LP64.py
+++ b/bindings/modulegen__gcc_LP64.py
@@ -41,7 +41,6 @@
         module.add_class('Interest')
         module.add_class('Data')
         module.add_class('Face', memory_policy=StdSharedPtr('ns3::ndn::Face'))
-        module.add_class('FaceContainer', memory_policy=Ns3PtrMemoryPolicy('::ns3::ndn::FaceContainer'))
 
         def reg_name(module):
             module.add_class('Component')
@@ -52,6 +51,8 @@
             module.add_class('Fib')
             module.add_class('Pit')
             module.add_class('Cs')
+            module.add_class('FaceTable')
+            module.add_class('Face')
 
             def reg_fib(module):
                 module.add_class('Entry')#, memory_policy=StdSharedPtr('ns3::ndn::nfd::fib::Entry'))
@@ -76,10 +77,10 @@
     def reg_stackhelper(cls):
         cls.add_constructor([])
 
-        cls.add_method('Install', 'ns3::Ptr<ns3::ndn::FaceContainer>', [param('ns3::Ptr<ns3::Node>', 'node')], is_const=True)
-        cls.add_method('Install', 'ns3::Ptr<ns3::ndn::FaceContainer>', [param('std::string const&', 'nodeName')], is_const=True)
-        cls.add_method('Install', 'ns3::Ptr<ns3::ndn::FaceContainer>', [param('const ns3::NodeContainer&', 'c')], is_const=True)
-        cls.add_method('InstallAll', 'ns3::Ptr<ns3::ndn::FaceContainer>', [], is_const=True)
+        cls.add_method('Install', retval('void'), [param('ns3::Ptr<ns3::Node>', 'node')], is_const=True)
+        cls.add_method('Install', retval('void'), [param('std::string const&', 'nodeName')], is_const=True)
+        cls.add_method('Install', retval('void'), [param('const ns3::NodeContainer&', 'c')], is_const=True)
+        cls.add_method('InstallAll', retval('void'), [], is_const=True)
 
         cls.add_method('SetDefaultRoutes', retval('void'), [param('bool', 'isEnabled', default_value='true')], is_const=True)
         cls.add_method('SetStackAttributes',
@@ -210,15 +211,23 @@
         cls.add_method('getForwarder', 'std::shared_ptr<ns3::ndn::nfd::Forwarder>', [])
     register_L3Protocol(root_module['ns3::ndn::L3Protocol'])
 
+    # shared_ptr<Face>
     def reg_Face(cls):
         cls.add_output_stream_operator()
         cls.add_method('getId', retval('int64_t'), [], is_const=True)
     reg_Face(root_module['ns3::ndn::Face'])
 
+    # without shared_ptr
+    def reg_nfdFace(cls):
+        cls.add_output_stream_operator()
+        cls.add_method('getId', retval('int64_t'), [], is_const=True)
+    reg_nfdFace(root_module['ns3::ndn::nfd::Face'])
+
     def reg_NfdForwarder(cls):
         cls.add_method('getFib', retval('const ns3::ndn::nfd::Fib&', caller_manages_return=False), [], is_const=True)
         cls.add_method('getPit', retval('const ns3::ndn::nfd::Pit&', caller_manages_return=False), [], is_const=True)
         cls.add_method('getCs', retval('const ns3::ndn::nfd::Cs&', caller_manages_return=False), [], is_const=True)
+        cls.add_method('getFaceTable', retval('const ns3::ndn::nfd::FaceTable&', caller_manages_return=False), [], is_const=True)
     reg_NfdForwarder(root_module['ns3::ndn::nfd::Forwarder'])
 
     #############
@@ -250,7 +259,7 @@
         reg_Entry(root_module['ns3::ndn::nfd::fib::Entry'])
 
         def reg_NextHop(cls):
-            cls.add_constructor([param('const ns3::ndn::Face&', 'face')])
+            cls.add_constructor([param('const ns3::ndn::Face&', 'face'), param('uint64_t', 'endpointId')])
 
             cls.add_function_as_method('getFaceFromFibNextHop', 'std::shared_ptr<ns3::ndn::Face>',
                                        [param('const ns3::ndn::nfd::fib::NextHop&', 'obj')],
@@ -297,6 +306,16 @@
     #### CS ####
     #############
 
+    ###################
+    #### FaceTable ####
+    def reg_NfdFaceTable(root_module, cls):
+        cls.add_method('size', retval('size_t'), [], is_const=True)
+        cls.add_container_traits(retval('const ns3::ndn::nfd::Face&', caller_manages_return=False),
+                                 begin_method='begin', end_method='end', iterator_type='const_iterator')
+    reg_NfdFaceTable(root_module, root_module['ns3::ndn::nfd::FaceTable'])
+    #### FaceTable ####
+    ###################
+
 def reg_other_modules(root_module):
     def reg_ApplicationContainer(cls):
         cls.add_constructor([])