nlsr Namespace Reference

Copyright (c) 2014-2017, The University of Memphis, Regents of the University of California, Arizona Board of Regents. More...

Namespaces

 dataset
 
 detail
 
 security
 
 tlv
 
 update
 
 util
 

Data Structures

class  AdjacencyList
 
class  Adjacent
 A neighbor reachable over a Face. More...
 
class  AdjLsa
 
class  ConfFileProcessor
 A class containing methods to parse an NLSR configuration file. More...
 
class  ConfigurationVariable
 
class  ConfParameter
 A class to house all the configuration parameters for NLSR. More...
 
class  CoordinateLsa
 
class  FaceMap
 
class  FaceMapEntry
 
class  Fib
 Maps names to lists of next hops, and exports this information to NFD. More...
 
class  FibEntry
 
class  HelloProtocol
 
class  HyperbolicRoutingCalculator
 
struct  is_iterator
 
struct  is_iterator< T, typename std::enable_if<!std::is_same< typename std::iterator_traits< T >::value_type, void >::value >::type >
 
class  LinkStateRoutingTableCalculator
 
class  Lsa
 
class  LsaContentPublisher
 
class  Lsdb
 
class  LsdbDatasetInterestHandler
 Class to publish all lsa dataset. More...
 
class  Map
 
class  MapEntry
 
class  NameLsa
 
class  NamePrefixList
 
class  NamePrefixTable
 
class  NamePrefixTableEntry
 
class  NextHop
 
struct  NextHopComparator
 
class  NexthopList
 
class  Nlsr
 
class  NlsrRunner
 A wrapper class to instantiate and configure an NLSR object. More...
 
class  NullDeleter
 
class  RoutingTable
 
class  RoutingTableCalculator
 
class  RoutingTableEntry
 
class  RoutingTablePoolEntry
 
class  SegmentPublisher
 provides a publisher of Status Dataset or other segmented octet stream More...
 
class  SequencingManager
 
class  Statistics
 
class  StatsCollector
 
class  SyncLogicHandler
 NLSR-to-ChronoSync interaction point. More...
 

Typedefs

typedef std::function< void(FibEntry &)> afterRefreshCallback
 
using AfterRoutingChange = ndn::util::Signal< RoutingTable, const std::list< RoutingTableEntry > & >
 
using OnNewLsa = ndn::util::Signal< SyncLogicHandler, const ndn::Name &, const uint64_t & >
 

Enumerations

enum  { LSA_REFRESH_TIME_MIN = 240, LSA_REFRESH_TIME_DEFAULT = 1800, LSA_REFRESH_TIME_MAX = 7200 }
 
enum  { LSA_INTEREST_LIFETIME_MIN = 1, LSA_INTEREST_LIFETIME_DEFAULT = 4, LSA_INTEREST_LIFETIME_MAX = 60 }
 
enum  { ADJ_LSA_BUILD_INTERVAL_MIN = 0, ADJ_LSA_BUILD_INTERVAL_DEFAULT = 5, ADJ_LSA_BUILD_INTERVAL_MAX = 5 }
 
enum  { FIRST_HELLO_INTERVAL_MIN = 0, FIRST_HELLO_INTERVAL_DEFAULT = 10, FIRST_HELLO_INTERVAL_MAX = 10 }
 
enum  { ROUTING_CALC_INTERVAL_MIN = 0, ROUTING_CALC_INTERVAL_DEFAULT = 15, ROUTING_CALC_INTERVAL_MAX = 15 }
 
enum  { FACE_DATASET_FETCH_TRIES_MIN = 1, FACE_DATASET_FETCH_TRIES_MAX = 10, FACE_DATASET_FETCH_TRIES_DEFAULT = 3 }
 
enum  { FACE_DATASET_FETCH_INTERVAL_MIN = 1800, FACE_DATASET_FETCH_INTERVAL_MAX = 5400, FACE_DATASET_FETCH_INTERVAL_DEFAULT = 3600 }
 
enum  { HELLO_RETRIES_MIN = 1, HELLO_RETRIES_DEFAULT = 3, HELLO_RETRIES_MAX = 15 }
 
enum  { HELLO_TIMEOUT_MIN = 1, HELLO_TIMEOUT_DEFAULT = 3, HELLO_TIMEOUT_MAX = 15 }
 
enum  { HELLO_INTERVAL_MIN = 30, HELLO_INTERVAL_DEFAULT = 60, HELLO_INTERVAL_MAX =90 }
 
enum  { MAX_FACES_PER_PREFIX_MIN = 0, MAX_FACES_PER_PREFIX_DEFAULT = 0, MAX_FACES_PER_PREFIX_MAX = 60 }
 
enum  HyperbolicState { HYPERBOLIC_STATE_OFF = 0, HYPERBOLIC_STATE_ON = 1, HYPERBOLIC_STATE_DRY_RUN = 2, HYPERBOLIC_STATE_DEFAULT = 0 }
 

Functions

std::ostream & operator<< (std::ostream &os, const Adjacent &adjacent)
 
std::ostream & operator<< (std::ostream &os, const AdjLsa &lsa)
 
std::ostream & operator<< (std::ostream &os, const CoordinateLsa &lsa)
 
std::ostream & operator<< (std::ostream &os, const NameLsa &lsa)
 
std::ostream & operator<< (std::ostream &os, const Lsa::Type &type)
 
std::istream & operator>> (std::istream &is, Lsa::Type &type)
 
static bool nameLsaCompareByKey (const NameLsa &nlsa1, const ndn::Name &key)
 Compares if a name LSA is the same as the one specified by key. More...
 
static bool corLsaCompareByKey (const CoordinateLsa &clsa, const ndn::Name &key)
 Compares whether an LSA object is the same as a key. More...
 
static bool adjLsaCompareByKey (AdjLsa &alsa, const ndn::Name &key)
 Returns whether an adj. LSA object is from some router. More...
 
std::ostream & operator<< (std::ostream &os, const NamePrefixList &list)
 
static ndn::Name DEFAULT_BROADCAST_PREFIX ("/ndn/broadcast")
 
template<>
std::list< tlv::AdjacencyLsagetTlvLsas< tlv::AdjacencyLsa > (const Lsdb &lsdb)
 
template<>
std::list< tlv::CoordinateLsagetTlvLsas< tlv::CoordinateLsa > (const Lsdb &lsdb)
 
template<>
std::list< tlv::NameLsagetTlvLsas< tlv::NameLsa > (const Lsdb &lsdb)
 
template<typename T >
std::list< T > getTlvLsas (const Lsdb &lsdb)
 
bool operator== (const NamePrefixTableEntry &lhs, const NamePrefixTableEntry &rhs)
 
bool operator== (const NamePrefixTableEntry &lhs, const ndn::Name &rhs)
 
std::ostream & operator<< (std::ostream &os, const NamePrefixTableEntry &entry)
 
bool npteCompare (std::shared_ptr< NamePrefixTableEntry > &npte, const ndn::Name &name)
 
std::ostream & operator<< (std::ostream &os, const NamePrefixTable &table)
 
bool npteCompare (NamePrefixTableEntry &npte, const ndn::Name &name)
 
static bool nexthopAddCompare (const NextHop &nh1, const NextHop &nh2)
 
static bool nexthopRemoveCompare (const NextHop &nh1, const NextHop &nh2)
 
bool operator== (const NexthopList &lhs, const NexthopList &rhs)
 
bool operator!= (const NexthopList &lhs, const NexthopList &rhs)
 
std::ostream & operator<< (std::ostream &os, const NexthopList &nhl)
 
bool operator== (NexthopList &lhs, NexthopList &rhs)
 
bool operator== (const NextHop &lhs, const NextHop &rhs)
 
std::ostream & operator<< (std::ostream &os, const NextHop &hop)
 
std::ostream & operator<< (std::ostream &os, const RoutingTableEntry &rte)
 
std::ostream & operator<< (std::ostream &os, RoutingTablePoolEntry &rtpe)
 
bool operator== (const RoutingTablePoolEntry &lhs, const RoutingTablePoolEntry &rhs)
 
static bool routingTableEntryCompare (RoutingTableEntry &rte, ndn::Name &destRouter)
 
std::ostream & operator<< (std::ostream &os, const Statistics &stats)
 

Variables

const ndn::time::seconds TIME_ALLOWED_FOR_CANONIZATION = ndn::time::seconds(4)
 
const std::string NLSR_COMPONENT = "NLSR"
 
const std::string LSA_COMPONENT = "LSA"
 
const ndn::PartialName ADJACENCIES_DATASET = ndn::PartialName("lsdb/adjacencies")
 
const ndn::PartialName COORDINATES_DATASET = ndn::PartialName("lsdb/coordinates")
 
const ndn::PartialName NAMES_DATASET = ndn::PartialName("lsdb/names")
 
const ndn::PartialName LISTS_DATASET = ndn::PartialName("lsdb/list")
 

Detailed Description

Copyright (c) 2014-2017, The University of Memphis, Regents of the University of California, Arizona Board of Regents.

Copyright (c) 2014-2017, Regents of the University of California, Arizona Board of Regents, Colorado State University, University Pierre & Marie Curie, Sorbonne University, Washington University in St.

Copyright (c) 2014-2017, The University of Memphis, Regents of the University of California.

This file is part of NLSR (Named-data Link State Routing). See AUTHORS.md for complete list of NLSR authors and contributors.

NLSR is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

NLSR is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with NLSR, e.g., in COPYING.md file. If not, see http://www.gnu.org/licenses/.

This file is part of NLSR (Named-data Link State Routing). See AUTHORS.md for complete list of NLSR authors and contributors.

NLSR is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

NLSR is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with NLSR, e.g., in COPYING.md file. If not, see http://www.gnu.org/licenses/.

Author
A K M Mahmudul Hoque ahoqu.nosp@m.e1@m.nosp@m.emphi.nosp@m.s.ed.nosp@m.u

Louis, Beijing Institute of Technology, The University of Memphis.

This file is part of NFD (Named Data Networking Forwarding Daemon). See AUTHORS.md for complete list of NFD authors and contributors.

NFD is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

NFD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with NFD, e.g., in COPYING.md file. If not, see http://www.gnu.org/licenses/.

Typedef Documentation

typedef std::function<void(FibEntry&)> nlsr::afterRefreshCallback

Definition at line 35 of file fib.hpp.

using nlsr::AfterRoutingChange = typedef ndn::util::Signal<RoutingTable, const std::list<RoutingTableEntry>&>

Definition at line 35 of file signals.hpp.

using nlsr::OnNewLsa = typedef ndn::util::Signal<SyncLogicHandler, const ndn::Name&, const uint64_t&>

Definition at line 36 of file signals.hpp.

Enumeration Type Documentation

anonymous enum
Enumerator
LSA_REFRESH_TIME_MIN 
LSA_REFRESH_TIME_DEFAULT 
LSA_REFRESH_TIME_MAX 

Definition at line 35 of file conf-parameter.hpp.

anonymous enum
Enumerator
LSA_INTEREST_LIFETIME_MIN 
LSA_INTEREST_LIFETIME_DEFAULT 
LSA_INTEREST_LIFETIME_MAX 

Definition at line 41 of file conf-parameter.hpp.

anonymous enum
Enumerator
MAX_FACES_PER_PREFIX_MIN 
MAX_FACES_PER_PREFIX_DEFAULT 
MAX_FACES_PER_PREFIX_MAX 

Definition at line 96 of file conf-parameter.hpp.

anonymous enum
Enumerator
ADJ_LSA_BUILD_INTERVAL_MIN 
ADJ_LSA_BUILD_INTERVAL_DEFAULT 
ADJ_LSA_BUILD_INTERVAL_MAX 

Definition at line 47 of file conf-parameter.hpp.

anonymous enum
Enumerator
FIRST_HELLO_INTERVAL_MIN 
FIRST_HELLO_INTERVAL_DEFAULT 
FIRST_HELLO_INTERVAL_MAX 

Definition at line 53 of file conf-parameter.hpp.

anonymous enum
Enumerator
ROUTING_CALC_INTERVAL_MIN 
ROUTING_CALC_INTERVAL_DEFAULT 
ROUTING_CALC_INTERVAL_MAX 

Definition at line 59 of file conf-parameter.hpp.

anonymous enum
Enumerator
FACE_DATASET_FETCH_TRIES_MIN 
FACE_DATASET_FETCH_TRIES_MAX 
FACE_DATASET_FETCH_TRIES_DEFAULT 

Definition at line 66 of file conf-parameter.hpp.

anonymous enum
Enumerator
FACE_DATASET_FETCH_INTERVAL_MIN 
FACE_DATASET_FETCH_INTERVAL_MAX 
FACE_DATASET_FETCH_INTERVAL_DEFAULT 

Definition at line 72 of file conf-parameter.hpp.

