OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
StaticRoute< T > Class Template Reference

#include <static_route.h>

Inheritance diagram for StaticRoute< T >:
Collaboration diagram for StaticRoute< T >:

Public Types

enum  CompareResult { NoChange = 0, PrefixChange = 1, NexthopChange = 2, AttributeChange = 3 }
 
typedef T::RouteT RouteT
 
typedef T::VpnRouteT VpnRouteT
 
typedef T::PrefixT PrefixT
 
typedef T::AddressT AddressT
 
typedef StaticRouteMgr< T > StaticRouteMgrT
 
typedef set< RouteTargetRouteTargetList
 
typedef set< uint32_t > NexthopPathIdList
 

Public Member Functions

 StaticRoute (RoutingInstance *rtinstance, StaticRouteMgrT *manager, const PrefixT &static_route, const StaticRouteConfig &config)
 
Address::Family GetFamily () const
 
AddressT GetAddress (IpAddress addr) const
 
CompareResult CompareConfig (const StaticRouteConfig &config)
 
void FillShowInfo (StaticRouteInfo *info) const
 
const PrefixTprefix () const
 
const IpAddressnexthop () const
 
RoutingInstancerouting_instance () const
 
BgpTablebgp_table () const
 
BgpRoutenexthop_route () const
 
NexthopPathIdListNexthopPathIds ()
 
void set_nexthop_route (BgpRoute *nexthop_route)
 
const RouteTargetListrtarget_list () const
 
void UpdateAttributes (const StaticRouteConfig &config)
 
void AddStaticRoute (NexthopPathIdList *list)
 
void UpdateStaticRoute ()
 
void RemoveStaticRoute ()
 
void NotifyRoute ()
 
bool IsPending () const
 
virtual bool Match (BgpServer *server, BgpTable *table, BgpRoute *route, bool deleted)
 
virtual string ToString () const
 
void set_unregistered ()
 
bool unregistered () const
 
- Public Member Functions inherited from ConditionMatch
 ConditionMatch ()
 
virtual ~ConditionMatch ()
 
bool deleted () const
 
void IncrementNumMatchstate ()
 
void DecrementNumMatchstate ()
 
uint32_t num_matchstate () const
 

Private Member Functions

bool is_nexthop_route (BgpRoute *route)
 
CommunityPtr GetCommunity (const StaticRouteConfig &config)
 
ExtCommunityPtr UpdateExtCommunity (const BgpAttr *attr) const
 
 DISALLOW_COPY_AND_ASSIGN (StaticRoute)
 

Private Attributes

RoutingInstancerouting_instance_
 
StaticRouteMgrTmanager_
 
PrefixT prefix_
 
IpAddress nexthop_
 
BgpRoutenexthop_route_
 
NexthopPathIdList nexthop_path_ids_
 
RouteTargetList rtarget_list_
 
CommunityPtr community_
 
bool unregistered_
 

Detailed Description

template<typename T>
class StaticRoute< T >

Definition at line 50 of file static_route.cc.

Member Typedef Documentation

template<typename T>
typedef T::AddressT StaticRoute< T >::AddressT

Definition at line 55 of file static_route.cc.

template<typename T>
typedef set<uint32_t> StaticRoute< T >::NexthopPathIdList

Definition at line 62 of file static_route.cc.

template<typename T>
typedef T::PrefixT StaticRoute< T >::PrefixT

Definition at line 54 of file static_route.cc.

template<typename T>
typedef T::RouteT StaticRoute< T >::RouteT

Definition at line 52 of file static_route.cc.

template<typename T>
typedef set<RouteTarget> StaticRoute< T >::RouteTargetList

Definition at line 59 of file static_route.cc.

template<typename T>
typedef StaticRouteMgr<T> StaticRoute< T >::StaticRouteMgrT

Definition at line 56 of file static_route.cc.

template<typename T>
typedef T::VpnRouteT StaticRoute< T >::VpnRouteT

Definition at line 53 of file static_route.cc.

Member Enumeration Documentation

template<typename T>
enum StaticRoute::CompareResult
Enumerator
NoChange 
PrefixChange 
NexthopChange 
AttributeChange 

Definition at line 64 of file static_route.cc.

Constructor & Destructor Documentation

template<typename T >
StaticRoute< T >::StaticRoute ( RoutingInstance rtinstance,
StaticRouteMgrT manager,
const PrefixT static_route,
const StaticRouteConfig config 
)

Definition at line 180 of file static_route.cc.

Here is the call graph for this function:

Member Function Documentation

template<typename T >
void StaticRoute< T >::AddStaticRoute ( NexthopPathIdList list)

Definition at line 462 of file static_route.cc.

Here is the call graph for this function:

template<typename T>
BgpTable* StaticRoute< T >::bgp_table ( ) const
inline

Definition at line 93 of file static_route.cc.

Here is the call graph for this function:

template<typename T >
StaticRoute< T >::CompareResult StaticRoute< T >::CompareConfig ( const StaticRouteConfig config)

Definition at line 197 of file static_route.cc.

Here is the call graph for this function:

template<typename T>
StaticRoute< T >::DISALLOW_COPY_AND_ASSIGN ( StaticRoute< T >  )
private
template<typename T >
void StaticRoute< T >::FillShowInfo ( StaticRouteInfo *  info) const

Definition at line 226 of file static_route.cc.

Here is the call graph for this function:

template<typename T>
AddressT StaticRoute< T >::GetAddress ( IpAddress  addr) const
inline

Definition at line 74 of file static_route.cc.

Here is the call graph for this function:

template<typename T >
CommunityPtr StaticRoute< T >::GetCommunity ( const StaticRouteConfig config)
private

Definition at line 320 of file static_route.cc.

Here is the call graph for this function:

template<typename T>
Address::Family StaticRoute< T >::GetFamily ( ) const
inline

Definition at line 73 of file static_route.cc.

Here is the call graph for this function:

template<typename T>
bool StaticRoute< T >::is_nexthop_route ( BgpRoute route)
inlineprivate

Definition at line 158 of file static_route.cc.

template<typename T >
bool StaticRoute< T >::IsPending ( ) const

Definition at line 584 of file static_route.cc.

Here is the call graph for this function:

template<typename T >
bool StaticRoute< T >::Match ( BgpServer server,
BgpTable table,
BgpRoute route,
bool  deleted 
)
virtual

Implements ConditionMatch.

Definition at line 265 of file static_route.cc.

Here is the call graph for this function:

template<typename T>
const IpAddress& StaticRoute< T >::nexthop ( ) const
inline

Definition at line 85 of file static_route.cc.

template<typename T>
BgpRoute* StaticRoute< T >::nexthop_route ( ) const
inline

Definition at line 97 of file static_route.cc.

template<typename T>
NexthopPathIdList* StaticRoute< T >::NexthopPathIds ( )
inline

Definition at line 101 of file static_route.cc.

template<typename T >
void StaticRoute< T >::NotifyRoute ( )

Definition at line 573 of file static_route.cc.

Here is the call graph for this function:

template<typename T>
const PrefixT& StaticRoute< T >::prefix ( ) const
inline

Definition at line 81 of file static_route.cc.

template<typename T >
void StaticRoute< T >::RemoveStaticRoute ( )

Definition at line 391 of file static_route.cc.

Here is the call graph for this function:

template<typename T>
RoutingInstance* StaticRoute< T >::routing_instance ( ) const
inline

Definition at line 89 of file static_route.cc.

template<typename T>
const RouteTargetList& StaticRoute< T >::rtarget_list ( ) const
inline

Definition at line 130 of file static_route.cc.

template<typename T>
void StaticRoute< T >::set_nexthop_route ( BgpRoute nexthop_route)
inline

Definition at line 103 of file static_route.cc.

Here is the call graph for this function:

template<typename T>
void StaticRoute< T >::set_unregistered ( )
inline

Definition at line 148 of file static_route.cc.

template<typename T>
virtual string StaticRoute< T >::ToString ( ) const
inlinevirtual

Implements ConditionMatch.

Definition at line 144 of file static_route.cc.

template<typename T>
bool StaticRoute< T >::unregistered ( ) const
inline

Definition at line 152 of file static_route.cc.

template<typename T >
void StaticRoute< T >::UpdateAttributes ( const StaticRouteConfig config)

Definition at line 376 of file static_route.cc.

Here is the call graph for this function:

template<typename T >
ExtCommunityPtr StaticRoute< T >::UpdateExtCommunity ( const BgpAttr attr) const
private

Definition at line 344 of file static_route.cc.

Here is the call graph for this function:

template<typename T >
void StaticRoute< T >::UpdateStaticRoute ( )

Definition at line 418 of file static_route.cc.

Here is the call graph for this function:

Member Data Documentation

template<typename T>
CommunityPtr StaticRoute< T >::community_
private

Definition at line 173 of file static_route.cc.

template<typename T>
StaticRouteMgrT* StaticRoute< T >::manager_
private

Definition at line 167 of file static_route.cc.

template<typename T>
IpAddress StaticRoute< T >::nexthop_
private

Definition at line 169 of file static_route.cc.

template<typename T>
NexthopPathIdList StaticRoute< T >::nexthop_path_ids_
private

Definition at line 171 of file static_route.cc.

template<typename T>
BgpRoute* StaticRoute< T >::nexthop_route_
private

Definition at line 170 of file static_route.cc.

template<typename T>
PrefixT StaticRoute< T >::prefix_
private

Definition at line 168 of file static_route.cc.

template<typename T>
RoutingInstance* StaticRoute< T >::routing_instance_
private

Definition at line 166 of file static_route.cc.

template<typename T>
RouteTargetList StaticRoute< T >::rtarget_list_
private

Definition at line 172 of file static_route.cc.

template<typename T>
bool StaticRoute< T >::unregistered_
private

Definition at line 174 of file static_route.cc.


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