NS-3 based Named Data Networking (NDN) simulator
ndnSIM 2.0: NDN, CCN, CCNx, content centric networks
API Documentation
nfd::rib::Rib Class Reference

represents the RIB More...

#include <rib.hpp>

Inheritance diagram for nfd::rib::Rib:
Collaboration diagram for nfd::rib::Rib:

Public Types

typedef std::list< shared_ptr< RibEntry > > RibEntryList
 
typedef std::map< Name, shared_ptr< RibEntry > > RibTable
 
typedef RibTable::const_iterator const_iterator
 
typedef std::map< uint64_t, std::list< shared_ptr< RibEntry > > > FaceLookupTable
 
typedef bool(* RouteComparePredicate) (const Route &, const Route &)
 
typedef std::set< Route, RouteComparePredicateRouteSet
 
typedef function< void()> UpdateSuccessCallback
 
typedef function< void(uint32_t code, const std::string &error)> UpdateFailureCallback
 

Public Member Functions

 Rib ()
 
 ~Rib ()
 
void setFibUpdater (FibUpdater *updater)
 
const_iterator find (const Name &prefix) const
 
Routefind (const Name &prefix, const Route &route) const
 
const_iterator begin () const
 
const_iterator end () const
 
size_t size () const
 
bool empty () const
 
shared_ptr< RibEntryfindParent (const Name &prefix) const
 
std::list< shared_ptr< RibEntry > > findDescendants (const Name &prefix) const
 finds namespaces under the passed prefix More...
 
std::list< shared_ptr< RibEntry > > findDescendantsForNonInsertedName (const Name &prefix) const
 finds namespaces under the passed prefix More...
 
void beginApplyUpdate (const RibUpdate &update, const UpdateSuccessCallback &onSuccess, const UpdateFailureCallback &onFailure)
 passes the provided RibUpdateBatch to FibUpdater to calculate and send FibUpdates. More...
 
void beginRemoveFace (uint64_t faceId)
 starts the FIB update process when a face has been destroyed More...
 
void onFibUpdateSuccess (const RibUpdateBatch &batch, const RibUpdateList &inheritedRoutes, const Rib::UpdateSuccessCallback &onSuccess)
 
void onFibUpdateFailure (const Rib::UpdateFailureCallback &onFailure, uint32_t code, const std::string &error)
 
void onRouteExpiration (const Name &prefix, const Route &route)
 
void insert (const Name &prefix, const Route &route)
 

Public Attributes

ndn::util::signal::Signal< Rib, NameafterInsertEntry
 
ndn::util::signal::Signal< Rib, NameafterEraseEntry
 

Friends

class FibUpdater
 

Detailed Description

represents the RIB

Definition at line 45 of file rib.hpp.

Member Typedef Documentation

§ RibEntryList

typedef std::list<shared_ptr<RibEntry> > nfd::rib::Rib::RibEntryList

Definition at line 48 of file rib.hpp.

§ RibTable

typedef std::map<Name, shared_ptr<RibEntry> > nfd::rib::Rib::RibTable

Definition at line 49 of file rib.hpp.

§ const_iterator

typedef RibTable::const_iterator nfd::rib::Rib::const_iterator

Definition at line 50 of file rib.hpp.

§ FaceLookupTable

typedef std::map<uint64_t, std::list<shared_ptr<RibEntry> > > nfd::rib::Rib::FaceLookupTable

Definition at line 51 of file rib.hpp.

§ RouteComparePredicate

typedef bool(* nfd::rib::Rib::RouteComparePredicate) (const Route &, const Route &)

Definition at line 52 of file rib.hpp.

§ RouteSet

Definition at line 53 of file rib.hpp.

§ UpdateSuccessCallback

typedef function<void()> nfd::rib::Rib::UpdateSuccessCallback

Definition at line 101 of file rib.hpp.

§ UpdateFailureCallback

typedef function<void(uint32_t code, const std::string& error)> nfd::rib::Rib::UpdateFailureCallback

Definition at line 102 of file rib.hpp.

Constructor & Destructor Documentation

§ Rib()

nfd::rib::Rib::Rib ( )

Definition at line 42 of file rib.cpp.

§ ~Rib()

nfd::rib::Rib::~Rib ( )

