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

#include <evpn_route.h>

Inheritance diagram for EvpnRouteEntry:
Collaboration diagram for EvpnRouteEntry:

Public Member Functions

 EvpnRouteEntry (VrfEntry *vrf, const MacAddress &mac, const IpAddress &ip_addr, uint8_t plen, uint32_t ethernet_tag, bool is_multicast)
 
virtual ~EvpnRouteEntry ()
 
virtual int CompareTo (const Route &rhs) const
 
virtual std::string ToString () const
 
virtual void UpdateDependantRoutes ()
 
virtual void UpdateNH ()
 
virtual KeyPtr GetDBRequestKey () const
 
virtual void SetKey (const DBRequestKey *key)
 
virtual const std::string GetAddressString () const
 
virtual const std::string GetSourceAddressString () const
 
virtual Agent::RouteTableType GetTableType () const
 
virtual bool DBEntrySandesh (Sandesh *sresp, bool stale) const
 
virtual uint32_t GetActiveLabel () const
 
virtual bool ReComputePathDeletion (AgentPath *path)
 
bool IsType5 () const
 
bool IsType2 () const
 
const MacAddressmac () const
 
uint8_t prefix_length () const
 ! More...
 
uint32_t ethernet_tag () const
 
void set_publish_to_bridge_route_table (bool publish_to_bridge_route_table)
 
bool publish_to_bridge_route_table () const
 
void set_publish_to_inet_route_table (bool publish_to_inet_route_table)
 
bool publish_to_inet_route_table () const
 
const AgentPathFindOvsPath () const
 
virtual void UpdateDerivedRoutes (AgentRouteTable *table, const AgentPath *path, bool active_path_changed)
 
virtual void DeleteDerivedRoutes (AgentRouteTable *table)
 
- Public Member Functions inherited from AgentRoute
 AgentRoute (VrfEntry *vrf, bool is_multicast, const std::string &intf_route_type="interface")
 
virtual ~AgentRoute ()
 
virtual bool IsLess (const DBEntry &rhs) const
 
virtual bool ReComputePathAdd (AgentPath *path)
 
virtual AgentPathFindPathUsingKeyData (const AgentRouteKey *key, const AgentRouteData *data) const
 
virtual AgentPathFindPath (const Peer *peer) const
 
virtual bool RecomputeRoutePath (Agent *agent, DBTablePartition *part, AgentPath *path, AgentRouteData *data)
 
bool is_multicast () const
 
VrfEntryvrf () const
 
uint32_t vrf_id () const
 
const std::string & intf_route_type () const
 
void set_intf_route_type (const std::string &intf_route_type)
 
AgentPathFindLocalPath () const
 
AgentPathFindLocalVmPortPath () const
 
const AgentPathFindIntfOrCompLocalVmPortPath () const
 Finds path to an interface or a composite of interfaces and returns it. The priority is given to composite: if both an interface and a composite are present, then the composite path is returned. More...
 
AgentPathGetLocalVmPortPath () const
 
const AgentPathGetActivePath () const
 
const NextHopGetActiveNextHop () const
 
const std::string & dest_vn_name () const
 
bool IsRPFInvalid () const
 
void EnqueueRouteResync () const
 
void ResyncTunnelNextHop ()
 
bool HasUnresolvedPath ()
 
bool Sync (void)
 
void UpdateDependantRoutes ()
 
bool IsDependantRouteEmpty ()
 
bool IsTunnelNHListEmpty ()
 
void FillTrace (RouteInfo &route, Trace event, const AgentPath *path) const
 
bool WaitForTraffic () const
 
bool DeleteAllBgpPath (DBTablePartBase *part, AgentRouteTable *table)
 
void DeletePathFromPeer (DBTablePartBase *part, AgentRouteTable *table, AgentPath *path)
 
bool SubOpResyncInput (VrfEntry *vrf, AgentRouteTable *table, AgentPath **path_ptr, AgentRouteKey *key, AgentRouteData *data)
 
