config+lsdb: Retry retrieve each LSA for `lsa-refresh-time`
This commit also includes extension of the config file
(`lsa-interest-lifetime` parameter in general section)
Change-Id: Ifd01af8cc98d41f7bdc953799a280e4b4269a358
Refs: #1873, #1874
diff --git a/nlsr.conf b/nlsr.conf
index 8b10210..48f34a6 100644
--- a/nlsr.conf
+++ b/nlsr.conf
@@ -9,9 +9,11 @@
router /%C1.Router/cs/pollux ; name of the router in ndn URI format
; lsa-refresh-time is the time in seconds, after which router will refresh its LSAs
-
lsa-refresh-time 1800 ; default value 1800. Valid values 240-7200
+ ; InterestLifetime (in seconds) for LSA fetching
+ lsa-interest-lifetime 4 ; default value 4. Valid values 1-60
+
; log-level is to set the levels of log for NLSR
log-level INFO ; default value INFO, valid value DEBUG, INFO
diff --git a/src/communication/sync-logic-handler.cpp b/src/communication/sync-logic-handler.cpp
index dea3782..2570d2d 100644
--- a/src/communication/sync-logic-handler.cpp
+++ b/src/communication/sync-logic-handler.cpp
@@ -97,9 +97,7 @@
interestName.append(routerName);
interestName.append("name");
interestName.appendNumber(sm.getNameLsaSeq());
- pnlsr.getLsdb().expressInterest(interestName,
- pnlsr.getConfParameter().getInterestResendTime(),
- 0);
+ pnlsr.getLsdb().expressInterest(interestName, 0);
}
if (pnlsr.getLsdb().isAdjLsaNew(rName.append("adjacency"), sm.getAdjLsaSeq())) {
_LOG_DEBUG("Updated Adj LSA. Need to fetch it");
@@ -107,9 +105,7 @@
interestName.append(routerName);
interestName.append("adjacency");
interestName.appendNumber(sm.getAdjLsaSeq());
- pnlsr.getLsdb().expressInterest(interestName,
- pnlsr.getConfParameter().getInterestResendTime(),
- 0);
+ pnlsr.getLsdb().expressInterest(interestName, 0);
}
if (pnlsr.getLsdb().isCoordinateLsaNew(rName.append("coordinate"),
sm.getCorLsaSeq())) {
@@ -118,9 +114,7 @@
interestName.append(routerName);
interestName.append("coordinate");
interestName.appendNumber(sm.getCorLsaSeq());
- pnlsr.getLsdb().expressInterest(interestName,
- pnlsr.getConfParameter().getInterestResendTime(),
- 0);
+ pnlsr.getLsdb().expressInterest(interestName, 0);
}
}
catch (std::exception& e) {
diff --git a/src/conf-file-processor.cpp b/src/conf-file-processor.cpp
index 0328ecd..5f3c147 100644
--- a/src/conf-file-processor.cpp
+++ b/src/conf-file-processor.cpp
@@ -172,6 +172,23 @@
}
try {
+ int lifetime = section.get<int>("lsa-interest-lifetime");
+ if (lifetime >= LSA_INTEREST_LIFETIME_MIN && lifetime <= LSA_INTEREST_LIFETIME_MAX) {
+ m_nlsr.getConfParameter().setLsaInterestLifetime(ndn::time::seconds(lifetime));
+ }
+ else {
+ std::cerr << "Wrong value for lsa-interest-timeout. "
+ << "Allowed value:" << LSA_INTEREST_LIFETIME_MIN << "-"
+ << LSA_INTEREST_LIFETIME_MAX << std::endl;
+ return false;
+ }
+ }
+ catch (const std::exception& ex) {
+ std::cerr << ex.what() << std::endl;
+ // return false;
+ }
+
+ try {
std::string logLevel = section.get<string>("log-level");
if ( boost::iequals(logLevel, "info") || boost::iequals(logLevel, "debug")) {
m_nlsr.getConfParameter().setLogLevel(logLevel);
diff --git a/src/conf-parameter.cpp b/src/conf-parameter.cpp
index 0984b99..f45fea7 100644
--- a/src/conf-parameter.cpp
+++ b/src/conf-parameter.cpp
@@ -36,10 +36,11 @@
_LOG_DEBUG("Router Prefix: " << m_routerPrefix);
_LOG_DEBUG("ChronoSync sync Prifex: " << m_chronosyncPrefix);
_LOG_DEBUG("ChronoSync LSA prefix: " << m_lsaPrefix);
- _LOG_DEBUG("Interest Retry number: " << m_interestRetryNumber);
- _LOG_DEBUG("Interest Resend second: " << m_interestResendTime);
- _LOG_DEBUG("Info Interest Interval: " << m_infoInterestInterval);
+ _LOG_DEBUG("Hello Interest retry number: " << m_interestRetryNumber);
+ _LOG_DEBUG("Hello Interest resend second: " << m_interestResendTime);
+ _LOG_DEBUG("Info Interest interval: " << m_infoInterestInterval);
_LOG_DEBUG("LSA refresh time: " << m_lsaRefreshTime);
+ _LOG_DEBUG("LSA Interest lifetime: " << getLsaInterestLifetime());
_LOG_DEBUG("Max Faces Per Prefix: " << m_maxFacesPerPrefix);
_LOG_DEBUG("Hyperbolic ROuting: " << m_hyperbolicState);
_LOG_DEBUG("Hyp R: " << m_corR);
diff --git a/src/conf-parameter.hpp b/src/conf-parameter.hpp
index cb97943..b8b5b72 100644
--- a/src/conf-parameter.hpp
+++ b/src/conf-parameter.hpp
@@ -27,6 +27,7 @@
#include <boost/cstdint.hpp>
#include <ndn-cxx/common.hpp>
#include <ndn-cxx/face.hpp>
+#include <ndn-cxx/util/time.hpp>
#include "logger.hpp"
@@ -39,6 +40,12 @@
};
enum {
+ LSA_INTEREST_LIFETIME_MIN = 1,
+ LSA_INTEREST_LIFETIME_DEFAULT = 4,
+ LSA_INTEREST_LIFETIME_MAX = 60
+};
+
+enum {
HELLO_RETRIES_MIN = 1,
HELLO_RETRIES_DEFAULT = 3,
HELLO_RETRIES_MAX = 15
@@ -73,6 +80,7 @@
public:
ConfParameter()
: m_lsaRefreshTime(LSA_REFRESH_TIME_DEFAULT)
+ , m_lsaInterestLifetime(ndn::time::seconds(static_cast<int>(LSA_INTEREST_LIFETIME_DEFAULT)))
, m_routerDeadInterval(2*LSA_REFRESH_TIME_DEFAULT)
, m_logLevel("INFO")
, m_interestRetryNumber(HELLO_RETRIES_DEFAULT)
@@ -82,7 +90,8 @@
, m_corR(0)
, m_corTheta(0)
, m_maxFacesPerPrefix(MAX_FACES_PER_PREFIX_MIN)
- {}
+ {
+ }
void
setNetwork(const ndn::Name& networkName)
@@ -91,14 +100,14 @@
m_chronosyncPrefix = m_network;
m_chronosyncPrefix.append("NLSR");
m_chronosyncPrefix.append("sync");
-
+
m_lsaPrefix = m_network;
m_lsaPrefix.append("NLSR");
m_lsaPrefix.append("LSA");
}
const ndn::Name&
- getNetwork()
+ getNetwork() const
{
return m_network;
}
@@ -110,7 +119,7 @@
}
const ndn::Name&
- getRouterName()
+ getRouterName() const
{
return m_routerName;
}
@@ -122,7 +131,7 @@
}
const ndn::Name&
- getSiteName()
+ getSiteName() const
{
return m_siteName;
}
@@ -136,20 +145,20 @@
}
const ndn::Name&
- getRouterPrefix()
+ getRouterPrefix() const
{
return m_routerPrefix;
}
const ndn::Name&
- getChronosyncPrefix()
+ getChronosyncPrefix() const
{
return m_chronosyncPrefix;
}
const ndn::Name&
- getLsaPrefix()
+ getLsaPrefix() const
{
return m_lsaPrefix;
}
@@ -162,31 +171,43 @@
}
int32_t
- getLsaRefreshTime()
+ getLsaRefreshTime() const
{
return m_lsaRefreshTime;
}
void
+ setLsaInterestLifetime(const ndn::time::seconds& lifetime)
+ {
+ m_lsaInterestLifetime = lifetime;
+ }
+
+ const ndn::time::seconds&
+ getLsaInterestLifetime() const
+ {
+ return m_lsaInterestLifetime;
+ }
+
+ void
setRouterDeadInterval(int64_t rdt)
{
m_routerDeadInterval = rdt;
}
int64_t
- getRouterDeadInterval()
+ getRouterDeadInterval() const
{
return m_routerDeadInterval;
}
-
- void
+
+ void
setLogLevel(const std::string& logLevel)
{
m_logLevel = logLevel;
}
-
- const std::string&
- getLogLevel()
+
+ const std::string&
+ getLogLevel() const
{
return m_logLevel;
}
@@ -198,7 +219,7 @@
}
uint32_t
- getInterestRetryNumber()
+ getInterestRetryNumber() const
{
return m_interestRetryNumber;
}
@@ -210,13 +231,13 @@
}
int32_t
- getInterestResendTime()
+ getInterestResendTime() const
{
return m_interestResendTime;
}
int32_t
- getInfoInterestInterval()
+ getInfoInterestInterval() const
{
return m_infoInterestInterval;
}
@@ -234,7 +255,7 @@
}
int32_t
- getHyperbolicState()
+ getHyperbolicState() const
{
return m_hyperbolicState;
}
@@ -250,7 +271,7 @@
}
double
- getCorR()
+ getCorR() const
{
return m_corR;
}
@@ -262,11 +283,11 @@
}
double
- getCorTheta()
+ getCorTheta() const
{
return m_corTheta;
}
-
+
void
setMaxFacesPerPrefix(int32_t mfpp)
{
@@ -274,7 +295,7 @@
}
int32_t
- getMaxFacesPerPrefix()
+ getMaxFacesPerPrefix() const
{
return m_maxFacesPerPrefix;
}
@@ -286,7 +307,7 @@
}
const std::string&
- getLogDir()
+ getLogDir() const
{
return m_logDir;
}
@@ -298,7 +319,7 @@
}
const std::string&
- getSeqFileDir()
+ getSeqFileDir() const
{
return m_seqFileDir;
}
@@ -318,21 +339,22 @@
ndn::Name m_lsaPrefix;
int32_t m_lsaRefreshTime;
+ ndn::time::seconds m_lsaInterestLifetime;
int64_t m_routerDeadInterval;
std::string m_logLevel;
uint32_t m_interestRetryNumber;
int32_t m_interestResendTime;
-
-
+
+
int32_t m_infoInterestInterval;
-
+
int32_t m_hyperbolicState;
double m_corR;
double m_corTheta;
int32_t m_maxFacesPerPrefix;
-
+
std::string m_logDir;
std::string m_seqFileDir;
diff --git a/src/lsdb.cpp b/src/lsdb.cpp
index 55e8044..dc7882d 100644
--- a/src/lsdb.cpp
+++ b/src/lsdb.cpp
@@ -612,9 +612,9 @@
}
void
-Lsdb::setLsaRefreshTime(int lrt)
+Lsdb::setLsaRefreshTime(const seconds& lsaRefreshTime)
{
- m_lsaRefreshTime = ndn::time::seconds(lrt);
+ m_lsaRefreshTime = lsaRefreshTime;
}
void
@@ -749,20 +749,23 @@
void
-Lsdb::expressInterest(const ndn::Name& interestName, uint32_t interestLifeTime,
- uint32_t timeoutCount)
+Lsdb::expressInterest(const ndn::Name& interestName, uint32_t timeoutCount,
+ steady_clock::TimePoint deadline/* = steady_clock::TimePoint::min()*/)
{
+ if (deadline == steady_clock::TimePoint::min()) {
+ deadline = steady_clock::now() + m_lsaRefreshTime;
+ }
+
ndn::Interest interest(interestName);
uint64_t interestedLsSeqNo = interestName[-1].toNumber();
- _LOG_DEBUG("Expressing Interest for LSA(name): " << interestName <<
- " Seq number: " << interestedLsSeqNo );
- interest.setInterestLifetime(ndn::time::seconds(interestLifeTime));
- interest.setMustBeFresh(true);
+ _LOG_DEBUG("Expressing Interest for LSA(name): " << interestName
+ << " Seq number: " << interestedLsSeqNo);
+ interest.setInterestLifetime(m_nlsr.getConfParameter().getLsaInterestLifetime());
m_nlsr.getNlsrFace().expressInterest(interest,
ndn::bind(&Lsdb::onContent,
- this, _1, _2),
+ this, _2, deadline),
ndn::bind(&Lsdb::processInterestTimedOut,
- this, _1, timeoutCount));
+ this, _1, timeoutCount, deadline));
}
void
@@ -811,7 +814,7 @@
{
ndn::shared_ptr<ndn::Data> data = ndn::make_shared<ndn::Data>();
data->setName(ndn::Name(interest.getName()).appendVersion());
- data->setFreshnessPeriod(ndn::time::seconds(10));
+ data->setFreshnessPeriod(m_lsaRefreshTime);
data->setContent(reinterpret_cast<const uint8_t*>(content.c_str()), content.size());
m_nlsr.getKeyChain().sign(*data, m_nlsr.getDefaultCertName());
ndn::SignatureSha256WithRsa signature(data->getSignature());
@@ -864,7 +867,8 @@
}
void
-Lsdb::onContent(const ndn::Interest& interest, const ndn::Data& data)
+Lsdb::onContent(const ndn::Data& data,
+ const steady_clock::TimePoint& deadline)
{
_LOG_DEBUG("Received data for LSA(name): " << data.getName());
if (data.getSignature().hasKeyLocator()) {
@@ -874,11 +878,28 @@
}
m_nlsr.getValidator().validate(data,
ndn::bind(&Lsdb::onContentValidated, this, _1),
- ndn::bind(&Lsdb::onContentValidationFailed, this, _1, _2));
+ ndn::bind(&Lsdb::onContentValidationFailed, this, _1, _2,
+ deadline));
}
void
+Lsdb::retryContentValidation(const ndn::shared_ptr<const ndn::Data>& data,
+ const steady_clock::TimePoint& deadline)
+{
+ _LOG_DEBUG("Retrying validation of LSA(name): " << data->getName());
+ if (data->getSignature().hasKeyLocator()) {
+ if (data->getSignature().getKeyLocator().getType() == ndn::KeyLocator::KeyLocator_Name) {
+ _LOG_DEBUG("Data signed with: " << data->getSignature().getKeyLocator().getName());
+ }
+ }
+ m_nlsr.getValidator().validate(*data,
+ ndn::bind(&Lsdb::onContentValidated, this, _1),
+ ndn::bind(&Lsdb::onContentValidationFailed, this, _1, _2,
+ deadline));
+}
+
+void
Lsdb::onContentValidated(const ndn::shared_ptr<const ndn::Data>& data)
{
const ndn::Name& dataName = data->getName();
@@ -916,9 +937,23 @@
}
void
-Lsdb::onContentValidationFailed(const ndn::shared_ptr<const ndn::Data>& data, const std::string& msg)
+Lsdb::onContentValidationFailed(const ndn::shared_ptr<const ndn::Data>& data,
+ const std::string& msg,
+ const steady_clock::TimePoint& deadline)
{
_LOG_DEBUG("Validation Error: " << msg);
+
+ // Delay re-validation by LSA Interest Lifetime. When error callback will have an error
+ // code, re-validation should be done only when some keys from certification chain failed
+ // to be fetched. After that change, delaying will no longer be necessary.
+
+ // Stop retrying if delayed re-validation will be scheduled pass the deadline
+ if (steady_clock::now() + m_nlsr.getConfParameter().getLsaInterestLifetime() < deadline) {
+ _LOG_DEBUG("Scheduling revalidation");
+ m_nlsr.getScheduler().scheduleEvent(m_nlsr.getConfParameter().getLsaInterestLifetime(),
+ ndn::bind(&Lsdb::retryContentValidation,
+ this, data, deadline));
+ }
}
void
@@ -967,16 +1002,14 @@
}
void
-Lsdb::processInterestTimedOut(const ndn::Interest& interest, uint32_t timeoutCount)
+Lsdb::processInterestTimedOut(const ndn::Interest& interest, uint32_t retransmitNo,
+ const ndn::time::steady_clock::TimePoint& deadline)
{
- const ndn::Name& interestName(interest.getName());
+ const ndn::Name& interestName = interest.getName();
_LOG_DEBUG("Interest timed out for LSA(name): " << interestName);
- if ((timeoutCount + 1) <= m_nlsr.getConfParameter().getInterestRetryNumber()) {
- _LOG_DEBUG("Interest timeoutCount: " << (timeoutCount + 1));
- _LOG_DEBUG("Need to express interest again for LSA(name): " << interestName);
- expressInterest(interestName,
- m_nlsr.getConfParameter().getInterestResendTime(),
- timeoutCount + 1);
+
+ if (ndn::time::steady_clock::now() < deadline) {
+ expressInterest(interestName, retransmitNo + 1, deadline);
}
}
diff --git a/src/lsdb.hpp b/src/lsdb.hpp
index 6bfc849..ef45cea 100644
--- a/src/lsdb.hpp
+++ b/src/lsdb.hpp
@@ -31,6 +31,9 @@
#include "lsa.hpp"
namespace nlsr {
+
+using namespace ndn::time;
+
class Nlsr;
class Lsdb
@@ -109,7 +112,7 @@
writeAdjLsdbLog();
void
- setLsaRefreshTime(int lrt);
+ setLsaRefreshTime(const seconds& lsaRefreshTime);
void
setThisRouterPrefix(std::string trp);
@@ -136,29 +139,29 @@
ndn::EventId
scheduleNameLsaExpiration(const ndn::Name& key, int seqNo,
- const ndn::time::seconds& expTime);
+ const seconds& expTime);
void
exprireOrRefreshNameLsa(const ndn::Name& lsaKey, uint64_t seqNo);
ndn::EventId
scheduleAdjLsaExpiration(const ndn::Name& key, int seqNo,
- const ndn::time::seconds& expTime);
+ const seconds& expTime);
void
exprireOrRefreshAdjLsa(const ndn::Name& lsaKey, uint64_t seqNo);
ndn::EventId
scheduleCoordinateLsaExpiration(const ndn::Name& key, int seqNo,
- const ndn::time::seconds& expTime);
+ const seconds& expTime);
void
exprireOrRefreshCoordinateLsa(const ndn::Name& lsaKey,
uint64_t seqNo);
public:
void
- expressInterest(const ndn::Name& interestName, uint32_t interestLifeTime,
- uint32_t timeoutCount);
+ expressInterest(const ndn::Name& interestName, uint32_t timeoutCount,
+ steady_clock::TimePoint deadline = steady_clock::TimePoint::min());
void
processInterest(const ndn::Name& name, const ndn::Interest& interest);
@@ -183,13 +186,27 @@
uint32_t interestedlsSeqNo);
void
- onContent(const ndn::Interest& interest, const ndn::Data& data);
+ onContent(const ndn::Data& data, const steady_clock::TimePoint& deadline);
+
+ /**
+ * @brief Retry validation after it fails
+ *
+ * Data packet validation can fail either because the packet does not have
+ * valid signature (fatal) or because some of the certificate chain Data packets
+ * failed to be fetched (non-fatal). Currently, the library does not provide
+ * clear indication (besides plain-text message in error callback) of what is
+ * the reason for failure and we will try to re-validate for as long as it the deadline.
+ */
+ void
+ retryContentValidation(const ndn::shared_ptr<const ndn::Data>& data,
+ const steady_clock::TimePoint& deadline);
void
onContentValidated(const ndn::shared_ptr<const ndn::Data>& data);
void
- onContentValidationFailed(const ndn::shared_ptr<const ndn::Data>& data, const std::string& msg);
+ onContentValidationFailed(const ndn::shared_ptr<const ndn::Data>& data, const std::string& msg,
+ const steady_clock::TimePoint& deadline);
void
processContentNameLsa(const ndn::Name& lsaKey,
@@ -204,9 +221,10 @@
uint32_t lsSeqNo, std::string& dataContent);
void
- processInterestTimedOut(const ndn::Interest& interest, uint32_t timeoutCount);
+ processInterestTimedOut(const ndn::Interest& interest, uint32_t retransmitNo,
+ const steady_clock::TimePoint& deadline);
- ndn::time::system_clock::TimePoint
+ system_clock::TimePoint
getLsaExpirationTimePoint();
private:
@@ -218,7 +236,7 @@
std::list<AdjLsa> m_adjLsdb;
std::list<CoordinateLsa> m_corLsdb;
- ndn::time::seconds m_lsaRefreshTime;
+ seconds m_lsaRefreshTime;
std::string m_thisRouterPrefix;
};
diff --git a/src/nlsr.cpp b/src/nlsr.cpp
index 3ee4ccd..893809a 100644
--- a/src/nlsr.cpp
+++ b/src/nlsr.cpp
@@ -122,7 +122,7 @@
{
_LOG_DEBUG("Initializing Nlsr");
m_confParam.buildRouterPrefix();
- m_nlsrLsdb.setLsaRefreshTime(m_confParam.getLsaRefreshTime());
+ m_nlsrLsdb.setLsaRefreshTime(ndn::time::seconds(m_confParam.getLsaRefreshTime()));
m_nlsrLsdb.setThisRouterPrefix(m_confParam.getRouterPrefix().toUri());
m_fib.setEntryRefreshTime(2 * m_confParam.getLsaRefreshTime());
m_sequencingManager.setSeqFileName(m_confParam.getSeqFileDir());
diff --git a/tests/test-adjacent.cpp b/tests/test-adjacent.cpp
index 0dc7af0..d7eef1b 100644
--- a/tests/test-adjacent.cpp
+++ b/tests/test-adjacent.cpp
@@ -40,8 +40,8 @@
Adjacent adjacent2(ADJ_NAME_2);
BOOST_CHECK(adjacent1 == adjacent2);
- adjacent1.setLinkCost(10.5);
- BOOST_CHECK_CLOSE(adjacent1.getLinkCost(), 10.5, 0.0001);
+ adjacent1.setLinkCost(10.1);
+ BOOST_CHECK_EQUAL(adjacent1.getLinkCost(), 11);
BOOST_CHECK_EQUAL(adjacent1.getName(), "testname");
diff --git a/tests/test-conf-file-processor.cpp b/tests/test-conf-file-processor.cpp
index a786ec9..7025914 100644
--- a/tests/test-conf-file-processor.cpp
+++ b/tests/test-conf-file-processor.cpp
@@ -38,27 +38,30 @@
const std::string CONFIG =
"general\n"
"{\n"
- " network /ndn/\n"
+ " network /ndn/\n"
" site /memphis.edu/\n"
" router /cs/pollux/\n"
" lsa-refresh-time 1800\n"
+ " lsa-interest-lifetime 3\n"
" log-level INFO\n"
+ " log-dir /tmp\n"
+ " seq-dir /tmp\n"
"}\n\n"
"neighbors\n"
"{\n"
" hello-retries 3\n"
- " hello-time-out 1\n"
+ " hello-timeout 1\n"
" hello-interval 60\n\n"
" neighbor\n"
" {\n"
" name /ndn/memphis.edu/cs/castor\n"
- " face-id 15\n"
+ " face-uri udp4://localhost\n"
" link-cost 20\n"
" }\n\n"
" neighbor\n"
" {\n"
" name /ndn/memphis.edu/cs/mira\n"
- " face-id 17\n"
+ " face-uri udp4://localhost\n"
" link-cost 30\n"
" }\n"
"}\n\n"
@@ -99,6 +102,9 @@
BOOST_CHECK_EQUAL(nlsr1.getNamePrefixList().getSize(), 2);
+ BOOST_CHECK_EQUAL(nlsr1.getConfParameter().getLsaInterestLifetime(),
+ ndn::time::seconds(3));
+
remove("unit-test-nlsr.conf");
}
diff --git a/tests/test-conf-parameter.cpp b/tests/test-conf-parameter.cpp
index 31cbf71..18eebdc 100644
--- a/tests/test-conf-parameter.cpp
+++ b/tests/test-conf-parameter.cpp
@@ -51,6 +51,8 @@
cp1.setLsaRefreshTime(1500);
+ cp1.setLsaInterestLifetime(ndn::time::seconds(1));
+
cp1.setRouterDeadInterval(10);
cp1.setMaxFacesPerPrefix(50);
@@ -79,6 +81,8 @@
BOOST_CHECK_EQUAL(cp1.getLsaRefreshTime(), 1500);
+ BOOST_CHECK_EQUAL(cp1.getLsaInterestLifetime(), ndn::time::seconds(1));
+
BOOST_CHECK_EQUAL(cp1.getRouterDeadInterval(), 10);
BOOST_CHECK_EQUAL(cp1.getMaxFacesPerPrefix(), 50);
diff --git a/tests/test-lsdb.cpp b/tests/test-lsdb.cpp
index 1691468..b6305b9 100644
--- a/tests/test-lsdb.cpp
+++ b/tests/test-lsdb.cpp
@@ -35,6 +35,8 @@
BOOST_AUTO_TEST_CASE(LsdbRemoveAndExists)
{
+ INIT_LOGGERS("/tmp");
+
Nlsr nlsr1;
ndn::time::system_clock::TimePoint testTimePoint = ndn::time::system_clock::now();
NamePrefixList npl1;
@@ -49,17 +51,18 @@
//For NameLsa lsType is name.
//12 is seqNo, randomly generated.
//1800 is the default life time.
- NameLsa nlsa1("router1", std::string("name"), 12, testTimePoint, npl1);
+ NameLsa nlsa1(ndn::Name("/router1/1"), std::string("name"), 12, testTimePoint, npl1);
Lsdb lsdb1(nlsr1);
lsdb1.installNameLsa(nlsa1);
+ lsdb1.writeNameLsdbLog();
- BOOST_CHECK(lsdb1.doesLsaExist("router1/1", std::string("name")));
+ BOOST_CHECK(lsdb1.doesLsaExist(ndn::Name("/router1/1/name"), std::string("name")));
lsdb1.removeNameLsa(router1);
- BOOST_CHECK_EQUAL(lsdb1.doesLsaExist("router1/1", std::string("name")), false);
+ BOOST_CHECK_EQUAL(lsdb1.doesLsaExist(ndn::Name("/router1/1"), std::string("name")), false);
}
BOOST_AUTO_TEST_SUITE_END()
diff --git a/tests/test-nexthop.cpp b/tests/test-nexthop.cpp
index c0707cc..7c30069 100644
--- a/tests/test-nexthop.cpp
+++ b/tests/test-nexthop.cpp
@@ -35,10 +35,10 @@
np1.setConnectingFaceUri("udp://test/uri");
- np1.setRouteCost(10.5);
+ np1.setRouteCost(10.1);
BOOST_CHECK_EQUAL(np1.getConnectingFaceUri(), "udp://test/uri");
- BOOST_CHECK_CLOSE(np1.getRouteCost(), 10.5, 0.0001);
+ BOOST_CHECK_EQUAL(np1.getRouteCost(), 11);
}
BOOST_AUTO_TEST_SUITE_END()