OpenSDN source code
|
#include <agent_route_walker.h>
Public Types | |
typedef boost::function< void()> | WalkDone |
typedef boost::function< void(VrfEntry *)> | RouteWalkDoneCb |
typedef std::map< const VrfEntry *, tbb::atomic< int > > | VrfRouteWalkCountMap |
Public Member Functions | |
virtual | ~AgentRouteWalker () |
void | StartVrfWalk () |
void | StartRouteWalk (VrfEntry *vrf) |
virtual bool | VrfWalkNotify (DBTablePartBase *partition, DBEntryBase *e) |
virtual bool | RouteWalkNotify (DBTablePartBase *partition, DBEntryBase *e) |
virtual void | VrfWalkDone (DBTableBase *part) |
virtual void | RouteWalkDone (DBTableBase *part) |
void | WalkDoneCallback (WalkDone cb) |
void | RouteWalkDoneForVrfCallback (RouteWalkDoneCb cb) |
int | walk_count () const |
bool | IsWalkCompleted () const |
bool | IsValidDeleteWalkRef () const |
bool | IsValidVrfWalkRef () const |
bool | IsDeregisterDone () const |
bool | AreAllWalksDone () const |
bool | AreAllRouteWalksDone (const VrfEntry *vrf) const |
bool | IsRouteTableWalkCompleted (RouteWalkerDBState *state) |
AgentRouteWalkerManager * | mgr () |
Agent * | agent () const |
uint32_t | refcount () const |
Static Public Attributes | |
static const int | kInvalidWalkCount = 0 |
Protected Member Functions | |
AgentRouteWalker (const std::string &name, Agent *agent) | |
void | set_mgr (AgentRouteWalkerManager *mgr) |
Private Member Functions | |
void | Callback (VrfEntry *vrf) |
void | OnRouteTableWalkCompleteForVrf (VrfEntry *vrf) |
void | DecrementWalkCount () |
void | DecrementRouteWalkCount (const VrfEntry *vrf) |
void | IncrementWalkCount () |
void | IncrementRouteWalkCount (const VrfEntry *vrf) |
void | WalkTable (AgentRouteTable *table, DBTable::DBTableWalkRef &route_table_walk_ref) |
DBTable::DBTableWalkRef | AllocateRouteTableReferences (AgentRouteTable *table) |
void | VrfWalkDoneInternal (DBTableBase *part) |
void | RouteWalkDoneInternal (DBTableBase *part, AgentRouteWalkerPtr ptr) |
DBTable::DBTableWalkRef | LocateRouteTableWalkRef (const VrfEntry *vrf, RouteWalkerDBState *state, AgentRouteTable *table) |
RouteWalkerDBState * | LocateRouteWalkerDBState (VrfEntry *vrf) |
DBTable::DBTableWalkRef & | vrf_walk_ref () |
DBTable::DBTableWalkRef & | delete_walk_ref () |
void | ReleaseVrfWalkReference () |
bool | Deregister (DBTablePartBase *partition, DBEntryBase *e) |
DISALLOW_COPY_AND_ASSIGN (AgentRouteWalker) | |
Static Private Member Functions | |
static void | DeregisterDone (AgentRouteWalkerPtr walker) |
Private Attributes | |
Agent * | agent_ |
std::string | name_ |
VrfRouteWalkCountMap | route_walk_count_ |
tbb::atomic< int > | walk_count_ |
WalkDone | walk_done_cb_ |
RouteWalkDoneCb | route_walk_done_for_vrf_cb_ |
DBTable::DBTableWalkRef | vrf_walk_ref_ |
AgentRouteWalkerManager * | mgr_ |
bool | deregister_done_ |
DBTable::DBTableWalkRef | delete_walk_ref_ |
tbb::atomic< uint32_t > | refcount_ |
Friends | |
class | AgentRouteWalkerManager |
void | intrusive_ptr_add_ref (AgentRouteWalker *w) |
void | intrusive_ptr_release (AgentRouteWalker *w) |
Definition at line 92 of file agent_route_walker.h.
typedef boost::function<void(VrfEntry *)> AgentRouteWalker::RouteWalkDoneCb |
Definition at line 96 of file agent_route_walker.h.
typedef std::map<const VrfEntry *, tbb::atomic<int> > AgentRouteWalker::VrfRouteWalkCountMap |
Definition at line 97 of file agent_route_walker.h.
typedef boost::function<void()> AgentRouteWalker::WalkDone |
Definition at line 95 of file agent_route_walker.h.
|
virtual |
Definition at line 139 of file agent_route_walker.cc.
|
protected |
|
inline |
Definition at line 129 of file agent_route_walker.h.
|
private |
bool AgentRouteWalker::AreAllRouteWalksDone | ( | const VrfEntry * | vrf | ) | const |
Definition at line 386 of file agent_route_walker.cc.
bool AgentRouteWalker::AreAllWalksDone | ( | ) | const |
Definition at line 382 of file agent_route_walker.cc.
|
private |
|
private |
Definition at line 317 of file agent_route_walker.cc.
|
private |
Definition at line 312 of file agent_route_walker.cc.
|
inlineprivate |
Definition at line 158 of file agent_route_walker.h.
|
private |
|
staticprivate |
|
private |
|
private |
Definition at line 326 of file agent_route_walker.cc.
|
inlineprivate |
Definition at line 144 of file agent_route_walker.h.
|
inline |
Definition at line 124 of file agent_route_walker.h.
bool AgentRouteWalker::IsRouteTableWalkCompleted | ( | RouteWalkerDBState * | state | ) |
Definition at line 348 of file agent_route_walker.cc.
|
inline |
Definition at line 118 of file agent_route_walker.h.
|
inline |
Definition at line 121 of file agent_route_walker.h.
|
inline |
Definition at line 117 of file agent_route_walker.h.
|
private |
|
private |
|
inline |
Definition at line 128 of file agent_route_walker.h.
|
private |
|
inline |
Definition at line 130 of file agent_route_walker.h.
|
private |
|
virtual |
Definition at line 291 of file agent_route_walker.cc.
void AgentRouteWalker::RouteWalkDoneForVrfCallback | ( | RouteWalkDoneCb | cb | ) |
Definition at line 400 of file agent_route_walker.cc.
|
private |
|
virtual |
Reimplemented in RouteDeleteWalker, VrfDeleteWalker, MulticastTEWalker, KSyncRouteWalker, VxlanRoutingRouteWalker, ControllerRouteWalker, TsnElectorWalker, and AgentRouteResync.
Definition at line 286 of file agent_route_walker.cc.
|
inlineprotected |
void AgentRouteWalker::StartRouteWalk | ( | VrfEntry * | vrf | ) |
void AgentRouteWalker::StartVrfWalk | ( | ) |
|
inlineprivate |
Definition at line 155 of file agent_route_walker.h.
|
virtual |
Definition at line 280 of file agent_route_walker.cc.
|
private |
|
virtual |
Reimplemented in VrfDeleteWalker, HBFVrfWalker, and ControllerRouteWalker.
Definition at line 249 of file agent_route_walker.cc.
|
inline |
Definition at line 116 of file agent_route_walker.h.
void AgentRouteWalker::WalkDoneCallback | ( | WalkDone | cb | ) |
Definition at line 392 of file agent_route_walker.cc.
|
private |
|
friend |
Definition at line 133 of file agent_route_walker.h.
|
friend |
Definition at line 463 of file agent_route_walker.cc.
|
friend |
Definition at line 467 of file agent_route_walker.cc.
|
private |
Definition at line 166 of file agent_route_walker.h.
|
private |
Definition at line 175 of file agent_route_walker.h.
|
private |
Definition at line 174 of file agent_route_walker.h.
|
static |
Definition at line 94 of file agent_route_walker.h.
|
private |
Definition at line 173 of file agent_route_walker.h.
|
private |
Definition at line 167 of file agent_route_walker.h.
|
mutableprivate |
Definition at line 176 of file agent_route_walker.h.
|
private |
Definition at line 168 of file agent_route_walker.h.
|
private |
Definition at line 171 of file agent_route_walker.h.
|
private |
Definition at line 172 of file agent_route_walker.h.
|
private |
Definition at line 169 of file agent_route_walker.h.
|
private |
Definition at line 170 of file agent_route_walker.h.