nlsr Namespace Reference

Copyright (c) 2014-2018, 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  DatasetInterestHandler
 Class to publish all dataset. More...
 
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  Lsdb
 
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  SequencingManager
 
class  Statistics
 
class  StatsCollector
 
class  SyncLogicHandler
 NLSR-to-ChronoSync interaction point. More...
 
class  SyncProtocolAdapter
 

Typedefs

typedef std::function< void(const ndn::Name &updateName, uint64_t seqNo)> SyncUpdateCallback
 
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 &, const ndn::Name & >
 

Enumerations

enum  { LSA_REFRESH_TIME_MIN = 240, LSA_REFRESH_TIME_DEFAULT = 1800, LSA_REFRESH_TIME_MAX = 7200 }
 
enum  { SYNC_PROTOCOL_CHRONOSYNC = 0, SYNC_PROTOCOL_PSYNC = 1 }
 
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 }
 
enum  { SYNC_INTEREST_LIFETIME_MIN = 1000, SYNC_INTEREST_LIFETIME_DEFAULT = 60000, SYNC_INTEREST_LIFETIME_MAX = 120000 }
 

Functions

std::ostream & operator<< (std::ostream &os, const Adjacent &adjacent)
 
static std::unique_ptr< ndn::security::v2::CertificateFetcherDirectFetch > makeCertificateFetcher (ndn::Face &face)
 
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")
 
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)
 
std::ostream & operator<< (std::ostream &os, const NamePrefixTable &table)
 
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 auto FIXED_SESSION = ndn::name::Component::fromNumber(0)
 
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 RT_DATASET = ndn::PartialName("routing-table")
 

Detailed Description

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

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

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

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

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

Copyright (c) 2014-2019, 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

Typedef Documentation

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

Definition at line 34 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&, const ndn::Name&>

Definition at line 36 of file signals.hpp.

typedef std::function<void(const ndn::Name& updateName, uint64_t seqNo)> nlsr::SyncUpdateCallback

Definition at line 34 of file sync-protocol-adapter.hpp.

Enumeration Type Documentation

anonymous enum
Enumerator
LSA_REFRESH_TIME_MIN 
LSA_REFRESH_TIME_DEFAULT 
LSA_REFRESH_TIME_MAX 

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

anonymous enum
Enumerator
SYNC_PROTOCOL_CHRONOSYNC 
SYNC_PROTOCOL_PSYNC 

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

anonymous enum
Enumerator
HELLO_INTERVAL_MIN 
HELLO_INTERVAL_DEFAULT 
HELLO_INTERVAL_MAX 

Definition at line 101 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 107 of file conf-parameter.hpp.

anonymous enum
Enumerator
SYNC_INTEREST_LIFETIME_MIN 
SYNC_INTEREST_LIFETIME_DEFAULT 
SYNC_INTEREST_LIFETIME_MAX 

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

anonymous enum
Enumerator
LSA_INTEREST_LIFETIME_MIN 
LSA_INTEREST_LIFETIME_DEFAULT 
LSA_INTEREST_LIFETIME_MAX 

Definition at line 52 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 58 of file conf-parameter.hpp.

anonymous enum
Enumerator
FIRST_HELLO_INTERVAL_MIN 
FIRST_HELLO_INTERVAL_DEFAULT 
FIRST_HELLO_INTERVAL_MAX 

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

anonymous enum
Enumerator
ROUTING_CALC_INTERVAL_MIN 
ROUTING_CALC_INTERVAL_DEFAULT 
ROUTING_CALC_INTERVAL_MAX 

Definition at line 70 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 77 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 83 of file conf-parameter.hpp.

anonymous enum
Enumerator
HELLO_RETRIES_MIN 
HELLO_RETRIES_DEFAULT 
HELLO_RETRIES_MAX 

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

anonymous enum
Enumerator
HELLO_TIMEOUT_MIN 
HELLO_TIMEOUT_DEFAULT 
HELLO_TIMEOUT_MAX 

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

Enumerator
HYPERBOLIC_STATE_OFF 
HYPERBOLIC_STATE_ON 
HYPERBOLIC_STATE_DRY_RUN 
HYPERBOLIC_STATE_DEFAULT 

Definition at line 113 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 545 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 356 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
static std::unique_ptr<ndn::security::v2::CertificateFetcherDirectFetch> nlsr::makeCertificateFetcher ( ndn::Face &  face)
static

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

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 139 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::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,
const RoutingTableEntry rte 
)

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

Here is the call 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 NextHop hop 
)

Definition at line 36 of file route/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 99 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 152 of file name-prefix-list.cpp.

Here is the call graph for this function:

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

Definition at line 275 of file lsa.cpp.

Here is the call graph for this function:

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

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

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

Definition at line 294 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 308 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 323 of file lsa.cpp.

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

Definition at line 28 of file route/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 330 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 171 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 34 of file dataset-interest-handler.cpp.

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

Definition at line 35 of file dataset-interest-handler.cpp.

const auto nlsr::FIXED_SESSION = ndn::name::Component::fromNumber(0)

Definition at line 29 of file sync-protocol-adapter.cpp.

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

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

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

Definition at line 36 of file dataset-interest-handler.cpp.

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

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

const ndn::PartialName nlsr::RT_DATASET = ndn::PartialName("routing-table")

Definition at line 37 of file dataset-interest-handler.cpp.

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

Definition at line 40 of file common.hpp.