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/NFD b/NFD
index 38111cd..9253fad 160000
--- a/NFD
+++ b/NFD
@@ -1 +1 @@
-Subproject commit 38111cde9bab698f6eaf1a9d430130c2cbb3eca4
+Subproject commit 9253fad76a7d90670d9822b7dca655e45c99b70e
diff --git a/README.md b/README.md
index 01c7a7c..883b7ae 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.4.1`
+ Based on version `0.6.0`
- 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.4.1-1-g704430c`
+ Based on version `0.6.0`
- Allows [simulation of real applications](http://ndnsim.net/guide-to-simulate-real-apps.html)
written against ndn-cxx library
diff --git a/bindings/modulegen__gcc_ILP32.py b/bindings/modulegen__gcc_ILP32.py
index e0df60e..6d139d2 100644
--- a/bindings/modulegen__gcc_ILP32.py
+++ b/bindings/modulegen__gcc_ILP32.py
@@ -159,7 +159,6 @@
reg_GlobalRoutingHelper(root_module['ns3::ndn::GlobalRoutingHelper'])
def reg_Name(root_module, cls):
- cls.implicitly_converts_to(root_module['ns3::ndn::Interest'])
cls.add_output_stream_operator()
for op in ['==', '!=', '<', '<=', '>', '>=']:
cls.add_binary_comparison_operator(op)
diff --git a/bindings/modulegen__gcc_LP64.py b/bindings/modulegen__gcc_LP64.py
index e0df60e..6d139d2 100644
--- a/bindings/modulegen__gcc_LP64.py
+++ b/bindings/modulegen__gcc_LP64.py
@@ -159,7 +159,6 @@
reg_GlobalRoutingHelper(root_module['ns3::ndn::GlobalRoutingHelper'])
def reg_Name(root_module, cls):
- cls.implicitly_converts_to(root_module['ns3::ndn::Interest'])
cls.add_output_stream_operator()
for op in ['==', '!=', '<', '<=', '>', '>=']:
cls.add_binary_comparison_operator(op)
diff --git a/examples/ndn-cxx-simple/real-app.hpp b/examples/ndn-cxx-simple/real-app.hpp
index 0aa2f38..b7b2a87 100644
--- a/examples/ndn-cxx-simple/real-app.hpp
+++ b/examples/ndn-cxx-simple/real-app.hpp
@@ -45,6 +45,7 @@
m_scheduler.scheduleEvent(ndn::time::seconds(2), [this] {
m_faceConsumer.expressInterest(ndn::Interest("/hello/world"),
std::bind([] { std::cout << "Hello!" << std::endl; }),
+ std::bind([] { std::cout << "NACK!" << std::endl; }),
std::bind([] { std::cout << "Bye!.." << std::endl; }));
});
}
diff --git a/examples/ndn-load-balancer/random-load-balancer-strategy.cpp b/examples/ndn-load-balancer/random-load-balancer-strategy.cpp
index ac4eff4..4f61162 100644
--- a/examples/ndn-load-balancer/random-load-balancer-strategy.cpp
+++ b/examples/ndn-load-balancer/random-load-balancer-strategy.cpp
@@ -36,12 +36,10 @@
namespace nfd {
namespace fw {
-const Name
- RandomLoadBalancerStrategy::STRATEGY_NAME("ndn:/localhost/nfd/strategy/random-load-balancer");
-
RandomLoadBalancerStrategy::RandomLoadBalancerStrategy(Forwarder& forwarder, const Name& name)
- : Strategy(forwarder, name)
+ : Strategy(forwarder)
{
+ this->setInstanceName(makeInstanceName(name, getStrategyName()));
}
RandomLoadBalancerStrategy::~RandomLoadBalancerStrategy()
@@ -97,5 +95,12 @@
this->sendInterest(pitEntry, selected->getFace(), interest);
}
+const Name&
+RandomLoadBalancerStrategy::getStrategyName()
+{
+ static Name strategyName("ndn:/localhost/nfd/strategy/random-load-balancer/%FD%01");
+ return strategyName;
+}
+
} // namespace fw
} // namespace nfd
diff --git a/examples/ndn-load-balancer/random-load-balancer-strategy.hpp b/examples/ndn-load-balancer/random-load-balancer-strategy.hpp
index 997bb56..ef11ae8 100644
--- a/examples/ndn-load-balancer/random-load-balancer-strategy.hpp
+++ b/examples/ndn-load-balancer/random-load-balancer-strategy.hpp
@@ -36,7 +36,7 @@
class RandomLoadBalancerStrategy : public Strategy {
public:
- RandomLoadBalancerStrategy(Forwarder& forwarder, const Name& name = STRATEGY_NAME);
+ RandomLoadBalancerStrategy(Forwarder& forwarder, const Name& name = getStrategyName());
virtual ~RandomLoadBalancerStrategy() override;
@@ -44,8 +44,8 @@
afterReceiveInterest(const Face& inFace, const Interest& interest,
const shared_ptr<pit::Entry>& pitEntry) override;
-public:
- static const Name STRATEGY_NAME;
+ static const Name&
+ getStrategyName();
protected:
boost::random::mt19937 m_randomGenerator;
diff --git a/examples/ndn-simple-for-nrt-helper/requester-app.cpp b/examples/ndn-simple-for-nrt-helper/requester-app.cpp
index 6eee63c..4a5d2ff 100644
--- a/examples/ndn-simple-for-nrt-helper/requester-app.cpp
+++ b/examples/ndn-simple-for-nrt-helper/requester-app.cpp
@@ -90,7 +90,7 @@
auto interest = make_shared<Interest>(m_name);
interest->setInterestLifetime(time::seconds(1));
if (m_delegation.size() > 0) {
- interest->setLink(m_link.wireEncode());
+ interest->setForwardingHint(m_link.getDelegationList());
}
NS_LOG_DEBUG("Sending an Interest for "<< *interest);
diff --git a/helper/ndn-fib-helper.hpp b/helper/ndn-fib-helper.hpp
index c231be9..381ee2d 100644
--- a/helper/ndn-fib-helper.hpp
+++ b/helper/ndn-fib-helper.hpp
@@ -26,7 +26,7 @@
#include "ns3/object-vector.h"
#include "ns3/pointer.h"
-#include <ndn-cxx/management/nfd-control-parameters.hpp>
+#include <ndn-cxx/mgmt/nfd/control-parameters.hpp>
namespace ns3 {
namespace ndn {
diff --git a/helper/ndn-strategy-choice-helper.hpp b/helper/ndn-strategy-choice-helper.hpp
index 302682a..39f9b87 100644
--- a/helper/ndn-strategy-choice-helper.hpp
+++ b/helper/ndn-strategy-choice-helper.hpp
@@ -116,14 +116,11 @@
NS_ASSERT(l3Protocol != nullptr);
NS_ASSERT(l3Protocol->getForwarder() != nullptr);
- nfd::Forwarder& forwarder = *l3Protocol->getForwarder();
- nfd::StrategyChoice& strategyChoice = forwarder.getStrategyChoice();
-
- if (!strategyChoice.hasStrategy(Strategy::STRATEGY_NAME)) {
- strategyChoice.install(make_unique<Strategy>(ref(forwarder)));
+ if (!Strategy::canCreate(Strategy::getStrategyName())) {
+ Strategy::template registerType<Strategy>();
}
- Install(node, namePrefix, Strategy::STRATEGY_NAME);
+ Install(node, namePrefix, Strategy::getStrategyName());
}
template<class Strategy>
diff --git a/model/ndn-common.hpp b/model/ndn-common.hpp
index 7397de3..a678f5d 100644
--- a/model/ndn-common.hpp
+++ b/model/ndn-common.hpp
@@ -70,7 +70,7 @@
using ::ndn::KeyChain;
using ::nfd::Face;
-using ::ndn::util::FaceUri;
+using ::ndn::FaceUri;
#ifndef DOXYGEN
// For python bindings
diff --git a/model/ndn-l3-protocol.cpp b/model/ndn-l3-protocol.cpp
index 74f18ca..83081b5 100644
--- a/model/ndn-l3-protocol.cpp
+++ b/model/ndn-l3-protocol.cpp
@@ -184,6 +184,8 @@
std::shared_ptr<nfd::ForwarderStatusManager> m_forwarderStatusManager;
std::shared_ptr<nfd::rib::RibManager> m_ribManager;
+ std::shared_ptr<nfd::face::FaceSystem> m_faceSystem;
+
nfd::ConfigSection m_config;
Ptr<ContentStore> m_csFromNdnSim;
@@ -210,7 +212,6 @@
nfd::FaceTable& faceTable = m_impl->m_forwarder->getFaceTable();
faceTable.addReserved(nfd::face::makeNullFace(), nfd::face::FACEID_NULL);
- faceTable.addReserved(nfd::face::makeNullFace(FaceUri("contentstore://")), nfd::face::FACEID_CONTENT_STORE);
if (!this->getConfig().get<bool>("ndnSIM.disable_rib_manager", false)) {
Simulator::ScheduleWithContext(m_node->GetId(), Seconds(0), &L3Protocol::initializeRibManager, this);
@@ -259,6 +260,8 @@
auto& forwarder = m_impl->m_forwarder;
using namespace nfd;
+ m_impl->m_faceSystem = make_shared<nfd::face::FaceSystem>(forwarder->getFaceTable(), nullptr);
+
std::tie(m_impl->m_internalFace, m_impl->m_internalClientFace) = face::makeInternalFace(StackHelper::getKeyChain());
forwarder->getFaceTable().addReserved(m_impl->m_internalFace, face::FACEID_INTERNAL_FACE);
m_impl->m_dispatcher.reset(new ::ndn::mgmt::Dispatcher(*m_impl->m_internalClientFace, StackHelper::getKeyChain()));
@@ -271,8 +274,9 @@
*m_impl->m_authenticator));
// Cannot be disabled for now
- // if (!this->getConfig().get<bool>("ndnSIM.disable_face_manager", false)) {
- m_impl->m_faceManager.reset(new FaceManager(forwarder->getFaceTable(),
+ // if (!this->getConfig().get<bool>("ndnSIM.disable_face_manager", false))
+
+ m_impl->m_faceManager.reset(new FaceManager(*m_impl->m_faceSystem,
*m_impl->m_dispatcher,
*m_impl->m_authenticator));
// }
diff --git a/model/ndn-net-device-transport.cpp b/model/ndn-net-device-transport.cpp
index 85684af..2d946c8 100644
--- a/model/ndn-net-device-transport.cpp
+++ b/model/ndn-net-device-transport.cpp
@@ -65,14 +65,6 @@
}
void
-NetDeviceTransport::beforeChangePersistency(::ndn::nfd::FacePersistency newPersistency)
-{
- NS_LOG_FUNCTION(this << "Changing persistency for netDevice with URI"
- << this->getLocalUri() << "currently does nothing");
- // do nothing for now
-}
-
-void
NetDeviceTransport::doClose()
{
NS_LOG_FUNCTION(this << "Closing transport for netDevice with URI"
diff --git a/model/ndn-net-device-transport.hpp b/model/ndn-net-device-transport.hpp
index b502d4f..09a08ed 100644
--- a/model/ndn-net-device-transport.hpp
+++ b/model/ndn-net-device-transport.hpp
@@ -56,9 +56,6 @@
private:
virtual void
- beforeChangePersistency(::ndn::nfd::FacePersistency newPersistency) override;
-
- virtual void
doClose() override;
virtual void
diff --git a/ndn-cxx b/ndn-cxx
index 4692ba8..0d8a562 160000
--- a/ndn-cxx
+++ b/ndn-cxx
@@ -1 +1 @@
-Subproject commit 4692ba80cf1dcf07acbbaba8a134ea22481dd457
+Subproject commit 0d8a5627859e6c5bef4d1c05d4a7a934770fdc0b
diff --git a/tests/unit-tests/helper/ndn-network-region-table-helper.t.cpp b/tests/unit-tests/helper/ndn-network-region-table-helper.t.cpp
index c683ae4..41f2057 100644
--- a/tests/unit-tests/helper/ndn-network-region-table-helper.t.cpp
+++ b/tests/unit-tests/helper/ndn-network-region-table-helper.t.cpp
@@ -19,12 +19,16 @@
#include "helper/ndn-network-region-table-helper.hpp"
#include "helper/ndn-app-helper.hpp"
+#include <ndn-cxx/link.hpp>
#include "../tests-common.hpp"
namespace ns3 {
namespace ndn {
+using ::ndn::Delegation;
+using ::ndn::DelegationList;
+
BOOST_AUTO_TEST_SUITE(HelperNdnNetworkRegionTableHelper)
class BasicFixture : public ScenarioHelperWithCleanupFixture
@@ -91,13 +95,14 @@
::ndn::Face m_face;
};
-Block
-makeLink(const Name& delegation)
+DelegationList
+makeHint(const Name& delegation)
{
- ::ndn::Link link("/LINK");
- link.addDelegation(1, delegation);
- ndn::StackHelper::getKeyChain().sign(link, ::ndn::security::SigningInfo(::ndn::security::SigningInfo::SIGNER_TYPE_SHA256));
- return link.wireEncode();
+ Delegation del;
+ del.name = Name(delegation);
+ del.preference = 1;
+ DelegationList list({del});
+ return list;
}
class MultiNodeWithAppFixture : public ScenarioHelperWithCleanupFixture
@@ -136,10 +141,10 @@
++fixture->m_nData;
}),
std::bind([fixture] {
- ++fixture->m_nTimeouts;
+ ++fixture->m_nNacks;
}),
std::bind([fixture] {
- ++fixture->m_nNacks;
+ ++fixture->m_nTimeouts;
}));
}
@@ -150,7 +155,7 @@
{
FactoryCallbackApp::Install(getNode("1"), [this] () -> shared_ptr<void> {
Interest i("/prefix/someData");
- i.setLink(makeLink("/otherPrefix"));
+ i.setForwardingHint(makeHint(Name("/otherPrefix")));
return make_shared<TesterApp>(i, this);
})
.Start(Seconds(0.01));
@@ -169,7 +174,7 @@
FactoryCallbackApp::Install(getNode("1"), [this] () -> shared_ptr<void> {
Interest i("/prefix/someData");
- i.setLink(makeLink("/otherPrefix"));
+ i.setForwardingHint(makeHint(Name("/otherPrefix")));
return make_shared<TesterApp>(i, this);
})
.Start(Seconds(0.01));
@@ -188,7 +193,7 @@
FactoryCallbackApp::Install(getNode("1"), [this] () -> shared_ptr<void> {
Interest i("/prefix/someData");
- i.setLink(makeLink("/otherPrefix"));
+ i.setForwardingHint(makeHint(Name("/otherPrefix")));
return make_shared<TesterApp>(i, this);
})
.Start(Seconds(0.01));
@@ -207,7 +212,7 @@
FactoryCallbackApp::Install(getNode("1"), [this] () -> shared_ptr<void> {
Interest i("/prefix/someData");
- i.setLink(makeLink("/otherPrefix/moreSpecific"));
+ i.setForwardingHint(makeHint(Name("/otherPrefix/moreSpecific")));
return make_shared<TesterApp>(i, this);
})
.Start(Seconds(0.01));
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 d8f9f4e..e06a93d 100644
--- a/tests/unit-tests/helper/ndn-strategy-choice-helper.t.cpp
+++ b/tests/unit-tests/helper/ndn-strategy-choice-helper.t.cpp
@@ -143,9 +143,10 @@
class NullStrategy : public nfd::fw::Strategy {
public:
- NullStrategy(nfd::Forwarder& forwarder)
- : Strategy(forwarder, STRATEGY_NAME)
+ NullStrategy(nfd::Forwarder& forwarder, const Name& name = getStrategyName())
+ : Strategy(forwarder)
{
+ this->setInstanceName(name);
}
virtual void
@@ -156,11 +157,13 @@
}
public:
- static const Name STRATEGY_NAME;
+ static const Name& getStrategyName()
+ {
+ static Name strategyName("ndn:/localhost/nfd/strategy/unit-tests/null-strategy/%FD%00");
+ return strategyName;
+ }
};
-const Name NullStrategy::STRATEGY_NAME = "ndn:/localhost/nfd/strategy/unit-tests/null-strategy";
-
// template<class Strategy>
// static void
// Install(Ptr<Node> node, const Name& namePrefix);
diff --git a/tests/unit-tests/model/ndn-block-header.t.cpp b/tests/unit-tests/model/ndn-block-header.t.cpp
index 2027d41..a8e10a9 100644
--- a/tests/unit-tests/model/ndn-block-header.t.cpp
+++ b/tests/unit-tests/model/ndn-block-header.t.cpp
@@ -76,7 +76,7 @@
nfd::face::Transport::Packet packet(lpPacket.wireEncode());
BlockHeader header(packet);
- BOOST_CHECK_EQUAL(header.GetSerializedSize(), 1369);
+ BOOST_CHECK_EQUAL(header.GetSerializedSize(), 1350);
{
Ptr<Packet> packet = Create<Packet>();
diff --git a/tests/unit-tests/model/ndn-l3-protocol.t.cpp b/tests/unit-tests/model/ndn-l3-protocol.t.cpp
index b2d77ca..b8e51b8 100644
--- a/tests/unit-tests/model/ndn-l3-protocol.t.cpp
+++ b/tests/unit-tests/model/ndn-l3-protocol.t.cpp
@@ -61,10 +61,12 @@
FactoryCallbackApp::Install(getNode("1"), [this] () -> shared_ptr<void> {
return make_shared<TesterApp>([this] (::ndn::Face& face) {
for (const Name& dataset : requestedDatasets) {
- face.expressInterest(dataset, [&] (const Interest& i, Data& data) {
+ Interest i(dataset);
+ face.expressInterest(i, [&] (const Interest& i, const Data& data) {
BOOST_TEST_MESSAGE(data.getName());
receivedDatasets.insert(data.getName().getPrefix(-2));
},
+ std::bind([]{}),
std::bind([]{}));
}
});
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>();
})
diff --git a/tests/unit-tests/utils/tracers/ndn-app-delay-tracer.t.cpp b/tests/unit-tests/utils/tracers/ndn-app-delay-tracer.t.cpp
index 0f24b80..9336fd8 100644
--- a/tests/unit-tests/utils/tracers/ndn-app-delay-tracer.t.cpp
+++ b/tests/unit-tests/utils/tracers/ndn-app-delay-tracer.t.cpp
@@ -89,12 +89,12 @@
BOOST_CHECK_EQUAL(buffer.str(),
"Time Node AppId SeqNo Type DelayS DelayUS RetxCount HopCount\n"
- "0.0417712 1 0 0 LastDelay 0.0417712 41771.2 1 2\n"
- "0.0417712 1 0 0 FullDelay 0.0417712 41771.2 1 2\n"
+ "0.0417664 1 0 0 LastDelay 0.0417664 41766.4 1 2\n"
+ "0.0417664 1 0 0 FullDelay 0.0417664 41766.4 1 2\n"
"2 2 0 0 LastDelay 0 0 1 0\n"
"2 2 0 0 FullDelay 0 0 1 0\n"
- "3.02089 2 0 1 LastDelay 0.0208856 20885.6 1 1\n"
- "3.02089 2 0 1 FullDelay 0.0208856 20885.6 1 1\n");
+ "3.02088 2 0 1 LastDelay 0.0208832 20883.2 1 1\n"
+ "3.02088 2 0 1 FullDelay 0.0208832 20883.2 1 1\n");
}
BOOST_AUTO_TEST_CASE(InstallNodeContainer)
@@ -115,8 +115,8 @@
BOOST_CHECK_EQUAL(buffer.str(),
"Time Node AppId SeqNo Type DelayS DelayUS RetxCount HopCount\n"
- "0.0417712 1 0 0 LastDelay 0.0417712 41771.2 1 2\n"
- "0.0417712 1 0 0 FullDelay 0.0417712 41771.2 1 2\n");
+ "0.0417664 1 0 0 LastDelay 0.0417664 41766.4 1 2\n"
+ "0.0417664 1 0 0 FullDelay 0.0417664 41766.4 1 2\n");
}
BOOST_AUTO_TEST_CASE(InstallNode)
@@ -136,8 +136,8 @@
"Time Node AppId SeqNo Type DelayS DelayUS RetxCount HopCount\n"
"2 2 0 0 LastDelay 0 0 1 0\n"
"2 2 0 0 FullDelay 0 0 1 0\n"
- "3.02089 2 0 1 LastDelay 0.0208856 20885.6 1 1\n"
- "3.02089 2 0 1 FullDelay 0.0208856 20885.6 1 1\n");
+ "3.02088 2 0 1 LastDelay 0.0208832 20883.2 1 1\n"
+ "3.02088 2 0 1 FullDelay 0.0208832 20883.2 1 1\n");
}
BOOST_AUTO_TEST_CASE(InstallNodeDumpStream)
@@ -153,8 +153,8 @@
BOOST_CHECK(output->is_equal(
"2 2 0 0 LastDelay 0 0 1 0\n"
"2 2 0 0 FullDelay 0 0 1 0\n"
- "3.02089 2 0 1 LastDelay 0.0208856 20885.6 1 1\n"
- "3.02089 2 0 1 FullDelay 0.0208856 20885.6 1 1\n"));
+ "3.02088 2 0 1 LastDelay 0.0208832 20883.2 1 1\n"
+ "3.02088 2 0 1 FullDelay 0.0208832 20883.2 1 1\n"));
}
BOOST_AUTO_TEST_SUITE_END()
diff --git a/utils/batches.cpp b/utils/batches.cpp
index b8a9e69..354d4cd 100644
--- a/utils/batches.cpp
+++ b/utils/batches.cpp
@@ -47,7 +47,6 @@
// std::cout << time << ", " << amount << ". \n";
}
- is.clear();
return is;
}
}
diff --git a/utils/tracers/ndn-l3-tracer.hpp b/utils/tracers/ndn-l3-tracer.hpp
index 15dd41f..6b0fafe 100644
--- a/utils/tracers/ndn-l3-tracer.hpp
+++ b/utils/tracers/ndn-l3-tracer.hpp
@@ -21,16 +21,11 @@
#define NDN_L3_TRACER_H
#include "ns3/ndnSIM/model/ndn-common.hpp"
+#include "ns3/ndnSIM/NFD/daemon/table/pit-entry.hpp"
#include "ns3/ptr.h"
#include "ns3/simple-ref-count.h"
-namespace nfd {
-namespace pit {
-class Entry;
-} // namespace pit
-} // namespace nfd
-
namespace ns3 {
class Node;
diff --git a/wscript b/wscript
index 210b79c..1a1dd5d 100644
--- a/wscript
+++ b/wscript
@@ -15,11 +15,11 @@
def options(opt):
opt.load(['version'], tooldir=['%s/.waf-tools' % opt.path.abspath()])
- opt.load(['doxygen', 'sphinx_build', 'type_traits', 'compiler-features', 'cryptopp', 'sqlite3', 'openssl'],
+ opt.load(['doxygen', 'sphinx_build', 'type_traits', 'compiler-features', 'sqlite3', 'openssl'],
tooldir=['%s/ndn-cxx/.waf-tools' % opt.path.abspath()])
def configure(conf):
- conf.load(['doxygen', 'sphinx_build', 'type_traits', 'compiler-features', 'version', 'cryptopp', 'sqlite3', 'openssl'])
+ conf.load(['doxygen', 'sphinx_build', 'type_traits', 'compiler-features', 'version', 'sqlite3', 'openssl'])
conf.env['ENABLE_NDNSIM']=False
@@ -32,13 +32,12 @@
conf.check_cxx(lib='pthread', uselib_store='PTHREAD', define_name='HAVE_PTHREAD', mandatory=False)
conf.check_sqlite3(mandatory=True)
- conf.check_cryptopp(mandatory=True, use='PTHREAD')
conf.check_openssl(mandatory=True, use='OPENSSL', atleast_version=0x10001000)
if not conf.env['LIB_BOOST']:
conf.report_optional_feature("ndnSIM", "ndnSIM", False,
"Required boost libraries not found")
- Logs.error ("ndnSIM will not be build as it requires boost libraries of version at least 1.54.0")
+ Logs.error ("ndnSIM will not be built as it requires boost libraries of version at least 1.54.0")
conf.env['MODULES_NOT_BUILT'].append('ndnSIM')
return
else:
@@ -108,14 +107,17 @@
deps += ['point-to-point-layout', 'csma', 'applications', 'wifi']
ndnCxxSrc = bld.path.ant_glob('ndn-cxx/src/**/*.cpp',
- excl=['ndn-cxx/src/**/*-osx.cpp',
- 'ndn-cxx/src/util/dummy-client-face.cpp'])
+ excl=['ndn-cxx/src/net/detail/*.cpp',
+ 'ndn-cxx/src/net/network-monitor*.cpp',
+ 'ndn-cxx/src/util/dummy-client-face.cpp',
+ 'ndn-cxx/src/security/tpm/*osx.cpp',
+ 'ndn-cxx/src/net/network-interface.cpp'])
nfdSrc = bld.path.ant_glob(['%s/**/*.cpp' % dir for dir in ['NFD/core', 'NFD/daemon', 'NFD/rib']],
excl=['NFD/daemon/main.cpp',
'NFD/daemon/nfd.cpp',
- 'NFD/daemon/face/ethernet*',
- 'NFD/daemon/face/multicast-udp*',
+ 'NFD/daemon/face/*ethernet*',
+ 'NFD/daemon/face/*pcap*.cpp',
'NFD/daemon/face/tcp*',
'NFD/daemon/face/*udp*',
'NFD/daemon/face/unix-stream*',
@@ -125,7 +127,7 @@
module = bld.create_ns3_module('ndnSIM', deps)
module.module = 'ndnSIM'
module.features += ' ns3fullmoduleheaders ndncxxheaders'
- module.use += ['version-ndn-cxx', 'version-NFD', 'BOOST', 'CRYPTOPP', 'SQLITE3', 'RT', 'PTHREAD', 'OPENSSL']
+ module.use += ['version-ndn-cxx', 'version-NFD', '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']
@@ -148,6 +150,7 @@
module.ndncxx_headers = bld.path.ant_glob(['ndn-cxx/src/**/*.hpp'],
excl=['src/**/*-osx.hpp', 'src/detail/**/*'])
+
if bld.env.ENABLE_EXAMPLES:
bld.recurse('examples')