26 #ifndef NFD_RIB_FIB_UPDATER_HPP 27 #define NFD_RIB_FIB_UPDATER_HPP 34 #include <ndn-cxx/mgmt/nfd/controller.hpp> 44 class Error :
public std::runtime_error
49 :
std::runtime_error(what)
70 const FibUpdateSuccessCallback& onSuccess,
71 const FibUpdateFailureCallback& onFailure);
89 sendUpdates(
const FibUpdateList& updates,
90 const FibUpdateSuccessCallback& onSuccess,
91 const FibUpdateFailureCallback& onFailure);
97 sendUpdatesForBatchFaceId(
const FibUpdateSuccessCallback& onSuccess,
98 const FibUpdateFailureCallback& onFailure);
104 sendUpdatesForNonBatchFaceId(
const FibUpdateSuccessCallback& onSuccess,
105 const FibUpdateFailureCallback& onFailure);
113 sendAddNextHopUpdate(
const FibUpdate& update,
114 const FibUpdateSuccessCallback& onSuccess,
115 const FibUpdateFailureCallback& onFailure,
116 uint32_t nTimeouts = 0);
124 sendRemoveNextHopUpdate(
const FibUpdate& update,
125 const FibUpdateSuccessCallback& onSuccess,
126 const FibUpdateFailureCallback& onFailure,
127 uint32_t nTimeouts = 0);
133 computeUpdatesForRegistration(
const RibUpdate& update);
138 computeUpdatesForUnregistration(
const RibUpdate& update);
154 const FibUpdateSuccessCallback& onSuccess,
155 const FibUpdateFailureCallback& onFailure);
174 const FibUpdateSuccessCallback& onSuccess,
175 const FibUpdateFailureCallback& onFailure,
208 createFibUpdatesForNewRibEntry(
const Name&
name,
const Route& route,
214 createFibUpdatesForNewRoute(
const RibEntry& entry,
const Route& route,
215 const bool captureWasTurnedOn);
220 createFibUpdatesForUpdatedRoute(
const RibEntry& entry,
const Route& route,
221 const Route& existingRoute);
226 createFibUpdatesForErasedRoute(
const RibEntry& entry,
const Route& route,
227 const bool captureWasTurnedOff);
232 createFibUpdatesForErasedRibEntry(
const RibEntry& entry);
260 uint64_t m_batchFaceId;
263 FibUpdateList m_updatesForBatchFaceId;
264 FibUpdateList m_updatesForNonBatchFaceId;
272 static const unsigned int MAX_NUM_TIMEOUTS;
273 static const uint32_t ERROR_FACE_NOT_FOUND;
279 #endif // NFD_RIB_FIB_UPDATER_HPP #define PUBLIC_WITH_TESTS_ELSE_PRIVATE
FibUpdater(Rib &rib, ndn::nfd::Controller &controller)
represents the Routing Information Base
function< void(RibUpdateList inheritedRoutes)> FibUpdateSuccessCallback
represents a collection of RibUpdates to be applied to a single FaceId
computes FibUpdates based on updates to the RIB and sends them to NFD
std::list< FibUpdate > FibUpdateList
function< void(uint32_t code, const std::string &error)> FibUpdateFailureCallback
std::set< Route, RouteComparePredicate > RouteSet
std::list< shared_ptr< RibEntry > > RibEntryList
std::list< RibUpdate > RibUpdateList
Error(const std::string &what)
Copyright (c) 2011-2015 Regents of the University of California.
represents a RIB entry, which contains one or more Routes with the same prefix
represents a route for a name prefix
NFD Management protocol client.
Name abstraction to represent an absolute name.
void computeAndSendFibUpdates(const RibUpdateBatch &batch, const FibUpdateSuccessCallback &onSuccess, const FibUpdateFailureCallback &onFailure)
computes FibUpdates using the provided RibUpdateBatch and then sends the updates to NFD's FIB ...