Adding rt, rte, nh
diff --git a/nlsr_lsdb.cpp b/nlsr_lsdb.cpp
index b4cbe91..062a2b1 100644
--- a/nlsr_lsdb.cpp
+++ b/nlsr_lsdb.cpp
@@ -30,10 +30,6 @@
//Name LSA and LSDB related functions start here
-static bool
-nameLsaCompare(NameLsa& nlsa1, NameLsa& nlsa2){
- return nlsa1.getLsaKey()==nlsa1.getLsaKey();
-}
static bool
nameLsaCompareByKey(NameLsa& nlsa1, string& key){
@@ -46,11 +42,10 @@
{
NameLsa nameLsa(pnlsr.getConfParameter().getRouterPrefix()
, 1
- , pnlsr.getNameLsaSeq()+1
+ , pnlsr.getSm().getNameLsaSeq()+1
, pnlsr.getConfParameter().getRouterDeadInterval()
, pnlsr.getNpl() );
- pnlsr.setNameLsaSeq(pnlsr.getNameLsaSeq()+1);
- //cout<<nameLsa;
+ pnlsr.getSm().setNameLsaSeq(pnlsr.getSm().getNameLsaSeq()+1);
return installNameLsa(nameLsa);
}
@@ -66,7 +61,7 @@
{
return (*it);
}
-
+
}
@@ -81,6 +76,7 @@
addNameLsa(nlsa);
// update NPT and FIB
// if its not own LSA
+ printNameLsdb();
}
else
{
@@ -98,9 +94,10 @@
{
std::list<NameLsa >::iterator it = std::find_if( nameLsdb.begin(),
nameLsdb.end(),
- bind(nameLsaCompare, _1, nlsa));
+ bind(nameLsaCompareByKey, _1, nlsa.getLsaKey()));
- if( it == nameLsdb.end()){
+ if( it == nameLsdb.end())
+ {
nameLsdb.push_back(nlsa);
return true;
}
@@ -138,6 +135,7 @@
void
Lsdb::printNameLsdb()
{
+ cout<<"---------------Name LSDB-------------------"<<endl;
for( std::list<NameLsa>::iterator it=nameLsdb.begin();
it!= nameLsdb.end() ; it++)
{
@@ -146,12 +144,12 @@
}
// Cor LSA and LSDB related Functions start here
-
+/*
static bool
corLsaCompare(CorLsa& clsa1, CorLsa& clsa2){
return clsa1.getLsaKey()==clsa1.getLsaKey();
}
-
+*/
static bool
corLsaCompareByKey(CorLsa& clsa, string& key){
return clsa.getLsaKey()==key;
@@ -161,12 +159,11 @@
Lsdb::buildAndInstallOwnCorLsa(nlsr& pnlsr){
CorLsa corLsa(pnlsr.getConfParameter().getRouterPrefix()
, 3
- , pnlsr.getCorLsaSeq()+1
+ , pnlsr.getSm().getCorLsaSeq()+1
, pnlsr.getConfParameter().getRouterDeadInterval()
, pnlsr.getConfParameter().getCorR()
, pnlsr.getConfParameter().getCorTheta() );
- pnlsr.setCorLsaSeq(pnlsr.getCorLsaSeq()+1);
- //cout<<corLsa;
+ pnlsr.getSm().setCorLsaSeq(pnlsr.getSm().getCorLsaSeq()+1);
installCorLsa(corLsa);
return true;
@@ -194,6 +191,7 @@
addCorLsa(clsa);
//schedule routing table calculation only if
//hyperbolic calculation is scheduled
+ printCorLsdb();
}
else
{
@@ -210,9 +208,10 @@
{
std::list<CorLsa >::iterator it = std::find_if( corLsdb.begin(),
corLsdb.end(),
- bind(corLsaCompare, _1, clsa));
+ bind(corLsaCompareByKey, _1, clsa.getLsaKey()));
- if( it == corLsdb.end()){
+ if( it == corLsdb.end())
+ {
corLsdb.push_back(clsa);
return true;
}
@@ -251,6 +250,7 @@
void
Lsdb::printCorLsdb() //debugging
{
+ cout<<"---------------Cor LSDB-------------------"<<endl;
for( std::list<CorLsa>::iterator it=corLsdb.begin();
it!= corLsdb.end() ; it++)
{
@@ -260,12 +260,12 @@
// Adj LSA and LSDB related function starts here
-
+/*
static bool
adjLsaCompare(AdjLsa& alsa1, AdjLsa& alsa2){
return alsa1.getLsaKey()==alsa1.getLsaKey();
}
-
+*/
static bool
adjLsaCompareByKey(AdjLsa& alsa, string& key){
return alsa.getLsaKey()==key;
@@ -315,7 +315,7 @@
{
std::list<AdjLsa >::iterator it = std::find_if( adjLsdb.begin(),
adjLsdb.end(),
- bind(adjLsaCompare, _1, alsa));
+ bind(adjLsaCompareByKey, _1, alsa.getLsaKey()));
if( it == adjLsdb.end()){
adjLsdb.push_back(alsa);
@@ -338,7 +338,7 @@
}
bool
-Lsdb::installAdjLsa(AdjLsa &alsa)
+Lsdb::installAdjLsa(nlsr& pnlsr, AdjLsa &alsa)
{
bool doesLsaExist_ = doesAdjLsaExist(alsa.getLsaKey());
if ( !doesLsaExist_ )
@@ -346,6 +346,8 @@
// add Adj LSA
addAdjLsa(alsa);
// schedule routing table calculation
+ pnlsr.getScheduler().scheduleEvent(ndn::time::seconds(15),
+ ndn::bind(&RoutingTable::calculate, &pnlsr.getRoutingTable()));
}
else
{
@@ -364,12 +366,12 @@
{
AdjLsa adjLsa(pnlsr.getConfParameter().getRouterPrefix()
, 2
- , pnlsr.getAdjLsaSeq()+1
+ , pnlsr.getSm().getAdjLsaSeq()+1
, pnlsr.getConfParameter().getRouterDeadInterval()
, pnlsr.getAdl().getNumOfActiveNeighbor()
, pnlsr.getAdl() );
- pnlsr.setAdjLsaSeq(pnlsr.getAdjLsaSeq()+1);
- return installAdjLsa(adjLsa);
+ pnlsr.getSm().setAdjLsaSeq(pnlsr.getSm().getAdjLsaSeq()+1);
+ return installAdjLsa(pnlsr, adjLsa);
}
bool
@@ -404,6 +406,7 @@
void
Lsdb::printAdjLsdb()
{
+ cout<<"---------------Adj LSDB-------------------"<<endl;
for( std::list<AdjLsa>::iterator it=adjLsdb.begin();
it!= adjLsdb.end() ; it++)
{