OpenSDN source code
|
This class represents (in the context of an EVPN instance) a local vRouter that's connected to a control node via XMPP. An EvpnLocalMcastNode gets created and associated as DBState with the broadcast MAC route advertised by the vRouter. More...
#include <bgp_evpn.h>
Private Member Functions | |
void | AddInclusiveMulticastRoute () |
Add Inclusive Multicast route for this EvpnLocalMcastNode. The attributes are based on the Broadcast MAC route. More... | |
void | DeleteInclusiveMulticastRoute () |
Delete Inclusive Multicast route for this EvpnLocalMcastNode. More... | |
DISALLOW_COPY_AND_ASSIGN (EvpnLocalMcastNode) | |
Private Attributes | |
EvpnRoute * | inclusive_mcast_route_ |
Additional Inherited Members | |
![]() | |
enum | Type { LocalNode, RemoteNode } |
![]() | |
EvpnManagerPartition * | partition_ |
EvpnStatePtr | state_ |
EvpnRoute * | route_ |
uint8_t | type_ |
BgpAttrPtr | attr_ |
uint32_t | label_ |
Ip4Address | address_ |
Ip4Address | replicator_address_ |
bool | edge_replication_not_supported_ |
bool | assisted_replication_supported_ |
bool | assisted_replication_leaf_ |
This class represents (in the context of an EVPN instance) a local vRouter that's connected to a control node via XMPP. An EvpnLocalMcastNode gets created and associated as DBState with the broadcast MAC route advertised by the vRouter.
The EvpnLocalMcastNode mainly exists to translate the broadcast MAC route advertised by the vRouter into an EVPN Inclusive Multicast route. In the other direction, EvpnLocalMcastNode serves as the anchor point to build a vRouter specific ingress replication olist so that the vRouter can send multicast traffic to EVPN PEs (and possibly vRouters in test environment) that do not support edge replication.
An Inclusive Multicast route is added for each EvpnLocalMcastNode. The attributes of the Inclusive Multicast route are based on the broadcast MAC route corresponding to the EvpnLocalMcastNode. The label for the broadcast MAC route is advertised as the label for ingress replication in the PmsiTunnel attribute.
Definition at line 124 of file bgp_evpn.h.
EvpnLocalMcastNode::EvpnLocalMcastNode | ( | EvpnManagerPartition * | partition, |
EvpnRoute * | route | ||
) |
Constructor for EvpnLocalMcastNode.
Add an Inclusive Multicast route corresponding to Broadcast MAC route.
Need to Notify the Broadcast MAC route so that the table Export method can run and build the OList. OList is not built till EvpnLocalMcastNode has been created.
Definition at line 183 of file bgp_evpn.cc.
EvpnLocalMcastNode::EvpnLocalMcastNode | ( | EvpnManagerPartition * | partition, |
EvpnRoute * | route, | ||
EvpnStatePtr | state | ||
) |
|
virtual |
|
private |
Add Inclusive Multicast route for this EvpnLocalMcastNode. The attributes are based on the Broadcast MAC route.
Definition at line 214 of file bgp_evpn.cc.
|
private |
Delete Inclusive Multicast route for this EvpnLocalMcastNode.
Definition at line 262 of file bgp_evpn.cc.
|
private |
UpdateInfo * EvpnLocalMcastNode::GetUpdateInfo | ( | EvpnRoute * | route | ) |
|
inline |
Definition at line 147 of file bgp_evpn.h.
|
virtual |
Handle update of EvpnLocalMcastNode.
We delete and add the Inclusive Multicast route to ensure that all the attributes are updated. An in-place update is not always possible since the vRouter address is part of the key for the Inclusive Multicast route.
Implements EvpnMcastNode.
Definition at line 288 of file bgp_evpn.cc.
|
private |
Definition at line 157 of file bgp_evpn.h.