anonymous enum
Enumerator
HELLO_RETRIES_MIN 
HELLO_RETRIES_DEFAULT 
HELLO_RETRIES_MAX 

Definition at line 78 of file conf-parameter.hpp.

anonymous enum
Enumerator
HELLO_TIMEOUT_MIN 
HELLO_TIMEOUT_DEFAULT 
HELLO_TIMEOUT_MAX 

Definition at line 84 of file conf-parameter.hpp.

anonymous enum
Enumerator
HELLO_INTERVAL_MIN 
HELLO_INTERVAL_DEFAULT 
HELLO_INTERVAL_MAX 

Definition at line 90 of file conf-parameter.hpp.

Enumerator
HYPERBOLIC_STATE_OFF 
HYPERBOLIC_STATE_ON 
HYPERBOLIC_STATE_DRY_RUN 
HYPERBOLIC_STATE_DEFAULT 

Definition at line 102 of file conf-parameter.hpp.

Function Documentation

static bool nlsr::adjLsaCompareByKey ( AdjLsa alsa,
const ndn::Name &  key 
)
static

Returns whether an adj. LSA object is from some router.

Parameters
alsaThe adj. LSA object.
keyThe router name that you want to compare the LSA with.

Definition at line 583 of file lsdb.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

static bool nlsr::corLsaCompareByKey ( const CoordinateLsa clsa,
const ndn::Name &  key 
)
static

Compares whether an LSA object is the same as a key.

Parameters
clsaThe cor. LSA to check the identity of.
keyThe key of the publishing router to check against.

Definition at line 382 of file lsdb.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

static ndn::Name nlsr::DEFAULT_BROADCAST_PREFIX ( "/ndn/broadcast"  )
static
template<typename T >
std::list<T> nlsr::getTlvLsas ( const Lsdb lsdb)

Here is the caller graph for this function:

template<>
std::list< tlv::AdjacencyLsa > nlsr::getTlvLsas< tlv::AdjacencyLsa > ( const Lsdb lsdb)

Definition at line 175 of file lsdb-dataset-interest-handler.cpp.

Here is the call graph for this function:

template<>
std::list< tlv::CoordinateLsa > nlsr::getTlvLsas< tlv::CoordinateLsa > ( const Lsdb lsdb)

Definition at line 204 of file lsdb-dataset-interest-handler.cpp.

Here is the call graph for this function:

template<>
std::list< tlv::NameLsa > nlsr::getTlvLsas< tlv::NameLsa > ( const Lsdb lsdb)

Definition at line 229 of file lsdb-dataset-interest-handler.cpp.

Here is the call graph for this function:

static bool nlsr::nameLsaCompareByKey ( const NameLsa nlsa1,
const ndn::Name &  key 
)
static

Compares if a name LSA is the same as the one specified by key.

Parameters
nlsa1A name LSA object
keyA key of an originating router to compare to nlsa1

Definition at line 155 of file lsdb.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

static bool nlsr::nexthopAddCompare ( const NextHop nh1,
const NextHop nh2 
)
static

Definition at line 32 of file nexthop-list.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

static bool nlsr::nexthopRemoveCompare ( const NextHop nh1,
const NextHop nh2 
)
static

Definition at line 38 of file nexthop-list.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

bool nlsr::npteCompare ( std::shared_ptr< NamePrefixTableEntry > &  npte,
const ndn::Name &  name 
)

Definition at line 52 of file name-prefix-table.cpp.

Here is the caller graph for this function:

bool nlsr::npteCompare ( NamePrefixTableEntry npte,
const ndn::Name &  name 
)
bool nlsr::operator!= ( const NexthopList lhs,
const NexthopList rhs 
)

Definition at line 66 of file nexthop-list.cpp.

Here is the caller graph for this function:

std::ostream & nlsr::operator<< ( std::ostream &  os,
RoutingTablePoolEntry rtpe 
)

Definition at line 27 of file routing-table-pool-entry.cpp.

Here is the call graph for this function:

std::ostream & nlsr::operator<< ( std::ostream &  os,
const RoutingTableEntry rte 
)

Definition at line 27 of file routing-table-entry.cpp.

Here is the call graph for this function:

std::ostream & nlsr::operator<< ( std::ostream &  os,
const NextHop hop 
)

Definition at line 36 of file nexthop.cpp.

Here is the call graph for this function:

