OpenSDN source code
MvpnManager Class Reference

#include <bgp_mvpn.h>

Collaboration diagram for MvpnManager:

Classes

class  DeleteActor
 

Public Types

typedef std::vector< MvpnManagerPartition * > PartitionList
 
typedef PartitionList::const_iterator const_iterator
 
typedef std::map< RouteDistinguisher, MvpnNeighborNeighborMap
 

Public Member Functions

 MvpnManager (MvpnTable *table, ErmVpnTable *ermvpn_table)
 
virtual ~MvpnManager ()
 
bool FindNeighbor (const RouteDistinguisher &rd, MvpnNeighbor *nbr) const
 
MvpnProjectManagerGetProjectManager ()
 
void ManagedDelete ()
 
BgpRouteRouteReplicate (BgpServer *server, BgpTable *src_table, BgpRoute *source_rt, const BgpPath *src_path, ExtCommunityPtr comm)
 
void ResolvePath (RoutingInstance *rtinstance, BgpRoute *rt, BgpPath *path)
 
MvpnTabletable ()
 
const MvpnTabletable () const
 
int listener_id () const
 
virtual void Terminate ()
 
virtual void Initialize ()
 
size_t neighbors_count () const
 
const NeighborMapneighbors () const
 
void ReOriginateType1Route (const Ip4Address &old_identifier)
 
void OriginateType1Route ()
 
bool MayDelete () const
 
const LifetimeActordeleter () const
 
bool deleted () const
 
LifetimeActordeleter ()
 
virtual void UpdateSecondaryTablesForReplication (MvpnRoute *rt, BgpTable::TableSet *secondary_tables) const
 
tbb::reader_writer_lock & neighbors_mutex ()
 

Private Member Functions

void AllocPartitions ()
 
void FreePartitions ()
 
void ProcessType1ADRoute (MvpnRoute *route)
 
void RouteListener (DBTablePartBase *tpart, DBEntryBase *db_entry)
 
bool FindResolvedNeighbor (const BgpPath *path, MvpnNeighbor *neighbor) const
 
void SetDBState (MvpnRoute *route, MvpnDBState *mvpn_dbstate)
 
void ClearDBState (MvpnRoute *route)
 
 DISALLOW_COPY_AND_ASSIGN (MvpnManager)
 

Private Attributes

MvpnTabletable_
 
ErmVpnTableermvpn_table_
 
int listener_id_
 
int identifier_listener_id_
 
tbb::atomic< int > db_states_count_
 
PartitionList partitions_
 
NeighborMap neighbors_
 
tbb::reader_writer_lock neighbors_mutex_
 
boost::scoped_ptr< DeleteActordeleter_
 
LifetimeRef< MvpnManagertable_delete_ref_
 
LifetimeRef< MvpnManagerermvpn_table_delete_ref_
 

Friends

class MvpnManagerPartition
 

Detailed Description

Definition at line 157 of file bgp_mvpn.h.

Member Typedef Documentation

◆ const_iterator

typedef PartitionList::const_iterator MvpnManager::const_iterator

Definition at line 160 of file bgp_mvpn.h.

◆ NeighborMap

Definition at line 161 of file bgp_mvpn.h.

◆ PartitionList

Definition at line 159 of file bgp_mvpn.h.

Constructor & Destructor Documentation

◆ MvpnManager()

MvpnManager::MvpnManager ( MvpnTable table,
ErmVpnTable ermvpn_table 
)

Definition at line 397 of file bgp_mvpn.cc.

◆ ~MvpnManager()

MvpnManager::~MvpnManager ( )
virtual

Definition at line 408 of file bgp_mvpn.cc.

Member Function Documentation

◆ AllocPartitions()

void MvpnManager::AllocPartitions ( )
private

Definition at line 458 of file bgp_mvpn.cc.

Here is the call graph for this function:

◆ ClearDBState()

void MvpnManager::ClearDBState ( MvpnRoute route)
private

Definition at line 488 of file bgp_mvpn.cc.

Here is the call graph for this function:

◆ deleted()

bool MvpnManager::deleted ( ) const

Definition at line 423 of file bgp_mvpn.cc.

◆ deleter() [1/2]

LifetimeActor* MvpnManager::deleter ( )

◆ deleter() [2/2]

const LifetimeActor * MvpnManager::deleter ( ) const

Definition at line 427 of file bgp_mvpn.cc.

◆ DISALLOW_COPY_AND_ASSIGN()

MvpnManager::DISALLOW_COPY_AND_ASSIGN ( MvpnManager  )
private

◆ FindNeighbor()

bool MvpnManager::FindNeighbor ( const RouteDistinguisher rd,
MvpnNeighbor nbr 
) const

Definition at line 239 of file bgp_mvpn.cc.

◆ FindResolvedNeighbor()

bool MvpnManager::FindResolvedNeighbor ( const BgpPath path,
MvpnNeighbor neighbor 
) const
private

◆ FreePartitions()

void MvpnManager::FreePartitions ( )
private

Definition at line 463 of file bgp_mvpn.cc.

◆ GetProjectManager()

MvpnProjectManager * MvpnManager::GetProjectManager ( )

Definition at line 525 of file bgp_mvpn.cc.

Here is the call graph for this function:

◆ Initialize()

void MvpnManager::Initialize ( )
virtual

Definition at line 606 of file bgp_mvpn.cc.

Here is the call graph for this function:

◆ listener_id()

int MvpnManager::listener_id ( ) const

Definition at line 419 of file bgp_mvpn.cc.

◆ ManagedDelete()

void MvpnManager::ManagedDelete ( )

Definition at line 454 of file bgp_mvpn.cc.

◆ MayDelete()

bool MvpnManager::MayDelete ( ) const

Definition at line 471 of file bgp_mvpn.cc.

Here is the call graph for this function:

◆ neighbors()

const MvpnManager::NeighborMap & MvpnManager::neighbors ( ) const

Definition at line 250 of file bgp_mvpn.cc.

◆ neighbors_count()

size_t MvpnManager::neighbors_count ( ) const

Definition at line 256 of file bgp_mvpn.cc.

◆ neighbors_mutex()

tbb::reader_writer_lock& MvpnManager::neighbors_mutex ( )
inline

Definition at line 186 of file bgp_mvpn.h.

◆ OriginateType1Route()

void MvpnManager::OriginateType1Route ( )

Definition at line 638 of file bgp_mvpn.cc.

Here is the call graph for this function:

◆ ProcessType1ADRoute()

void MvpnManager::ProcessType1ADRoute ( MvpnRoute route)
private

Definition at line 705 of file bgp_mvpn.cc.

Here is the call graph for this function:

◆ ReOriginateType1Route()

void MvpnManager::ReOriginateType1Route ( const Ip4Address old_identifier)

Definition at line 625 of file bgp_mvpn.cc.

Here is the call graph for this function:

◆ ResolvePath()

void MvpnManager::ResolvePath ( RoutingInstance rtinstance,
BgpRoute rt,
BgpPath path 
)

◆ RouteListener()

void MvpnManager::RouteListener ( DBTablePartBase tpart,
DBEntryBase db_entry 
)
private

Definition at line 660 of file bgp_mvpn.cc.

Here is the call graph for this function:

◆ RouteReplicate()

BgpRoute* MvpnManager::RouteReplicate ( BgpServer server,
BgpTable src_table,
BgpRoute source_rt,
const BgpPath src_path,
ExtCommunityPtr  comm 
)

◆ SetDBState()

void MvpnManager::SetDBState ( MvpnRoute route,
MvpnDBState mvpn_dbstate 
)
private

Definition at line 481 of file bgp_mvpn.cc.

Here is the call graph for this function:

◆ table() [1/2]

MvpnTable * MvpnManager::table ( )

Definition at line 411 of file bgp_mvpn.cc.

◆ table() [2/2]

const MvpnTable * MvpnManager::table ( ) const

Definition at line 415 of file bgp_mvpn.cc.

◆ Terminate()

void MvpnManager::Terminate ( )
virtual

Definition at line 431 of file bgp_mvpn.cc.

Here is the call graph for this function:

◆ UpdateSecondaryTablesForReplication()

void MvpnManager::UpdateSecondaryTablesForReplication ( MvpnRoute rt,
BgpTable::TableSet secondary_tables 
) const
virtual

Definition at line 1178 of file bgp_mvpn.cc.

Here is the call graph for this function:

Friends And Related Function Documentation

◆ MvpnManagerPartition

friend class MvpnManagerPartition
friend

Definition at line 189 of file bgp_mvpn.h.

Member Data Documentation

◆ db_states_count_

tbb::atomic<int> MvpnManager::db_states_count_
private

Definition at line 205 of file bgp_mvpn.h.

◆ deleter_

boost::scoped_ptr<DeleteActor> MvpnManager::deleter_
private

Definition at line 211 of file bgp_mvpn.h.

◆ ermvpn_table_

ErmVpnTable* MvpnManager::ermvpn_table_
private

Definition at line 202 of file bgp_mvpn.h.

◆ ermvpn_table_delete_ref_

LifetimeRef<MvpnManager> MvpnManager::ermvpn_table_delete_ref_
private

Definition at line 213 of file bgp_mvpn.h.

◆ identifier_listener_id_

int MvpnManager::identifier_listener_id_
private

Definition at line 204 of file bgp_mvpn.h.

◆ listener_id_

int MvpnManager::listener_id_
private

Definition at line 203 of file bgp_mvpn.h.

◆ neighbors_

NeighborMap MvpnManager::neighbors_
private

Definition at line 208 of file bgp_mvpn.h.

◆ neighbors_mutex_

tbb::reader_writer_lock MvpnManager::neighbors_mutex_
mutableprivate

Definition at line 209 of file bgp_mvpn.h.

◆ partitions_

PartitionList MvpnManager::partitions_
private

Definition at line 206 of file bgp_mvpn.h.

◆ table_

MvpnTable* MvpnManager::table_
private

Definition at line 201 of file bgp_mvpn.h.

◆ table_delete_ref_

LifetimeRef<MvpnManager> MvpnManager::table_delete_ref_
private

Definition at line 212 of file bgp_mvpn.h.


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