OpenSDN source code
McastTreeManager Class Reference

#include <bgp_multicast.h>

Collaboration diagram for McastTreeManager:

Classes

class  DeleteActor
 

Public Types

enum  NodeLevel { LevelFirst = 0 , LevelNative = 0 , LevelLocal = 1 , LevelCount = 2 }
 
typedef std::vector< McastManagerPartition * > PartitionList
 
typedef PartitionList::const_iterator const_iterator
 

Public Member Functions

 McastTreeManager (ErmVpnTable *table)
 
virtual ~McastTreeManager ()
 
const_iterator begin () const
 
const_iterator end () const
 
virtual void Initialize ()
 
virtual void Terminate ()
 
McastManagerPartition * GetPartition (int part_id)
 
const McastManagerPartition * GetPartition (int part_id) const
 
virtual UpdateInfo * GetUpdateInfo (ErmVpnRoute *route)
 
DBTablePartBase * GetTablePartition (size_t part_id)
 
ErmVpnTable * table ()
 
const ErmVpnTable * table () const
 
void ManagedDelete ()
 
void Shutdown ()
 
bool MayDelete () const
 
void RetryDelete ()
 
LifetimeActor * deleter ()
 
const LifetimeActor * deleter () const
 
bool deleted () const
 
const ErmVpnRoute * GetGlobalErmVpnTreeMvpnRoute () const
 
virtual ErmVpnRoute * GetGlobalTreeRootRoute (const Ip4Address &source, const Ip4Address &group) const
 
void NotifyForestNode (int part_id, const Ip4Address &source, const Ip4Address &group)
 
virtual bool GetForestNodePMSI (ErmVpnRoute *rt, uint32_t *label, Ip4Address *address, std::vector< std::string > *encap) const
 

Static Public Attributes

static const int kDegree = 4
 

Private Member Functions

void AllocPartitions ()
 
void FreePartitions ()
 
void TreeNodeListener (McastManagerPartition *partition, ErmVpnRoute *route)
 
void TreeResultListener (McastManagerPartition *partition, ErmVpnRoute *route)
 
void RouteListener (DBTablePartBase *tpart, DBEntryBase *db_entry)
 
 DISALLOW_COPY_AND_ASSIGN (McastTreeManager)
 

Private Attributes

ErmVpnTable * table_
 
int listener_id_
 
PartitionList partitions_
 
boost::scoped_ptr< DeleteActor > deleter_
 
LifetimeRef< McastTreeManager > table_delete_ref_
 

Friends

class BgpMulticastTest
 
class ShowMulticastManagerDetailHandler
 

Detailed Description

Definition at line 384 of file bgp_multicast.h.

Member Typedef Documentation

◆ const_iterator

typedef PartitionList::const_iterator McastTreeManager::const_iterator

Definition at line 389 of file bgp_multicast.h.

◆ PartitionList

Definition at line 388 of file bgp_multicast.h.

Member Enumeration Documentation

◆ NodeLevel

Enumerator
LevelFirst 
LevelNative 
LevelLocal 
LevelCount 

Definition at line 391 of file bgp_multicast.h.

Constructor & Destructor Documentation

◆ McastTreeManager()

McastTreeManager::McastTreeManager ( ErmVpnTable *  table)
explicit

Definition at line 872 of file bgp_multicast.cc.

◆ ~McastTreeManager()

McastTreeManager::~McastTreeManager ( )
virtual

Definition at line 882 of file bgp_multicast.cc.

Member Function Documentation

◆ AllocPartitions()

void McastTreeManager::AllocPartitions ( )
private

Definition at line 908 of file bgp_multicast.cc.

Here is the call graph for this function:

◆ begin()

const_iterator McastTreeManager::begin ( ) const
inline

Definition at line 401 of file bgp_multicast.h.

◆ deleted()

bool McastTreeManager::deleted ( ) const

Definition at line 1124 of file bgp_multicast.cc.

◆ deleter() [1/2]

LifetimeActor * McastTreeManager::deleter ( )

Definition at line 1109 of file bgp_multicast.cc.

◆ deleter() [2/2]

const LifetimeActor * McastTreeManager::deleter ( ) const

Definition at line 1117 of file bgp_multicast.cc.

◆ DISALLOW_COPY_AND_ASSIGN()

McastTreeManager::DISALLOW_COPY_AND_ASSIGN ( McastTreeManager  )
private

◆ end()

const_iterator McastTreeManager::end ( ) const
inline

Definition at line 402 of file bgp_multicast.h.

◆ FreePartitions()

void McastTreeManager::FreePartitions ( )
private

Definition at line 917 of file bgp_multicast.cc.

◆ GetForestNodePMSI()

bool McastTreeManager::GetForestNodePMSI ( ErmVpnRoute *  rt,
uint32_t *  label,
Ip4Address *  address,
std::vector< std::string > *  encap 
) const
virtual

Definition at line 1140 of file bgp_multicast.cc.

Here is the call graph for this function:

◆ GetGlobalErmVpnTreeMvpnRoute()

const ErmVpnRoute* McastTreeManager::GetGlobalErmVpnTreeMvpnRoute ( ) const

◆ GetGlobalTreeRootRoute()

ErmVpnRoute * McastTreeManager::GetGlobalTreeRootRoute ( const Ip4Address &  source,
const Ip4Address &  group 
) const
virtual

Definition at line 1128 of file bgp_multicast.cc.

Here is the call graph for this function:

◆ GetPartition() [1/2]

McastManagerPartition * McastTreeManager::GetPartition ( int  part_id)

Definition at line 924 of file bgp_multicast.cc.

◆ GetPartition() [2/2]

const McastManagerPartition * McastTreeManager::GetPartition ( int  part_id) const

Definition at line 928 of file bgp_multicast.cc.

◆ GetTablePartition()

DBTablePartBase * McastTreeManager::GetTablePartition ( size_t  part_id)

Definition at line 935 of file bgp_multicast.cc.

Here is the call graph for this function:

◆ GetUpdateInfo()

UpdateInfo * McastTreeManager::GetUpdateInfo ( ErmVpnRoute *  route)
virtual

Definition at line 943 of file bgp_multicast.cc.

Here is the call graph for this function:

◆ Initialize()

void McastTreeManager::Initialize ( )
virtual

Definition at line 889 of file bgp_multicast.cc.

Here is the call graph for this function:

◆ ManagedDelete()

void McastTreeManager::ManagedDelete ( )

Definition at line 1093 of file bgp_multicast.cc.

◆ MayDelete()

bool McastTreeManager::MayDelete ( ) const

Definition at line 1070 of file bgp_multicast.cc.

◆ NotifyForestNode()

void McastTreeManager::NotifyForestNode ( int  part_id,
const Ip4Address &  source,
const Ip4Address &  group 
)

Definition at line 1134 of file bgp_multicast.cc.

Here is the call graph for this function:

◆ RetryDelete()

void McastTreeManager::RetryDelete ( )

Definition at line 1100 of file bgp_multicast.cc.

Here is the call graph for this function:

◆ RouteListener()

void McastTreeManager::RouteListener ( DBTablePartBase *  tpart,
DBEntryBase *  db_entry 
)
private

Definition at line 1052 of file bgp_multicast.cc.

Here is the call graph for this function:

◆ Shutdown()

void McastTreeManager::Shutdown ( )

Definition at line 1085 of file bgp_multicast.cc.

◆ table() [1/2]

ErmVpnTable* McastTreeManager::table ( )
inline

Definition at line 412 of file bgp_multicast.h.

◆ table() [2/2]

const ErmVpnTable* McastTreeManager::table ( ) const
inline

Definition at line 413 of file bgp_multicast.h.

◆ Terminate()

void McastTreeManager::Terminate ( )
virtual

Definition at line 900 of file bgp_multicast.cc.

Here is the call graph for this function:

◆ TreeNodeListener()

void McastTreeManager::TreeNodeListener ( McastManagerPartition *  partition,
ErmVpnRoute *  route 
)
private

Definition at line 963 of file bgp_multicast.cc.

Here is the call graph for this function:

◆ TreeResultListener()

void McastTreeManager::TreeResultListener ( McastManagerPartition *  partition,
ErmVpnRoute *  route 
)
private

Definition at line 1012 of file bgp_multicast.cc.

Here is the call graph for this function:

Friends And Related Function Documentation

◆ BgpMulticastTest

friend class BgpMulticastTest
friend

Definition at line 432 of file bgp_multicast.h.

◆ ShowMulticastManagerDetailHandler

friend class ShowMulticastManagerDetailHandler
friend

Definition at line 433 of file bgp_multicast.h.

Member Data Documentation

◆ deleter_

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

Definition at line 449 of file bgp_multicast.h.

◆ kDegree

const int McastTreeManager::kDegree = 4
static

Definition at line 386 of file bgp_multicast.h.

◆ listener_id_

int McastTreeManager::listener_id_
private

Definition at line 446 of file bgp_multicast.h.

◆ partitions_

PartitionList McastTreeManager::partitions_
private

Definition at line 447 of file bgp_multicast.h.

◆ table_

ErmVpnTable* McastTreeManager::table_
private

Definition at line 445 of file bgp_multicast.h.

◆ table_delete_ref_

LifetimeRef<McastTreeManager> McastTreeManager::table_delete_ref_
private

Definition at line 450 of file bgp_multicast.h.


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