OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
RibUpdateMonitor Class Reference

#include <bgp_update_monitor.h>

Collaboration diagram for RibUpdateMonitor:

Public Types

typedef boost::function< bool(const
RouteUpdate *)> 
UpdateCmp
 
typedef std::vector
< UpdateQueue * > 
QueueVec
 

Public Member Functions

 RibUpdateMonitor (RibOut *ribout, QueueVec *queue_vec)
 
DBStateGetDBStateAndDequeue (DBEntryBase *db_entry, UpdateCmp cmp, bool *duplicate)
 
bool GetPeerSetCurrentAndScheduled (DBEntryBase *db_entry, int queue_id, RibPeerSet *mcurrent, RibPeerSet *mscheduled)
 
bool EnqueueUpdate (DBEntryBase *db_entry, RouteUpdate *rt_update, UpdateList *uplist=NULL)
 
void DequeueUpdate (RouteUpdate *rt_update)
 
bool MergeUpdate (DBEntryBase *db_entry, RouteUpdate *rt_update)
 
void ClearPeerSetCurrentAndScheduled (DBEntryBase *db_entry, const RibPeerSet &mleave)
 
RouteUpdatePtr GetNextUpdate (int queue_id, UpdateEntry *upentry)
 
RouteUpdatePtr GetNextEntry (int queue_id, UpdateEntry *upentry, UpdateEntry **next_upentry_p)
 
RouteUpdatePtr GetAttrNext (int queue_id, UpdateInfo *current_uinfo, UpdateInfo **next_uinfo_p)
 
void SetEntryState (DBEntryBase *db_entry, DBState *dbstate)
 
void ClearEntryState (DBEntryBase *db_entry)
 

Private Member Functions

DBStateGetRouteUpdateAndDequeue (DBEntryBase *db_entry, RouteUpdate *rt_update, UpdateCmp cmp, bool *duplicate)
 
DBStateGetUpdateListAndDequeue (DBEntryBase *db_entry, UpdateList *uplist)
 
bool RouteStateMergeUpdate (DBEntryBase *db_entry, RouteUpdate *rt_update, RouteState *rstate)
 
bool RouteUpdateMergeUpdate (DBEntryBase *db_entry, RouteUpdate *rt_update, RouteUpdate *current_rt_update)
 
bool UpdateListMergeUpdate (DBEntryBase *db_entry, RouteUpdate *rt_update, UpdateList *uplist)
 
void AdvertiseSListClearBits (AdvertiseSList &adv_slist, const RibPeerSet &clear)
 
void UpdateInfoSListClearBits (UpdateInfoSList &uinfo_slist, const RibPeerSet &clear)
 
void RouteStateClearPeerSet (DBEntryBase *db_entry, RouteState *rstate, const RibPeerSet &mleave)
 
bool RouteUpdateClearPeerSet (DBEntryBase *db_entry, RouteUpdate *rt_update, const RibPeerSet &mleave)
 
bool UpdateListClearPeerSet (DBEntryBase *db_entry, UpdateList *uplist, const RibPeerSet &mleave)
 
 DISALLOW_COPY_AND_ASSIGN (RibUpdateMonitor)
 

Private Attributes

RibOutribout_
 
QueueVecqueue_vec_
 

Detailed Description

Definition at line 102 of file bgp_update_monitor.h.

Member Typedef Documentation

typedef std::vector<UpdateQueue *> RibUpdateMonitor::QueueVec

Definition at line 105 of file bgp_update_monitor.h.

typedef boost::function<bool(const RouteUpdate *)> RibUpdateMonitor::UpdateCmp

Definition at line 104 of file bgp_update_monitor.h.

Constructor & Destructor Documentation

RibUpdateMonitor::RibUpdateMonitor ( RibOut ribout,
QueueVec queue_vec 
)
explicit

Definition at line 18 of file bgp_update_monitor.cc.

Member Function Documentation

void RibUpdateMonitor::AdvertiseSListClearBits ( AdvertiseSList adv_slist,
const RibPeerSet clear 
)
private

Definition at line 437 of file bgp_update_monitor.cc.

void RibUpdateMonitor::ClearEntryState ( DBEntryBase db_entry)

Definition at line 766 of file bgp_update_monitor.cc.

Here is the call graph for this function:

void RibUpdateMonitor::ClearPeerSetCurrentAndScheduled ( DBEntryBase db_entry,
const RibPeerSet mleave 
)

Definition at line 598 of file bgp_update_monitor.cc.

Here is the call graph for this function:

void RibUpdateMonitor::DequeueUpdate ( RouteUpdate rt_update)

Definition at line 679 of file bgp_update_monitor.cc.

Here is the call graph for this function:

RibUpdateMonitor::DISALLOW_COPY_AND_ASSIGN ( RibUpdateMonitor  )
private
bool RibUpdateMonitor::EnqueueUpdate ( DBEntryBase db_entry,
RouteUpdate rt_update,
UpdateList uplist = NULL 
)

Definition at line 663 of file bgp_update_monitor.cc.

Here is the call graph for this function:

RouteUpdatePtr RibUpdateMonitor::GetAttrNext ( int  queue_id,
UpdateInfo current_uinfo,
UpdateInfo **  next_uinfo_p 
)

Definition at line 739 of file bgp_update_monitor.cc.

Here is the call graph for this function:

DBState * RibUpdateMonitor::GetDBStateAndDequeue ( DBEntryBase db_entry,
UpdateCmp  cmp,
bool *  duplicate 
)

Definition at line 125 of file bgp_update_monitor.cc.

Here is the call graph for this function:

RouteUpdatePtr RibUpdateMonitor::GetNextEntry ( int  queue_id,
UpdateEntry upentry,
UpdateEntry **  next_upentry_p 
)

Definition at line 717 of file bgp_update_monitor.cc.

Here is the call graph for this function:

RouteUpdatePtr RibUpdateMonitor::GetNextUpdate ( int  queue_id,
UpdateEntry upentry 
)

Definition at line 695 of file bgp_update_monitor.cc.

Here is the call graph for this function:

bool RibUpdateMonitor::GetPeerSetCurrentAndScheduled ( DBEntryBase db_entry,
int  queue_id,
RibPeerSet mcurrent,
RibPeerSet mscheduled 
)

Definition at line 248 of file bgp_update_monitor.cc.

Here is the call graph for this function:

DBState * RibUpdateMonitor::GetRouteUpdateAndDequeue ( DBEntryBase db_entry,
RouteUpdate rt_update,
UpdateCmp  cmp,
bool *  duplicate 
)
private

Definition at line 28 of file bgp_update_monitor.cc.

Here is the call graph for this function:

DBState * RibUpdateMonitor::GetUpdateListAndDequeue ( DBEntryBase db_entry,
UpdateList uplist 
)
private

Definition at line 65 of file bgp_update_monitor.cc.

Here is the call graph for this function:

bool RibUpdateMonitor::MergeUpdate ( DBEntryBase db_entry,
RouteUpdate rt_update 
)

Definition at line 387 of file bgp_update_monitor.cc.

Here is the call graph for this function:

void RibUpdateMonitor::RouteStateClearPeerSet ( DBEntryBase db_entry,
RouteState rstate,
const RibPeerSet mleave 
)
private

Definition at line 481 of file bgp_update_monitor.cc.

Here is the call graph for this function:

bool RibUpdateMonitor::RouteStateMergeUpdate ( DBEntryBase db_entry,
RouteUpdate rt_update,
RouteState rstate 
)
private

Definition at line 310 of file bgp_update_monitor.cc.

Here is the call graph for this function:

bool RibUpdateMonitor::RouteUpdateClearPeerSet ( DBEntryBase db_entry,
RouteUpdate rt_update,
const RibPeerSet mleave 
)
private

Definition at line 503 of file bgp_update_monitor.cc.

Here is the call graph for this function:

bool RibUpdateMonitor::RouteUpdateMergeUpdate ( DBEntryBase db_entry,
RouteUpdate rt_update,
RouteUpdate current_rt_update 
)
private

Definition at line 331 of file bgp_update_monitor.cc.

Here is the call graph for this function:

void RibUpdateMonitor::SetEntryState ( DBEntryBase db_entry,
DBState dbstate 
)

Definition at line 757 of file bgp_update_monitor.cc.

Here is the call graph for this function:

void RibUpdateMonitor::UpdateInfoSListClearBits ( UpdateInfoSList uinfo_slist,
const RibPeerSet clear 
)
private

Definition at line 457 of file bgp_update_monitor.cc.

Here is the call graph for this function:

bool RibUpdateMonitor::UpdateListClearPeerSet ( DBEntryBase db_entry,
UpdateList uplist,
const RibPeerSet mleave 
)
private

Definition at line 543 of file bgp_update_monitor.cc.

Here is the call graph for this function:

bool RibUpdateMonitor::UpdateListMergeUpdate ( DBEntryBase db_entry,
RouteUpdate rt_update,
UpdateList uplist 
)
private

Definition at line 361 of file bgp_update_monitor.cc.

Here is the call graph for this function:

Member Data Documentation

QueueVec* RibUpdateMonitor::queue_vec_
private

Definition at line 188 of file bgp_update_monitor.h.

RibOut* RibUpdateMonitor::ribout_
private

Definition at line 187 of file bgp_update_monitor.h.


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