OpenSDN source code
|
This is the base class for a multicast node in an EVPN instance. The node could either represent a local vRouter that's connected to a control node via XMPP or a remote vRouter/PE that's discovered via BGP. More...
#include <bgp_evpn.h>
Public Types | |
enum | Type { LocalNode, RemoteNode } |
Public Member Functions | |
EvpnMcastNode (EvpnManagerPartition *partition, EvpnRoute *route, uint8_t type) | |
Constructor for EvpnMcastNode. The type indicates whether this is a local or remote EvpnMcastNode. More... | |
EvpnMcastNode (EvpnManagerPartition *partition, EvpnRoute *route, uint8_t type, EvpnStatePtr state) | |
~EvpnMcastNode () | |
bool | UpdateAttributes (EvpnRoute *route) |
Update the label and attributes for a EvpnMcastNode. Return true if either of them changed. More... | |
virtual void | TriggerUpdate ()=0 |
Handle update of EvpnLocalMcastNode. More... | |
EvpnStatePtr | state () |
void | set_state (EvpnStatePtr state) |
EvpnRoute * | route () |
uint8_t | type () const |
const BgpAttr * | attr () const |
uint32_t | label () const |
Ip4Address | address () const |
Ip4Address | replicator_address () const |
bool | edge_replication_not_supported () const |
bool | assisted_replication_supported () const |
bool | assisted_replication_leaf () const |
![]() | |
virtual | ~DBState () |
Protected Attributes | |
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_ |
Private Member Functions | |
DISALLOW_COPY_AND_ASSIGN (EvpnMcastNode) | |
This is the base class for a multicast node in an EVPN instance. The node could either represent a local vRouter that's connected to a control node via XMPP or a remote vRouter/PE that's discovered via BGP.
In normal operation, the EvpnMcastNodes corresponding to vRouters (local or remote) support edge replication, while those corresponding to EVPN PEs do not. However, for test purposes, it's possible to have vRouters that no not support edge replication.
Definition at line 46 of file bgp_evpn.h.
enum EvpnMcastNode::Type |
Enumerator | |
---|---|
LocalNode | |
RemoteNode |
Definition at line 48 of file bgp_evpn.h.
EvpnMcastNode::EvpnMcastNode | ( | EvpnManagerPartition * | partition, |
EvpnRoute * | route, | ||
uint8_t | type | ||
) |
Constructor for EvpnMcastNode. The type indicates whether this is a local or remote EvpnMcastNode.
Definition at line 79 of file bgp_evpn.cc.
EvpnMcastNode::EvpnMcastNode | ( | EvpnManagerPartition * | partition, |
EvpnRoute * | route, | ||
uint8_t | type, | ||
EvpnStatePtr | state | ||
) |
EvpnMcastNode::~EvpnMcastNode | ( | ) |
|
inline |
Definition at line 77 of file bgp_evpn.h.
|
inline |
Definition at line 85 of file bgp_evpn.h.
|
inline |
Definition at line 82 of file bgp_evpn.h.
|
inline |
Definition at line 75 of file bgp_evpn.h.
|
private |
|
inline |
Definition at line 79 of file bgp_evpn.h.
|
inline |
Definition at line 76 of file bgp_evpn.h.
|
inline |
Definition at line 78 of file bgp_evpn.h.
|
inline |
Definition at line 73 of file bgp_evpn.h.
|
inline |
|
inline |
Definition at line 71 of file bgp_evpn.h.
|
pure 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.
Implemented in EvpnRemoteMcastNode, and EvpnLocalMcastNode.
|
inline |
Definition at line 74 of file bgp_evpn.h.
bool EvpnMcastNode::UpdateAttributes | ( | EvpnRoute * | route | ) |
Update the label and attributes for a EvpnMcastNode. Return true if either of them changed.
Definition at line 117 of file bgp_evpn.cc.
|
protected |
Definition at line 96 of file bgp_evpn.h.
|
protected |
Definition at line 100 of file bgp_evpn.h.
|
protected |
Definition at line 99 of file bgp_evpn.h.
|
protected |
Definition at line 94 of file bgp_evpn.h.
|
protected |
Definition at line 98 of file bgp_evpn.h.
|
protected |
Definition at line 95 of file bgp_evpn.h.
|
protected |
Definition at line 90 of file bgp_evpn.h.
|
protected |
Definition at line 97 of file bgp_evpn.h.
|
protected |
Definition at line 92 of file bgp_evpn.h.
|
protected |
Definition at line 91 of file bgp_evpn.h.
|
protected |
Definition at line 93 of file bgp_evpn.h.