bool SubOpAddChangeInput (VrfEntry *vrf, AgentRouteTable *table, AgentPath **path_ptr, AgentRouteKey *key, AgentRouteData *data, bool route_added)
 
void DeleteInput (DBTablePartition *part, AgentRouteTable *table, AgentRouteKey *key, AgentRouteData *data)
 
void AddUnresolvedRouteToTable (AgentRouteTable *table)
 
void RemoveUnresolvedRouteFromTable (AgentRouteTable *table)
 
- Public Member Functions inherited from Route
 Route ()
 
virtual ~Route ()
 
bool operator< (const Route &rhs) const
 
const Pathfront () const
 
void insert (const Path *path)
 
void remove (const Path *path)
 
void Sort (Compare compare, const Path *prev_front)
 
const PathListGetPathList () const
 
PathListGetPathList ()
 
- Public Member Functions inherited from DBEntry
 DBEntry ()
 
virtual ~DBEntry ()
 
bool operator< (const DBEntry &rhs) const
 
- Public Member Functions inherited from DBEntryBase
 DBEntryBase ()
 
virtual ~DBEntryBase ()
 
virtual bool IsMoreSpecific (const std::string &match) const
 
virtual bool IsLessSpecific (const std::string &match) const
 
void SetState (DBTableBase *tbl_base, ListenerId listener, DBState *state)
 
void ClearState (DBTableBase *tbl_base, ListenerId listener)
 
DBStateGetState (DBTableBase *tbl_base, ListenerId listener) const
 
const DBStateGetState (const DBTableBase *tbl_base, ListenerId listener) const
 
bool is_state_empty (DBTablePartBase *tpart)
 
bool is_state_empty_unlocked (DBTablePartBase *tpart)
 
void Delete ()
 
void MarkDelete ()
 
void ClearDelete ()
 
bool IsDeleted () const
 
void set_onlist ()
 
void clear_onlist ()
 
bool is_onlist ()
 
void SetOnRemoveQ ()
 
bool IsOnRemoveQ ()
 
void ClearOnRemoveQ ()
 
void set_last_change_at (uint64_t time)
 
void set_last_change_at_to_now ()
 
const uint64_t last_change_at () const
 
const std::string last_change_at_str () const
 
void set_last_update_at (uint64_t time)
 
void set_last_update_at_to_now ()
 
const uint64_t last_update_at () const
 
DBTablePartBaseget_table_partition () const
 
void set_table_partition (DBTablePartBase *tpart)
 
DBTableBaseget_table () const
 
void Notify ()
 
- Public Member Functions inherited from AgentRoutePrefix< IpAddress >
 AgentRoutePrefix (const IpAddress &new_prefix, uint8_t new_plen)
 Creates a new route prefix. More...
 
 ~AgentRoutePrefix ()
 The destructor of a route prefix. More...
 
virtual const IpAddressprefix_address () const
 Returns the value of a stored prefix address (IPv4, IPv6 or MAC address) More...
 
void set_prefix_length (uint8_t new_plen)
 Sets the length of a stored prefix address. More...
 

Private Member Functions

 DISALLOW_COPY_AND_ASSIGN (EvpnRouteEntry)
 

Private Attributes

MacAddress mac_
 
uint32_t ethernet_tag_
 
bool publish_to_inet_route_table_
 
bool publish_to_bridge_route_table_
 

Additional Inherited Members

- Public Types inherited from AgentRoute
enum  Trace {
  ADD, DEL, ADD_PATH, DELETE_PATH,
  CHANGE_PATH, STALE_PATH
}
 
typedef DependencyList
< AgentRoute, AgentRoute
RouteDependencyList
 
typedef DependencyList
< NextHop, AgentRoute
TunnelNhDependencyList
 
- Public Types inherited from Route
typedef
boost::intrusive::member_hook
< Path,
boost::intrusive::list_member_hook
<>,&Path::node_
PathListMember
 
typedef boost::intrusive::list
< Path, PathListMember
PathList
 
typedef bool(* Compare )(const Path &path1, const Path &path2)
 
- Public Types inherited from DBEntryBase
typedef DBTableBase::ListenerId ListenerId
 
typedef std::unique_ptr
< DBRequestKey
KeyPtr
 
- Public Attributes inherited from DBEntryBase
boost::intrusive::list_member_hook chg_list_
 
- Protected Member Functions inherited from AgentRoute
void SetVrf (VrfEntry *vrf)
 
void RemovePath (AgentPath *path)
 
void InsertPath (const AgentPath *path)
 
virtual void HandleMulticastLabel (const Agent *agent, AgentPath *path, const AgentPath *local_peer_path, const AgentPath *local_vm_peer_path, bool del, uint32_t *evpn_label)
 
virtual bool ReComputeMulticastPaths (AgentPath *path, bool del)
 
virtual void HandleDeviceMastershipUpdate (AgentPath *path, bool del)
 
virtual Composite::Type GetMulticastCompType ()
 
const AgentRouteTableGetDependentRouteTable (void) const
 
virtual bool ValidateMcastSrc () const
 
- Protected Attributes inherited from AgentRoutePrefix< IpAddress >
IpAddress prefix_address_
 The prefix address. More...
 
uint8_t prefix_length_
 The prefix length. More...
 

Detailed Description

Definition at line 169 of file vnsw/agent/oper/evpn_route.h.

Constructor & Destructor Documentation

EvpnRouteEntry::EvpnRouteEntry ( VrfEntry vrf,
const MacAddress mac,
const IpAddress ip_addr,
uint8_t  plen,
uint32_t  ethernet_tag,
bool  is_multicast 
)

Definition at line 489 of file vnsw/agent/oper/evpn_route.cc.

Here is the call graph for this function:

virtual EvpnRouteEntry::~EvpnRouteEntry ( )
inlinevirtual

Definition at line 178 of file vnsw/agent/oper/evpn_route.h.

Member Function Documentation

int EvpnRouteEntry::CompareTo ( const Route rhs) const
virtual

Implements AgentRoute.

Definition at line 522 of file vnsw/agent/oper/evpn_route.cc.

Here is the call graph for this function:

bool EvpnRouteEntry::DBEntrySandesh ( Sandesh sresp,
bool  stale 
) const
virtual

Implements AgentRoute.

Definition at line 652 of file vnsw/agent/oper/evpn_route.cc.

Here is the call graph for this function:

void EvpnRouteEntry::DeleteDerivedRoutes ( AgentRouteTable table)
virtual

Reimplemented from AgentRoute.

Definition at line 614 of file vnsw/agent/oper/evpn_route.cc.

Here is the call graph for this function:

EvpnRouteEntry::DISALLOW_COPY_AND_ASSIGN ( EvpnRouteEntry  )
private
uint32_t EvpnRouteEntry::ethernet_tag ( ) const
inline

Definition at line 208 of file vnsw/agent/oper/evpn_route.h.

const AgentPath * EvpnRouteEntry::FindOvsPath ( ) const

Definition at line 570 of file vnsw/agent/oper/evpn_route.cc.

Here is the call graph for this function:

uint32_t EvpnRouteEntry::GetActiveLabel ( ) const
virtual

Reimplemented from AgentRoute.

Definition at line 566 of file vnsw/agent/oper/evpn_route.cc.

Here is the call graph for this function:

virtual const std::string EvpnRouteEntry::GetAddressString ( ) const
inlinevirtual

Implements AgentRoute.

Definition at line 186 of file vnsw/agent/oper/evpn_route.h.

Here is the call graph for this function:

DBEntryBase::KeyPtr EvpnRouteEntry::GetDBRequestKey ( ) const
virtual

Implements AgentRoute.

Definition at line 550 of file vnsw/agent/oper/evpn_route.cc.

Here is the call graph for this function:

virtual const std::string EvpnRouteEntry::GetSourceAddressString ( ) const
inlinevirtual

Implements AgentRoute.

Definition at line 189 of file vnsw/agent/oper/evpn_route.h.

virtual Agent::RouteTableType EvpnRouteEntry::GetTableType ( ) const
inlinevirtual

Implements AgentRoute.

Definition at line 192 of file vnsw/agent/oper/evpn_route.h.

bool EvpnRouteEntry::IsType2 ( ) const
inline

Definition at line 202 of file vnsw/agent/oper/evpn_route.h.

Here is the call graph for this function:

bool EvpnRouteEntry::IsType5 ( ) const
inline

Definition at line 199 of file vnsw/agent/oper/evpn_route.h.

Here is the call graph for this function:

const MacAddress& EvpnRouteEntry::mac ( ) const
inline

Definition at line 205 of file vnsw/agent/oper/evpn_route.h.

uint8_t EvpnRouteEntry::prefix_length ( ) const
inlinevirtual

!

The length of EVPN Type2 / Type5 prefix IP address

Reimplemented from AgentRoute.

Definition at line 207 of file vnsw/agent/oper/evpn_route.h.

bool EvpnRouteEntry::publish_to_bridge_route_table ( ) const
inline

Definition at line 212 of file vnsw/agent/oper/evpn_route.h.

bool EvpnRouteEntry::publish_to_inet_route_table ( ) const
inline

Definition at line 218 of file vnsw/agent/oper/evpn_route.h.

Here is the call graph for this function:

bool EvpnRouteEntry::ReComputePathDeletion ( AgentPath path)
virtual

Reimplemented from AgentRoute.

Definition at line 673 of file vnsw/agent/oper/evpn_route.cc.

Here is the call graph for this function:

void EvpnRouteEntry::set_publish_to_bridge_route_table ( bool  publish_to_bridge_route_table)
inline

Definition at line 209 of file vnsw/agent/oper/evpn_route.h.

Here is the call graph for this function:

void EvpnRouteEntry::set_publish_to_inet_route_table ( bool  publish_to_inet_route_table)
inline

Definition at line 215 of file vnsw/agent/oper/evpn_route.h.

Here is the call graph for this function:

void EvpnRouteEntry::SetKey ( const DBRequestKey key)
virtual

Implements AgentRoute.

Definition at line 558 of file vnsw/agent/oper/evpn_route.cc.

Here is the call graph for this function:

string EvpnRouteEntry::ToString ( ) const
virtual

Implements AgentRoute.

Definition at line 506 of file vnsw/agent/oper/evpn_route.cc.

Here is the call graph for this function:

virtual void EvpnRouteEntry::UpdateDependantRoutes ( void  )
inlinevirtual

Definition at line 182 of file vnsw/agent/oper/evpn_route.h.

void EvpnRouteEntry::UpdateDerivedRoutes ( AgentRouteTable table,
const AgentPath path,
bool  active_path_changed 
)
virtual

Reimplemented from AgentRoute.

Definition at line 588 of file vnsw/agent/oper/evpn_route.cc.

Here is the call graph for this function:

virtual void EvpnRouteEntry::UpdateNH ( )
inlinevirtual

Definition at line 183 of file vnsw/agent/oper/evpn_route.h.

Member Data Documentation

uint32_t EvpnRouteEntry::ethernet_tag_
private

Definition at line 232 of file vnsw/agent/oper/evpn_route.h.

MacAddress EvpnRouteEntry::mac_
private

Definition at line 231 of file vnsw/agent/oper/evpn_route.h.

bool EvpnRouteEntry::publish_to_bridge_route_table_
private

Definition at line 234 of file vnsw/agent/oper/evpn_route.h.

bool EvpnRouteEntry::publish_to_inet_route_table_
private

Definition at line 233 of file vnsw/agent/oper/evpn_route.h.


The documentation for this class was generated from the following files: