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

#include <inet_unicast_route.h>

Inheritance diagram for InetUnicastRouteEntry:
Collaboration diagram for InetUnicastRouteEntry:

Classes

class  Rtkey
 

Public Member Functions

 InetUnicastRouteEntry (VrfEntry *vrf, const IpAddress &addr, uint8_t plen, bool is_multicast)
 
virtual ~InetUnicastRouteEntry ()
 
virtual int CompareTo (const Route &rhs) const
 
virtual std::string ToString () const
 
virtual KeyPtr GetDBRequestKey () const
 
virtual void SetKey (const DBRequestKey *key)
 
virtual bool DBEntrySandesh (Sandesh *sresp, bool stale) const
 
virtual const std::string GetAddressString () const
 
virtual const std::string GetSourceAddressString () const
 
virtual Agent::RouteTableType GetTableType () const
 
virtual bool ReComputePathDeletion (AgentPath *path)
 
virtual bool ReComputePathAdd (AgentPath *path)
 
uint8_t prefix_length () const
 ! More...
 
void set_addr (IpAddress addr)
 
bool DBEntrySandesh (Sandesh *sresp, IpAddress addr, uint8_t plen, bool stale) const
 
bool IsHostRoute () const
 
bool IpamSubnetRouteAvailable () const
 
InetUnicastRouteEntryGetIpamSuperNetRoute () const
 
bool UpdateIpamHostFlags (bool ipam_host_route)
 
bool UpdateRouteFlags (bool ipam_subnet_route, bool ipam_host_route, bool proxy_arp)
 
bool ipam_subnet_route () const
 
bool ipam_host_route () const
 
bool proxy_arp () const
 
virtual AgentPathFindPathUsingKeyData (const AgentRouteKey *key, const AgentRouteData *data) const
 
- 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 uint32_t GetActiveLabel () const
 
virtual AgentPathFindPath (const Peer *peer) const
 
virtual bool RecomputeRoutePath (Agent *agent, DBTablePartition *part, AgentPath *path, AgentRouteData *data)
 
virtual void UpdateDerivedRoutes (AgentRouteTable *table, const AgentPath *path, bool active_path_changed)
 
virtual void DeleteDerivedRoutes (AgentRouteTable *table)
 
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...
 

Protected Attributes

Patricia::Node rtnode_
 
bool ipam_subnet_route_
 
bool ipam_host_route_
 
bool proxy_arp_
 
- Protected Attributes inherited from AgentRoutePrefix< IpAddress >
IpAddress prefix_address_
 The prefix address. More...
 
uint8_t prefix_length_
 The prefix length. More...
 

Private Member Functions

AgentPathFindEvpnPathUsingKeyData (const AgentRouteKey *key, const AgentRouteData *data) const
 
 DISALLOW_COPY_AND_ASSIGN (InetUnicastRouteEntry)
 

Friends

class InetUnicastAgentRouteTable
 

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
 

Detailed Description

Definition at line 66 of file inet_unicast_route.h.

Constructor & Destructor Documentation

InetUnicastRouteEntry::InetUnicastRouteEntry ( VrfEntry vrf,
const IpAddress addr,
uint8_t  plen,
bool  is_multicast 
)

Definition at line 322 of file inet_unicast_route.cc.

Here is the call graph for this function:

virtual InetUnicastRouteEntry::~InetUnicastRouteEntry ( )
inlinevirtual

Definition at line 71 of file inet_unicast_route.h.

Member Function Documentation

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

Implements AgentRoute.

Definition at line 357 of file inet_unicast_route.cc.

Here is the call graph for this function:

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

Implements AgentRoute.

Definition at line 961 of file inet_unicast_route.cc.

Here is the call graph for this function:

bool InetUnicastRouteEntry::DBEntrySandesh ( Sandesh sresp,
IpAddress  addr,
uint8_t  plen,
bool  stale 
) const

Definition at line 1000 of file inet_unicast_route.cc.

Here is the call graph for this function:

InetUnicastRouteEntry::DISALLOW_COPY_AND_ASSIGN ( InetUnicastRouteEntry  )
private
AgentPath * InetUnicastRouteEntry::FindEvpnPathUsingKeyData ( const AgentRouteKey key,
const AgentRouteData data 
) const
private

Definition at line 566 of file inet_unicast_route.cc.

Here is the call graph for this function:

AgentPath * InetUnicastRouteEntry::FindPathUsingKeyData ( const AgentRouteKey key,
const AgentRouteData data 
) const
virtual

Reimplemented from AgentRoute.

Definition at line 591 of file inet_unicast_route.cc.

Here is the call graph for this function:

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

Implements AgentRoute.

Definition at line 78 of file inet_unicast_route.h.

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

Implements AgentRoute.

Definition at line 380 of file inet_unicast_route.cc.

Here is the call graph for this function:

InetUnicastRouteEntry * InetUnicastRouteEntry::GetIpamSuperNetRoute ( ) const

Definition at line 432 of file inet_unicast_route.cc.

Here is the call graph for this function:

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

Implements AgentRoute.

Definition at line 81 of file inet_unicast_route.h.

Agent::RouteTableType InetUnicastRouteEntry::GetTableType ( ) const
virtual

Implements AgentRoute.

Definition at line 353 of file inet_unicast_route.cc.

Here is the call graph for this function:

bool InetUnicastRouteEntry::ipam_host_route ( ) const
inline

Definition at line 123 of file inet_unicast_route.h.

bool InetUnicastRouteEntry::ipam_subnet_route ( ) const
inline

Definition at line 122 of file inet_unicast_route.h.

bool InetUnicastRouteEntry::IpamSubnetRouteAvailable ( ) const

Definition at line 427 of file inet_unicast_route.cc.

Here is the call graph for this function:

bool InetUnicastRouteEntry::IsHostRoute ( ) const

Definition at line 409 of file inet_unicast_route.cc.

Here is the call graph for this function:

uint8_t InetUnicastRouteEntry::prefix_length ( ) const
inlinevirtual

!

The length of Inet prefix IP address.

Reimplemented from AgentRoute.

Definition at line 88 of file inet_unicast_route.h.

bool InetUnicastRouteEntry::proxy_arp ( ) const
inline

Definition at line 124 of file inet_unicast_route.h.

bool InetUnicastRouteEntry::ReComputePathAdd ( AgentPath path)
virtual

Reimplemented from AgentRoute.

Definition at line 464 of file inet_unicast_route.cc.

Here is the call graph for this function:

bool InetUnicastRouteEntry::ReComputePathDeletion ( AgentPath path)
virtual

Reimplemented from AgentRoute.

Definition at line 493 of file inet_unicast_route.cc.

Here is the call graph for this function:

void InetUnicastRouteEntry::set_addr ( IpAddress  addr)
inline

Definition at line 89 of file inet_unicast_route.h.

void InetUnicastRouteEntry::SetKey ( const DBRequestKey key)
virtual

Implements AgentRoute.

Definition at line 398 of file inet_unicast_route.cc.

Here is the call graph for this function:

string InetUnicastRouteEntry::ToString ( ) const
virtual

Implements AgentRoute.

Definition at line 344 of file inet_unicast_route.cc.

Here is the call graph for this function:

bool InetUnicastRouteEntry::UpdateIpamHostFlags ( bool  ipam_host_route)

Definition at line 534 of file inet_unicast_route.cc.

Here is the call graph for this function:

bool InetUnicastRouteEntry::UpdateRouteFlags ( bool  ipam_subnet_route,
bool  ipam_host_route,
bool  proxy_arp 
)

Definition at line 544 of file inet_unicast_route.cc.

Here is the call graph for this function:

Friends And Related Function Documentation

friend class InetUnicastAgentRouteTable
friend

Definition at line 129 of file inet_unicast_route.h.

Member Data Documentation

bool InetUnicastRouteEntry::ipam_host_route_
protected

Definition at line 137 of file inet_unicast_route.h.

bool InetUnicastRouteEntry::ipam_subnet_route_
protected

Definition at line 134 of file inet_unicast_route.h.

bool InetUnicastRouteEntry::proxy_arp_
protected

Definition at line 139 of file inet_unicast_route.h.

Patricia::Node InetUnicastRouteEntry::rtnode_
protected

Definition at line 131 of file inet_unicast_route.h.


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