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

#include <rtarget_group_mgr.h>

Collaboration diagram for RTargetGroupMgr:

Public Types

typedef boost::ptr_map< const
RouteTarget, RtGroup
RtGroupMap
 
typedef RtGroupMap::const_iterator const_iterator
 

Public Member Functions

 RTargetGroupMgr (BgpServer *server)
 
virtual ~RTargetGroupMgr ()
 
bool empty () const
 
const_iterator begin () const
 
const_iterator end () const
 
const_iterator lower_bound (const RouteTarget &rt) const
 
RtGroupGetRtGroup (const RouteTarget &rt)
 
RtGroupGetRtGroup (const ExtCommunity::ExtCommunityValue &comm)
 
RtGroupLocateRtGroup (const RouteTarget &rt)
 
void NotifyRtGroupUnlocked (const RouteTarget &rt)
 
void NotifyRtGroup (const RouteTarget &rt)
 
void RemoveRtGroup (const RouteTarget &rt)
 
virtual void GetRibOutInterestedPeers (RibOut *ribout, const ExtCommunity *ext_community, const RibPeerSet &peerset, RibPeerSet *new_peerset)
 
void Enqueue (RtGroupMgrReq *req)
 
void Initialize ()
 
void ManagedDelete ()
 
bool IsRTargetRoutesProcessed () const
 

Private Types

typedef std::map< BgpTable
*, RtGroupMgrTableState * > 
RtGroupMgrTableStateList
 
typedef std::set< RTargetRoute * > RTargetRouteTriggerList
 
typedef std::set< RouteTargetRouteTargetTriggerList
 
typedef std::set< RtGroup * > RtGroupRemoveList
 

Private Member Functions

void RTargetDepSync (DBTablePartBase *root, BgpRoute *rt, DBTableBase::ListenerId id, VpnRouteState *dbstate, const VpnRouteState::RTargetList *future)
 
void RTargetPeerSync (BgpTable *table, RTargetRoute *rt, DBTableBase::ListenerId id, RTargetState *dbstate, const RtGroup::InterestedPeerList *future)
 
void BuildRTargetDistributionGraph (BgpTable *table, RTargetRoute *rt, DBTableBase::ListenerId id)
 
BgpServerserver ()
 
bool ProcessRTargetRouteList ()
 
void DisableRTargetRouteProcessing ()
 
void EnableRTargetRouteProcessing ()
 
bool IsRTargetRouteOnList (RTargetRoute *rt) const
 
bool ProcessRouteTargetList (int part_id)
 
void AddRouteTargetToLists (const RouteTarget &rtarget)
 
void DisableRouteTargetProcessing ()
 
void EnableRouteTargetProcessing ()
 
bool IsRouteTargetOnList (const RouteTarget &rtarget) const
 
bool ProcessRtGroupList ()
 
void DisableRtGroupProcessing ()
 
void EnableRtGroupProcessing ()
 
bool IsRtGroupOnList (RtGroup *rtgroup) const
 
DBTableBase::ListenerId GetListenerId (BgpTable *table)
 
void UnregisterTables ()
 
bool VpnRouteNotify (DBTablePartBase *root, DBEntryBase *entry)
 
bool RTargetRouteNotify (DBTablePartBase *root, DBEntryBase *entry)
 
bool RequestHandler (RtGroupMgrReq *req)
 
 DISALLOW_COPY_AND_ASSIGN (RTargetGroupMgr)
 

Private Attributes

BgpServerserver_
 
tbb::mutex mutex_
 
RtGroupMap rtgroup_map_
 
RtGroupMgrTableStateList table_state_
 
boost::scoped_ptr< TaskTriggerrtarget_route_trigger_
 
boost::scoped_ptr< TaskTriggerremove_rtgroup_trigger_
 
std::vector< boost::shared_ptr
< TaskTrigger > > 
rtarget_dep_triggers_
 
RTargetRouteTriggerList rtarget_route_list_
 
std::vector
< RouteTargetTriggerList
rtarget_trigger_lists_
 
RtGroupRemoveList rtgroup_remove_list_
 
LifetimeRef< RTargetGroupMgrmaster_instance_delete_ref_
 

Friends

class BgpXmppRTargetTest
 
class ReplicationTest
 

Detailed Description

Definition at line 206 of file rtarget_group_mgr.h.

Member Typedef Documentation

typedef RtGroupMap::const_iterator RTargetGroupMgr::const_iterator

Definition at line 209 of file rtarget_group_mgr.h.

Definition at line 246 of file rtarget_group_mgr.h.

Definition at line 245 of file rtarget_group_mgr.h.

typedef boost::ptr_map<const RouteTarget, RtGroup> RTargetGroupMgr::RtGroupMap

Definition at line 208 of file rtarget_group_mgr.h.

Definition at line 244 of file rtarget_group_mgr.h.

typedef std::set<RtGroup *> RTargetGroupMgr::RtGroupRemoveList
private

Definition at line 247 of file rtarget_group_mgr.h.

Constructor & Destructor Documentation

RTargetGroupMgr::RTargetGroupMgr ( BgpServer server)
explicit

Definition at line 57 of file rtarget_group_mgr.cc.

Here is the call graph for this function:

RTargetGroupMgr::~RTargetGroupMgr ( )
virtual

Definition at line 348 of file rtarget_group_mgr.cc.

Member Function Documentation

void RTargetGroupMgr::AddRouteTargetToLists ( const RouteTarget rtarget)
private

Definition at line 153 of file rtarget_group_mgr.cc.

Here is the call graph for this function:

const_iterator RTargetGroupMgr::begin ( ) const
inline

Definition at line 215 of file rtarget_group_mgr.h.

void RTargetGroupMgr::BuildRTargetDistributionGraph ( BgpTable table,
RTargetRoute rt,
DBTableBase::ListenerId  id 
)
private

Definition at line 96 of file rtarget_group_mgr.cc.

Here is the call graph for this function:

void RTargetGroupMgr::DisableRouteTargetProcessing ( )
private

Definition at line 160 of file rtarget_group_mgr.cc.

Here is the call graph for this function:

void RTargetGroupMgr::DisableRTargetRouteProcessing ( )
private

Definition at line 201 of file rtarget_group_mgr.cc.

void RTargetGroupMgr::DisableRtGroupProcessing ( )
private

Definition at line 479 of file rtarget_group_mgr.cc.

RTargetGroupMgr::DISALLOW_COPY_AND_ASSIGN ( RTargetGroupMgr  )
private
bool RTargetGroupMgr::empty ( ) const
inline

Definition at line 214 of file rtarget_group_mgr.h.

void RTargetGroupMgr::EnableRouteTargetProcessing ( )
private

Definition at line 166 of file rtarget_group_mgr.cc.

Here is the call graph for this function:

void RTargetGroupMgr::EnableRTargetRouteProcessing ( )
private

Definition at line 205 of file rtarget_group_mgr.cc.

void RTargetGroupMgr::EnableRtGroupProcessing ( )
private

Definition at line 483 of file rtarget_group_mgr.cc.

const_iterator RTargetGroupMgr::end ( ) const
inline

Definition at line 216 of file rtarget_group_mgr.h.

void RTargetGroupMgr::Enqueue ( RtGroupMgrReq req)
DBTableBase::ListenerId RTargetGroupMgr::GetListenerId ( BgpTable table)
private

Definition at line 274 of file rtarget_group_mgr.cc.

Here is the call graph for this function:

void RTargetGroupMgr::GetRibOutInterestedPeers ( RibOut ribout,
const ExtCommunity ext_community,
const RibPeerSet peerset,
RibPeerSet new_peerset 
)
virtual

Definition at line 412 of file rtarget_group_mgr.cc.

Here is the call graph for this function:

RtGroup * RTargetGroupMgr::GetRtGroup ( const RouteTarget rt)

Definition at line 353 of file rtarget_group_mgr.cc.

RtGroup * RTargetGroupMgr::GetRtGroup ( const ExtCommunity::ExtCommunityValue comm)

Definition at line 363 of file rtarget_group_mgr.cc.

Here is the call graph for this function:

void RTargetGroupMgr::Initialize ( )

Definition at line 213 of file rtarget_group_mgr.cc.

Here is the call graph for this function:

bool RTargetGroupMgr::IsRouteTargetOnList ( const RouteTarget rtarget) const
private

Definition at line 172 of file rtarget_group_mgr.cc.

Here is the call graph for this function:

bool RTargetGroupMgr::IsRTargetRouteOnList ( RTargetRoute rt) const
private

Definition at line 209 of file rtarget_group_mgr.cc.

bool RTargetGroupMgr::IsRTargetRoutesProcessed ( ) const
inline

Definition at line 235 of file rtarget_group_mgr.h.

bool RTargetGroupMgr::IsRtGroupOnList ( RtGroup rtgroup) const
private

Definition at line 487 of file rtarget_group_mgr.cc.

RtGroup * RTargetGroupMgr::LocateRtGroup ( const RouteTarget rt)

Definition at line 369 of file rtarget_group_mgr.cc.

const_iterator RTargetGroupMgr::lower_bound ( const RouteTarget rt) const
inline

Definition at line 217 of file rtarget_group_mgr.h.

void RTargetGroupMgr::ManagedDelete ( )

Definition at line 244 of file rtarget_group_mgr.cc.

void RTargetGroupMgr::NotifyRtGroup ( const RouteTarget rt)

Definition at line 396 of file rtarget_group_mgr.cc.

Here is the call graph for this function:

void RTargetGroupMgr::NotifyRtGroupUnlocked ( const RouteTarget rt)

Definition at line 380 of file rtarget_group_mgr.cc.

Here is the call graph for this function:

bool RTargetGroupMgr::ProcessRouteTargetList ( int  part_id)
private

Definition at line 139 of file rtarget_group_mgr.cc.

Here is the call graph for this function:

bool RTargetGroupMgr::ProcessRTargetRouteList ( )
private

Definition at line 182 of file rtarget_group_mgr.cc.

Here is the call graph for this function:

bool RTargetGroupMgr::ProcessRtGroupList ( )
private

Definition at line 464 of file rtarget_group_mgr.cc.

Here is the call graph for this function:

void RTargetGroupMgr::RemoveRtGroup ( const RouteTarget rt)

Definition at line 402 of file rtarget_group_mgr.cc.

bool RTargetGroupMgr::RequestHandler ( RtGroupMgrReq req)
private
void RTargetGroupMgr::RTargetDepSync ( DBTablePartBase root,
BgpRoute rt,
DBTableBase::ListenerId  id,
VpnRouteState dbstate,
const VpnRouteState::RTargetList future 
)
private

Definition at line 249 of file rtarget_group_mgr.cc.

Here is the call graph for this function:

void RTargetGroupMgr::RTargetPeerSync ( BgpTable table,
RTargetRoute rt,
DBTableBase::ListenerId  id,
RTargetState dbstate,
const RtGroup::InterestedPeerList future 
)
private

Definition at line 74 of file rtarget_group_mgr.cc.

Here is the call graph for this function:

bool RTargetGroupMgr::RTargetRouteNotify ( DBTablePartBase root,
DBEntryBase entry 
)
private

Definition at line 324 of file rtarget_group_mgr.cc.

Here is the call graph for this function:

BgpServer* RTargetGroupMgr::server ( )
inlineprivate

Definition at line 257 of file rtarget_group_mgr.h.

void RTargetGroupMgr::UnregisterTables ( )
private

Definition at line 440 of file rtarget_group_mgr.cc.

Here is the call graph for this function:

bool RTargetGroupMgr::VpnRouteNotify ( DBTablePartBase root,
DBEntryBase entry 
)
private

Definition at line 283 of file rtarget_group_mgr.cc.

Here is the call graph for this function:

Friends And Related Function Documentation

friend class BgpXmppRTargetTest
friend

Definition at line 240 of file rtarget_group_mgr.h.

friend class ReplicationTest
friend

Definition at line 241 of file rtarget_group_mgr.h.

Member Data Documentation

LifetimeRef<RTargetGroupMgr> RTargetGroupMgr::master_instance_delete_ref_
private

Definition at line 291 of file rtarget_group_mgr.h.

tbb::mutex RTargetGroupMgr::mutex_
private

Definition at line 282 of file rtarget_group_mgr.h.

boost::scoped_ptr<TaskTrigger> RTargetGroupMgr::remove_rtgroup_trigger_
private

Definition at line 286 of file rtarget_group_mgr.h.

std::vector<boost::shared_ptr<TaskTrigger> > RTargetGroupMgr::rtarget_dep_triggers_
private

Definition at line 287 of file rtarget_group_mgr.h.

RTargetRouteTriggerList RTargetGroupMgr::rtarget_route_list_
private

Definition at line 288 of file rtarget_group_mgr.h.

boost::scoped_ptr<TaskTrigger> RTargetGroupMgr::rtarget_route_trigger_
private

Definition at line 285 of file rtarget_group_mgr.h.

std::vector<RouteTargetTriggerList> RTargetGroupMgr::rtarget_trigger_lists_
private

Definition at line 289 of file rtarget_group_mgr.h.

RtGroupMap RTargetGroupMgr::rtgroup_map_
private

Definition at line 283 of file rtarget_group_mgr.h.

RtGroupRemoveList RTargetGroupMgr::rtgroup_remove_list_
private

Definition at line 290 of file rtarget_group_mgr.h.

BgpServer* RTargetGroupMgr::server_
private

Definition at line 281 of file rtarget_group_mgr.h.

RtGroupMgrTableStateList RTargetGroupMgr::table_state_
private

Definition at line 284 of file rtarget_group_mgr.h.


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