OpenSDN source code
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

◆ TableStateList

Definition at line 257 of file routepath_replicator.h.

◆ UnregTableList

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

Definition at line 258 of file routepath_replicator.h.

Constructor & Destructor Documentation

◆ RoutePathReplicator()

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

Definition at line 169 of file routepath_replicator.cc.

◆ ~RoutePathReplicator()

RoutePathReplicator::~RoutePathReplicator ( )
virtual

Definition at line 177 of file routepath_replicator.cc.

Member Function Documentation

◆ AddTableState()

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:

◆ BulkReplicationDone()

void RoutePathReplicator::BulkReplicationDone ( DBTableBase dbtable)
private

Definition at line 260 of file routepath_replicator.cc.

Here is the call graph for this function:

◆ DBStateSync()

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:

◆ DeleteSecondaryPath()

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

Definition at line 706 of file routepath_replicator.cc.

Here is the call graph for this function:

◆ DeleteTableState()

void RoutePathReplicator::DeleteTableState ( BgpTable table)
private

Definition at line 222 of file routepath_replicator.cc.

Here is the call graph for this function:

◆ DISALLOW_COPY_AND_ASSIGN()

RoutePathReplicator::DISALLOW_COPY_AND_ASSIGN ( RoutePathReplicator  )
private

◆ family()

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

Definition at line 283 of file routepath_replicator.h.

◆ FindTableState() [1/2]

TableState * RoutePathReplicator::FindTableState ( BgpTable table)
private

Definition at line 231 of file routepath_replicator.cc.

◆ FindTableState() [2/2]

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

Definition at line 236 of file routepath_replicator.cc.

◆ GetReplicatedTableNameList()

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

Definition at line 694 of file routepath_replicator.cc.

Here is the call graph for this function:

◆ GetReplicationState()

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

Definition at line 681 of file routepath_replicator.cc.

Here is the call graph for this function:

◆ Initialize()

void RoutePathReplicator::Initialize ( )

Definition at line 181 of file routepath_replicator.cc.

Here is the call graph for this function:

◆ Join()

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:

◆ JoinVpnTable()

void RoutePathReplicator::JoinVpnTable ( RtGroup group)
private

Definition at line 268 of file routepath_replicator.cc.

Here is the call graph for this function:

◆ Leave()

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:

◆ LeaveVpnTable()

void RoutePathReplicator::LeaveVpnTable ( RtGroup group)
private

Definition at line 280 of file routepath_replicator.cc.

Here is the call graph for this function:

◆ RemoveTableState()

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:

◆ RequestWalk()

void RoutePathReplicator::RequestWalk ( BgpTable table)
private

Definition at line 244 of file routepath_replicator.cc.

Here is the call graph for this function:

◆ RouteListener()

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

Definition at line 461 of file routepath_replicator.cc.

◆ server() [1/2]

BgpServer* RoutePathReplicator::server ( )
inlineprivate

Definition at line 282 of file routepath_replicator.h.

◆ server() [2/2]

const BgpServer* RoutePathReplicator::server ( ) const
inlineprivate

Definition at line 284 of file routepath_replicator.h.

◆ UnregisterTables()

bool RoutePathReplicator::UnregisterTables ( )
private

◆ UnregisterTableState()

void RoutePathReplicator::UnregisterTableState ( BgpTable table)
private

Friends And Related Function Documentation

◆ BGPaaSRDTest

friend class BGPaaSRDTest
friend

Definition at line 253 of file routepath_replicator.h.

◆ ReplicationTest

friend class ReplicationTest
friend

Definition at line 252 of file routepath_replicator.h.

◆ RtReplicated

friend class RtReplicated
friend

Definition at line 254 of file routepath_replicator.h.

◆ TableState

friend class TableState
friend

Definition at line 255 of file routepath_replicator.h.

Member Data Documentation

◆ family_

Address::Family RoutePathReplicator::family_
private

Definition at line 289 of file routepath_replicator.h.

◆ mutex_

tbb::mutex RoutePathReplicator::mutex_
private

Definition at line 287 of file routepath_replicator.h.

◆ server_

BgpServer* RoutePathReplicator::server_
private

Definition at line 286 of file routepath_replicator.h.

◆ table_state_list_

TableStateList RoutePathReplicator::table_state_list_
private

Definition at line 288 of file routepath_replicator.h.

◆ trace_buf_

SandeshTraceBufferPtr RoutePathReplicator::trace_buf_
private

Definition at line 291 of file routepath_replicator.h.

◆ vpn_table_

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: