OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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,
MvpnNeighbor
NeighborMap
 

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

typedef PartitionList::const_iterator MvpnManager::const_iterator

Definition at line 160 of file bgp_mvpn.h.

Definition at line 161 of file bgp_mvpn.h.

Definition at line 159 of file bgp_mvpn.h.

Constructor & Destructor Documentation

MvpnManager::MvpnManager ( MvpnTable table,
ErmVpnTable ermvpn_table 
)

Definition at line 397 of file bgp_mvpn.cc.

MvpnManager::~MvpnManager ( )
virtual

Definition at line 408 of file bgp_mvpn.cc.

Member Function Documentation

void MvpnManager::AllocPartitions ( )
private

Definition at line 458 of file bgp_mvpn.cc.

Here is the call graph for this function:

void MvpnManager::ClearDBState ( MvpnRoute route)
private

Definition at line 488 of file bgp_mvpn.cc.

Here is the call graph for this function:

bool MvpnManager::deleted ( ) const

Definition at line 423 of file bgp_mvpn.cc.

const LifetimeActor * MvpnManager::deleter ( ) const

Definition at line 427 of file bgp_mvpn.cc.

LifetimeActor* MvpnManager::deleter ( )
MvpnManager::DISALLOW_COPY_AND_ASSIGN ( MvpnManager  )
private
bool MvpnManager::FindNeighbor ( const RouteDistinguisher rd,
MvpnNeighbor nbr 
) const

Definition at line 239 of file bgp_mvpn.cc.

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

Definition at line 463 of file bgp_mvpn.cc.

MvpnProjectManager * MvpnManager::GetProjectManager ( )

Definition at line 525 of file bgp_mvpn.cc.

Here is the call graph for this function:

void MvpnManager::Initialize ( )
virtual

Definition at line 606 of file bgp_mvpn.cc.

Here is the call graph for this function:

int MvpnManager::listener_id ( ) const

Definition at line 419 of file bgp_mvpn.cc.

void MvpnManager::ManagedDelete ( )

Definition at line 454 of file bgp_mvpn.cc.

bool MvpnManager::MayDelete ( ) const

Definition at line 471 of file bgp_mvpn.cc.

Here is the call graph for this function:

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

Definition at line 250 of file bgp_mvpn.cc.

size_t MvpnManager::neighbors_count ( ) const

Definition at line 256 of file bgp_mvpn.cc.

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

Definition at line 186 of file bgp_mvpn.h.

void MvpnManager::OriginateType1Route ( )

Definition at line 638 of file bgp_mvpn.cc.

Here is the call graph for this function:

void MvpnManager::ProcessType1ADRoute ( MvpnRoute route)
private

Definition at line 705 of file bgp_mvpn.cc.

Here is the call graph for this function:

void MvpnManager::ReOriginateType1Route ( const Ip4Address old_identifier)

Definition at line 625 of file bgp_mvpn.cc.

Here is the call graph for this function:

void MvpnManager::ResolvePath ( RoutingInstance rtinstance,
BgpRoute rt,
BgpPath path 
)
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:

BgpRoute* MvpnManager::RouteReplicate ( BgpServer server,
BgpTable src_table,
BgpRoute source_rt,
const BgpPath src_path,
ExtCommunityPtr  comm 
)
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:

MvpnTable * MvpnManager::table ( )

Definition at line 411 of file bgp_mvpn.cc.

const MvpnTable * MvpnManager::table ( ) const

Definition at line 415 of file bgp_mvpn.cc.

void MvpnManager::Terminate ( )
virtual

Definition at line 431 of file bgp_mvpn.cc.

Here is the call graph for this function:

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

friend class MvpnManagerPartition
friend

Definition at line 189 of file bgp_mvpn.h.

Member Data Documentation

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

Definition at line 205 of file bgp_mvpn.h.

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

Definition at line 211 of file bgp_mvpn.h.

ErmVpnTable* MvpnManager::ermvpn_table_
private

Definition at line 202 of file bgp_mvpn.h.

LifetimeRef<MvpnManager> MvpnManager::ermvpn_table_delete_ref_
private

Definition at line 213 of file bgp_mvpn.h.

int MvpnManager::identifier_listener_id_
private

Definition at line 204 of file bgp_mvpn.h.

int MvpnManager::listener_id_
private

Definition at line 203 of file bgp_mvpn.h.

NeighborMap MvpnManager::neighbors_
private

Definition at line 208 of file bgp_mvpn.h.

tbb::reader_writer_lock MvpnManager::neighbors_mutex_
mutableprivate

Definition at line 209 of file bgp_mvpn.h.

PartitionList MvpnManager::partitions_
private

Definition at line 206 of file bgp_mvpn.h.

MvpnTable* MvpnManager::table_
private

Definition at line 201 of file bgp_mvpn.h.

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: