OpenSDN source code
|
#include <multicast.h>
Public Types | |
typedef std::set < MulticastGroupObject * > | MulticastGroupObjectList |
typedef std::map < boost::uuids::uuid, MulticastGroupObjectList > | VmMulticastGroupObjectList |
typedef std::vector< std::string > | ManagedPhysicalDevicesList |
Public Member Functions | |
MulticastHandler (Agent *agent) | |
virtual | ~MulticastHandler () |
MulticastGroupObject * | CreateMulticastGroupObject (const string &vrf_name, const string &vn_name, const Ip4Address &src_addr, const Ip4Address &grp_addr, uint32_t vxlan_id) |
void | ModifyFabricMembers (const Peer *peer, const std::string &vrf_name, const Ip4Address &group, const Ip4Address &source, uint32_t source_label, const TunnelOlist &olist, uint64_t peer_identifier=0) |
void | ModifyEvpnMembers (const Peer *peer, const std::string &vrf_name, const Ip4Address &grp, const Ip4Address &src, const TunnelOlist &olist, uint32_t ethernet_tag, uint64_t peer_identifier=0) |
void | ModifyEvpnMembers (const Peer *peer, const std::string &vrf_name, const TunnelOlist &olist, uint32_t ethernet_tag, uint64_t peer_identifier=0) |
void | ModifyTorMembers (const Peer *peer, const std::string &vrf_name, const TunnelOlist &olist, uint32_t ethernet_tag, uint64_t peer_identifier=0) |
void | ModifyMvpnVrfRegistration (const Peer *peer, const std::string &vrf_name, const Ip4Address &group, const Ip4Address &source, uint64_t peer_identifier) |
void | ModifyVN (DBTablePartBase *partition, DBEntryBase *e) |
void | ModifyVRF (DBTablePartBase *partition, DBEntryBase *e) |
void | McastTableNotify (DBTablePartBase *partition, DBEntryBase *e) |
void | ModifyVmInterface (DBTablePartBase *partition, DBEntryBase *e) |
void | NotifyPhysicalDevice (DBTablePartBase *partition, DBEntryBase *e) |
void | Register () |
void | TriggerLocalRouteChange (MulticastGroupObject *obj, const Peer *peer) |
void | TriggerRemoteRouteChange (MulticastGroupObject *obj, const Peer *peer, const string &vrf_name, const Ip4Address &src, const Ip4Address &grp, const TunnelOlist &olist, uint64_t peer_identifier, bool delete_op, COMPOSITETYPE comp_type, uint32_t label, bool fabric, uint32_t ethernet_tag) |
void | HandleIpam (const VnEntry *vn) |
void | HandleVxLanChange (const VnEntry *vn) |
void | HandleVnParametersChange (DBTablePartBase *partition, DBEntryBase *e) |
void | Shutdown () |
MulticastGroupObject * | FindFloodGroupObject (const std::string &vrf_name) |
MulticastGroupObject * | FindActiveGroupObject (const std::string &vrf_name, const Ip4Address &dip) |
MulticastGroupObject * | FindActiveGroupObject (const std::string &vrf_name, const Ip4Address &sip, const Ip4Address &dip) |
std::set< MulticastGroupObject * > & | GetMulticastObjList () |
MulticastGroupObject * | FindGroupObject (const std::string &vrf_name, const Ip4Address &sip, const Ip4Address &dip) |
ComponentNHKeyList | GetInterfaceComponentNHKeyList (MulticastGroupObject *obj, uint8_t flags) |
void | AddMulticastRoute (MulticastGroupObject *obj, const Peer *peer, uint32_t ethernet_tag, AgentRouteData *data, AgentRouteData *bridge_data) |
void | DeleteMulticastRoute (const Peer *peer, const string &vrf_name, const Ip4Address &src_addr, const Ip4Address &grp_addr, uint32_t ethernet_tag, COMPOSITETYPE comp_type) |
bool | FlushPeerInfo (uint64_t peer_sequence) |
void | DeleteBroadcast (const Peer *peer, const std::string &vrf_name, uint32_t ethernet_tag, COMPOSITETYPE type) |
void | DeleteMulticastObject (const std::string &vrf_name, const Ip4Address &src_addr, const Ip4Address &grp_addr) |
const Agent * | agent () const |
void | Terminate () |
void | AddBridgeDomain (DBTablePartBase *paritition, DBEntryBase *e) |
const ManagedPhysicalDevicesList & | physical_devices () const |
void | AddLocalPeerRoute (MulticastGroupObject *sg_object) |
void | DeleteLocalPeerRoute (MulticastGroupObject *sg_object) |
void | CreateMulticastVrfSourceGroup (const std::string &vrf_name, const std::string &vn_name, const Ip4Address &src_addr, const Ip4Address &grp_addr) |
void | HandleRouteChangeAndMulticastObject (MulticastGroupObject *sg_object, boost::uuids::uuid vm_itf_uuid) |
void | DeleteMulticastVrfSourceGroup (const std::string &vrf_name, const Ip4Address &src_addr, const Ip4Address &grp_addr) |
bool | AddVmInterfaceToVrfSourceGroup (const std::string &vrf_name, const std::string &vn_name, const VmInterface *vm_itf, const Ip4Address &src_addr, const Ip4Address &grp_addr) |
void | DeleteVmInterfaceFromVrfSourceGroup (const std::string &vrf_name, const VmInterface *vm_itf, const Ip4Address &src_addr, const Ip4Address &grp_addr) |
void | DeleteVmInterfaceFromVrfSourceGroup (const std::string &vrf_name, const VmInterface *vm_itf, const Ip4Address &grp_addr=Ip4Address()) |
void | AddVmInterfaceToSourceGroup (const std::string &mvpn_vrf_name, const std::string &vn_name, const VmInterface *vm_itf, const Ip4Address &src_addr, const Ip4Address &grp_addr) |
void | DeleteVmInterfaceFromSourceGroup (const std::string &mvpn_vrf_name, const VmInterface *vm_itf, const Ip4Address &src_addr, const Ip4Address &grp_addr) |
void | DeleteVmInterfaceFromSourceGroup (const std::string &mvpn_vrf_name, const VmInterface *vm_itf, const Ip4Address &grp_addr) |
void | DeleteVmInterfaceFromSourceGroup (const std::string &mvpn_vrf_name, const std::string &vm_vrf_name, const VmInterface *vm_itf) |
void | SetEvpnMulticastSGFlags (const std::string &vrf_name, const Ip4Address &src_addr, const Ip4Address &grp_addr, uint32_t flags) |
uint32_t | GetEvpnMulticastSGFlags (const std::string &vrf_name, const Ip4Address &src_addr, const Ip4Address &grp_addr) |
bool | FilterVmi (const VmInterface *vmi) |
Static Public Member Functions | |
static MulticastHandler * | GetInstance () |
static void | GetMulticastMacFromIp (const Ip4Address &ip, MacAddress &mac) |
Static Public Attributes | |
static const uint32_t | kMulticastTimeout = 5 * 60 * 1000 |
static const Ip4Address | kBroadcast = Ip4Address(0xFFFFFFFF) |
Static Private Attributes | |
static MulticastHandler * | obj_ |
Definition at line 303 of file multicast.h.
typedef std::vector<std::string> MulticastHandler::ManagedPhysicalDevicesList |
Definition at line 310 of file multicast.h.
typedef std::set<MulticastGroupObject *> MulticastHandler::MulticastGroupObjectList |
Definition at line 307 of file multicast.h.
typedef std::map<boost::uuids::uuid, MulticastGroupObjectList> MulticastHandler::VmMulticastGroupObjectList |
Definition at line 309 of file multicast.h.
MulticastHandler::MulticastHandler | ( | Agent * | agent | ) |
|
inlinevirtual |
Definition at line 313 of file multicast.h.
void MulticastHandler::AddBridgeDomain | ( | DBTablePartBase * | paritition, |
DBEntryBase * | e | ||
) |
|
private |
void MulticastHandler::AddLocalPeerRoute | ( | MulticastGroupObject * | sg_object | ) |
void MulticastHandler::AddMulticastRoute | ( | MulticastGroupObject * | obj, |
const Peer * | peer, | ||
uint32_t | ethernet_tag, | ||
AgentRouteData * | data, | ||
AgentRouteData * | bridge_data | ||
) |
|
inlineprivate |
Definition at line 496 of file multicast.h.
|
private |
|
private |
void MulticastHandler::AddVmInterfaceToSourceGroup | ( | const std::string & | mvpn_vrf_name, |
const std::string & | vn_name, | ||
const VmInterface * | vm_itf, | ||
const Ip4Address & | src_addr, | ||
const Ip4Address & | grp_addr | ||
) |
bool MulticastHandler::AddVmInterfaceToVrfSourceGroup | ( | const std::string & | vrf_name, |
const std::string & | vn_name, | ||
const VmInterface * | vm_itf, | ||
const Ip4Address & | src_addr, | ||
const Ip4Address & | grp_addr | ||
) |
|
inlineprivate |
Definition at line 525 of file multicast.h.
|
inline |
Definition at line 425 of file multicast.h.
|
private |
|
private |
|
private |
MulticastGroupObject * MulticastHandler::CreateMulticastGroupObject | ( | const string & | vrf_name, |
const string & | vn_name, | ||
const Ip4Address & | src_addr, | ||
const Ip4Address & | grp_addr, | ||
uint32_t | vxlan_id | ||
) |
void MulticastHandler::CreateMulticastVrfSourceGroup | ( | const std::string & | vrf_name, |
const std::string & | vn_name, | ||
const Ip4Address & | src_addr, | ||
const Ip4Address & | grp_addr | ||
) |
void MulticastHandler::DeleteBroadcast | ( | const Peer * | peer, |
const std::string & | vrf_name, | ||
uint32_t | ethernet_tag, | ||
COMPOSITETYPE | type | ||
) |
|
private |
void MulticastHandler::DeleteLocalPeerRoute | ( | MulticastGroupObject * | sg_object | ) |
void MulticastHandler::DeleteMulticastObject | ( | const std::string & | vrf_name, |
const Ip4Address & | src_addr, | ||
const Ip4Address & | grp_addr | ||
) |
void MulticastHandler::DeleteMulticastRoute | ( | const Peer * | peer, |
const string & | vrf_name, | ||
const Ip4Address & | src_addr, | ||
const Ip4Address & | grp_addr, | ||
uint32_t | ethernet_tag, | ||
COMPOSITETYPE | comp_type | ||
) |
void MulticastHandler::DeleteMulticastVrfSourceGroup | ( | const std::string & | vrf_name, |
const Ip4Address & | src_addr, | ||
const Ip4Address & | grp_addr | ||
) |
|
private |
|
private |
Definition at line 664 of file multicast.cc.
void MulticastHandler::DeleteVmInterfaceFromSourceGroup | ( | const std::string & | mvpn_vrf_name, |
const VmInterface * | vm_itf, | ||
const Ip4Address & | src_addr, | ||
const Ip4Address & | grp_addr | ||
) |
void MulticastHandler::DeleteVmInterfaceFromSourceGroup | ( | const std::string & | mvpn_vrf_name, |
const VmInterface * | vm_itf, | ||
const Ip4Address & | grp_addr | ||
) |
void MulticastHandler::DeleteVmInterfaceFromSourceGroup | ( | const std::string & | mvpn_vrf_name, |
const std::string & | vm_vrf_name, | ||
const VmInterface * | vm_itf | ||
) |
void MulticastHandler::DeleteVmInterfaceFromVrfSourceGroup | ( | const std::string & | vrf_name, |
const VmInterface * | vm_itf, | ||
const Ip4Address & | src_addr, | ||
const Ip4Address & | grp_addr | ||
) |
void MulticastHandler::DeleteVmInterfaceFromVrfSourceGroup | ( | const std::string & | vrf_name, |
const VmInterface * | vm_itf, | ||
const Ip4Address & | grp_addr = Ip4Address() |
||
) |
|
inlineprivate |
Definition at line 547 of file multicast.h.
|
private |
bool MulticastHandler::FilterVmi | ( | const VmInterface * | vmi | ) |
MulticastGroupObject* MulticastHandler::FindActiveGroupObject | ( | const std::string & | vrf_name, |
const Ip4Address & | dip | ||
) |
MulticastGroupObject * MulticastHandler::FindActiveGroupObject | ( | const std::string & | vrf_name, |
const Ip4Address & | sip, | ||
const Ip4Address & | dip | ||
) |
MulticastGroupObject * MulticastHandler::FindFloodGroupObject | ( | const std::string & | vrf_name | ) |
Definition at line 764 of file multicast.cc.
MulticastGroupObject * MulticastHandler::FindGroupObject | ( | const std::string & | vrf_name, |
const Ip4Address & | sip, | ||
const Ip4Address & | dip | ||
) |
Definition at line 772 of file multicast.cc.
|
inlineprivate |
Definition at line 534 of file multicast.h.
bool MulticastHandler::FlushPeerInfo | ( | uint64_t | peer_sequence | ) |
uint32_t MulticastHandler::GetEvpnMulticastSGFlags | ( | const std::string & | vrf_name, |
const Ip4Address & | src_addr, | ||
const Ip4Address & | grp_addr | ||
) |
|
inlinestatic |
Definition at line 369 of file multicast.h.
ComponentNHKeyList MulticastHandler::GetInterfaceComponentNHKeyList | ( | MulticastGroupObject * | obj, |
uint8_t | flags | ||
) |
|
inlinestatic |
Definition at line 483 of file multicast.h.
|
inline |
Definition at line 398 of file multicast.h.
|
inlineprivate |
Definition at line 569 of file multicast.h.
void MulticastHandler::HandleIpam | ( | const VnEntry * | vn | ) |
void MulticastHandler::HandleRouteChangeAndMulticastObject | ( | MulticastGroupObject * | sg_object, |
boost::uuids::uuid | vm_itf_uuid | ||
) |
void MulticastHandler::HandleVnParametersChange | ( | DBTablePartBase * | partition, |
DBEntryBase * | e | ||
) |
void MulticastHandler::HandleVxLanChange | ( | const VnEntry * | vn | ) |
void MulticastHandler::McastTableNotify | ( | DBTablePartBase * | partition, |
DBEntryBase * | e | ||
) |
void MulticastHandler::ModifyEvpnMembers | ( | const Peer * | peer, |
const std::string & | vrf_name, | ||
const Ip4Address & | grp, | ||
const Ip4Address & | src, | ||
const TunnelOlist & | olist, | ||
uint32_t | ethernet_tag, | ||
uint64_t | peer_identifier = 0 |
||
) |
Definition at line 1245 of file multicast.cc.
void MulticastHandler::ModifyEvpnMembers | ( | const Peer * | peer, |
const std::string & | vrf_name, | ||
const TunnelOlist & | olist, | ||
uint32_t | ethernet_tag, | ||
uint64_t | peer_identifier = 0 |
||
) |
void MulticastHandler::ModifyFabricMembers | ( | const Peer * | peer, |
const std::string & | vrf_name, | ||
const Ip4Address & | group, | ||
const Ip4Address & | source, | ||
uint32_t | source_label, | ||
const TunnelOlist & | olist, | ||
uint64_t | peer_identifier = 0 |
||
) |
void MulticastHandler::ModifyMvpnVrfRegistration | ( | const Peer * | peer, |
const std::string & | vrf_name, | ||
const Ip4Address & | group, | ||
const Ip4Address & | source, | ||
uint64_t | peer_identifier | ||
) |
Definition at line 1348 of file multicast.cc.
void MulticastHandler::ModifyTorMembers | ( | const Peer * | peer, |
const std::string & | vrf_name, | ||
const TunnelOlist & | olist, | ||
uint32_t | ethernet_tag, | ||
uint64_t | peer_identifier = 0 |
||
) |
Definition at line 1322 of file multicast.cc.
void MulticastHandler::ModifyVmInterface | ( | DBTablePartBase * | partition, |
DBEntryBase * | e | ||
) |
void MulticastHandler::ModifyVN | ( | DBTablePartBase * | partition, |
DBEntryBase * | e | ||
) |
Definition at line 249 of file multicast.cc.
void MulticastHandler::ModifyVRF | ( | DBTablePartBase * | partition, |
DBEntryBase * | e | ||
) |
void MulticastHandler::NotifyPhysicalDevice | ( | DBTablePartBase * | partition, |
DBEntryBase * | e | ||
) |
|
inline |
Definition at line 429 of file multicast.h.
void MulticastHandler::Register | ( | ) |
|
private |
|
private |
void MulticastHandler::SetEvpnMulticastSGFlags | ( | const std::string & | vrf_name, |
const Ip4Address & | src_addr, | ||
const Ip4Address & | grp_addr, | ||
uint32_t | flags | ||
) |
void MulticastHandler::Shutdown | ( | ) |
void MulticastHandler::Terminate | ( | ) |
Definition at line 71 of file multicast.cc.
void MulticastHandler::TriggerLocalRouteChange | ( | MulticastGroupObject * | obj, |
const Peer * | peer | ||
) |
void MulticastHandler::TriggerRemoteRouteChange | ( | MulticastGroupObject * | obj, |
const Peer * | peer, | ||
const string & | vrf_name, | ||
const Ip4Address & | src, | ||
const Ip4Address & | grp, | ||
const TunnelOlist & | olist, | ||
uint64_t | peer_identifier, | ||
bool | delete_op, | ||
COMPOSITETYPE | comp_type, | ||
uint32_t | label, | ||
bool | fabric, | ||
uint32_t | ethernet_tag | ||
) |
|
private |
|
private |
Definition at line 580 of file multicast.h.
|
private |
Definition at line 593 of file multicast.h.
|
private |
Definition at line 592 of file multicast.h.
|
static |
Definition at line 306 of file multicast.h.
|
static |
Definition at line 305 of file multicast.h.
|
private |
Definition at line 586 of file multicast.h.
|
staticprivate |
Definition at line 578 of file multicast.h.
|
private |
Definition at line 594 of file multicast.h.
|
private |
Definition at line 595 of file multicast.h.
|
private |
Definition at line 596 of file multicast.h.
|
private |
Definition at line 588 of file multicast.h.
|
private |
Definition at line 590 of file multicast.h.
|
private |
Definition at line 583 of file multicast.h.
|
private |
Definition at line 581 of file multicast.h.
|
private |
Definition at line 591 of file multicast.h.