Represents a RIB entry, which contains one or more Routes with the same prefix. More...
#include <rib-entry.hpp>
Public Types | |
typedef std::list< Route > | RouteList |
typedef RouteList::iterator | iterator |
typedef RouteList::const_iterator | const_iterator |
Public Member Functions | |
RibEntry () | |
void | setName (const Name &prefix) |
const Name & | getName () const |
shared_ptr< RibEntry > | getParent () const |
bool | hasParent () const |
void | addChild (shared_ptr< RibEntry > child) |
void | removeChild (shared_ptr< RibEntry > child) |
const std::list< shared_ptr< RibEntry > > & | getChildren () const |
bool | hasChildren () const |
std::pair< RibEntry::iterator, bool > | insertRoute (const Route &route) |
inserts a new route into the entry's route list If another route already exists with the same faceId and origin, the new route is not inserted. More... | |
void | eraseRoute (const Route &route) |
erases a Route with the same faceId and origin More... | |
iterator | eraseRoute (RouteList::iterator route) |
erases a Route with the passed iterator More... | |
bool | hasFaceId (const uint64_t faceId) const |
const RouteList & | getRoutes () const |
size_t | getNRoutes () const |
iterator | findRoute (const Route &route) |
const_iterator | findRoute (const Route &route) const |
bool | hasRoute (const Route &route) |
void | addInheritedRoute (const Route &route) |
void | removeInheritedRoute (const Route &route) |
const RouteList & | getInheritedRoutes () const |
Returns the routes this namespace has inherited. More... | |
RouteList::const_iterator | findInheritedRoute (const Route &route) const |
Finds an inherited route with a matching face ID. More... | |
bool | hasInheritedRoute (const Route &route) const |
Determines if the entry has an inherited route with a matching face ID. More... | |
bool | hasCapture () const |
bool | hasChildInheritOnFaceId (uint64_t faceId) const |
Determines if the entry has an inherited route with the passed face ID and its child inherit flag set. More... | |
const Route * | getRouteWithLowestCostByFaceId (uint64_t faceId) const |
Returns the route with the lowest cost that has the passed face ID. More... | |
const Route * | getRouteWithSecondLowestCostByFaceId (uint64_t faceId) const |
const Route * | getRouteWithLowestCostAndChildInheritByFaceId (uint64_t faceId) const |
Returns the route with the lowest cost that has the passed face ID and its child inherit flag set. More... | |
ndn::PrefixAnnouncement | getPrefixAnnouncement (time::milliseconds minExpiration=15_s, time::milliseconds maxExpiration=1_h) const |
Retrieve a prefix announcement suitable for readvertising this route. More... | |
const_iterator | begin () const |
const_iterator | end () const |
iterator | begin () |
iterator | end () |
Represents a RIB entry, which contains one or more Routes with the same prefix.
Definition at line 38 of file rib-entry.hpp.
typedef std::list<Route> nfd::rib::RibEntry::RouteList |
Definition at line 41 of file rib-entry.hpp.
typedef RouteList::iterator nfd::rib::RibEntry::iterator |
Definition at line 42 of file rib-entry.hpp.
typedef RouteList::const_iterator nfd::rib::RibEntry::const_iterator |
Definition at line 43 of file rib-entry.hpp.
|
inline |
Definition at line 45 of file rib-entry.hpp.
|
inline |
Definition at line 217 of file rib-entry.hpp.
|
inline |
Definition at line 223 of file rib-entry.hpp.
Referenced by nfd::rib::operator<<().
|
inline |
Definition at line 235 of file rib-entry.hpp.
bool nfd::rib::RibEntry::hasParent | ( | ) | const |
void nfd::rib::RibEntry::addChild | ( | shared_ptr< RibEntry > | child | ) |
Definition at line 95 of file rib-entry.cpp.
void nfd::rib::RibEntry::removeChild | ( | shared_ptr< RibEntry > | child | ) |
Definition at line 103 of file rib-entry.cpp.
|
inline |
Definition at line 241 of file rib-entry.hpp.
bool nfd::rib::RibEntry::hasChildren | ( | ) | const |
std::pair< RibEntry::iterator, bool > nfd::rib::RibEntry::insertRoute | ( | const Route & | route | ) |
inserts a new route into the entry's route list If another route already exists with the same faceId and origin, the new route is not inserted.
Definition at line 49 of file rib-entry.cpp.
References end(), findRoute(), nfd::rib::Route::flags, and ndn::nfd::ROUTE_FLAG_CAPTURE.
void nfd::rib::RibEntry::eraseRoute | ( | const Route & | route | ) |
erases a Route with the same faceId and origin
Definition at line 66 of file rib-entry.cpp.
References findRoute().
RibEntry::RouteList::iterator nfd::rib::RibEntry::eraseRoute | ( | RouteList::iterator | route | ) |
erases a Route with the passed iterator
Definition at line 111 of file rib-entry.cpp.
References NFD_LOG_TRACE, and ndn::nfd::ROUTE_FLAG_CAPTURE.
bool nfd::rib::RibEntry::hasFaceId | ( | const uint64_t | faceId | ) | const |
Definition at line 81 of file rib-entry.cpp.
References begin(), nfd::rib::compareFaceId(), and end().
|
inline |
Definition at line 247 of file rib-entry.hpp.
size_t nfd::rib::RibEntry::getNRoutes | ( | ) | const |
Definition at line 89 of file rib-entry.cpp.
RibEntry::RouteList::iterator nfd::rib::RibEntry::findRoute | ( | const Route & | route | ) |
Definition at line 37 of file rib-entry.cpp.
References begin(), nfd::rib::compareFaceIdAndOrigin(), and end().
Referenced by eraseRoute(), hasRoute(), and insertRoute().
RibEntry::RouteList::const_iterator nfd::rib::RibEntry::findRoute | ( | const Route & | route | ) | const |
Definition at line 43 of file rib-entry.cpp.
References begin(), nfd::rib::compareFaceIdAndOrigin(), and end().
bool nfd::rib::RibEntry::hasRoute | ( | const Route & | route | ) |
Definition at line 73 of file rib-entry.cpp.
References end(), and findRoute().
void nfd::rib::RibEntry::addInheritedRoute | ( | const Route & | route | ) |
Definition at line 129 of file rib-entry.cpp.
void nfd::rib::RibEntry::removeInheritedRoute | ( | const Route & | route | ) |
Definition at line 135 of file rib-entry.cpp.
References nfd::rib::compareFaceId(), and nfd::rib::Route::faceId.
|
inline |
Returns the routes this namespace has inherited.
The inherited routes returned represent inherited routes this namespace has in the FIB.
Definition at line 253 of file rib-entry.hpp.
RibEntry::RouteList::const_iterator nfd::rib::RibEntry::findInheritedRoute | ( | const Route & | route | ) | const |
Finds an inherited route with a matching face ID.
Definition at line 141 of file rib-entry.cpp.
References nfd::rib::compareFaceId(), and nfd::rib::Route::faceId.
Referenced by hasInheritedRoute().
bool nfd::rib::RibEntry::hasInheritedRoute | ( | const Route & | route | ) | const |
Determines if the entry has an inherited route with a matching face ID.
Definition at line 148 of file rib-entry.cpp.
References findInheritedRoute().
bool nfd::rib::RibEntry::hasCapture | ( | ) | const |
Definition at line 154 of file rib-entry.cpp.
bool nfd::rib::RibEntry::hasChildInheritOnFaceId | ( | uint64_t | faceId | ) | const |
Determines if the entry has an inherited route with the passed face ID and its child inherit flag set.
Definition at line 160 of file rib-entry.cpp.
References ndn::nfd::ROUTE_FLAG_CHILD_INHERIT.
const Route * nfd::rib::RibEntry::getRouteWithLowestCostByFaceId | ( | uint64_t | faceId | ) | const |
Returns the route with the lowest cost that has the passed face ID.
Definition at line 172 of file rib-entry.cpp.
References nfd::rib::Route::cost.
const Route * nfd::rib::RibEntry::getRouteWithSecondLowestCostByFaceId | ( | uint64_t | faceId | ) | const |
Definition at line 194 of file rib-entry.cpp.
References nfd::rib::Route::cost.
const Route * nfd::rib::RibEntry::getRouteWithLowestCostAndChildInheritByFaceId | ( | uint64_t | faceId | ) | const |
Returns the route with the lowest cost that has the passed face ID and its child inherit flag set.
Definition at line 218 of file rib-entry.cpp.
References nfd::rib::Route::cost, and ndn::nfd::ROUTE_FLAG_CHILD_INHERIT.
ndn::PrefixAnnouncement nfd::rib::RibEntry::getPrefixAnnouncement | ( | time::milliseconds | minExpiration = 15_s , |
time::milliseconds | maxExpiration = 1_h |
||
) | const |
Retrieve a prefix announcement suitable for readvertising this route.
If one or more routes in this RIB entry contains a prefix announcement, this method returns the announcement from the route that expires last.
If this RIB entry does not have a route containing a prefix announcement, this method creates a new announcement. Its expiration period reflects the remaining lifetime of this RIB entry, confined within [minExpiration
, maxExpiration
] range. The caller is expected to sign this announcement.
Definition at line 242 of file rib-entry.cpp.
References nfd::rib::Route::announcement, ndn::clamp(), nfd::rib::Route::expires, ndn::time::steady_clock::now(), ndn::PrefixAnnouncement::setAnnouncedName(), and ndn::PrefixAnnouncement::setExpiration().
|
inline |
Definition at line 259 of file rib-entry.hpp.
Referenced by findRoute(), and hasFaceId().
|
inline |
Definition at line 265 of file rib-entry.hpp.
Referenced by findRoute(), hasFaceId(), hasRoute(), and insertRoute().
|
inline |
Definition at line 271 of file rib-entry.hpp.
|
inline |
Definition at line 277 of file rib-entry.hpp.