std::ostream & nlsr::operator<< ( std::ostream &  os,
const Statistics stats 
)

Definition at line 58 of file statistics.cpp.

Here is the call graph for this function:

std::ostream & nlsr::operator<< ( std::ostream &  os,
const NexthopList nhl 
)

Definition at line 72 of file nexthop-list.cpp.

Here is the call graph for this function:

std::ostream & nlsr::operator<< ( std::ostream &  os,
const Adjacent adjacent 
)

Definition at line 83 of file adjacent.cpp.

Here is the caller graph for this function:

std::ostream & nlsr::operator<< ( std::ostream &  os,
const NamePrefixTableEntry entry 
)

Definition at line 106 of file name-prefix-table-entry.cpp.

Here is the call graph for this function:

std::ostream & nlsr::operator<< ( std::ostream &  os,
const NamePrefixList list 
)

Definition at line 157 of file name-prefix-list.cpp.

Here is the call graph for this function:

std::ostream & nlsr::operator<< ( std::ostream &  os,
const NamePrefixTable table 
)

Definition at line 287 of file name-prefix-table.cpp.

std::ostream & nlsr::operator<< ( std::ostream &  os,
const AdjLsa lsa 
)

Definition at line 290 of file lsa.cpp.

Here is the call graph for this function:

std::ostream & nlsr::operator<< ( std::ostream &  os,
const CoordinateLsa lsa 
)

Definition at line 309 of file lsa.cpp.

Here is the call graph for this function:

std::ostream & nlsr::operator<< ( std::ostream &  os,
const NameLsa lsa 
)

Definition at line 323 of file lsa.cpp.

Here is the call graph for this function:

std::ostream & nlsr::operator<< ( std::ostream &  os,
const Lsa::Type type 
)

Definition at line 338 of file lsa.cpp.

bool nlsr::operator== ( const NextHop lhs,
const NextHop rhs 
)

Definition at line 28 of file nexthop.cpp.

Here is the call graph for this function:

bool nlsr::operator== ( const RoutingTablePoolEntry lhs,
const RoutingTablePoolEntry rhs 
)

Definition at line 44 of file routing-table-pool-entry.cpp.

Here is the call graph for this function:

bool nlsr::operator== ( const NexthopList lhs,
const NexthopList rhs 
)

Definition at line 45 of file nexthop-list.cpp.

Here is the call graph for this function:

bool nlsr::operator== ( const NamePrefixTableEntry lhs,
const NamePrefixTableEntry rhs 
)

Definition at line 94 of file name-prefix-table-entry.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

bool nlsr::operator== ( const NamePrefixTableEntry lhs,
const ndn::Name &  rhs 
)

Definition at line 100 of file name-prefix-table-entry.cpp.

Here is the call graph for this function:

bool nlsr::operator== ( NexthopList lhs,
NexthopList rhs 
)
std::istream & nlsr::operator>> ( std::istream &  is,
Lsa::Type type 
)

Definition at line 345 of file lsa.cpp.

Here is the caller graph for this function:

static bool nlsr::routingTableEntryCompare ( RoutingTableEntry rte,
ndn::Name &  destRouter 
)
static

Definition at line 186 of file routing-table.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

Variable Documentation

const ndn::PartialName nlsr::ADJACENCIES_DATASET = ndn::PartialName("lsdb/adjacencies")

Definition at line 43 of file lsdb-dataset-interest-handler.cpp.

const ndn::PartialName nlsr::COORDINATES_DATASET = ndn::PartialName("lsdb/coordinates")

Definition at line 44 of file lsdb-dataset-interest-handler.cpp.

const ndn::PartialName nlsr::LISTS_DATASET = ndn::PartialName("lsdb/list")

Definition at line 46 of file lsdb-dataset-interest-handler.cpp.

const std::string nlsr::LSA_COMPONENT = "LSA"

Definition at line 34 of file sync-logic-handler.cpp.

const ndn::PartialName nlsr::NAMES_DATASET = ndn::PartialName("lsdb/names")

Definition at line 45 of file lsdb-dataset-interest-handler.cpp.

const std::string nlsr::NLSR_COMPONENT = "NLSR"

Definition at line 33 of file sync-logic-handler.cpp.

const ndn::time::seconds nlsr::TIME_ALLOWED_FOR_CANONIZATION = ndn::time::seconds(4)

Definition at line 41 of file common.hpp.