OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
MulticastGroupObject Class Reference

#include <multicast.h>

Collaboration diagram for MulticastGroupObject:

Public Types

typedef DependencyList
< MulticastGroupObject,
MulticastGroupObject
MGList
 

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,
MacAddress
local_olist_
 
VnEntryConstRef vn_
 
DependencyRef
< MulticastGroupObject,
MulticastGroupObject
dependent_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

Constructor & Destructor Documentation

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::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.

virtual MulticastGroupObject::~MulticastGroupObject ( )
inlinevirtual

Definition at line 99 of file multicast.h.

Member Function Documentation

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

Definition at line 104 of file multicast.h.

bool MulticastGroupObject::CanBeDeleted ( ) const

Definition at line 475 of file multicast.cc.

bool MulticastGroupObject::CanUnsubscribe ( ) const
inline

Definition at line 140 of file multicast.h.

void MulticastGroupObject::ClearLocalListSize ( )
inline

Definition at line 125 of file multicast.h.

void MulticastGroupObject::decr_vn_count ( )
inline

Definition at line 240 of file multicast.h.

void MulticastGroupObject::Deleted ( bool  val)
inline

Definition at line 139 of file multicast.h.

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

Definition at line 111 of file multicast.h.

MulticastGroupObject::DEPENDENCY_LIST ( MulticastGroupObject  ,
MulticastGroupObject  ,
mg_list_   
)
private
MulticastGroupObject* MulticastGroupObject::dependent_mg ( )
inline

Definition at line 176 of file multicast.h.

Here is the call graph for this function:

MulticastGroupObject::DISALLOW_COPY_AND_ASSIGN ( MulticastGroupObject  )
private
uint32_t MulticastGroupObject::evpn_igmp_flags ( ) const
inline

Definition at line 248 of file multicast.h.

uint32_t MulticastGroupObject::fabric_label ( ) const
inline

Definition at line 204 of file multicast.h.

const TunnelOlist& MulticastGroupObject::fabric_olist ( ) const
inline

Definition at line 184 of file multicast.h.

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:

MulticastGroupObject * MulticastGroupObject::GetDependentMG ( uint32_t  isid)

Definition at line 483 of file multicast.cc.

const Ip4Address& MulticastGroupObject::GetGroupAddress ( )
inline

Definition at line 134 of file multicast.h.

ComponentNHKeyList MulticastGroupObject::GetInterfaceComponentNHKeyList ( uint8_t  interface_flags)

Definition at line 813 of file multicast.cc.

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

Definition at line 120 of file multicast.h.

uint32_t MulticastGroupObject::GetLocalListSize ( )
inline

Definition at line 124 of file multicast.h.

const Ip4Address& MulticastGroupObject::GetSourceAddress ( )
inline

Definition at line 135 of file multicast.h.

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

Definition at line 137 of file multicast.h.

void MulticastGroupObject::incr_vn_count ( )
inline

Definition at line 236 of file multicast.h.

bool MulticastGroupObject::IsDeleted ( )
inline

Definition at line 138 of file multicast.h.

bool MulticastGroupObject::learning_enabled ( ) const
inline

Definition at line 212 of file multicast.h.

MGList::iterator MulticastGroupObject::mg_list_begin ( )
inline

Definition at line 164 of file multicast.h.

MGList::iterator MulticastGroupObject::mg_list_end ( )
inline

Definition at line 168 of file multicast.h.

bool MulticastGroupObject::mvpn_registered ( ) const
inline

Definition at line 228 of file multicast.h.

bool MulticastGroupObject::pbb_etree_enabled ( ) const
inline

Definition at line 220 of file multicast.h.

bool MulticastGroupObject::pbb_vrf ( ) const
inline

Definition at line 160 of file multicast.h.

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

Definition at line 192 of file multicast.h.

const Peer* MulticastGroupObject::peer ( )
inline

Definition at line 196 of file multicast.h.

uint64_t MulticastGroupObject::peer_identifier ( )
inline

Definition at line 144 of file multicast.h.

void MulticastGroupObject::reset_bridge_domain ( )
inline

Definition at line 151 of file multicast.h.

void MulticastGroupObject::reset_vn ( )

Definition at line 808 of file multicast.cc.

void MulticastGroupObject::set_bridge_domain ( const BridgeDomainEntry bd)
inline

Definition at line 147 of file multicast.h.

void MulticastGroupObject::set_dependent_mg ( MulticastGroupObject obj)
inline

Definition at line 172 of file multicast.h.

Here is the call graph for this function:

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:

void MulticastGroupObject::set_fabric_label ( uint32_t  label)
inline

Definition at line 208 of file multicast.h.

void MulticastGroupObject::set_fabric_olist ( const TunnelOlist olist)
inline

Definition at line 180 of file multicast.h.

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:

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:

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:

void MulticastGroupObject::set_pbb_vrf ( bool  is_pbb_vrf)
inline

Definition at line 157 of file multicast.h.

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

Definition at line 188 of file multicast.h.

void MulticastGroupObject::set_peer ( const Peer peer)
inline

Definition at line 200 of file multicast.h.

Here is the call graph for this function:

void MulticastGroupObject::set_peer_identifier ( uint64_t  peer_id)
inline

Definition at line 143 of file multicast.h.

void MulticastGroupObject::set_vn ( const VnEntry vn)

Definition at line 804 of file multicast.cc.

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:

const VnEntry* MulticastGroupObject::vn ( ) const
inline

Definition at line 155 of file multicast.h.

uint32_t MulticastGroupObject::vn_count ( )
inline

Definition at line 244 of file multicast.h.

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

Definition at line 133 of file multicast.h.

uint32_t MulticastGroupObject::vxlan_id ( ) const
inline

Definition at line 142 of file multicast.h.

Friends And Related Function Documentation

friend class MulticastHandler
friend

Definition at line 258 of file multicast.h.

Member Data Documentation

BridgeDomainConstRef MulticastGroupObject::bridge_domain_
private

Definition at line 281 of file multicast.h.

bool MulticastGroupObject::deleted_
private

Definition at line 265 of file multicast.h.

DependencyRef<MulticastGroupObject, MulticastGroupObject> MulticastGroupObject::dependent_mg_
private

Definition at line 270 of file multicast.h.

uint32_t MulticastGroupObject::evpn_igmp_flags_
private

Definition at line 284 of file multicast.h.

uint32_t MulticastGroupObject::fabric_label_
private

Definition at line 277 of file multicast.h.

TunnelOlist MulticastGroupObject::fabric_olist_
private

Definition at line 275 of file multicast.h.

Ip4Address MulticastGroupObject::grp_address_
private

Definition at line 260 of file multicast.h.

bool MulticastGroupObject::layer2_control_word_
private

Definition at line 280 of file multicast.h.

bool MulticastGroupObject::learning_enabled_
private

Definition at line 278 of file multicast.h.

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

Definition at line 266 of file multicast.h.

bool MulticastGroupObject::mvpn_registered_
private

Definition at line 282 of file multicast.h.

bool MulticastGroupObject::pbb_etree_enabled_
private

Definition at line 279 of file multicast.h.

bool MulticastGroupObject::pbb_vrf_
private

Definition at line 273 of file multicast.h.

std::string MulticastGroupObject::pbb_vrf_name_
private

Definition at line 274 of file multicast.h.

const Peer* MulticastGroupObject::peer_
private

Definition at line 276 of file multicast.h.

uint64_t MulticastGroupObject::peer_identifier_
private

Definition at line 264 of file multicast.h.

Ip4Address MulticastGroupObject::src_address_
private

Definition at line 262 of file multicast.h.

VnEntryConstRef MulticastGroupObject::vn_
private

Definition at line 268 of file multicast.h.

uint32_t MulticastGroupObject::vn_count_
private

Definition at line 283 of file multicast.h.

std::string MulticastGroupObject::vn_name_
private

Definition at line 261 of file multicast.h.

std::string MulticastGroupObject::vrf_name_
private

Definition at line 259 of file multicast.h.

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: