|
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 std::string & | vm_vrf_name, | ||
| const VmInterface * | vm_itf | ||
| ) |
| 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 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() |
||
| ) |
| void MulticastHandler::DeleteVmInterfaceFromVrfSourceGroup | ( | const std::string & | vrf_name, |
| const VmInterface * | vm_itf, | ||
| const Ip4Address & | src_addr, | ||
| const Ip4Address & | grp_addr | ||
| ) |
|
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.