Definition at line 48 of file rib.cpp.

Member Function Documentation

§ setFibUpdater()

void nfd::rib::Rib::setFibUpdater ( FibUpdater updater)

Definition at line 53 of file rib.cpp.

Referenced by nfd::rib::FibUpdater::FibUpdater().

§ find() [1/2]

Rib::const_iterator nfd::rib::Rib::find ( const Name prefix) const

Definition at line 59 of file rib.cpp.

Referenced by nfd::rib::FibUpdater::computeAndSendFibUpdates().

§ find() [2/2]

Route * nfd::rib::Rib::find ( const Name prefix,
const Route route 
) const

Definition at line 65 of file rib.cpp.

§ begin()

Rib::const_iterator nfd::rib::Rib::begin ( ) const
inline

Definition at line 237 of file rib.hpp.

Referenced by nfd::rib::RibStatusPublisher::generate().

§ end()

Rib::const_iterator nfd::rib::Rib::end ( ) const
inline

§ size()

size_t nfd::rib::Rib::size ( ) const
inline

Definition at line 249 of file rib.hpp.

§ empty()

bool nfd::rib::Rib::empty ( ) const
inline

Definition at line 255 of file rib.hpp.

References nfd::rib::operator<<().

§ findParent()

shared_ptr< RibEntry > nfd::rib::Rib::findParent ( const Name prefix) const

§ findDescendants()

std::list< shared_ptr< RibEntry > > nfd::rib::Rib::findDescendants ( const Name prefix) const

finds namespaces under the passed prefix

Returns
{ a list of entries which are under the passed prefix }

Definition at line 214 of file rib.cpp.

References ndn::Name::isPrefixOf().

Referenced by insert().

§ findDescendantsForNonInsertedName()

std::list< shared_ptr< RibEntry > > nfd::rib::Rib::findDescendantsForNonInsertedName ( const Name prefix) const

finds namespaces under the passed prefix

Note
Unlike findDescendants, needs to find where prefix would fit in tree before collecting list of descendant prefixes
Returns
{ a list of entries which would be under the passed prefix if the prefix existed in the RIB }

Definition at line 236 of file rib.cpp.

References afterEraseEntry, findParent(), nfd::rib::RibEntry::getParent(), nfd::rib::Route::isChildInherit(), ndn::Name::isPrefixOf(), and nfd::rib::sortRoutes().

Referenced by nfd::rib::FibUpdater::computeAndSendFibUpdates().

§ beginApplyUpdate()

void nfd::rib::Rib::beginApplyUpdate ( const RibUpdate update,
const UpdateSuccessCallback onSuccess,
const UpdateFailureCallback onFailure 
)

passes the provided RibUpdateBatch to FibUpdater to calculate and send FibUpdates.

If the FIB is updated successfully, onFibUpdateSuccess() will be called, and the RIB will be updated

If the FIB update fails, onFibUpdateFailure() will be called, and the RIB will not be updated.

Definition at line 338 of file rib.cpp.

Referenced by onRouteExpiration(), and nfd::rib::RibManager::setConfigFile().

§ beginRemoveFace()

§ onFibUpdateSuccess()

void nfd::rib::Rib::onFibUpdateSuccess ( const RibUpdateBatch batch,
const RibUpdateList inheritedRoutes,
const Rib::UpdateSuccessCallback onSuccess 
)

§ onFibUpdateFailure()

void nfd::rib::Rib::onFibUpdateFailure ( const Rib::UpdateFailureCallback onFailure,
uint32_t  code,
const std::string &  error 
)

§ onRouteExpiration()

void nfd::rib::Rib::onRouteExpiration ( const Name prefix,
const Route route 
)

§ insert()

Friends And Related Function Documentation

§ FibUpdater

friend class FibUpdater
friend

Definition at line 218 of file rib.hpp.

Member Data Documentation

§ afterInsertEntry

ndn::util::signal::Signal<Rib, Name> nfd::rib::Rib::afterInsertEntry

Definition at line 208 of file rib.hpp.

Referenced by nfd::rib::AutoPrefixPropagator::enable(), and insert().

§ afterEraseEntry

ndn::util::signal::Signal<Rib, Name> nfd::rib::Rib::afterEraseEntry

The documentation for this class was generated from the following files: