OpenSDN source code
MulticastGroupObject Class Reference

#include <multicast.h>

Collaboration diagram for MulticastGroupObject:

Public Types

typedef DependencyList< MulticastGroupObject, MulticastGroupObjectMGList
 

Public Member Functions

 MulticastGroupObject (const std::string &vrf_name, const Ip4Address &grp_addr, const std::string &vn_name)
 
 MulticastGroupObject (const std::string &vrf_name, const std::string &vn_name, const Ip4Address &grp_addr, const Ip4Address &src_addr)
 
virtual ~MulticastGroupObject ()
 
bool CanBeDeleted () const
 
bool AddLocalMember (const boost::uuids::uuid &intf_uuid, const MacAddress &mac)
 
bool DeleteLocalMember (const boost::uuids::uuid &intf_uuid)
 
const std::map< boost::uuids::uuid, MacAddress > & GetLocalList ()
 
uint32_t GetLocalListSize ()
 
void ClearLocalListSize ()
 
void FlushAllPeerInfo (const Agent *agent, const Peer *peer, uint64_t peer_identifier)
 
const std::string & vrf_name () const
 
const Ip4AddressGetGroupAddress ()
 
const Ip4AddressGetSourceAddress ()
 
ComponentNHKeyList GetInterfaceComponentNHKeyList (uint8_t interface_flags)
 
const std::string & GetVnName ()
 
bool IsDeleted ()
 
void Deleted (bool val)
 
bool CanUnsubscribe () const
 
void set_vxlan_id (uint32_t vxlan_id)
 
uint32_t vxlan_id () const
 
void set_peer_identifier (uint64_t peer_id)
 
uint64_t peer_identifier ()
 
void set_vn (const VnEntry *vn)
 
void reset_vn ()
 
void set_bridge_domain (const BridgeDomainEntry *bd)
 
void reset_bridge_domain ()
 
const VnEntryvn () const
 
void set_pbb_vrf (bool is_pbb_vrf)
 
bool pbb_vrf () const
 
MGList::iterator mg_list_begin ()
 
MGList::iterator mg_list_end ()
 
void set_dependent_mg (MulticastGroupObject *obj)
 
MulticastGroupObjectdependent_mg ()
 
void set_fabric_olist (const TunnelOlist &olist)
 
const TunnelOlistfabric_olist () const
 
void set_pbb_vrf_name (std::string name)
 
const std::string & pbb_vrf_name ()
 
const Peerpeer ()
 
void set_peer (const Peer *peer)
 
uint32_t fabric_label () const
 
void set_fabric_label (uint32_t label)
 
bool learning_enabled () const
 
void set_learning_enabled (bool learning_enabled)
 
bool pbb_etree_enabled () const
 
void set_pbb_etree_enabled (bool pbb_etree_enabled)
 
bool mvpn_registered () const
 
void set_mvpn_registered (bool mvpn_registered)
 
void incr_vn_count ()
 
void decr_vn_count ()
 
uint32_t vn_count ()
 
uint32_t evpn_igmp_flags () const
 
void set_evpn_igmp_flags (uint32_t evpn_igmp_flags)
 
MulticastGroupObjectGetDependentMG (uint32_t isid)
 

Private Member Functions

 DEPENDENCY_LIST (MulticastGroupObject, MulticastGroupObject, mg_list_)
 
 DISALLOW_COPY_AND_ASSIGN (MulticastGroupObject)
 

Private Attributes

std::string vrf_name_
 
Ip4Address grp_address_
 
std::string vn_name_
 
Ip4Address src_address_
 
uint32_t vxlan_id_
 
uint64_t peer_identifier_
 
bool deleted_
 
std::map< boost::uuids::uuid, MacAddresslocal_olist_
 
VnEntryConstRef vn_
 
DependencyRef< MulticastGroupObject, MulticastGroupObjectdependent_mg_
 
bool pbb_vrf_
 
std::string pbb_vrf_name_
 
TunnelOlist fabric_olist_
 
const Peerpeer_
 
uint32_t fabric_label_
 
bool learning_enabled_
 
bool pbb_etree_enabled_
 
bool layer2_control_word_
 
BridgeDomainConstRef bridge_domain_
 
bool mvpn_registered_
 
uint32_t vn_count_
 
uint32_t evpn_igmp_flags_
 

Friends

class MulticastHandler
 

Detailed Description

Definition at line 70 of file multicast.h.

Member Typedef Documentation

◆ MGList

Constructor & Destructor Documentation

◆ MulticastGroupObject() [1/2]

MulticastGroupObject::MulticastGroupObject ( const std::string &  vrf_name,
const Ip4Address grp_addr,
const std::string &  vn_name 
)
inline

Definition at line 73 of file multicast.h.

◆ MulticastGroupObject() [2/2]

MulticastGroupObject::MulticastGroupObject ( const std::string &  vrf_name,
const std::string &  vn_name,
const Ip4Address grp_addr,
const Ip4Address src_addr 
)
inline

Definition at line 86 of file multicast.h.

◆ ~MulticastGroupObject()

virtual MulticastGroupObject::~MulticastGroupObject ( )
inlinevirtual

Definition at line 99 of file multicast.h.

Member Function Documentation

◆ AddLocalMember()

bool MulticastGroupObject::AddLocalMember ( const boost::uuids::uuid intf_uuid,
const MacAddress mac 
)
inline

Definition at line 104 of file multicast.h.

◆ CanBeDeleted()

bool MulticastGroupObject::CanBeDeleted ( ) const

Definition at line 475 of file multicast.cc.

◆ CanUnsubscribe()

bool MulticastGroupObject::CanUnsubscribe ( ) const
inline

Definition at line 140 of file multicast.h.

◆ ClearLocalListSize()

void MulticastGroupObject::ClearLocalListSize ( )
inline

Definition at line 125 of file multicast.h.

◆ decr_vn_count()

void MulticastGroupObject::decr_vn_count ( )
inline

Definition at line 240 of file multicast.h.

◆ Deleted()

void MulticastGroupObject::Deleted ( bool  val)
inline

Definition at line 139 of file multicast.h.

◆ DeleteLocalMember()

bool MulticastGroupObject::DeleteLocalMember ( const boost::uuids::uuid intf_uuid)
inline

Definition at line 111 of file multicast.h.

◆ DEPENDENCY_LIST()

MulticastGroupObject::DEPENDENCY_LIST ( MulticastGroupObject  ,
MulticastGroupObject  ,
mg_list_   
)
private

◆ dependent_mg()

MulticastGroupObject* MulticastGroupObject::dependent_mg ( )
inline

Definition at line 176 of file multicast.h.

Here is the call graph for this function:

◆ DISALLOW_COPY_AND_ASSIGN()

MulticastGroupObject::DISALLOW_COPY_AND_ASSIGN ( MulticastGroupObject  )
private

◆ evpn_igmp_flags()

uint32_t MulticastGroupObject::evpn_igmp_flags ( ) const
inline

Definition at line 248 of file multicast.h.

◆ fabric_label()

uint32_t MulticastGroupObject::fabric_label ( ) const
inline

Definition at line 204 of file multicast.h.

◆ fabric_olist()

const TunnelOlist& MulticastGroupObject::fabric_olist ( ) const
inline

Definition at line 184 of file multicast.h.

◆ FlushAllPeerInfo()

void MulticastGroupObject::FlushAllPeerInfo ( const Agent agent,
const Peer peer,
uint64_t  peer_identifier 
)

Definition at line 1374 of file multicast.cc.

Here is the call graph for this function:

◆ GetDependentMG()

MulticastGroupObject * MulticastGroupObject::GetDependentMG ( uint32_t  isid)

Definition at line 483 of file multicast.cc.

◆ GetGroupAddress()

const Ip4Address& MulticastGroupObject::GetGroupAddress ( )
inline

Definition at line 134 of file multicast.h.

◆ GetInterfaceComponentNHKeyList()

ComponentNHKeyList MulticastGroupObject::GetInterfaceComponentNHKeyList ( uint8_t  interface_flags)

Definition at line 813 of file multicast.cc.

◆ GetLocalList()

const std::map<boost::uuids::uuid, MacAddress>& MulticastGroupObject::GetLocalList ( )
inline

Definition at line 120 of file multicast.h.

◆ GetLocalListSize()

uint32_t MulticastGroupObject::GetLocalListSize ( )
inline

Definition at line 124 of file multicast.h.

◆ GetSourceAddress()

const Ip4Address& MulticastGroupObject::GetSourceAddress ( )
inline

Definition at line 135 of file multicast.h.

◆ GetVnName()

const std::string& MulticastGroupObject::GetVnName ( )
inline

Definition at line 137 of file multicast.h.

◆ incr_vn_count()

void MulticastGroupObject::incr_vn_count ( )
inline

Definition at line 236 of file multicast.h.

◆ IsDeleted()

bool MulticastGroupObject::IsDeleted ( )
inline

Definition at line 138 of file multicast.h.

◆ learning_enabled()

bool MulticastGroupObject::learning_enabled ( ) const
inline

Definition at line 212 of file multicast.h.

◆ mg_list_begin()

MGList::iterator MulticastGroupObject::mg_list_begin ( )
inline

Definition at line 164 of file multicast.h.

◆ mg_list_end()

MGList::iterator MulticastGroupObject::mg_list_end ( )
inline

Definition at line 168 of file multicast.h.

◆ mvpn_registered()

bool MulticastGroupObject::mvpn_registered ( ) const
inline

Definition at line 228 of file multicast.h.

◆ pbb_etree_enabled()

bool MulticastGroupObject::pbb_etree_enabled ( ) const
inline

Definition at line 220 of file multicast.h.

◆ pbb_vrf()

bool MulticastGroupObject::pbb_vrf ( ) const
inline

Definition at line 160 of file multicast.h.

◆ pbb_vrf_name()

const std::string& MulticastGroupObject::pbb_vrf_name ( )
inline

Definition at line 192 of file multicast.h.

◆ peer()

const Peer* MulticastGroupObject::peer ( )
inline

Definition at line 196 of file multicast.h.

◆ peer_identifier()

uint64_t MulticastGroupObject::peer_identifier ( )
inline

Definition at line 144 of file multicast.h.

◆ reset_bridge_domain()

void MulticastGroupObject::reset_bridge_domain ( )
inline

Definition at line 151 of file multicast.h.

◆ reset_vn()

void MulticastGroupObject::reset_vn ( )

Definition at line 808 of file multicast.cc.

◆ set_bridge_domain()

void MulticastGroupObject::set_bridge_domain ( const BridgeDomainEntry bd)
inline

Definition at line 147 of file multicast.h.

◆ set_dependent_mg()

void MulticastGroupObject::set_dependent_mg ( MulticastGroupObject obj)
inline

Definition at line 172 of file multicast.h.

Here is the call graph for this function:

◆ set_evpn_igmp_flags()

void MulticastGroupObject::set_evpn_igmp_flags ( uint32_t  evpn_igmp_flags)
inline

Definition at line 252 of file multicast.h.

Here is the call graph for this function:

◆ set_fabric_label()

void MulticastGroupObject::set_fabric_label ( uint32_t  label)
inline

Definition at line 208 of file multicast.h.

◆ set_fabric_olist()

void MulticastGroupObject::set_fabric_olist ( const TunnelOlist olist)
inline

Definition at line 180 of file multicast.h.

◆ set_learning_enabled()

void MulticastGroupObject::set_learning_enabled ( bool  learning_enabled)
inline

Definition at line 216 of file multicast.h.

Here is the call graph for this function:

◆ set_mvpn_registered()

void MulticastGroupObject::set_mvpn_registered ( bool  mvpn_registered)
inline

Definition at line 232 of file multicast.h.

Here is the call graph for this function:

◆ set_pbb_etree_enabled()

void MulticastGroupObject::set_pbb_etree_enabled ( bool  pbb_etree_enabled)
inline

Definition at line 224 of file multicast.h.

Here is the call graph for this function:

◆ set_pbb_vrf()

void MulticastGroupObject::set_pbb_vrf ( bool  is_pbb_vrf)
inline

Definition at line 157 of file multicast.h.

◆ set_pbb_vrf_name()

void MulticastGroupObject::set_pbb_vrf_name ( std::string  name)
inline

Definition at line 188 of file multicast.h.

◆ set_peer()

void MulticastGroupObject::set_peer ( const Peer peer)
inline

Definition at line 200 of file multicast.h.

Here is the call graph for this function:

◆ set_peer_identifier()

void MulticastGroupObject::set_peer_identifier ( uint64_t  peer_id)
inline

Definition at line 143 of file multicast.h.

◆ set_vn()

void MulticastGroupObject::set_vn ( const VnEntry vn)

Definition at line 804 of file multicast.cc.

◆ set_vxlan_id()

void MulticastGroupObject::set_vxlan_id ( uint32_t  vxlan_id)
inline

Definition at line 141 of file multicast.h.

Here is the call graph for this function:

◆ vn()

const VnEntry* MulticastGroupObject::vn ( ) const
inline

Definition at line 155 of file multicast.h.

◆ vn_count()

uint32_t MulticastGroupObject::vn_count ( )
inline

Definition at line 244 of file multicast.h.

◆ vrf_name()

const std::string& MulticastGroupObject::vrf_name ( ) const
inline

Definition at line 133 of file multicast.h.

◆ vxlan_id()

uint32_t MulticastGroupObject::vxlan_id ( ) const
inline

Definition at line 142 of file multicast.h.

Friends And Related Function Documentation

◆ MulticastHandler

friend class MulticastHandler
friend

Definition at line 258 of file multicast.h.

Member Data Documentation

◆ bridge_domain_

BridgeDomainConstRef MulticastGroupObject::bridge_domain_
private

Definition at line 281 of file multicast.h.

◆ deleted_

bool MulticastGroupObject::deleted_
private

Definition at line 265 of file multicast.h.

◆ dependent_mg_

DependencyRef<MulticastGroupObject, MulticastGroupObject> MulticastGroupObject::dependent_mg_
private

Definition at line 270 of file multicast.h.

◆ evpn_igmp_flags_

uint32_t MulticastGroupObject::evpn_igmp_flags_
private

Definition at line 284 of file multicast.h.

◆ fabric_label_

uint32_t MulticastGroupObject::fabric_label_
private

Definition at line 277 of file multicast.h.

◆ fabric_olist_

TunnelOlist MulticastGroupObject::fabric_olist_
private

Definition at line 275 of file multicast.h.

◆ grp_address_

Ip4Address MulticastGroupObject::grp_address_
private

Definition at line 260 of file multicast.h.

◆ layer2_control_word_

bool MulticastGroupObject::layer2_control_word_
private

Definition at line 280 of file multicast.h.

◆ learning_enabled_

bool MulticastGroupObject::learning_enabled_
private

Definition at line 278 of file multicast.h.

◆ local_olist_

std::map<boost::uuids::uuid, MacAddress> MulticastGroupObject::local_olist_
private

Definition at line 266 of file multicast.h.

◆ mvpn_registered_

bool MulticastGroupObject::mvpn_registered_
private

Definition at line 282 of file multicast.h.

◆ pbb_etree_enabled_

bool MulticastGroupObject::pbb_etree_enabled_
private

Definition at line 279 of file multicast.h.

◆ pbb_vrf_

bool MulticastGroupObject::pbb_vrf_
private

Definition at line 273 of file multicast.h.

◆ pbb_vrf_name_

std::string MulticastGroupObject::pbb_vrf_name_
private

Definition at line 274 of file multicast.h.

◆ peer_

const Peer* MulticastGroupObject::peer_
private

Definition at line 276 of file multicast.h.

◆ peer_identifier_

uint64_t MulticastGroupObject::peer_identifier_
private

Definition at line 264 of file multicast.h.

◆ src_address_

Ip4Address MulticastGroupObject::src_address_
private

Definition at line 262 of file multicast.h.

◆ vn_

VnEntryConstRef MulticastGroupObject::vn_
private

Definition at line 268 of file multicast.h.

◆ vn_count_

uint32_t MulticastGroupObject::vn_count_
private

Definition at line 283 of file multicast.h.

◆ vn_name_

std::string MulticastGroupObject::vn_name_
private

Definition at line 261 of file multicast.h.

◆ vrf_name_

std::string MulticastGroupObject::vrf_name_
private

Definition at line 259 of file multicast.h.

◆ vxlan_id_

uint32_t MulticastGroupObject::vxlan_id_
private

Definition at line 263 of file multicast.h.


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