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

#include <routepath_replicator.h>

Collaboration diagram for RoutePathReplicator:

Public Member Functions

 RoutePathReplicator (BgpServer *server, Address::Family family)
 
virtual ~RoutePathReplicator ()
 
void Initialize ()
 
void Join (BgpTable *table, const RouteTarget &rt, bool import)
 
void Leave (BgpTable *table, const RouteTarget &rt, bool import)
 
std::vector< std::string > GetReplicatedTableNameList (const BgpTable *table, const BgpRoute *route, const BgpPath *path) const
 
const RtReplicatedGetReplicationState (BgpTable *table, BgpRoute *rt) const
 

Private Types

typedef std::map< BgpTable
*, TableState * > 
TableStateList
 
typedef std::set< BgpTable * > UnregTableList
 

Private Member Functions

void RequestWalk (BgpTable *table)
 
void BulkReplicationDone (DBTableBase *dbtable)
 
bool UnregisterTables ()
 
TableStateAddTableState (BgpTable *table, RtGroup *group=NULL)
 
void RemoveTableState (BgpTable *table, RtGroup *group)
 
void DeleteTableState (BgpTable *table)
 
void UnregisterTableState (BgpTable *table)
 
TableStateFindTableState (BgpTable *table)
 
const TableStateFindTableState (const BgpTable *table) const
 
void JoinVpnTable (RtGroup *group)
 
void LeaveVpnTable (RtGroup *group)
 
bool RouteListener (TableState *ts, DBTablePartBase *root, DBEntryBase *entry)
 
void DeleteSecondaryPath (BgpTable *table, BgpRoute *rt, const RtReplicated::SecondaryRouteInfo &rtinfo)
 
void DBStateSync (BgpTable *table, TableState *ts, BgpRoute *rt, RtReplicated *dbstate, const RtReplicated::ReplicatedRtPathList *future)
 
BgpServerserver ()
 
Address::Family family () const
 
const BgpServerserver () const
 
 DISALLOW_COPY_AND_ASSIGN (RoutePathReplicator)
 

Private Attributes

BgpServerserver_
 
tbb::mutex mutex_
 
TableStateList table_state_list_
 
Address::Family family_
 
BgpTablevpn_table_
 
SandeshTraceBufferPtr trace_buf_
 

Friends

class ReplicationTest
 
class BGPaaSRDTest
 
class RtReplicated
 
class TableState
 

Detailed Description

Definition at line 237 of file routepath_replicator.h.

Member Typedef Documentation

Definition at line 257 of file routepath_replicator.h.

typedef std::set<BgpTable *> RoutePathReplicator::UnregTableList
private

Definition at line 258 of file routepath_replicator.h.

Constructor & Destructor Documentation

RoutePathReplicator::RoutePathReplicator ( BgpServer server,
Address::Family  family 
)

Definition at line 169 of file routepath_replicator.cc.

RoutePathReplicator::~RoutePathReplicator ( )
virtual

Definition at line 177 of file routepath_replicator.cc.

Member Function Documentation

TableState * RoutePathReplicator::AddTableState ( BgpTable table,
RtGroup group = NULL 
)
private

Definition at line 192 of file routepath_replicator.cc.

Here is the call graph for this function:

void RoutePathReplicator::BulkReplicationDone ( DBTableBase dbtable)
private

Definition at line 260 of file routepath_replicator.cc.

Here is the call graph for this function:

void RoutePathReplicator::DBStateSync ( BgpTable table,
TableState ts,
BgpRoute rt,
RtReplicated dbstate,
const RtReplicated::ReplicatedRtPathList future 
)
private

Definition at line 370 of file routepath_replicator.cc.

Here is the call graph for this function:

void RoutePathReplicator::DeleteSecondaryPath ( BgpTable table,
BgpRoute rt,
const RtReplicated::SecondaryRouteInfo rtinfo 
)
private

Definition at line 695 of file routepath_replicator.cc.

Here is the call graph for this function:

void RoutePathReplicator::DeleteTableState ( BgpTable table)
private

Definition at line 222 of file routepath_replicator.cc.

Here is the call graph for this function:

RoutePathReplicator::DISALLOW_COPY_AND_ASSIGN ( RoutePathReplicator  )
private
Address::Family RoutePathReplicator::family ( ) const
inlineprivate

Definition at line 283 of file routepath_replicator.h.

TableState * RoutePathReplicator::FindTableState ( BgpTable table)
private

Definition at line 231 of file routepath_replicator.cc.

const TableState * RoutePathReplicator::FindTableState ( const BgpTable table) const
private

Definition at line 236 of file routepath_replicator.cc.

vector< string > RoutePathReplicator::GetReplicatedTableNameList ( const BgpTable table,
const BgpRoute route,
const BgpPath path 
) const

Definition at line 683 of file routepath_replicator.cc.

Here is the call graph for this function:

const RtReplicated * RoutePathReplicator::GetReplicationState ( BgpTable table,
BgpRoute rt 
) const

Definition at line 670 of file routepath_replicator.cc.

Here is the call graph for this function:

void RoutePathReplicator::Initialize ( )

Definition at line 181 of file routepath_replicator.cc.

Here is the call graph for this function:

void RoutePathReplicator::Join ( BgpTable table,
const RouteTarget rt,
bool  import 
)

Definition at line 297 of file routepath_replicator.cc.

Here is the call graph for this function:

void RoutePathReplicator::JoinVpnTable ( RtGroup group)
private

Definition at line 268 of file routepath_replicator.cc.

Here is the call graph for this function:

void RoutePathReplicator::Leave ( BgpTable table,
const RouteTarget rt,
bool  import 
)

Definition at line 335 of file routepath_replicator.cc.

Here is the call graph for this function:

void RoutePathReplicator::LeaveVpnTable ( RtGroup group)
private

Definition at line 280 of file routepath_replicator.cc.

Here is the call graph for this function:

void RoutePathReplicator::RemoveTableState ( BgpTable table,
RtGroup group 
)
private

Definition at line 216 of file routepath_replicator.cc.

Here is the call graph for this function:

void RoutePathReplicator::RequestWalk ( BgpTable table)
private

Definition at line 244 of file routepath_replicator.cc.

Here is the call graph for this function:

bool RoutePathReplicator::RouteListener ( TableState ts,
DBTablePartBase root,
DBEntryBase entry 
)
private

Definition at line 461 of file routepath_replicator.cc.

BgpServer* RoutePathReplicator::server ( )
inlineprivate

Definition at line 282 of file routepath_replicator.h.

const BgpServer* RoutePathReplicator::server ( ) const
inlineprivate

Definition at line 284 of file routepath_replicator.h.

bool RoutePathReplicator::UnregisterTables ( )
private
void RoutePathReplicator::UnregisterTableState ( BgpTable table)
private

Friends And Related Function Documentation

friend class BGPaaSRDTest
friend

Definition at line 253 of file routepath_replicator.h.

friend class ReplicationTest
friend

Definition at line 252 of file routepath_replicator.h.

friend class RtReplicated
friend

Definition at line 254 of file routepath_replicator.h.

friend class TableState
friend

Definition at line 255 of file routepath_replicator.h.

Member Data Documentation

Address::Family RoutePathReplicator::family_
private

Definition at line 289 of file routepath_replicator.h.

tbb::mutex RoutePathReplicator::mutex_
private

Definition at line 287 of file routepath_replicator.h.

BgpServer* RoutePathReplicator::server_
private

Definition at line 286 of file routepath_replicator.h.

TableStateList RoutePathReplicator::table_state_list_
private

Definition at line 288 of file routepath_replicator.h.

SandeshTraceBufferPtr RoutePathReplicator::trace_buf_
private

Definition at line 291 of file routepath_replicator.h.

BgpTable* RoutePathReplicator::vpn_table_
private

Definition at line 290 of file routepath_replicator.h.


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