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 RtReplicated * GetReplicationState (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 ()
 
TableState * AddTableState (BgpTable *table, RtGroup *group=NULL)
 
void RemoveTableState (BgpTable *table, RtGroup *group)
 
void DeleteTableState (BgpTable *table)
 
void UnregisterTableState (BgpTable *table)
 
TableState * FindTableState (BgpTable *table)
 
const TableState * FindTableState (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)
 
BgpServer * server ()
 
Address::Family family () const
 
const BgpServer * server () const
 
 DISALLOW_COPY_AND_ASSIGN (RoutePathReplicator)
 

Private Attributes

BgpServer * server_
 
std::mutex mutex_
 
TableStateList table_state_list_
 
Address::Family family_
 
BgpTable * vpn_table_
 
SandeshTraceBufferPtr trace_buf_
 

Friends

class ReplicationTest
 
class BGPaaSRDTest
 
class RtReplicated
 
class TableState
 

Detailed Description

Definition at line 253 of file routepath_replicator.h.

Member Typedef Documentation

◆ TableStateList

Definition at line 273 of file routepath_replicator.h.

◆ UnregTableList

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

Definition at line 274 of file routepath_replicator.h.

Constructor & Destructor Documentation

◆ RoutePathReplicator()

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

Definition at line 171 of file routepath_replicator.cc.

◆ ~RoutePathReplicator()

RoutePathReplicator::~RoutePathReplicator ( )
virtual

Definition at line 179 of file routepath_replicator.cc.

Member Function Documentation

◆ AddTableState()

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

Definition at line 194 of file routepath_replicator.cc.

Here is the call graph for this function:

◆ BulkReplicationDone()

void RoutePathReplicator::BulkReplicationDone ( DBTableBase *  dbtable)
private

Definition at line 262 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 378 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 725 of file routepath_replicator.cc.

Here is the call graph for this function:

◆ DeleteTableState()

void RoutePathReplicator::DeleteTableState ( BgpTable *  table)
private

Definition at line 224 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 299 of file routepath_replicator.h.

◆ FindTableState() [1/2]

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

Definition at line 233 of file routepath_replicator.cc.

◆ FindTableState() [2/2]

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

Definition at line 238 of file routepath_replicator.cc.

◆ GetReplicatedTableNameList()

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

Definition at line 713 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 700 of file routepath_replicator.cc.

Here is the call graph for this function:

◆ Initialize()

void RoutePathReplicator::Initialize ( )

Definition at line 183 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 299 of file routepath_replicator.cc.

Here is the call graph for this function:

◆ JoinVpnTable()

void RoutePathReplicator::JoinVpnTable ( RtGroup *  group)
private

Definition at line 270 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 341 of file routepath_replicator.cc.

Here is the call graph for this function:

◆ LeaveVpnTable()

void RoutePathReplicator::LeaveVpnTable ( RtGroup *  group)
private

Definition at line 282 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 218 of file routepath_replicator.cc.

Here is the call graph for this function:

◆ RequestWalk()

void RoutePathReplicator::RequestWalk ( BgpTable *  table)
private

Definition at line 246 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 469 of file routepath_replicator.cc.

◆ server() [1/2]

BgpServer* RoutePathReplicator::server ( )
inlineprivate

Definition at line 298 of file routepath_replicator.h.

◆ server() [2/2]

const BgpServer* RoutePathReplicator::server ( ) const
inlineprivate

Definition at line 300 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 269 of file routepath_replicator.h.

◆ ReplicationTest

friend class ReplicationTest
friend

Definition at line 268 of file routepath_replicator.h.

◆ RtReplicated

friend class RtReplicated
friend

Definition at line 270 of file routepath_replicator.h.

◆ TableState

friend class TableState
friend

Definition at line 271 of file routepath_replicator.h.

Member Data Documentation

◆ family_

Address::Family RoutePathReplicator::family_
private

Definition at line 305 of file routepath_replicator.h.

◆ mutex_

std::mutex RoutePathReplicator::mutex_
private

Definition at line 303 of file routepath_replicator.h.

◆ server_

BgpServer* RoutePathReplicator::server_
private

Definition at line 302 of file routepath_replicator.h.

◆ table_state_list_

TableStateList RoutePathReplicator::table_state_list_
private

Definition at line 304 of file routepath_replicator.h.

◆ trace_buf_

SandeshTraceBufferPtr RoutePathReplicator::trace_buf_
private

Definition at line 307 of file routepath_replicator.h.

◆ vpn_table_

BgpTable* RoutePathReplicator::vpn_table_
private

Definition at line 306 of file routepath_replicator.h.


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